diff --git a/SharedModules b/SharedModules index 864becb76..065d038af 160000 --- a/SharedModules +++ b/SharedModules @@ -1 +1 @@ -Subproject commit 864becb76c4b8913b437650b2aa4dc87406aa6e8 +Subproject commit 065d038af389b6e94374369d04d37adae307ed70 diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackActivity.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackActivity.java index 4941de7e6..533924229 100644 --- a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackActivity.java +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackActivity.java @@ -10,6 +10,7 @@ import androidx.fragment.app.Fragment; import android.view.KeyEvent; import android.view.MotionEvent; +import com.liskovsoft.sharedutils.mylogger.Log; import com.liskovsoft.smartyoutubetv2.common.app.models.playback.controller.PlaybackEngineController; import com.liskovsoft.smartyoutubetv2.common.app.views.ViewManager; import com.liskovsoft.smartyoutubetv2.tv.R; @@ -23,6 +24,7 @@ import com.liskovsoft.smartyoutubetv2.tv.ui.common.LeanbackActivity; * docs. */ public class PlaybackActivity extends LeanbackActivity { + private static final String TAG = PlaybackActivity.class.getSimpleName(); private static final float GAMEPAD_TRIGGER_INTENSITY_ON = 0.5f; // Off-condition slightly smaller for button debouncing. private static final float GAMEPAD_TRIGGER_INTENSITY_OFF = 0.45f; @@ -96,6 +98,13 @@ public class PlaybackActivity extends LeanbackActivity { return false; } + @Override + public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { + super.onPictureInPictureModeChanged(isInPictureInPictureMode); + + mPlaybackFragment.restartPlayer(); + } + @Override public void onBackPressed() { super.onBackPressed(); @@ -123,6 +132,13 @@ public class PlaybackActivity extends LeanbackActivity { } } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + Log.d(TAG, "Config changed: " + newConfig); + } + @Override public void finish() { ViewManager.instance(this).startParentView(this); diff --git a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java index fea8f6ff8..95a653724 100644 --- a/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java +++ b/smartyoutubetv2/src/main/java/com/liskovsoft/smartyoutubetv2/tv/ui/playback/PlaybackFragment.java @@ -153,6 +153,16 @@ public class PlaybackFragment extends VideoSupportFragment implements PlaybackVi return selectedPosition; } + public void restartPlayer() { + boolean engineBlocked = isEngineBlocked(); + blockEngine(false); + + releasePlayer(); + initializePlayer(); + + blockEngine(engineBlocked); + } + private void releasePlayer() { if (isEngineBlocked()) { Log.d(TAG, "releasePlayer: Engine release is blocked. Exiting...");