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 { leanback {
dimension "mode" dimension "mode"
versionCode 207 versionCode 207
versionName "20231027#3" versionName "20231028"
} }
mobile { mobile {
dimension "mode" dimension "mode"
versionCode 207 versionCode 207
versionName "20231027#3" versionName "20231028"
} }
java { java {
dimension "api" dimension "api"

@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.v4.media.MediaMetadataCompat;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
@ -420,6 +421,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void showEpg() { private void showEpg() {
mBinding.widget.play.setText(mChannel.getData().getEpg()); mBinding.widget.play.setText(mChannel.getData().getEpg());
setMetadata();
} }
private void setTraffic() { 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) { public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
getExo().setDefaultArtwork(resource); getExo().setDefaultArtwork(resource);
getIjk().setDefaultArtwork(resource); getIjk().setDefaultArtwork(resource);
setMetadata();
} }
@Override @Override
public void onLoadFailed(@Nullable Drawable error) { public void onLoadFailed(@Nullable Drawable error) {
getExo().setDefaultArtwork(error); getExo().setDefaultArtwork(error);
getIjk().setDefaultArtwork(error); getIjk().setDefaultArtwork(error);
setMetadata();
} }
@Override @Override
@ -628,6 +632,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
break; break;
case Player.STATE_READY: case Player.STATE_READY:
resetToggle(); resetToggle();
setMetadata();
hideProgress(); hideProgress();
mPlayers.reset(); mPlayers.reset();
setSpeedVisible(); 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); 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) @Subscribe(threadMode = ThreadMode.MAIN)
public void onErrorEvent(ErrorEvent event) { public void onErrorEvent(ErrorEvent event) {
if (mPlayers.addRetry() > event.getRetry()) checkError(event); if (mPlayers.addRetry() > event.getRetry()) checkError(event);

@ -6,6 +6,7 @@ import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.support.v4.media.MediaMetadataCompat;
import android.text.Html; import android.text.Html;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.Spanned; import android.text.Spanned;
@ -453,6 +454,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mViewModel.playerContent(getKey(), flag.getFlag(), episode.getUrl()); mViewModel.playerContent(getKey(), flag.getFlag(), episode.getUrl());
updateHistory(episode, replay); updateHistory(episode, replay);
showProgress(); showProgress();
setMetadata();
hidePreview(); hidePreview();
hideCenter(); hideCenter();
} }
@ -969,6 +971,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
getExo().setDefaultArtwork(resource); getExo().setDefaultArtwork(resource);
getIjk().setDefaultArtwork(resource); getIjk().setDefaultArtwork(resource);
showPreview(resource); showPreview(resource);
setMetadata();
} }
@Override @Override
@ -977,6 +980,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
getIjk().setDefaultArtwork(error); getIjk().setDefaultArtwork(error);
hideProgress(); hideProgress();
hidePreview(); hidePreview();
setMetadata();
} }
@Override @Override
@ -1111,6 +1115,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
break; break;
case Player.STATE_READY: case Player.STATE_READY:
stopSearch(); stopSearch();
setMetadata();
resetToggle(); resetToggle();
hideProgress(); hideProgress();
mPlayers.reset(); 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) @Subscribe(threadMode = ThreadMode.MAIN)
public void onErrorEvent(ErrorEvent event) { public void onErrorEvent(ErrorEvent event) {
if (mPlayers.addRetry() > event.getRetry()) checkError(event); if (mPlayers.addRetry() > event.getRetry()) checkError(event);

Loading…
Cancel
Save