release^2
jhengazuki 2 months ago
parent 039edfd7a9
commit 13a2217244
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 10
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 6
      app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java
  5. 44
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  6. 16
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  7. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  8. 10
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -341,7 +341,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownVod.Liste
}
private void setMetadata() {
mPlayers.setMetadata(mBinding.widget.title.getText().toString(), "", "", mBinding.exo.getDefaultArtwork());
mPlayers.setMetadata(mBinding.widget.title.getText().toString(), "", "");
}
@Subscribe(threadMode = ThreadMode.MAIN)

@ -521,17 +521,15 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void setArtwork() {
ImgUtil.load(this, mChannel.getLogo(), new CustomTarget<>(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()) {
ImgUtil.load(this, mChannel.getLogo(), new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
mBinding.exo.setDefaultArtwork(resource);
setMetadata();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
mBinding.exo.setDefaultArtwork(errorDrawable);
setMetadata();
}
});
}
@ -597,6 +595,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void setChannel(Channel item) {
App.post(mR0, 100);
mChannel = item;
setMetadata();
setArtwork();
showInfo();
}
@ -774,7 +773,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void setMetadata() {
String title = mBinding.widget.name.getText().toString();
String artist = mBinding.widget.play.getText().toString();
mPlayers.setMetadata(title, artist, mChannel.getLogo(), mBinding.exo.getDefaultArtwork());
mPlayers.setMetadata(title, artist, mChannel.getLogo());
}
@Subscribe(threadMode = ThreadMode.MAIN)

@ -913,17 +913,15 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void setArtwork() {
ImgUtil.load(this, mHistory.getVodPic(), new CustomTarget<>(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()) {
ImgUtil.load(this, mHistory.getVodPic(), new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
mBinding.exo.setDefaultArtwork(resource);
setMetadata();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
mBinding.exo.setDefaultArtwork(errorDrawable);
setMetadata();
}
});
}
@ -957,6 +955,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mHistory.setVodPic(item.getVodPic());
setScale(getScale());
setPartAdapter();
setMetadata();
setArtwork();
}
@ -1023,8 +1022,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
setText(mBinding.director, R.string.detail_director, item.getVodDirector());
mBinding.content.setMaxLines(getMaxLines());
setPartAdapter();
setArtwork();
updateKeep();
setArtwork();
setMetadata();
}
@Override
@ -1119,7 +1119,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
String episode = getEpisode().getName();
boolean empty = title.equals(episode) || episode == null;
String artist = empty ? "" : getString(R.string.play_now, episode);
mPlayers.setMetadata(title, artist, mHistory.getVodPic(), mBinding.exo.getDefaultArtwork());
mPlayers.setMetadata(title, artist, mHistory.getVodPic());
}
@Subscribe(threadMode = ThreadMode.MAIN)

