[Android] Hide PiP & background option when rendering video

Geoffrey Métais git at videolan.org
Thu Jan 25 10:32:29 CET 2018


vlc-android | branch: chromecast | Geoffrey Métais <geoffrey.metais at gmail.com> | Fri Jan 19 14:57:40 2018 +0100| [c01f6716d2602508d2547b227f0802b403576e13] | committer: Geoffrey Métais

Hide PiP & background option when rendering video

> https://code.videolan.org/videolan/vlc-android/commit/c01f6716d2602508d2547b227f0802b403576e13
---

 .../videolan/vlc/gui/dialogs/AdvOptionsDialog.java | 22 ++++++++++++----------
 .../vlc/gui/video/VideoPlayerActivity.java         |  2 ++
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/dialogs/AdvOptionsDialog.java b/vlc-android/src/org/videolan/vlc/gui/dialogs/AdvOptionsDialog.java
index 5591600b7..4aadaf260 100644
--- a/vlc-android/src/org/videolan/vlc/gui/dialogs/AdvOptionsDialog.java
+++ b/vlc-android/src/org/videolan/vlc/gui/dialogs/AdvOptionsDialog.java
@@ -70,6 +70,7 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
 
     public final static String TAG = "VLC/AdvOptionsDialog";
     public static final String MODE_KEY = "mode";
+    public static final String PRIMARY_DISPLAY = "primary_display";
     public static final int MODE_VIDEO = 0;
     public static final int MODE_AUDIO = 1;
 
@@ -94,6 +95,7 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
 
     private Activity mActivity;
     private int mMode = -1;
+    private boolean primary;
 
     AutoFitRecyclerView mRecyclerView;
     private AdvOptionsAdapter mAdapter;
@@ -124,10 +126,11 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
         super.onCreate(savedInstanceState);
         if (VLCApplication.sPlayerSleepTime != null && VLCApplication.sPlayerSleepTime.before(Calendar.getInstance()))
             VLCApplication.sPlayerSleepTime = null;
-        if (getArguments() != null && getArguments().containsKey(MODE_KEY))
-            mMode = getArguments().getInt(MODE_KEY);
-        else
-            mMode = MODE_VIDEO;
+        final Bundle args = getArguments();
+        if (args != null) {
+            mMode = args.containsKey(MODE_KEY) ? args.getInt(MODE_KEY) : MODE_VIDEO;
+            primary = args.containsKey(PRIMARY_DISPLAY) && args.getBoolean(PRIMARY_DISPLAY);
+        }
         setStyle(DialogFragment.STYLE_NO_FRAME, 0);
     }
 
@@ -515,11 +518,11 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
         mAdapter.addOption(new Option(ID_EQUALIZER, R.attr.ic_equalizer_normal_style, getString(R.string.equalizer)));
 
         if (mMode == MODE_VIDEO) {
-            if (!tvUi && mService.getAudioTracksCount() > 0)
+            if (primary && !tvUi && mService.getAudioTracksCount() > 0)
                 mAdapter.addOption(new Option(ID_PLAY_AS_AUDIO, R.attr.ic_playasaudio_on, getString(R.string.play_as_audio)));
             mAdapter.addOption(new Option(ID_SPU_DELAY, R.attr.ic_subtitledelay, getString(R.string.spu_delay)));
             mAdapter.addOption(new Option(ID_AUDIO_DELAY, R.attr.ic_audiodelay, getString(R.string.audio_delay)));
-            if (!tvUi || AndroidDevices.hasPiP)
+            if (primary && (!tvUi || AndroidDevices.hasPiP))
                 mAdapter.addOption(new Option(ID_POPUP_VIDEO, R.attr.ic_popup_dim, getString(R.string.popup_playback_title)));
             mAdapter.addOption(new Option(ID_REPEAT, R.attr.ic_repeat, getString(R.string.repeat_title)));
             if (mService.canShuffle())
@@ -542,7 +545,7 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
         mService = null;
     }
 
-    GridLayoutManager.SpanSizeLookup mSpanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
+    final GridLayoutManager.SpanSizeLookup mSpanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
         @Override
         public int getSpanSize(int position) {
             switch (mAdapter.getItemViewType(position)) {
@@ -583,8 +586,7 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
 
     private void setDialogDimensions(int offset) {
         final Dialog dialog = getDialog();
-        if (dialog == null)
-            return;
+        if (dialog == null) return;
         final int dialogWidth = getResources().getDimensionPixelSize(R.dimen.option_width) * SPAN_COUNT + mRecyclerView.getPaddingLeft()+ mRecyclerView.getRight();
         final int count = mAdapter.getItemCount()-offset;
         final int rows = offset + (count + SPAN_COUNT-1) / SPAN_COUNT;
@@ -606,7 +608,7 @@ public class AdvOptionsDialog extends DialogFragment implements View.OnClickList
 
         @Override
         public AdvOptionsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-            View v = LayoutInflater.from(parent.getContext())
+            final View v = LayoutInflater.from(parent.getContext())
                     .inflate(R.layout.adv_option_item, parent, false);
             v.setOnClickListener(AdvOptionsDialog.this);
             v.setOnFocusChangeListener(AdvOptionsDialog.this);
diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
index 77d97748a..9135e7987 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
@@ -3362,6 +3362,8 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
     public void showAdvancedOptions() {
         final FragmentManager fm = getSupportFragmentManager();
         final AdvOptionsDialog advOptionsDialog = new AdvOptionsDialog();
+        final Bundle args = new Bundle(1);
+        args.putBoolean(AdvOptionsDialog.PRIMARY_DISPLAY, mDisplayManager.isPrimary());
         advOptionsDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
             @Override
             public void onDismiss(DialogInterface dialog) {



More information about the Android mailing list