diff --git a/app/src/main/java/org/schabi/newpipe/player/AbstractPlayer.java b/app/src/main/java/org/schabi/newpipe/player/AbstractPlayer.java
index a9987bee9..1c6d4822b 100644
--- a/app/src/main/java/org/schabi/newpipe/player/AbstractPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/AbstractPlayer.java
@@ -18,7 +18,6 @@ import android.preference.PreferenceManager;
import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.util.Log;
-import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceView;
@@ -232,8 +231,7 @@ public abstract class AbstractPlayer implements StateInterface, SeekBar.OnSeekBa
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) playbackSeekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
this.playbackSeekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) this.qualityPopupMenu = new PopupMenu(context, qualityTextView, Gravity.CENTER | Gravity.BOTTOM);
- else this.qualityPopupMenu = new PopupMenu(context, qualityTextView);
+ this.qualityPopupMenu = new PopupMenu(context, qualityTextView);
((ProgressBar) this.loadingPanel.findViewById(R.id.progressBarLoadingPanel)).getIndeterminateDrawable().setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
@@ -419,7 +417,7 @@ public abstract class AbstractPlayer implements StateInterface, SeekBar.OnSeekBa
if (DEBUG) Log.d(TAG, "onBuffering() called");
loadingPanel.setBackgroundColor(Color.TRANSPARENT);
animateView(loadingPanel, true, 500, 0);
- animateView(controlsRoot, false, 0, 0);
+ animateView(controlsRoot, false, 0, 0, true);
}
@Override
diff --git a/app/src/main/java/org/schabi/newpipe/player/ExoPlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ExoPlayerActivity.java
index 58e93fc61..3a7c5e085 100644
--- a/app/src/main/java/org/schabi/newpipe/player/ExoPlayerActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/player/ExoPlayerActivity.java
@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.media.AudioManager;
import android.net.Uri;
@@ -173,6 +174,12 @@ public class ExoPlayerActivity extends Activity {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
+ private void toggleOrientation() {
+ setRequestedOrientation(getResources().getDisplayMetrics().heightPixels > getResources().getDisplayMetrics().widthPixels
+ ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
+ : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
+ }
+
///////////////////////////////////////////////////////////////////////////
@SuppressWarnings({"unused", "WeakerAccess"})
@@ -183,6 +190,7 @@ public class ExoPlayerActivity extends Activity {
private TextView brightnessTextView;
private ImageButton repeatButton;
+ private ImageButton screenRotationButton;
private ImageButton playPauseButton;
AbstractPlayerImpl() {
@@ -198,6 +206,7 @@ public class ExoPlayerActivity extends Activity {
this.brightnessTextView = (TextView) rootView.findViewById(R.id.brightnessTextView);
this.repeatButton = (ImageButton) rootView.findViewById(R.id.repeatButton);
+ this.screenRotationButton = (ImageButton) rootView.findViewById(R.id.screenRotationButton);
this.playPauseButton = (ImageButton) rootView.findViewById(R.id.playPauseButton);
// Due to a bug on lower API, lets set the alpha instead of using a drawable
@@ -219,6 +228,7 @@ public class ExoPlayerActivity extends Activity {
repeatButton.setOnClickListener(this);
playPauseButton.setOnClickListener(this);
+ screenRotationButton.setOnClickListener(this);
}
@Override
@@ -285,6 +295,7 @@ public class ExoPlayerActivity extends Activity {
super.onClick(v);
if (v.getId() == repeatButton.getId()) onRepeatClicked();
else if (v.getId() == playPauseButton.getId()) onVideoPlayPause();
+ else if (v.getId() == screenRotationButton.getId()) onScreenRotationClicked();
if (getCurrentState() != STATE_COMPLETED) {
animateView(playerImpl.getControlsRoot(), true, 300, 0, new Runnable() {
@@ -298,6 +309,11 @@ public class ExoPlayerActivity extends Activity {
}
}
+ private void onScreenRotationClicked() {
+ if (DEBUG) Log.d(TAG, "onScreenRotationClicked() called");
+ toggleOrientation();
+ }
+
@Override
public void onVideoPlayPause() {
super.onVideoPlayPause();
@@ -348,7 +364,6 @@ public class ExoPlayerActivity extends Activity {
@Override
public void onLoading() {
super.onLoading();
- hideSystemUi();
playPauseButton.setImageResource(R.drawable.ic_pause_white);
}
diff --git a/app/src/main/res/drawable-hdpi/ic_screen_rotation_white.png b/app/src/main/res/drawable-hdpi/ic_screen_rotation_white.png
new file mode 100644
index 000000000..b81f22246
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_screen_rotation_white.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_screen_rotation_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_screen_rotation_white_24dp.png
deleted file mode 100644
index fa2c881e0..000000000
Binary files a/app/src/main/res/drawable-hdpi/ic_screen_rotation_white_24dp.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_screen_rotation_white.png b/app/src/main/res/drawable-mdpi/ic_screen_rotation_white.png
new file mode 100644
index 000000000..bb36eef34
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_screen_rotation_white.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_screen_rotation_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_screen_rotation_white_24dp.png
deleted file mode 100644
index b6acecf34..000000000
Binary files a/app/src/main/res/drawable-mdpi/ic_screen_rotation_white_24dp.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white.png b/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white.png
new file mode 100644
index 000000000..449b6725f
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white_24dp.png
deleted file mode 100644
index 9092249af..000000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_screen_rotation_white_24dp.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white.png b/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white.png
new file mode 100644
index 000000000..a160572a4
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white_24dp.png
deleted file mode 100644
index cc0fa87f7..000000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_screen_rotation_white_24dp.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white.png b/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white.png
new file mode 100644
index 000000000..3cde2bfef
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white_24dp.png
deleted file mode 100644
index d67b21ae8..000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ic_screen_rotation_white_24dp.png and /dev/null differ
diff --git a/app/src/main/res/layout/activity_exo_player.xml b/app/src/main/res/layout/activity_exo_player.xml
index 72f8aa897..b0e80b584 100644
--- a/app/src/main/res/layout/activity_exo_player.xml
+++ b/app/src/main/res/layout/activity_exo_player.xml
@@ -5,7 +5,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
- android:gravity="center">
+ android:gravity="center"
+ android:keepScreenOn="true">
+
+
+ android:icon="@drawable/ic_screen_rotation_white"/>
\ No newline at end of file