Merge "Read CarrierConfig to get operator name" into tm-dev am: b1bdc42d52 am: 0e3e447e11

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17800680

Change-Id: If68a15a92b3e830b3a1fded9278898af74b6e00a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-04-19 02:39:13 +00:00
committed by Automerger Merge Worker
2 changed files with 30 additions and 11 deletions

View File

@@ -14,12 +14,14 @@
package com.android.settings.display; package com.android.settings.display;
import android.content.Context; import android.content.Context;
import android.os.PersistableBundle;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
@@ -34,7 +36,15 @@ public class ShowOperatorNamePreferenceController extends AbstractPreferenceCont
@Override @Override
public boolean isAvailable() { public boolean isAvailable() {
return mContext.getResources().getBoolean(R.bool.config_showOperatorNameInStatusBar); final CarrierConfigManager configMgr = mContext
.getSystemService(CarrierConfigManager.class);
if (configMgr == null) {
return false;
}
final PersistableBundle b = configMgr.getConfigForSubId(SubscriptionManager
.getDefaultDataSubscriptionId());
return b != null && b.getBoolean(CarrierConfigManager
.KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL, false);
} }
@Override @Override

View File

@@ -18,53 +18,62 @@ package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.PersistableBundle;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import com.android.settings.R;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class ShowOperatorNamePreferenceControllerTest { public class ShowOperatorNamePreferenceControllerTest {
private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock @Mock
private SwitchPreference mPreference; private SwitchPreference mPreference;
@Mock
private CarrierConfigManager mConfigManager;
private ShowOperatorNamePreferenceController mController; private ShowOperatorNamePreferenceController mController;
@Mock
private PersistableBundle mConfig;
private Context mContext;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
when(mConfigManager.getConfigForSubId(anyInt())).thenReturn(mConfig);
when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(mConfigManager);
mController = new ShowOperatorNamePreferenceController(mContext); mController = new ShowOperatorNamePreferenceController(mContext);
} }
@Test @Test
public void testIsAvailable_configIsTrue_ReturnTrue() { public void testIsAvailable_configIsTrue_ReturnTrue() {
when(mContext.getResources() when(mConfig.getBoolean(CarrierConfigManager
.getBoolean(R.bool.config_showOperatorNameInStatusBar)).thenReturn(true); .KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL, false)).thenReturn(true);
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test @Test
public void testIsAvailable_configIsFalse_ReturnFalse() { public void testIsAvailable_configIsFalse_ReturnFalse() {
when(mContext.getResources() when(mConfig.getBoolean(CarrierConfigManager
.getBoolean(R.bool.config_showOperatorNameInStatusBar)).thenReturn(false); .KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL, false)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }