diff --git a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java index 558763a5ca6..4bc3ab7bc2f 100644 --- a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java +++ b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java @@ -63,7 +63,12 @@ public class ShowOperatorNamePreferenceController extends AbstractPreferenceCont @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 c6f8a1fa340..be1eab0f37b 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.anyInt; 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 @@ public class ShowOperatorNamePreferenceControllerTest { @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 @@ public class ShowOperatorNamePreferenceControllerTest { 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); + } }