BlacklistViewModel: Filter packages which are not apps
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
17
app/src/main/java/com/aurora/extensions/PackageInfo.kt
Normal file
17
app/src/main/java/com/aurora/extensions/PackageInfo.kt
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user