Loading src/com/android/settings/vpn2/AppDialogFragment.java +26 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; import com.android.internal.net.VpnConfig; Loading @@ -48,6 +49,7 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste private PackageInfo mPackageInfo; private Listener mListener; private UserManager mUserManager; private final IConnectivityManager mService = IConnectivityManager.Stub.asInterface( ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); Loading Loading @@ -79,6 +81,12 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste frag.show(parent.getFragmentManager(), TAG_APP_DIALOG); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUserManager = UserManager.get(getContext()); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle args = getArguments(); Loading @@ -96,7 +104,7 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste .setMessage(getActivity().getString(R.string.vpn_disconnect_confirm)) .setNegativeButton(getActivity().getString(R.string.vpn_cancel), null); if (connected) { if (connected && !isUiRestricted()) { dlog.setPositiveButton(getActivity().getString(R.string.vpn_disconnect), new DialogInterface.OnClickListener() { @Override Loading @@ -120,7 +128,10 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste @Override public void onForget(final DialogInterface dialog) { final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid); if (isUiRestricted()) { return; } final int userId = getUserId(); try { mService.setVpnPackageAuthorization(mPackageInfo.packageName, userId, false); onDisconnect(dialog); Loading @@ -135,7 +146,10 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste } private void onDisconnect(final DialogInterface dialog) { final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid); if (isUiRestricted()) { return; } final int userId = getUserId(); try { if (mPackageInfo.packageName.equals(getConnectedPackage(mService, userId))) { mService.setAlwaysOnVpnPackage(userId, null, /* lockdownEnabled */ false); Loading @@ -147,6 +161,15 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste } } private boolean isUiRestricted() { final UserHandle userHandle = UserHandle.of(getUserId()); return mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN, userHandle); } private int getUserId() { return UserHandle.getUserId(mPackageInfo.applicationInfo.uid); } private static String getConnectedPackage(IConnectivityManager service, final int userId) throws RemoteException { final VpnConfig config = service.getVpnConfig(userId); Loading Loading
src/com/android/settings/vpn2/AppDialogFragment.java +26 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; import android.util.Log; import com.android.internal.net.VpnConfig; Loading @@ -48,6 +49,7 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste private PackageInfo mPackageInfo; private Listener mListener; private UserManager mUserManager; private final IConnectivityManager mService = IConnectivityManager.Stub.asInterface( ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); Loading Loading @@ -79,6 +81,12 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste frag.show(parent.getFragmentManager(), TAG_APP_DIALOG); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUserManager = UserManager.get(getContext()); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Bundle args = getArguments(); Loading @@ -96,7 +104,7 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste .setMessage(getActivity().getString(R.string.vpn_disconnect_confirm)) .setNegativeButton(getActivity().getString(R.string.vpn_cancel), null); if (connected) { if (connected && !isUiRestricted()) { dlog.setPositiveButton(getActivity().getString(R.string.vpn_disconnect), new DialogInterface.OnClickListener() { @Override Loading @@ -120,7 +128,10 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste @Override public void onForget(final DialogInterface dialog) { final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid); if (isUiRestricted()) { return; } final int userId = getUserId(); try { mService.setVpnPackageAuthorization(mPackageInfo.packageName, userId, false); onDisconnect(dialog); Loading @@ -135,7 +146,10 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste } private void onDisconnect(final DialogInterface dialog) { final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid); if (isUiRestricted()) { return; } final int userId = getUserId(); try { if (mPackageInfo.packageName.equals(getConnectedPackage(mService, userId))) { mService.setAlwaysOnVpnPackage(userId, null, /* lockdownEnabled */ false); Loading @@ -147,6 +161,15 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste } } private boolean isUiRestricted() { final UserHandle userHandle = UserHandle.of(getUserId()); return mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN, userHandle); } private int getUserId() { return UserHandle.getUserId(mPackageInfo.applicationInfo.uid); } private static String getConnectedPackage(IConnectivityManager service, final int userId) throws RemoteException { final VpnConfig config = service.getVpnConfig(userId); Loading