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.
|
||||
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()),
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user