Vpn settings per vpn
This CL adds a setting for each VPN
- When no_config_vpn user restriction is applied, user can't change anything in the page
- Launch the subsetting activity in the corresponding user to unlock keystore and force work challenge
- Show dialog when user replace always-on-VPN package
- When forget VPN, unset always-on-vpn
TODO: show per-VPN status in VPN list
Change-Id: Ica360ea44117db6a4ecfaed1eec6c188189c246c
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 5a76bf3..60973e1 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -521,21 +521,32 @@
public static void startWithFragmentAsUser(Context context, String fragmentName, Bundle args,
int titleResId, CharSequence title, boolean isShortcut,
UserHandle userHandle) {
- Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
- null /* titleResPackageName */, titleResId, title, isShortcut);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- context.startActivityAsUser(intent, userHandle);
+ // workaround to avoid crash in b/17523189
+ if (userHandle.getIdentifier() == UserHandle.myUserId()) {
+ startWithFragment(context, fragmentName, args, null, 0, titleResId, title, isShortcut);
+ } else {
+ Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
+ null /* titleResPackageName */, titleResId, title, isShortcut);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ context.startActivityAsUser(intent, userHandle);
+ }
}
public static void startWithFragmentAsUser(Context context, String fragmentName, Bundle args,
String titleResPackageName, int titleResId, CharSequence title, boolean isShortcut,
UserHandle userHandle) {
- Intent intent = onBuildStartFragmentIntent(context, fragmentName, args, titleResPackageName,
- titleResId, title, isShortcut);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- context.startActivityAsUser(intent, userHandle);
+ // workaround to avoid crash in b/17523189
+ if (userHandle.getIdentifier() == UserHandle.myUserId()) {
+ startWithFragment(context, fragmentName, args, null, 0, titleResPackageName, titleResId,
+ title, isShortcut);
+ } else {
+ Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
+ titleResPackageName, titleResId, title, isShortcut);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ context.startActivityAsUser(intent, userHandle);
+ }
}
/**