diff --git a/res/layout/master_clear_disallowed_screen.xml b/res/layout/master_clear_disallowed_screen.xml
new file mode 100644
index 00000000000..80326caeafa
--- /dev/null
+++ b/res/layout/master_clear_disallowed_screen.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d3eb49df26d..353ca062e4f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2271,6 +2271,8 @@
No reset was performed because the System Clear service isn\'t available.
Reset?
+
+ Factory reset is not available for this user
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
index 57ad514d3d1..20aa68e9330 100644
--- a/res/xml/privacy_settings.xml
+++ b/res/xml/privacy_settings.xml
@@ -4,9 +4,9 @@
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -40,12 +40,13 @@
android:persistent="false" />
-
+
-
+
+
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index eaf29c6e7ec..bbd98fb0c1a 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -54,7 +54,6 @@ public class MasterClear extends Fragment {
private static final String TAG = "MasterClear";
private static final int KEYGUARD_REQUEST = 55;
- private static final int PIN_REQUEST = 56;
static final String ERASE_EXTERNAL_EXTRA = "erase_sd";
@@ -62,7 +61,6 @@ public class MasterClear extends Fragment {
private Button mInitiateButton;
private View mExternalStorageContainer;
private CheckBox mExternalStorage;
- private boolean mPinConfirmed;
/**
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
@@ -78,25 +76,11 @@ public class MasterClear extends Fragment {
res.getText(R.string.master_clear_gesture_explanation));
}
- private boolean runRestrictionsChallenge() {
- if (UserManager.get(getActivity()).hasRestrictionsChallenge()) {
- startActivityForResult(
- new Intent(Intent.ACTION_RESTRICTIONS_CHALLENGE), PIN_REQUEST);
- return true;
- }
- return false;
- }
-
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == PIN_REQUEST) {
- if (resultCode == Activity.RESULT_OK) {
- mPinConfirmed = true;
- }
- return;
- } else if (requestCode != KEYGUARD_REQUEST) {
+ if (requestCode != KEYGUARD_REQUEST) {
return;
}
@@ -125,10 +109,6 @@ public class MasterClear extends Fragment {
private final Button.OnClickListener mInitiateListener = new Button.OnClickListener() {
public void onClick(View v) {
- mPinConfirmed = false;
- if (runRestrictionsChallenge()) {
- return;
- }
if (!runKeyguardConfirmation(KEYGUARD_REQUEST)) {
showFinalConfirmation();
}
@@ -254,22 +234,14 @@ public class MasterClear extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ if (UserManager.get(getActivity()).hasUserRestriction(
+ UserManager.DISALLOW_FACTORY_RESET)) {
+ return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
+ }
+
mContentView = inflater.inflate(R.layout.master_clear, null);
establishInitialState();
return mContentView;
}
-
- @Override
- public void onResume() {
- super.onResume();
-
- // If this is the second step after restrictions pin challenge
- if (mPinConfirmed) {
- mPinConfirmed = false;
- if (!runKeyguardConfirmation(KEYGUARD_REQUEST)) {
- showFinalConfirmation();
- }
- }
- }
}
diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java
index 9c15c7385db..4ee17b81002 100644
--- a/src/com/android/settings/MasterClearConfirm.java
+++ b/src/com/android/settings/MasterClearConfirm.java
@@ -24,6 +24,7 @@ import android.app.Fragment;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
+import android.os.UserManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -80,6 +81,10 @@ public class MasterClearConfirm extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ if (UserManager.get(getActivity()).hasUserRestriction(
+ UserManager.DISALLOW_FACTORY_RESET)) {
+ return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
+ }
mContentView = inflater.inflate(R.layout.master_clear_confirm, null);
establishFinalConfirmationState();
return mContentView;
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 7f699c512f4..aac76388b8d 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -26,6 +26,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.UserManager;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
@@ -43,6 +44,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private static final String BACKUP_DATA = "backup_data";
private static final String AUTO_RESTORE = "auto_restore";
private static final String CONFIGURE_ACCOUNT = "configure_account";
+ private static final String PERSONAL_DATA_CATEGORY = "personal_data_category";
private IBackupManager mBackupManager;
private CheckBoxPreference mBackup;
private CheckBoxPreference mAutoRestore;
@@ -65,6 +67,11 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE);
mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT);
+ if (UserManager.get(getActivity()).hasUserRestriction(
+ UserManager.DISALLOW_FACTORY_RESET)) {
+ screen.removePreference(findPreference(PERSONAL_DATA_CATEGORY));
+ }
+
// Vendor specific
if (getActivity().getPackageManager().
resolveContentProvider(GSETTINGS_PROVIDER, 0) == null) {