diff options
author | Charles He <qiurui@google.com> | 2017-06-08 17:15:32 +0100 |
---|---|---|
committer | Charles He <qiurui@google.com> | 2017-06-27 14:14:31 +0100 |
commit | fc1ce57b13a9489f9eca0dbe36fcedb2939157ac (patch) | |
tree | 564da67b70f85d2923f9613dc67cc10a1c2c2a40 /src/com/android/settings/vpn2 | |
parent | 446f2d2896825f3e28b595979bed35b49509e715 (diff) | |
download | packages_apps_Settings-fc1ce57b13a9489f9eca0dbe36fcedb2939157ac.tar.gz packages_apps_Settings-fc1ce57b13a9489f9eca0dbe36fcedb2939157ac.tar.bz2 packages_apps_Settings-fc1ce57b13a9489f9eca0dbe36fcedb2939157ac.zip |
Disable always-on VPN options if an app has opted out.
The user can turn on / off always-on for individual VPN apps in
Settings > Network > VPN. Now that we're providing an opt-out of the
always-on feature for VPN apps, we should disabled the toggles if the
VPN app has an explicit opt-out.
Related unit tests are also removed as the check is now performed in the
frameworks, not in Settings.
Bug: 36650087
Test: CTS Verifier
Change-Id: I486fec14a1f8b86e7120dbdbfed3885801ab4dd7
Diffstat (limited to 'src/com/android/settings/vpn2')
-rw-r--r-- | src/com/android/settings/vpn2/AppManagementFragment.java | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java index 9981b2fae8..9e215d1b7a 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java @@ -15,6 +15,8 @@ */ package com.android.settings.vpn2; +import static android.app.AppOpsManager.OP_ACTIVATE_VPN; + import android.annotation.NonNull; import android.app.AlertDialog; import android.app.AppOpsManager; @@ -27,7 +29,6 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.net.ConnectivityManager; import android.net.IConnectivityManager; -import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.os.ServiceManager; @@ -45,13 +46,11 @@ import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; -import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedPreference; +import com.android.settingslib.RestrictedSwitchPreference; import java.util.List; -import static android.app.AppOpsManager.OP_ACTIVATE_VPN; - public class AppManagementFragment extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener, ConfirmLockdownFragment.ConfirmLockdownListener { @@ -223,19 +222,6 @@ public class AppManagementFragment extends SettingsPreferenceFragment isEnabled ? mPackageName : null, isLockdown); } - @VisibleForTesting - static boolean isAlwaysOnSupportedByApp(@NonNull ApplicationInfo appInfo) { - final int targetSdk = appInfo.targetSdkVersion; - if (targetSdk < Build.VERSION_CODES.N) { - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "Package " + appInfo.packageName + " targets SDK version: " + targetSdk - + "; must target at least " + Build.VERSION_CODES.N + " to use always-on."); - } - return false; - } - return true; - } - private void updateUI() { if (isAdded()) { final boolean alwaysOn = isVpnAlwaysOn(); @@ -257,7 +243,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment mPreferenceForget.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN, mUserId); - if (isAlwaysOnSupportedByApp(mPackageInfo.applicationInfo)) { + if (mConnectivityManager.isAlwaysOnVpnPackageSupportedForUser(mUserId, mPackageName)) { // setSummary doesn't override the admin message when user restriction is applied mPreferenceAlwaysOn.setSummary(R.string.vpn_always_on_summary); // setEnabled is not required here, as checkRestrictionAndSetDisabled |