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

Commit 9ef166a5 authored by Christine Franks's avatar Christine Franks Committed by Android (Google) Code Review
Browse files

Merge "Allow FR in carrier demo mode" into oc-dev

parents 564d90fa 2d029395
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -842,8 +842,7 @@ public class SettingsActivity extends SettingsDrawerActivity

        // Enable/disable backup settings depending on whether the user is admin.
        setTileEnabled(new ComponentName(packageName,
                        BackupSettingsActivity.class.getName()), true,
                isAdmin || Utils.isCarrierDemoUser(this));
                        BackupSettingsActivity.class.getName()), true, isAdmin);

        setTileEnabled(new ComponentName(packageName,
                        Settings.WifiDisplaySettingsActivity.class.getName()),
+3 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;

import java.util.List;
@@ -41,10 +42,10 @@ public class FactoryResetPreferenceController extends PreferenceController {
        mAm = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
    }

    /** Hide "Factory reset" settings for secondary users. */
    /** Hide "Factory reset" settings for secondary users, except demo users. */
    @Override
    public boolean isAvailable() {
        return mUm.isAdminUser();
        return mUm.isAdminUser() || Utils.isCarrierDemoUser(mContext);
    }

    @Override
+25 −1
Original line number Diff line number Diff line
@@ -22,10 +22,14 @@ import static org.mockito.Mockito.when;
import android.accounts.AccountManager;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;

import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import com.android.settings.testutils.shadow.ShadowUtils;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,7 +37,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;


@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class FactoryResetPreferenceControllerTest {
@@ -57,6 +60,11 @@ public class FactoryResetPreferenceControllerTest {
        mController = new FactoryResetPreferenceController(mContext);
    }

    @After
    public void tearDown() {
        ShadowUtils.reset();
    }

    @Test
    public void isAvailable_systemUser() {
        when(mUserManager.isAdminUser()).thenReturn(true);
@@ -65,12 +73,28 @@ public class FactoryResetPreferenceControllerTest {
    }

    @Test
    @Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
    public void isAvailable_nonSystemUser() {
        when(mUserManager.isAdminUser()).thenReturn(false);
        ShadowUtils.setIsCarrierDemoUser(false);

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

    @Test
    @Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
    public void isAvailable_carrierDemoUser() {
        when(mUserManager.isAdminUser()).thenReturn(false);
        ShadowUtils.setIsCarrierDemoUser(true);

        final String carrierDemoModeSetting = "carrier_demo_mode";
        when(mContext.getString(com.android.internal.R.string.config_carrierDemoModeSetting))
                .thenReturn(carrierDemoModeSetting);
        Settings.Secure.putInt(null, carrierDemoModeSetting, 1);

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

    @Test
    public void getPreferenceKey() {
        assertThat(mController.getPreferenceKey()).isEqualTo(FACTORY_RESET_KEY);
+11 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import org.robolectric.annotation.Implements;
public class ShadowUtils {

    private static IFingerprintManager sFingerprintManager = null;
    private static boolean sIsCarrierDemoUser;

    @Implementation
    public static int enforceSameOwner(Context context, int userId) {
@@ -45,10 +46,20 @@ public class ShadowUtils {

    public static void reset() {
        sFingerprintManager = null;
        sIsCarrierDemoUser = false;
    }

    @Implementation
    public static boolean isWifiOnly(Context context) {
        return true;
    }

    public static void setIsCarrierDemoUser(boolean isCarrierDemoUser) {
        sIsCarrierDemoUser = isCarrierDemoUser;
    }

    @Implementation
    public static boolean isCarrierDemoUser(Context context) {
        return sIsCarrierDemoUser;
    }
}