From 0fdbb4c69905b764afaf69db09777418fee5935b Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 16 Mar 2025 12:32:07 +0800 Subject: [PATCH] Fix crash --- app/src/main/AndroidManifest.xml | 1 + .../android/tv/service/PlaybackService.java | 36 ++++++------------- .../com/fongmi/android/tv/utils/ImgUtil.java | 4 --- app/src/mobile/AndroidManifest.xml | 1 - 4 files changed, 11 insertions(+), 31 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 408dc3c33..8e652eeac 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,7 @@ + diff --git a/app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java b/app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java index c416e6de2..7b753e713 100644 --- a/app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java +++ b/app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java @@ -5,13 +5,11 @@ import android.app.Service; import android.content.Intent; import android.content.pm.ServiceInfo; import android.graphics.Bitmap; -import android.graphics.drawable.Drawable; import android.os.Build; import android.os.IBinder; import android.support.v4.media.MediaMetadataCompat; import androidx.annotation.DrawableRes; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.core.app.NotificationCompat; @@ -21,8 +19,7 @@ import androidx.core.content.ContextCompat; import androidx.media.app.NotificationCompat.MediaStyle; import androidx.media.session.MediaButtonReceiver; -import com.bumptech.glide.request.target.CustomTarget; -import com.bumptech.glide.request.transition.Transition; +import com.bumptech.glide.Glide; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.event.ActionEvent; @@ -35,13 +32,10 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import java.util.HashMap; -import java.util.Map; import java.util.Objects; public class PlaybackService extends Service { - private final Map cache = new HashMap<>(); private static Players player; public static void start(Players player) { @@ -99,14 +93,6 @@ public class PlaybackService extends Service { b1.recycle(); } - private void setArtwork(NotificationCompat.Builder builder) { - if (cache.containsKey(getArtUri())) { - setLargeIcon(builder, cache.get(getArtUri())); - } else { - ImgUtil.load(getArtUri(), getCallback(builder)); - } - } - private void addAction(NotificationCompat.Builder builder) { builder.addAction(buildNotificationAction(R.drawable.ic_notify_prev, androidx.media3.ui.R.string.exo_controls_previous_description, ActionEvent.PREV)); builder.addAction(getPlayPauseAction()); @@ -130,19 +116,17 @@ public class PlaybackService extends Service { return builder.build(); } - private CustomTarget getCallback(NotificationCompat.Builder builder) { - return new CustomTarget<>() { - @Override - public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) { - cache.put(getArtUri(), resource); - setLargeIcon(builder, resource); + private void setArtwork(NotificationCompat.Builder builder) { + App.execute(() -> { + try { + Bitmap bitmap = Glide.with(App.get()).asBitmap().skipMemoryCache(true).dontAnimate().load(ImgUtil.getUrl(getArtUri())).submit().get(); + setLargeIcon(builder, bitmap); Notify.show(builder.build()); + bitmap.recycle(); + } catch (Exception e) { + e.printStackTrace(); } - - @Override - public void onLoadCleared(@Nullable Drawable placeholder) { - } - }; + }); } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index d7474d100..a394783d3 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -34,10 +34,6 @@ public class ImgUtil { return new ObjectKey(url + "_" + Setting.getQuality()); } - public static void load(String url, CustomTarget target) { - if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).skipMemoryCache(true).dontAnimate().signature(getSignature(url)).into(target); - } - public static void load(String url, int error, CustomTarget target) { if (TextUtils.isEmpty(url)) target.onLoadFailed(ResUtil.getDrawable(error)); else Glide.with(App.get()).asDrawable().load(getUrl(url)).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).error(error).skipMemoryCache(true).dontAnimate().signature(getSignature(url)).into(target); diff --git a/app/src/mobile/AndroidManifest.xml b/app/src/mobile/AndroidManifest.xml index 057f050b9..02e1cb08a 100644 --- a/app/src/mobile/AndroidManifest.xml +++ b/app/src/mobile/AndroidManifest.xml @@ -7,7 +7,6 @@ -