From 0bba156becce15cac5cea8616f33ce0a77f0d2ca Mon Sep 17 00:00:00 2001 From: Arjan Schrijver Date: Wed, 17 May 2023 14:03:20 +0200 Subject: [PATCH] Deduplicate icon retrieval code --- .../gadgetbridge/externalevents/NotificationListener.java | 3 ++- .../qhybrid/adapter/fossil_hr/FossilHRWatchAdapter.java | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java index 5e16d4492..73f4ef6c6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/NotificationListener.java @@ -80,6 +80,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.NotificationType; import nodomain.freeyourgadget.gadgetbridge.service.DeviceCommunicationService; import nodomain.freeyourgadget.gadgetbridge.util.BitmapUtil; import nodomain.freeyourgadget.gadgetbridge.util.LimitedQueue; +import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils; import nodomain.freeyourgadget.gadgetbridge.util.PebbleUtils; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; @@ -966,7 +967,7 @@ public class NotificationListener extends NotificationListenerService { // Otherwise, we go and attempt to find the color from the app icon. Drawable icon; try { - icon = getApplicationContext().getPackageManager().getApplicationIcon(appId); + icon = NotificationUtils.getAppIcon(getApplicationContext(), appId); Objects.requireNonNull(icon); } catch (Exception ex) { // If we can't get the icon, we go with the default defined above. diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil_hr/FossilHRWatchAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil_hr/FossilHRWatchAdapter.java index 402f05272..35aaf961b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil_hr/FossilHRWatchAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/adapter/fossil_hr/FossilHRWatchAdapter.java @@ -47,6 +47,7 @@ import android.os.Messenger; import android.os.RemoteException; import android.widget.Toast; +import androidx.core.content.res.ResourcesCompat; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import org.json.JSONArray; @@ -156,6 +157,7 @@ import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fos import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.fossil_hr.workout.WorkoutRequestHandler; import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.requests.misfit.FactoryResetRequest; import nodomain.freeyourgadget.gadgetbridge.util.GB; +import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; import nodomain.freeyourgadget.gadgetbridge.util.StringUtils; import nodomain.freeyourgadget.gadgetbridge.util.UriHelper; @@ -1279,11 +1281,10 @@ public class FossilHRWatchAdapter extends FossilWatchAdapter { Drawable icon = null; if (notificationSpec.iconId != 0) { Context sourcePackageContext = getContext().createPackageContext(sourceAppId, 0); - icon = sourcePackageContext.getResources().getDrawable(notificationSpec.iconId); + icon = ResourcesCompat.getDrawable(sourcePackageContext.getResources(), notificationSpec.iconId, null); } if (icon == null) { - PackageManager pm = getContext().getPackageManager(); - icon = pm.getApplicationIcon(sourceAppId); + icon = NotificationUtils.getAppIcon(getContext(), sourceAppId); } Bitmap iconBitmap = convertDrawableToBitmap(icon); appIconCache.put(sourceAppId, iconBitmap);