@ -98,7 +98,7 @@ public class WallConfig {
}
}
private void download() throws Exception {
private void download() throws Throwable {
Path.clear(FileUtil.getWall(0));
File file = FileUtil.getWall(0);
Path.clear(FileUtil.getWallCache());
@ -111,8 +111,8 @@ public class WallConfig {
else if (isVideo(file)) Setting.putWallType(2);
}
private void createSnapshot(File file) throws Exception {
Bitmap bitmap = Glide.with(App.get()).asBitmap().frame(0).load(file).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).submit(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).get();
private void createSnapshot(File file) throws Throwable {
Bitmap bitmap = Glide.with(App.get()).asBitmap().frame(0).load(file).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).submit().get();
try (FileOutputStream fos = new FileOutputStream(FileUtil.getWallCache())) {
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
}

@ -21,6 +21,7 @@ import android.support.v4.media.session.PlaybackStateCompat;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.media3.common.AudioAttributes;
import androidx.media3.common.C;
import androidx.media3.common.PlaybackException;
@ -32,7 +33,7 @@ import androidx.media3.exoplayer.drm.FrameworkMediaDrm;
import androidx.media3.exoplayer.util.EventLogger;
import androidx.media3.ui.PlayerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.transition.Transition;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.R;
@ -46,6 +47,7 @@ import com.fongmi.android.tv.bean.Track;
import com.fongmi.android.tv.event.ActionEvent;
import com.fongmi.android.tv.event.ErrorEvent;
import com.fongmi.android.tv.event.PlayerEvent;
import com.fongmi.android.tv.impl.CustomTarget;
import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.impl.SessionCallback;
import com.fongmi.android.tv.player.danmaku.DanPlayer;
@ -54,6 +56,7 @@ import com.fongmi.android.tv.player.exo.ErrorMsgProvider;
import com.fongmi.android.tv.player.exo.ExoUtil;
import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
@ -548,7 +551,7 @@ public class Players implements Player.Listener, ParseCallback {
return scheme.isEmpty() || "file".equals(scheme) ? !Path.exists(url) : host.isEmpty();
}
public void setMetadata(String title, String artist, String artUri, Drawable drawable) {
public void setMetadata(String title, String artist, String artUri) {
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, title);
builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist);
@ -556,24 +559,25 @@ public class Players implements Player.Listener, ParseCallback {
builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, artUri);
builder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON_URI, artUri);
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, getDuration());
App.execute(() -> putBitmap(builder, drawable));
}
private void putBitmap(MediaMetadataCompat.Builder builder, Drawable drawable) {
if (drawable == null) {
session.setMetadata(builder.build());
ActionEvent.update();
return;
}
try {
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
bitmap = Glide.with(App.get()).asBitmap().load(bitmap).submit(512, 512).get();
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap);
session.setMetadata(builder.build());
ActionEvent.update();
} catch (Exception e) {
e.printStackTrace();
}
putBitmap(builder, artUri);
}
private void putBitmap(MediaMetadataCompat.Builder builder, String artUri) {
ImgUtil.load(artUri, new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, resource);
session.setMetadata(builder.build());
ActionEvent.update();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, ((BitmapDrawable) errorDrawable).getBitmap());
session.setMetadata(builder.build());
ActionEvent.update();
}
});
}
public void share(Activity activity, CharSequence title) {

@ -4,6 +4,7 @@ import static android.widget.ImageView.ScaleType.CENTER_CROP;
import static android.widget.ImageView.ScaleType.FIT_CENTER;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.View;
@ -20,6 +21,7 @@ import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.load.model.LazyHeaders;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.impl.CustomTarget;
import com.github.catvod.utils.Json;
@ -35,10 +37,18 @@ public class ImgUtil {
private static final Set<String> failed = new HashSet<>();
public static void load(String url, CustomTarget<Bitmap> target) {
try {
Glide.with(App.get()).asBitmap().load(getUrl(url)).override(ResUtil.dp2px(96), ResUtil.dp2px(96)).error(R.drawable.artwork).into(target);
} catch (Throwable e) {
e.printStackTrace();
}
}
public static void load(Context context, String url, CustomTarget<Drawable> target) {
try {
Glide.with(context).load(getUrl(url)).error(R.drawable.artwork).into(target);
} catch (Exception e) {
Glide.with(context).load(getUrl(url)).override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()).error(R.drawable.artwork).into(target);
} catch (Throwable e) {
e.printStackTrace();
}
}
@ -55,7 +65,7 @@ public class ImgUtil {
RequestBuilder<Drawable> builder = Glide.with(view).load(getUrl(url)).listener(getListener(text, url, view, vod));
if (vod) builder.centerCrop().into(view);
else builder.fitCenter().into(view);
} catch (Exception e) {
} catch (Throwable e) {
e.printStackTrace();
}
}

@ -536,17 +536,15 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
}
private void setArtwork() {
ImgUtil.load(this, mChannel.getLogo(), new CustomTarget<>(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()) {
ImgUtil.load(this, mChannel.getLogo(), new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
mBinding.exo.setDefaultArtwork(resource);
setMetadata();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
mBinding.exo.setDefaultArtwork(errorDrawable);
setMetadata();
}
});
}
@ -570,6 +568,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
} else {
mGroup.setPosition(mChannelAdapter.setSelected(item.group(mGroup)));
mChannel = item;
setMetadata();
setArtwork();
showInfo();
hideUI();
@ -801,7 +800,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDown.Listener
private void setMetadata() {
String title = mBinding.widget.name.getText().toString();
String artist = mBinding.widget.play.getText().toString();
mPlayers.setMetadata(title, artist, mChannel.getLogo(), mBinding.exo.getDefaultArtwork());
mPlayers.setMetadata(title, artist, mChannel.getLogo());
}
@Subscribe(threadMode = ThreadMode.MAIN)

@ -1000,17 +1000,15 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void setArtwork() {
ImgUtil.load(this, mHistory.getVodPic(), new CustomTarget<>(ResUtil.getScreenWidth(), ResUtil.getScreenHeight()) {
ImgUtil.load(this, mHistory.getVodPic(), new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
mBinding.exo.setDefaultArtwork(resource);
setMetadata();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
mBinding.exo.setDefaultArtwork(errorDrawable);
setMetadata();
}
});
}
@ -1037,6 +1035,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mHistory.setVodName(item.getVodName());
mHistory.setVodPic(item.getVodPic());
setScale(getScale());
setMetadata();
setArtwork();
}
@ -1119,8 +1118,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
setText(mBinding.content, 0, item.getVodContent());
setText(mBinding.director, R.string.detail_director, item.getVodDirector());
mBinding.contentLayout.setVisibility(mBinding.content.getVisibility());
setArtwork();
updateKeep();
setArtwork();
setMetadata();
}
@Override
@ -1257,7 +1257,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
String episode = getEpisode().getName();
boolean empty = title.equals(episode) || episode == null;
String artist = empty ? "" : getString(R.string.play_now, episode);
mPlayers.setMetadata(title, artist, mHistory.getVodPic(), mBinding.exo.getDefaultArtwork());
mPlayers.setMetadata(title, artist, mHistory.getVodPic());
}
@Subscribe(threadMode = ThreadMode.MAIN)

Loading…
Cancel
Save