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

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

Change-Id: I3c9f9f8ae4c33d13add17ed282ed93bfb7af534b
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:16:40 +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;
import android.content.Context;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -34,7 +36,15 @@ public class ShowOperatorNamePreferenceController extends AbstractPreferenceCont
@Override
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

View File

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