mirror of
https://github.com/alesimula/Murine-launcher.git
synced 2026-10-28 09:43:42 +00:00
ICON_PACK - procedural icon reloading starts from home icons first regardless of profile
This commit is contained in:
1 parent
5881d4e451
commit
f7213e8714
1 file changed
+11
-10
@@ -19,19 +19,20 @@ object IconReloader {
|
||||
val launcherApps = app.getSystemService(LauncherApps::class.java)!!
|
||||
// Only queues tasks: anything slow here delays every icon
|
||||
model.enqueueModelUpdateTask { _, dataModel, _ ->
|
||||
// Sort by home screen packages first, everything else later
|
||||
// Sort by home screen packages first across all profiles, everything else later
|
||||
val onHome = synchronized(dataModel) {
|
||||
dataModel.itemsIdMap.mapNotNullTo(HashSet()) { it.targetPackage }
|
||||
dataModel.itemsIdMap.mapNotNullTo(HashSet()) { i -> i.targetPackage?.let { it to i.user } }
|
||||
}
|
||||
UserCache.INSTANCE.get(app).userProfiles.forEach { user ->
|
||||
val users = UserCache.INSTANCE.get(app).userProfiles
|
||||
users.flatMap { user ->
|
||||
launcherApps.getActivityList(null, user)
|
||||
.mapTo(LinkedHashSet()) { it.componentName.packageName }
|
||||
.sortedBy { it !in onHome }
|
||||
.forEach { pkg ->
|
||||
model.enqueueModelUpdateTask(
|
||||
PackageUpdatedTask(PackageUpdatedTask.OP_UPDATE, user, pkg))
|
||||
}
|
||||
// Pinned shortcut badges, last so they get the new icons
|
||||
.mapTo(LinkedHashSet()) { it.componentName.packageName to user }
|
||||
}.sortedBy { it !in onHome }.forEach { (pkg, user) ->
|
||||
model.enqueueModelUpdateTask(
|
||||
PackageUpdatedTask(PackageUpdatedTask.OP_UPDATE, user, pkg))
|
||||
}
|
||||
// Pinned shortcut badges, last so they get the new icons
|
||||
users.forEach { user ->
|
||||
model.enqueueModelUpdateTask { controller, data, apps ->
|
||||
ShortcutRequest(app, user).query(ShortcutRequest.PINNED)
|
||||
.groupBy { it.`package` }
|
||||
|
||||
Reference in new issue
Block a user