pull/589/head
FongMi 1 year ago
parent 5973be71b8
commit 0fdbb4c699
  1. 1
      app/src/main/AndroidManifest.xml
  2. 36
      app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  4. 1
      app/src/mobile/AndroidManifest.xml

@ -11,6 +11,7 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<queries>
<intent>

@ -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<String, Bitmap> 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<Bitmap> 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)

@ -34,10 +34,6 @@ public class ImgUtil {
return new ObjectKey(url + "_" + Setting.getQuality());
}
public static void load(String url, CustomTarget<Bitmap> 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<Drawable> 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);

@ -7,7 +7,6 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application>

Loading…
Cancel
Save