From faef81399d50a6fa9c94d220a0ee8cbdb28609da Mon Sep 17 00:00:00 2001 From: Shmuel H Date: Sun, 10 Jan 2021 23:53:50 +0200 Subject: [PATCH] Bugfix: Recreate RemoteViews on every iteration Fix a memory leak caused by trying to update the same RemoteViews. Instead of trying to update them, create them from scratch on every iteration. The memory leak on RemoteViews caused the Parcel to get very big and therefore undeliverable by the Samsung NotificationService. See https://stackoverflow.com/a/4484693/6797552 Fixes #107 --- OpenPods/app/src/main/java/com/dosse/airpods/PodsService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OpenPods/app/src/main/java/com/dosse/airpods/PodsService.java b/OpenPods/app/src/main/java/com/dosse/airpods/PodsService.java index b3bca91..3c8655c 100644 --- a/OpenPods/app/src/main/java/com/dosse/airpods/PodsService.java +++ b/OpenPods/app/src/main/java/com/dosse/airpods/PodsService.java @@ -290,7 +290,6 @@ public class PodsService extends Service { boolean notificationShowing = false; String compat = getPackageManager().getInstallerPackageName(getPackageName()); - RemoteViews[] notificationArr = new RemoteViews[] {new RemoteViews(getPackageName(), R.layout.status_big), new RemoteViews(getPackageName(), R.layout.status_small)}; RemoteViews[] notificationLocation = new RemoteViews[] {new RemoteViews(getPackageName(), R.layout.location_disabled_big), new RemoteViews(getPackageName(), R.layout.location_disabled_small)}; NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(PodsService.this, TAG); @@ -300,6 +299,8 @@ public class PodsService extends Service { mBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); for (; ; ) { + RemoteViews[] notificationArr = new RemoteViews[] {new RemoteViews(getPackageName(), R.layout.status_big), new RemoteViews(getPackageName(), R.layout.status_small)}; + /*&&System.currentTimeMillis()-lastSeenConnected