From bcd6b8cbca52901002d32f165616091e165e780b Mon Sep 17 00:00:00 2001 From: Benedict Wong Date: Fri, 17 Jan 2020 18:53:46 -0800 Subject: [PATCH] Add Platform VPNs to VPN list This change allows the Settings VPN pages to pull the apps providing a new Platform VPN. Bug: 144246835 Test: Compiles, manual testing Change-Id: Ibb7e79ccde754724c9fc00c88da98e975f325ba7 --- src/com/android/settings/vpn2/AppManagementFragment.java | 3 ++- src/com/android/settings/vpn2/VpnSettings.java | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java index 5f4644614c7..8e3d9bb4c18 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java @@ -15,6 +15,7 @@ */ package com.android.settings.vpn2; +import static android.app.AppOpsManager.OP_ACTIVATE_PLATFORM_VPN; import static android.app.AppOpsManager.OP_ACTIVATE_VPN; import android.annotation.NonNull; @@ -312,7 +313,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment final AppOpsManager service = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); final List ops = service.getOpsForPackage(application.uid, - application.packageName, new int[]{OP_ACTIVATE_VPN}); + application.packageName, new int[]{OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN}); return !ArrayUtils.isEmpty(ops); } diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java index 83cdf71eeca..8a2b465d7f2 100644 --- a/src/com/android/settings/vpn2/VpnSettings.java +++ b/src/com/android/settings/vpn2/VpnSettings.java @@ -16,6 +16,7 @@ package com.android.settings.vpn2; +import static android.app.AppOpsManager.OP_ACTIVATE_PLATFORM_VPN; import static android.app.AppOpsManager.OP_ACTIVATE_VPN; import android.annotation.UiThread; @@ -522,7 +523,8 @@ public class VpnSettings extends RestrictedSettingsFragment implements // Fetch VPN-enabled apps from AppOps. AppOpsManager aom = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); - List apps = aom.getPackagesForOps(new int[] {OP_ACTIVATE_VPN}); + List apps = + aom.getPackagesForOps(new int[] {OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN}); if (apps != null) { for (AppOpsManager.PackageOps pkg : apps) { int userId = UserHandle.getUserId(pkg.getUid()); @@ -533,8 +535,8 @@ public class VpnSettings extends RestrictedSettingsFragment implements // Look for a MODE_ALLOWED permission to activate VPN. boolean allowed = false; for (AppOpsManager.OpEntry op : pkg.getOps()) { - if (op.getOp() == OP_ACTIVATE_VPN && - op.getMode() == AppOpsManager.MODE_ALLOWED) { + if ((op.getOp() == OP_ACTIVATE_VPN || op.getOp() == OP_ACTIVATE_PLATFORM_VPN) + && op.getMode() == AppOpsManager.MODE_ALLOWED) { allowed = true; } }