diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
index 4e8398ff2..8ce18fa56 100644
--- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
@@ -175,6 +175,10 @@ public final class MainVideoPlayer extends AppCompatActivity
setLandscape(lastOrientationWasLandscape);
}
+ final int lastResizeMode = defaultPreferences.getInt(
+ getString(R.string.last_resize_mode), AspectRatioFrameLayout.RESIZE_MODE_FIT);
+ playerImpl.setResizeMode(lastResizeMode);
+
// Upon going in or out of multiwindow mode, isInMultiWindow will always be false,
// since the first onResume needs to restore the player.
// Subsequent onResume calls while multiwindow mode remains the same and the player is
@@ -705,14 +709,27 @@ public final class MainVideoPlayer extends AppCompatActivity
@Override
protected int nextResizeMode(int currentResizeMode) {
+ final int newResizeMode;
switch (currentResizeMode) {
case AspectRatioFrameLayout.RESIZE_MODE_FIT:
- return AspectRatioFrameLayout.RESIZE_MODE_FILL;
+ newResizeMode = AspectRatioFrameLayout.RESIZE_MODE_FILL;
+ break;
case AspectRatioFrameLayout.RESIZE_MODE_FILL:
- return AspectRatioFrameLayout.RESIZE_MODE_ZOOM;
+ newResizeMode = AspectRatioFrameLayout.RESIZE_MODE_ZOOM;
+ break;
default:
- return AspectRatioFrameLayout.RESIZE_MODE_FIT;
+ newResizeMode = AspectRatioFrameLayout.RESIZE_MODE_FIT;
+ break;
}
+
+ storeResizeMode(newResizeMode);
+ return newResizeMode;
+ }
+
+ private void storeResizeMode(@AspectRatioFrameLayout.ResizeMode int resizeMode) {
+ defaultPreferences.edit()
+ .putInt(getString(R.string.last_resize_mode), resizeMode)
+ .apply();
}
@Override
diff --git a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
index 8e7db0dae..d30d9b8be 100644
--- a/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/VideoPlayer.java
@@ -683,12 +683,17 @@ public abstract class VideoPlayer extends BasePlayer
if (getAspectRatioFrameLayout() != null) {
final int currentResizeMode = getAspectRatioFrameLayout().getResizeMode();
final int newResizeMode = nextResizeMode(currentResizeMode);
- getAspectRatioFrameLayout().setResizeMode(newResizeMode);
- getResizeView().setText(PlayerHelper.resizeTypeOf(context, newResizeMode));
+ setResizeMode(newResizeMode);
}
}
+ protected void setResizeMode(@AspectRatioFrameLayout.ResizeMode final int resizeMode) {
+ getAspectRatioFrameLayout().setResizeMode(resizeMode);
+ getResizeView().setText(PlayerHelper.resizeTypeOf(context, resizeMode));
+ }
+
protected abstract int nextResizeMode(@AspectRatioFrameLayout.ResizeMode final int resizeMode);
+
/*//////////////////////////////////////////////////////////////////////////
// SeekBar Listener
//////////////////////////////////////////////////////////////////////////*/
diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml
index 9b39fec26..f01bdb366 100644
--- a/app/src/main/res/values/settings_keys.xml
+++ b/app/src/main/res/values/settings_keys.xml
@@ -105,6 +105,8 @@
last_orientation_landscape_key
+ last_resize_mode
+
debug_pref_screen_key
allow_heap_dumping_key