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

Commit c5136b82 authored by Aleksander Morgado's avatar Aleksander Morgado Committed by Android (Google) Code Review
Browse files

Merge "Hide 'Reset mobile network settings' if not telephony capable" into main

parents 6bf50500 e96d71fc
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.network.SubscriptionUtil;
import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;

public class NetworkResetPreferenceController extends AbstractPreferenceController
@@ -34,8 +35,9 @@ public class NetworkResetPreferenceController extends AbstractPreferenceControll

    @Override
    public boolean isAvailable() {
        return (SubscriptionUtil.isSimHardwareVisible(mContext) &&
                (!mRestrictionChecker.hasUserRestriction()));
        return (SubscriptionUtil.isSimHardwareVisible(mContext)
                && !Utils.isWifiOnly(mContext)
                && !mRestrictionChecker.hasUserRestriction());
    }

    @Override
+48 −3
Original line number Diff line number Diff line
@@ -19,9 +19,16 @@ package com.android.settings.network;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.res.Resources;
import android.telephony.TelephonyManager;

import com.android.settings.R;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,28 +41,66 @@ import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
public class NetworkResetPreferenceControllerTest {

    @Mock
    private TelephonyManager mTelephonyManager;
    @Mock
    private NetworkResetRestrictionChecker mRestrictionChecker;
    private NetworkResetPreferenceController mController;
    private Context mContext;
    private Resources mResources;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mController = new NetworkResetPreferenceController(RuntimeEnvironment.application);
        mContext = spy(RuntimeEnvironment.application);

        mResources = spy(mContext.getResources());
        when(mContext.getResources()).thenReturn(mResources);
        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);

        mController = new NetworkResetPreferenceController(mContext);
        ReflectionHelpers.setField(mController, "mRestrictionChecker", mRestrictionChecker);

        // Availability defaults
        when(mTelephonyManager.isDataCapable()).thenReturn(true);
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
        when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(false);
    }

    @Test
    public void testIsAvailable_shouldReturnTrueWhenNoUserRestriction() {
        when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true);
    public void testIsAvailable_showSimInfo_notWifiOnly() {
        assertThat(mController.isAvailable()).isTrue();
    }

    @Test
    public void testIsAvailable_hideSimInfo_notWifiOnly() {
        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(false);
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void testIsAvailable_showSimInfo_wifiOnly() {
        when(mTelephonyManager.isDataCapable()).thenReturn(false);
        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void testIsAvailable_userRestriction() {
        when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true);
        when(mRestrictionChecker.hasUserRestriction()).thenReturn(true);

        assertThat(mController.isAvailable()).isFalse();

        verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin();
    }

    @Test
    public void testIsAvailable_noUserRestriction() {
        when(mRestrictionChecker.isRestrictionEnforcedByAdmin()).thenReturn(true);
        when(mRestrictionChecker.hasUserRestriction()).thenReturn(false);

        assertThat(mController.isAvailable()).isTrue();

        verify(mRestrictionChecker, never()).isRestrictionEnforcedByAdmin();
    }
}