Fix greyscale map providers not installed after a system reboot
This commit is contained in:
parent
84b7f64158
commit
e16e6762b9
@ -6,7 +6,6 @@ import android.content.Intent
|
|||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.content.pm.ResolveInfo
|
import android.content.pm.ResolveInfo
|
||||||
import android.content.res.XmlResourceParser
|
import android.content.res.XmlResourceParser
|
||||||
import android.graphics.*
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import de.mm20.launcher2.crashreporter.CrashReporter
|
import de.mm20.launcher2.crashreporter.CrashReporter
|
||||||
import de.mm20.launcher2.database.AppDatabase
|
import de.mm20.launcher2.database.AppDatabase
|
||||||
@ -49,8 +48,11 @@ class UpdateIconPacksWorker(val context: Context) {
|
|||||||
|
|
||||||
fun doWork() {
|
fun doWork() {
|
||||||
val packs = loadInstalledPacks(context).map { it.activityInfo.packageName }
|
val packs = loadInstalledPacks(context).map { it.activityInfo.packageName }
|
||||||
|
val grayscaleProviders = loadInstalledGreyscaleProviders(context)
|
||||||
val iconDao = AppDatabase.getInstance(context).iconDao()
|
val iconDao = AppDatabase.getInstance(context).iconDao()
|
||||||
iconDao.uninstallIconPacksExcept(packs)
|
iconDao.uninstallIconPacksExcept(
|
||||||
|
packs.union(grayscaleProviders).toList()
|
||||||
|
)
|
||||||
|
|
||||||
for (pack in packs) {
|
for (pack in packs) {
|
||||||
try {
|
try {
|
||||||
@ -71,6 +73,18 @@ class UpdateIconPacksWorker(val context: Context) {
|
|||||||
supportedGrayscaleMapPackages.forEach { installGrayscaleIconMap(it) }
|
supportedGrayscaleMapPackages.forEach { installGrayscaleIconMap(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun loadInstalledGreyscaleProviders(context: Context): List<String> {
|
||||||
|
val pm = context.packageManager
|
||||||
|
return SUPPORTED_GRAYSCALE_MAP_PROVIDERS.filter {
|
||||||
|
try {
|
||||||
|
pm.getPackageInfo(it, 0)
|
||||||
|
true
|
||||||
|
} catch (e: PackageManager.NameNotFoundException) {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun loadInstalledPacks(context: Context): List<ResolveInfo> {
|
private fun loadInstalledPacks(context: Context): List<ResolveInfo> {
|
||||||
val packs = mutableListOf<ResolveInfo>()
|
val packs = mutableListOf<ResolveInfo>()
|
||||||
val pm = context.packageManager
|
val pm = context.packageManager
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user