OSDN Git Service

DO NOT MERGE - Allow FR in carrier demo mode
authorChristine Franks <christyfranks@google.com>
Tue, 24 Jan 2017 00:44:02 +0000 (16:44 -0800)
committerChristine Franks <christyfranks@google.com>
Wed, 1 Feb 2017 00:37:45 +0000 (00:37 +0000)
Bug: 34341567
Test: manual - in carrier demo mode, go to Settings > Backup and
Reset > Factory data reset > Reset phone > Erase everything and
this entire path is viewable.

Change-Id: I373a2e94f205f6e6e4dd9a54dcf08532a64e5187

src/com/android/settings/MasterClear.java
src/com/android/settings/SettingsActivity.java
src/com/android/settings/Utils.java

index 540c93f..ff309bd 100644 (file)
@@ -286,11 +286,13 @@ public class MasterClear extends OptionsMenuFragment {
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
-        final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
-                getActivity(), UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
-        final UserManager um = UserManager.get(getActivity());
-        if (!um.isAdminUser() || RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
-                UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId())) {
+        final Context context = getContext();
+        final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(context,
+                UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
+        final UserManager um = UserManager.get(context);
+        final boolean disallow = !um.isAdminUser() || RestrictedLockUtils.hasBaseUserRestriction(
+                context, UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
+        if (disallow && !Utils.isCarrierDemoUser(context)) {
             return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
         } else if (admin != null) {
             View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
index 9245003..db9c090 100644 (file)
@@ -1134,7 +1134,8 @@ public class SettingsActivity extends SettingsDrawerActivity
             }
         }
         setTileEnabled(new ComponentName(packageName,
-                BackupSettingsActivity.class.getName()), hasBackupActivity, isAdmin, pm);
+                BackupSettingsActivity.class.getName()), hasBackupActivity,
+                isAdmin || Utils.isCarrierDemoUser(this), pm);
 
     }
 
index eec269f..7d11550 100644 (file)
@@ -1207,4 +1207,13 @@ public final class Utils extends com.android.settingslib.Utils {
         }
         return false;
     }
+
+    public static boolean isCarrierDemoUser(Context context) {
+        final String carrierDemoModeSetting =
+                context.getString(com.android.internal.R.string.config_carrierDemoModeSetting);
+        return UserManager.isDeviceInDemoMode(context)
+                && getUserManager(context).isDemoUser()
+                && !TextUtils.isEmpty(carrierDemoModeSetting)
+                && Settings.Secure.getInt(context.getContentResolver(), carrierDemoModeSetting, 0) == 1;
+    }
 }