show all internet accessible application packages (#559)

This commit is contained in:
ayanamist
2025-06-29 12:02:07 +08:00
committed by GitHub
parent a597a4611d
commit 4ece5c4315

View File

@@ -46,6 +46,7 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
AccessControlDesign.Request.ReloadApps -> { AccessControlDesign.Request.ReloadApps -> {
design.patchApps(loadApps(selected)) design.patchApps(loadApps(selected))
} }
AccessControlDesign.Request.SelectAll -> { AccessControlDesign.Request.SelectAll -> {
val all = withContext(Dispatchers.Default) { val all = withContext(Dispatchers.Default) {
design.apps.map(AppInfo::packageName) design.apps.map(AppInfo::packageName)
@@ -56,11 +57,13 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
design.rebindAll() design.rebindAll()
} }
AccessControlDesign.Request.SelectNone -> { AccessControlDesign.Request.SelectNone -> {
selected.clear() selected.clear()
design.rebindAll() design.rebindAll()
} }
AccessControlDesign.Request.SelectInvert -> { AccessControlDesign.Request.SelectInvert -> {
val all = withContext(Dispatchers.Default) { val all = withContext(Dispatchers.Default) {
design.apps.map(AppInfo::packageName).toSet() - selected design.apps.map(AppInfo::packageName).toSet() - selected
@@ -71,6 +74,7 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
design.rebindAll() design.rebindAll()
} }
AccessControlDesign.Request.Import -> { AccessControlDesign.Request.Import -> {
val clipboard = getSystemService<ClipboardManager>() val clipboard = getSystemService<ClipboardManager>()
val data = clipboard?.primaryClip val data = clipboard?.primaryClip
@@ -85,6 +89,7 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
design.rebindAll() design.rebindAll()
} }
AccessControlDesign.Request.Export -> { AccessControlDesign.Request.Export -> {
val clipboard = getSystemService<ClipboardManager>() val clipboard = getSystemService<ClipboardManager>()
@@ -118,10 +123,10 @@ class AccessControlActivity : BaseActivity<AccessControlDesign>() {
it.packageName != packageName it.packageName != packageName
} }
.filter { .filter {
it.packageName == "android" || it.requestedPermissions?.contains(INTERNET) == true it.applicationInfo != null
} }
.filter { .filter {
it.applicationInfo != null it.requestedPermissions?.contains(INTERNET) == true || it.applicationInfo!!.uid < android.os.Process.FIRST_APPLICATION_UID
} }
.filter { .filter {
systemApp || !it.isSystemApp systemApp || !it.isSystemApp