prepare for seek preview

This commit is contained in:
Yuriy Liskov
2020-11-23 23:06:45 +02:00
parent 91ee64fbe2
commit 2b834fbb84
4 changed files with 40 additions and 3 deletions
@@ -50,7 +50,10 @@ import com.liskovsoft.smartyoutubetv2.tv.adapter.VideoGroupObjectAdapter;
import com.liskovsoft.smartyoutubetv2.tv.ui.common.LeanbackActivity;
import com.liskovsoft.smartyoutubetv2.tv.ui.common.UriBackgroundManager;
import com.liskovsoft.smartyoutubetv2.tv.ui.mod.leanback.ProgressBarManager;
import com.liskovsoft.smartyoutubetv2.tv.ui.playback.VideoPlayerGlue.OnActionClickedListener;
import com.liskovsoft.smartyoutubetv2.tv.ui.playback.other.PlaybackSeekNetworkDataProvider;
import com.liskovsoft.smartyoutubetv2.tv.ui.playback.other.VideoEventsOverrideFragment;
import com.liskovsoft.smartyoutubetv2.tv.ui.playback.other.VideoPlayerGlue;
import com.liskovsoft.smartyoutubetv2.tv.ui.playback.other.VideoPlayerGlue.OnActionClickedListener;
import java.io.InputStream;
import java.util.HashMap;
@@ -265,6 +268,7 @@ public class PlaybackFragment extends VideoEventsOverrideFragment implements Pla
mPlayerGlue.setHost(new VideoSupportFragmentGlueHost(this));
mPlayerGlue.setSeekEnabled(true);
mPlayerGlue.setControlsOverlayAutoHideEnabled(false); // don't show controls on some player events like play/pause/end
PlaybackSeekNetworkDataProvider.setSeekProvider(mPlayerGlue);
hideControlsOverlay(mIsAnimationEnabled); // hide controls upon fragment creation
mExoPlayerController.setPlayer(mPlayer);
@@ -0,0 +1,33 @@
package com.liskovsoft.smartyoutubetv2.tv.ui.playback.other;
import androidx.leanback.media.PlaybackGlue;
import androidx.leanback.media.PlaybackTransportControlGlue;
import androidx.leanback.widget.PlaybackSeekDataProvider;
public class PlaybackSeekNetworkDataProvider extends PlaybackSeekDataProvider {
public PlaybackSeekNetworkDataProvider(long duration, long interval) {
}
public static void setSeekProvider(PlaybackTransportControlGlue<?> glue) {
if (glue.isPrepared()) {
glue.setSeekProvider(new PlaybackSeekNetworkDataProvider(
glue.getDuration(),
glue.getDuration() / 100));
} else {
glue.addPlayerCallback(new PlaybackGlue.PlayerCallback() {
@Override
public void onPreparedStateChanged(PlaybackGlue glue) {
if (glue.isPrepared()) {
glue.removePlayerCallback(this);
PlaybackTransportControlGlue<?> transportControlGlue =
(PlaybackTransportControlGlue<?>) glue;
transportControlGlue.setSeekProvider(new PlaybackSeekNetworkDataProvider(
transportControlGlue.getDuration(),
transportControlGlue.getDuration() / 100));
}
}
});
}
}
}
@@ -1,4 +1,4 @@
package com.liskovsoft.smartyoutubetv2.tv.ui.playback;
package com.liskovsoft.smartyoutubetv2.tv.ui.playback.other;
import android.os.Bundle;
import android.view.InputEvent;
@@ -1,4 +1,4 @@
package com.liskovsoft.smartyoutubetv2.tv.ui.playback;
package com.liskovsoft.smartyoutubetv2.tv.ui.playback.other;
import android.app.Activity;
import android.view.KeyEvent;