diff --git a/res/layout/network_reset_disallowed_screen.xml b/res/layout/network_reset_disallowed_screen.xml
new file mode 100644
index 00000000000..04f6fc2b4ba
--- /dev/null
+++ b/res/layout/network_reset_disallowed_screen.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2369b2d9e98..0da6a906d1b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2557,6 +2557,8 @@
Reset settings
Reset?
+
+ Network reset is not available for this user
Network settings have been reset
@@ -5858,6 +5860,7 @@
recognizer input speech speak language hands-free hand free recognition offensive word audio history bluetooth headset
rate language default speak speaking tts accessibility reader blind
clock military
+ reset restore factory
wipe delete restore clear remove
printer
speaker beep
diff --git a/res/xml/privacy_settings.xml b/res/xml/privacy_settings.xml
index f9b4fbe4337..721a3bf44f3 100644
--- a/res/xml/privacy_settings.xml
+++ b/res/xml/privacy_settings.xml
@@ -48,7 +48,9 @@
diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java
index 7c911cb058d..a2957598734 100644
--- a/src/com/android/settings/PrivacySettings.java
+++ b/src/com/android/settings/PrivacySettings.java
@@ -54,6 +54,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
private static final String AUTO_RESTORE = "auto_restore";
private static final String CONFIGURE_ACCOUNT = "configure_account";
private static final String BACKUP_INACTIVE = "backup_inactive";
+ private static final String NETWORK_RESET = "network_reset";
private static final String FACTORY_RESET = "factory_reset";
private static final String TAG = "PrivacySettings";
private IBackupManager mBackupManager;
@@ -244,5 +245,9 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
UserManager.DISALLOW_FACTORY_RESET)) {
nonVisibleKeys.add(FACTORY_RESET);
}
+ if (UserManager.get(context).hasUserRestriction(
+ UserManager.DISALLOW_NETWORK_RESET)) {
+ nonVisibleKeys.add(NETWORK_RESET);
+ }
}
}
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 587b8e8623b..2e57dc3fece 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -26,6 +26,7 @@ import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemProperties;
+import android.os.Process;
import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceActivity;
@@ -191,6 +192,12 @@ public class ResetNetwork extends InstrumentedFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ if (!Process.myUserHandle().isOwner()
+ || UserManager.get(getActivity()).hasUserRestriction(
+ UserManager.DISALLOW_NETWORK_RESET)) {
+ return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
+ }
+
mContentView = inflater.inflate(R.layout.reset_network, null);
establishInitialState();
diff --git a/src/com/android/settings/ResetNetworkConfirm.java b/src/com/android/settings/ResetNetworkConfirm.java
index f67467b9c42..7762b899530 100644
--- a/src/com/android/settings/ResetNetworkConfirm.java
+++ b/src/com/android/settings/ResetNetworkConfirm.java
@@ -22,6 +22,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkPolicyManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.os.UserManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
@@ -108,6 +109,10 @@ public class ResetNetworkConfirm extends InstrumentedFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ if (UserManager.get(getActivity()).hasUserRestriction(
+ UserManager.DISALLOW_NETWORK_RESET)) {
+ return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
+ }
mContentView = inflater.inflate(R.layout.reset_network_confirm, null);
establishFinalConfirmationState();
return mContentView;