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 super Bitmap> 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 @@
-