Support google home control

pull/171/head
FongMi 2 years ago
parent 489f6cef6a
commit 17586697de
  1. 4
      app/build.gradle
  2. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -21,12 +21,12 @@ android {
leanback {
dimension "mode"
versionCode 207
versionName "20231027#3"
versionName "20231028"
}
mobile {
dimension "mode"
versionCode 207
versionName "20231027#3"
versionName "20231028"
}
java {
dimension "api"

@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.support.v4.media.MediaMetadataCompat;
import android.view.KeyEvent;
import android.view.View;
@ -420,6 +421,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void showEpg() {
mBinding.widget.play.setText(mChannel.getData().getEpg());
setMetadata();
}
private void setTraffic() {
@ -452,12 +454,14 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
getExo().setDefaultArtwork(resource);
getIjk().setDefaultArtwork(resource);
setMetadata();
}
@Override
public void onLoadFailed(@Nullable Drawable error) {
getExo().setDefaultArtwork(error);
getIjk().setDefaultArtwork(error);
setMetadata();
}
@Override
@ -628,6 +632,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
break;
case Player.STATE_READY:
resetToggle();
setMetadata();
hideProgress();
mPlayers.reset();
setSpeedVisible();
@ -649,6 +654,17 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
mBinding.control.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE);
}
private void setMetadata() {
String title = mChannel == null ? "" : mChannel.getName();
String artist = mChannel == null ? "" : mChannel.getData().getEpg();
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, title);
builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist);
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, getIjk().getDefaultArtwork());
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, mPlayers.getDuration());
mPlayers.setMetadata(builder.build());
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onErrorEvent(ErrorEvent event) {
if (mPlayers.addRetry() > event.getRetry()) checkError(event);

@ -6,6 +6,7 @@ import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.support.v4.media.MediaMetadataCompat;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
@ -453,6 +454,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mViewModel.playerContent(getKey(), flag.getFlag(), episode.getUrl());
updateHistory(episode, replay);
showProgress();
setMetadata();
hidePreview();
hideCenter();
}
@ -969,6 +971,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
getExo().setDefaultArtwork(resource);
getIjk().setDefaultArtwork(resource);
showPreview(resource);
setMetadata();
}
@Override
@ -977,6 +980,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
getIjk().setDefaultArtwork(error);
hideProgress();
hidePreview();
setMetadata();
}
@Override
@ -1111,6 +1115,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
break;
case Player.STATE_READY:
stopSearch();
setMetadata();
resetToggle();
hideProgress();
mPlayers.reset();
@ -1151,6 +1156,18 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
}
private void setMetadata() {
String title = mHistory == null ? getName() : mHistory.getVodName();
String artist = mEpisodeAdapter.size() == 0 ? "" : getEpisode().getName();
artist = title.equals(artist) ? "" : getString(R.string.play_now, artist);
MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, title);
builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist);
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, getIjk().getDefaultArtwork());
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, mPlayers.getDuration());
mPlayers.setMetadata(builder.build());
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onErrorEvent(ErrorEvent event) {
if (mPlayers.addRetry() > event.getRetry()) checkError(event);

Loading…
Cancel
Save