From 557057179fd54f438e125149c5bd791a3bbac2b9 Mon Sep 17 00:00:00 2001 From: kennyeni Date: Tue, 16 Nov 2021 17:45:18 -0800 Subject: [PATCH 1/3] Update NotificationListenerService.java --- .../service/NotificationListenerService.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/chainfire/holeylight/service/NotificationListenerService.java b/app/src/main/java/eu/chainfire/holeylight/service/NotificationListenerService.java index 2fe7883..16463b4 100644 --- a/app/src/main/java/eu/chainfire/holeylight/service/NotificationListenerService.java +++ b/app/src/main/java/eu/chainfire/holeylight/service/NotificationListenerService.java @@ -37,6 +37,7 @@ import android.os.Looper; import android.os.Process; import android.os.UserHandle; +import android.os.UserManager; import android.service.notification.StatusBarNotification; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; @@ -456,7 +457,16 @@ private synchronized void handleLEDNotificationsInternal() { if (not.getChannelId() != null) { channelName = sanitizeChannelId(not.getChannelId()); - List chans = getNotificationChannels(sbn.getPackageName(), Process.myUserHandle()); + // Get a list of all users (to read Work Profile notifications) + final UserManager um = (UserManager) getBaseContext().getSystemService(Context.USER_SERVICE); + List list = um.getUserProfiles(); + + // Flatten a list of everything available + List chans = new ArrayList<>(); + for (UserHandle userHandle : list) { + chans.addAll(getNotificationChannels(sbn.getPackageName(), userHandle)); + } + for (NotificationChannel chan : chans) { if (chan.getId().equals(not.getChannelId())) { if (Build.VERSION.SDK_INT >= 29) { From 0c1ce131afd70bc14c585f2cf35a5179c071846e Mon Sep 17 00:00:00 2001 From: kennyeni Date: Tue, 16 Nov 2021 17:46:10 -0800 Subject: [PATCH 2/3] Update ColorAnalyzer.java --- .../java/eu/chainfire/holeylight/misc/ColorAnalyzer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/chainfire/holeylight/misc/ColorAnalyzer.java b/app/src/main/java/eu/chainfire/holeylight/misc/ColorAnalyzer.java index 293c7d5..1af6efb 100644 --- a/app/src/main/java/eu/chainfire/holeylight/misc/ColorAnalyzer.java +++ b/app/src/main/java/eu/chainfire/holeylight/misc/ColorAnalyzer.java @@ -24,7 +24,9 @@ public static int analyze(Context context, String packageName, int defaultColor) boolean adjust = false; try { PackageManager pm = context.getPackageManager(); - ApplicationInfo info = pm.getApplicationInfo(packageName, 0); + + // This flag allows to query apps on the work profile as well + ApplicationInfo info = pm.getApplicationInfo(packageName, PackageManager.MATCH_UNINSTALLED_PACKAGES); if (!packageName.equals(BuildConfig.APPLICATION_ID) && (info.flags & (ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) == 0) { // Average color from icon adjust = true; @@ -71,6 +73,7 @@ public static int analyze(Context context, String packageName, int defaultColor) hsv[2] = 1.0f; color = Color.HSVToColor(255, hsv); } + colorMap.put(packageName, color); } else { color = cached; } From 8054dbb7a9255086000133a6960c9c4ea2428668 Mon Sep 17 00:00:00 2001 From: kennyeni Date: Tue, 16 Nov 2021 18:06:53 -0800 Subject: [PATCH 3/3] Update ColorActivity.java --- app/src/main/java/eu/chainfire/holeylight/ui/ColorActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/eu/chainfire/holeylight/ui/ColorActivity.java b/app/src/main/java/eu/chainfire/holeylight/ui/ColorActivity.java index 78bde23..647b628 100644 --- a/app/src/main/java/eu/chainfire/holeylight/ui/ColorActivity.java +++ b/app/src/main/java/eu/chainfire/holeylight/ui/ColorActivity.java @@ -414,7 +414,7 @@ public void loadAppItems(Map packagesChannelsAndC } List target = found != null ? activeItems : inactiveItems; - ApplicationInfo info = pm.getApplicationInfo(packageColor.packageName, 0); + ApplicationInfo info = pm.getApplicationInfo(packageColor.packageName, PackageManager.MATCH_UNINSTALLED_PACKAGES); target.add(new AppItem( getLabel(pm, info), packageColor.packageName,