BlacklistViewModel: Filter packages which are not apps

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-06-17 18:54:46 +05:30
parent 0fdef34baf
commit 05d9f279c9
2 changed files with 19 additions and 5 deletions

View File

@@ -0,0 +1,17 @@
package com.aurora.extensions
import android.content.pm.PackageInfo
import android.os.Process
fun PackageInfo.isApp(): Boolean {
if (this.applicationInfo == null) return false
return when {
isQAndAbove() -> {
Process.isApplicationUid(this.applicationInfo.uid) &&
!this.applicationInfo.isResourceOverlay && !this.isApex
}
isNAndAbove() -> Process.isApplicationUid(this.applicationInfo.uid)
else -> this.packageName != null && this.versionName != null
}
}

View File

@@ -26,6 +26,7 @@ import androidx.core.content.pm.PackageInfoCompat
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.aurora.extensions.isApp
import com.aurora.store.data.model.Black
import com.aurora.store.data.providers.BlacklistProvider
import com.aurora.store.util.PackageUtil
@@ -62,11 +63,7 @@ class BlacklistViewModel @Inject constructor(
try {
val packageInfoMap = PackageUtil.getPackageInfoMap(context)
packageInfoMap.values
.filter {
it.packageName != null
&& it.versionName != null
&& it.applicationInfo != null
}
.filter { it.isApp() }
.forEach {
val black = Black(it.packageName).apply {
displayName = packageManager.getApplicationLabel(it.applicationInfo)