Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d89c64f1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

parents 1de18733 eb60f311
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -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 −9
Original line number Diff line number Diff line
@@ -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();
    }