diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java | 4 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java | 29 |
2 files changed, 23 insertions, 10 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index b51f45d93..8431e7b2e 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -226,7 +226,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements @Override protected void onPause() { - if (!supportsAndisInPictureInPictureMode()) { + if (!compatIsInPictureInPictureMode()) { if (controller != null) { controller.reinitServiceIfPaused(); controller.pause(); @@ -917,7 +917,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements } } - /* package */ boolean supportsAndisInPictureInPictureMode() { + /* package */ boolean compatIsInPictureInPictureMode() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && supportsPictureInPicture()) { return isInPictureInPictureMode(); } else { diff --git a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java index 4ab934cc2..83635853a 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java @@ -24,6 +24,7 @@ import android.widget.ProgressBar; import android.widget.SeekBar; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.feed.MediaType; +import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.service.playback.PlayerStatus; import de.danoeh.antennapod.core.util.playback.ExternalMedia; @@ -101,14 +102,22 @@ public class VideoplayerActivity extends MediaplayerActivity { @Override protected void onStop() { super.onStop(); - if (!supportsAndisInPictureInPictureMode()) { + if (!compatIsInPictureInPictureMode()) { videoControlsHider.stop(); } } @Override + public void onUserLeaveHint () { + if (!compatIsInPictureInPictureMode() && UserPreferences.getVideoBackgroundBehavior() + == UserPreferences.VideoBackgroundBehavior.PICTURE_IN_PICTURE) { + compatEnterPictureInPicture(); + } + } + + @Override protected void onPause() { - if (!supportsAndisInPictureInPictureMode()) { + if (!compatIsInPictureInPictureMode()) { if (controller != null && controller.getStatus() == PlayerStatus.PLAYING) { controller.pause(); } @@ -191,7 +200,7 @@ public class VideoplayerActivity extends MediaplayerActivity { private final View.OnTouchListener onVideoviewTouched = (v, event) -> { if (event.getAction() == MotionEvent.ACTION_DOWN) { - if (supportsAndisInPictureInPictureMode()) { + if (compatIsInPictureInPictureMode()) { return true; } videoControlsHider.stop(); @@ -390,16 +399,20 @@ public class VideoplayerActivity extends MediaplayerActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.player_go_to_picture_in_picture) { - if (supportsPictureInPicture() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - getSupportActionBar().hide(); - hideVideoControls(false); - enterPictureInPictureMode(); - } + compatEnterPictureInPicture(); return true; } return super.onOptionsItemSelected(item); } + private void compatEnterPictureInPicture() { + if (supportsPictureInPicture() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + getSupportActionBar().hide(); + hideVideoControls(false); + enterPictureInPictureMode(); + } + } + private static class VideoControlsHider extends Handler { private static final int DELAY = 2500; |