Read CarrierConfig to get operator name
Config if operator name should be in status bar is now read from carrier config. For dual sim devices we use data sim. Bug: 116847905 Test: Add item for carrier in vendor.xml and swap sim cards between ones that have the item enabled and disabled. We have also tested to swap data sim cards on dual sim device. Test: m RunSettingsRoboTests ROBOTEST_FILTER="ShowOperatorNamePreferenceControllerTest" Change-Id: I03311b96ee660aed80ec867b05aa0a34cfc15f54
This commit is contained in:
committed by
Evan Laird
parent
0312b67407
commit
8bc83ef615
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user