Merge "Allow FR in carrier demo mode" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9ef166a578
@@ -842,8 +842,7 @@ public class SettingsActivity extends SettingsDrawerActivity
|
|||||||
|
|
||||||
// Enable/disable backup settings depending on whether the user is admin.
|
// Enable/disable backup settings depending on whether the user is admin.
|
||||||
setTileEnabled(new ComponentName(packageName,
|
setTileEnabled(new ComponentName(packageName,
|
||||||
BackupSettingsActivity.class.getName()), true,
|
BackupSettingsActivity.class.getName()), true, isAdmin);
|
||||||
isAdmin || Utils.isCarrierDemoUser(this));
|
|
||||||
|
|
||||||
setTileEnabled(new ComponentName(packageName,
|
setTileEnabled(new ComponentName(packageName,
|
||||||
Settings.WifiDisplaySettingsActivity.class.getName()),
|
Settings.WifiDisplaySettingsActivity.class.getName()),
|
||||||
|
@@ -24,6 +24,7 @@ import android.os.UserManager;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -41,10 +42,10 @@ public class FactoryResetPreferenceController extends PreferenceController {
|
|||||||
mAm = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
|
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
|
@Override
|
||||||
public boolean isAvailable() {
|
public boolean isAvailable() {
|
||||||
return mUm.isAdminUser();
|
return mUm.isAdminUser() || Utils.isCarrierDemoUser(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -22,10 +22,14 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.accounts.AccountManager;
|
import android.accounts.AccountManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.settings.SettingsRobolectricTestRunner;
|
import com.android.settings.SettingsRobolectricTestRunner;
|
||||||
import com.android.settings.TestConfig;
|
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.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -33,7 +37,6 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
public class FactoryResetPreferenceControllerTest {
|
public class FactoryResetPreferenceControllerTest {
|
||||||
@@ -57,6 +60,11 @@ public class FactoryResetPreferenceControllerTest {
|
|||||||
mController = new FactoryResetPreferenceController(mContext);
|
mController = new FactoryResetPreferenceController(mContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() {
|
||||||
|
ShadowUtils.reset();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void isAvailable_systemUser() {
|
public void isAvailable_systemUser() {
|
||||||
when(mUserManager.isAdminUser()).thenReturn(true);
|
when(mUserManager.isAdminUser()).thenReturn(true);
|
||||||
@@ -65,12 +73,28 @@ public class FactoryResetPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Config(shadows = { ShadowSecureSettings.class, ShadowUtils.class })
|
||||||
public void isAvailable_nonSystemUser() {
|
public void isAvailable_nonSystemUser() {
|
||||||
when(mUserManager.isAdminUser()).thenReturn(false);
|
when(mUserManager.isAdminUser()).thenReturn(false);
|
||||||
|
ShadowUtils.setIsCarrierDemoUser(false);
|
||||||
|
|
||||||
assertThat(mController.isAvailable()).isFalse();
|
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
|
@Test
|
||||||
public void getPreferenceKey() {
|
public void getPreferenceKey() {
|
||||||
assertThat(mController.getPreferenceKey()).isEqualTo(FACTORY_RESET_KEY);
|
assertThat(mController.getPreferenceKey()).isEqualTo(FACTORY_RESET_KEY);
|
||||||
|
@@ -28,6 +28,7 @@ import org.robolectric.annotation.Implements;
|
|||||||
public class ShadowUtils {
|
public class ShadowUtils {
|
||||||
|
|
||||||
private static IFingerprintManager sFingerprintManager = null;
|
private static IFingerprintManager sFingerprintManager = null;
|
||||||
|
private static boolean sIsCarrierDemoUser;
|
||||||
|
|
||||||
@Implementation
|
@Implementation
|
||||||
public static int enforceSameOwner(Context context, int userId) {
|
public static int enforceSameOwner(Context context, int userId) {
|
||||||
@@ -45,10 +46,20 @@ public class ShadowUtils {
|
|||||||
|
|
||||||
public static void reset() {
|
public static void reset() {
|
||||||
sFingerprintManager = null;
|
sFingerprintManager = null;
|
||||||
|
sIsCarrierDemoUser = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Implementation
|
@Implementation
|
||||||
public static boolean isWifiOnly(Context context) {
|
public static boolean isWifiOnly(Context context) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setIsCarrierDemoUser(boolean isCarrierDemoUser) {
|
||||||
|
sIsCarrierDemoUser = isCarrierDemoUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public static boolean isCarrierDemoUser(Context context) {
|
||||||
|
return sIsCarrierDemoUser;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user