From 4fae2d125577e17a457c26d66398ab6a498733b4 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 16 Nov 2020 15:45:19 +0530 Subject: ui: show all apps with internet permission in exclusions list Signed-off-by: Harsh Shandilya --- .../com/wireguard/android/fragment/AppListDialogFragment.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt b/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt index 7a51a757..2da8d5db 100644 --- a/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt +++ b/ui/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.kt @@ -4,8 +4,8 @@ */ package com.wireguard.android.fragment +import android.Manifest import android.app.Dialog -import android.content.Intent import android.os.Bundle import android.widget.Button import android.widget.Toast @@ -40,12 +40,11 @@ class AppListDialogFragment : DialogFragment() { try { val applicationData: MutableList = ArrayList() withContext(Dispatchers.IO) { - val launcherIntent = Intent(Intent.ACTION_MAIN, null) - launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER) - val resolveInfos = pm.queryIntentActivities(launcherIntent, 0) - resolveInfos.forEach { - val packageName = it.activityInfo.packageName - val appData = ApplicationData(it.loadIcon(pm), it.loadLabel(pm).toString(), packageName, currentlySelectedApps.contains(packageName)) + val packageInfos = pm.getPackagesHoldingPermissions(arrayOf(Manifest.permission.INTERNET), 0) + packageInfos.forEach { + val packageName = it.packageName + val appInfo = it.applicationInfo + val appData = ApplicationData(appInfo.loadIcon(pm), appInfo.loadLabel(pm).toString(), packageName, currentlySelectedApps.contains(packageName)) applicationData.add(appData) appData.addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() { override fun onPropertyChanged(sender: Observable?, propertyId: Int) { -- cgit v1.2.3-59-g8ed1b