summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2018-04-09 19:43:50 +0200
committerByteHamster <info@bytehamster.com>2018-04-09 19:43:50 +0200
commit64221f7f56a422406c2a664e18ad8593e6825ef2 (patch)
treed200760ad52e8a9e5b358fa06af98b646254e01f /app/src/main/java
parent1831430a6e47be1e34d2e8a4b977e79289ca7b2b (diff)
downloadAntennaPod-64221f7f56a422406c2a664e18ad8593e6825ef2.zip
Allow to enter PiP automatically
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java29
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;