Don't allow secondary users apps to start restricted Settings fragment.
On a secondary user, the fragments ApnSettings, TetherSettings and VpnSettings
should not be started.
But an app can still send an intent to start these fragments.
Prevent this by checkin the userId in these fragments.
BUG:15313261
BUG:15312781
BUG:15312494
Change-Id: I2a36bb89a8e37e4440aa28372d7a1800b33dae37
diff --git a/src/com/android/settings/ApnSettings.java b/src/com/android/settings/ApnSettings.java
index 0a7e84c..226f8ab 100644
--- a/src/com/android/settings/ApnSettings.java
+++ b/src/com/android/settings/ApnSettings.java
@@ -33,6 +33,7 @@
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
+import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceGroup;
@@ -173,7 +174,8 @@
getListView().setEmptyView(empty);
}
- if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
+ if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
+ || UserHandle.myUserId()!= UserHandle.USER_OWNER) {
mUnavailable = true;
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
return;
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 125411a..a0cd4da 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -38,6 +38,7 @@
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Environment;
+import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceScreen;
@@ -123,7 +124,8 @@
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
- if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)) {
+ if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)
+ || UserHandle.myUserId() != UserHandle.USER_OWNER) {
mUnavailable = true;
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
return;
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index a7d3b33..ba26e4a 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -106,7 +106,8 @@
super.onCreate(savedState);
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
- if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN)) {
+ if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN)
+ || UserHandle.myUserId() != UserHandle.USER_OWNER) {
mUnavailable = true;
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
return;