Merge "Add support to configure state of operator name in status bar [2/2]" into main
diff --git a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
index 558763a..4bc3ab7 100644
--- a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
+++ b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
@@ -63,7 +63,12 @@
     @Override
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(mContext.getContentResolver(),
-                KEY_SHOW_OPERATOR_NAME, 1);
+                KEY_SHOW_OPERATOR_NAME, getShowOperatorNameDefault());
         ((TwoStatePreference) preference).setChecked(value != 0);
     }
+
+    private int getShowOperatorNameDefault() {
+        return mContext.getResources()
+            .getInteger(com.android.internal.R.integer.config_showOperatorNameDefault);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/display/ShowOperatorNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ShowOperatorNamePreferenceControllerTest.java
index c6f8a1f..be1eab0 100644
--- a/tests/robotests/src/com/android/settings/display/ShowOperatorNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/ShowOperatorNamePreferenceControllerTest.java
@@ -22,15 +22,18 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
+import android.content.res.Resources;
 import android.os.PersistableBundle;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 
 import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -54,11 +57,14 @@
     @Mock
     private PersistableBundle mConfig;
     private Context mContext;
+    private Resources mResources;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
 
         when(mConfigManager.getConfigForSubId(anyInt())).thenReturn(mConfig);
         when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(mConfigManager);
@@ -99,4 +105,24 @@
             Settings.Secure.getInt(mContext.getContentResolver(), KEY_SHOW_OPERATOR_NAME, 1);
         assertThat(mode).isEqualTo(0);
     }
+
+    @Test
+    public void testUpdateState_DefaultValueEnabled() {
+        when(mResources.getInteger(com.android.internal.R.integer.config_showOperatorNameDefault))
+                .thenReturn(1);
+
+        TwoStatePreference testPreference = mock(TwoStatePreference.class);
+        mController.updateState(testPreference);
+        verify(testPreference).setChecked(true);
+    }
+
+    @Test
+    public void testUpdateState_DefaultValueDisabled() {
+        when(mResources.getInteger(com.android.internal.R.integer.config_showOperatorNameDefault))
+                .thenReturn(0);
+
+        TwoStatePreference testPreference = mock(TwoStatePreference.class);
+        mController.updateState(testPreference);
+        verify(testPreference).setChecked(false);
+    }
 }