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 8081dcad7..a23290486 100644
--- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
+++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java
@@ -61,7 +61,6 @@ import org.schabi.newpipe.util.AnimationUtils;
import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
-import org.schabi.newpipe.util.PopupMenuIconHacker;
import org.schabi.newpipe.util.ThemeHelper;
import java.util.List;
@@ -194,7 +193,6 @@ public final class MainVideoPlayer extends Activity {
super.onConfigurationChanged(newConfig);
if (playerImpl.isSomePopupMenuVisible()) {
- playerImpl.moreOptionsPopupMenu.dismiss();
playerImpl.getQualityPopupMenu().dismiss();
playerImpl.getPlaybackSpeedPopupMenu().dismiss();
}
@@ -301,8 +299,11 @@ public final class MainVideoPlayer extends Activity {
private boolean queueVisible;
private ImageButton moreOptionsButton;
- public int moreOptionsPopupMenuGroupId = 89;
- public PopupMenu moreOptionsPopupMenu;
+ private ImageButton toggleOrientationButton;
+ private ImageButton switchPopupButton;
+ private ImageButton switchBackgroundButton;
+
+ private View secondaryControls;
VideoPlayerImpl(final Context context) {
super("VideoPlayerImpl" + MainVideoPlayer.TAG, context);
@@ -322,9 +323,12 @@ public final class MainVideoPlayer extends Activity {
this.playPauseButton = rootView.findViewById(R.id.playPauseButton);
this.playPreviousButton = rootView.findViewById(R.id.playPreviousButton);
this.playNextButton = rootView.findViewById(R.id.playNextButton);
+
this.moreOptionsButton = rootView.findViewById(R.id.moreOptionsButton);
- this.moreOptionsPopupMenu = new PopupMenu(context, moreOptionsButton);
- buildMoreOptionsMenu();
+ this.secondaryControls = rootView.findViewById(R.id.secondaryControls);
+ this.toggleOrientationButton = rootView.findViewById(R.id.toggleOrientation);
+ this.switchBackgroundButton = rootView.findViewById(R.id.switchBackground);
+ this.switchPopupButton = rootView.findViewById(R.id.switchPopup);
titleTextView.setSelected(true);
channelTextView.setSelected(true);
@@ -348,7 +352,11 @@ public final class MainVideoPlayer extends Activity {
playPauseButton.setOnClickListener(this);
playPreviousButton.setOnClickListener(this);
playNextButton.setOnClickListener(this);
+
moreOptionsButton.setOnClickListener(this);
+ toggleOrientationButton.setOnClickListener(this);
+ switchBackgroundButton.setOnClickListener(this);
+ switchPopupButton.setOnClickListener(this);
}
/*//////////////////////////////////////////////////////////////////////////
@@ -464,6 +472,16 @@ public final class MainVideoPlayer extends Activity {
return;
} else if (v.getId() == moreOptionsButton.getId()) {
onMoreOptionsClicked();
+
+ } else if (v.getId() == toggleOrientationButton.getId()) {
+ onScreenRotationClicked();
+
+ } else if (v.getId() == switchPopupButton.getId()) {
+ onFullScreenButtonClicked();
+
+ } else if (v.getId() == switchBackgroundButton.getId()) {
+ onPlayBackgroundButtonClicked();
+
}
if (getCurrentState() != STATE_COMPLETED) {
@@ -497,8 +515,15 @@ public final class MainVideoPlayer extends Activity {
private void onMoreOptionsClicked() {
if (DEBUG) Log.d(TAG, "onMoreOptionsClicked() called");
- moreOptionsPopupMenu.show();
- isSomePopupMenuVisible = true;
+ if (secondaryControls.getVisibility() == View.VISIBLE) {
+ moreOptionsButton.setImageDrawable(getResources().getDrawable(
+ R.drawable.ic_expand_more_white_24dp));
+ animateView(secondaryControls, false, 200);
+ } else {
+ moreOptionsButton.setImageDrawable(getResources().getDrawable(
+ R.drawable.ic_expand_less_white_24dp));
+ animateView(secondaryControls, true, 200);
+ }
showControls(300);
}
@@ -637,42 +662,6 @@ public final class MainVideoPlayer extends Activity {
setShuffleButton(shuffleButton, playQueue.isShuffled());
}
- private void buildMoreOptionsMenu() {
- this.moreOptionsPopupMenu.getMenuInflater().inflate(R.menu.menu_videooptions,
- moreOptionsPopupMenu.getMenu());
-
- moreOptionsPopupMenu.setOnMenuItemClickListener(menuItem -> {
- switch (menuItem.getItemId()) {
- case R.id.toggleOrientation:
- onScreenRotationClicked();
- break;
- case R.id.switchPopup:
- onFullScreenButtonClicked();
- break;
- case R.id.switchBackground:
- onPlayBackgroundButtonClicked();
- break;
- }
- return false;
- });
-
- try {
- PopupMenuIconHacker.setShowPopupIcon(moreOptionsPopupMenu);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- // fix icon theme
- if(ThemeHelper.isLightThemeSelected(MainVideoPlayer.this)) {
- moreOptionsPopupMenu.getMenu()
- .findItem(R.id.toggleOrientation)
- .setIcon(R.drawable.ic_screen_rotation_black_24dp);
- moreOptionsPopupMenu.getMenu()
- .findItem(R.id.switchPopup)
- .setIcon(R.drawable.ic_fullscreen_exit_black_24dp);
- }
- }
-
private void buildQueue() {
queueLayout = findViewById(R.id.playQueuePanel);
diff --git a/app/src/main/res/layout/activity_main_player.xml b/app/src/main/res/layout/activity_main_player.xml
index 785505df9..577a6a8f5 100644
--- a/app/src/main/res/layout/activity_main_player.xml
+++ b/app/src/main/res/layout/activity_main_player.xml
@@ -145,10 +145,10 @@
android:layout_alignParentTop="true"
android:background="@drawable/player_top_controls_bg"
android:gravity="top"
- android:paddingBottom="70dp"
- android:paddingLeft="2dp"
- android:paddingRight="10dp"
android:paddingTop="10dp"
+ android:paddingBottom="10dp"
+ android:paddingLeft="5dp"
+ android:paddingRight="5dp"
tools:ignore="RtlHardcoded">
@@ -232,12 +234,12 @@
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@+id/moreOptionsButton"
- android:background="#00ffffff"
android:clickable="true"
android:focusable="true"
android:padding="5dp"
android:scaleType="fitXY"
android:src="@drawable/list"
+ android:background="?attr/selectableItemBackground"
tools:ignore="ContentDescription,RtlHardcoded"/>
+
+
+
+
+
+
+
+
+
+ tools:visibility="visible" />
+ tools:visibility="visible" />
+ tools:visibility="visible" />