From fb6462a67fd8ec53050869b14003783e693ca53a Mon Sep 17 00:00:00 2001 From: dhk2 Date: Fri, 3 Jul 2020 15:17:31 -0700 Subject: [PATCH] adding controls to exit pip or switch to background audio --- .../peertube/activity/VideoPlayActivity.java | 99 ++++++++++--------- 1 file changed, 55 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java b/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java index 6d8ca33..db1dc13 100644 --- a/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java +++ b/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java @@ -368,52 +368,11 @@ public class VideoPlayActivity extends AppCompatActivity { @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onPictureInPictureModeChanged (boolean isInPictureInPictureMode, Configuration newConfig) { - FragmentManager fragmentManager = getSupportFragmentManager(); - VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + if (isInPictureInPictureMode) { + changedToPipMode(); - if (isInPictureInPictureMode) { - videoPlayerFragment.showControls(false); - //create custom actions - setActions(""); - - //setup receiver to handle customer actions - IntentFilter filter = new IntentFilter(); - filter.addAction(ACTION_STOP); - filter.addAction(ACTION_PAUSE); - filter.addAction(ACTION_PLAY); - filter.addAction((BACKGROUND_AUDIO)); - receiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (action.equals(ACTION_PAUSE)){ - videoPlayerFragment.pauseVideo(); - } - if (action.equals(ACTION_PLAY)){ - videoPlayerFragment.pauseToggle(); - } - - if (action.equals(BACKGROUND_AUDIO)) { - unregisterReceiver(receiver); - finish(); - } - if (action.equals(ACTION_STOP)){ - unregisterReceiver(receiver); - finishAndRemoveTask(); - } - } - }; - registerReceiver(receiver, filter); - - Log.v(TAG,"switched to pip "); - // videoPlayerFragment.useController(false); } else { - videoPlayerFragment.showControls(true); - if (receiver != null) { - unregisterReceiver(receiver); - } - Log.v(TAG,"switched to normal"); - // videoPlayerFragment.useController(true); + } } @@ -442,4 +401,56 @@ public class VideoPlayActivity extends AppCompatActivity { setPictureInPictureParams(params); } + public void changedToPipMode() { + FragmentManager fragmentManager = getSupportFragmentManager(); + VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + + videoPlayerFragment.showControls(false); + //create custom actions + setActions(""); + + //setup receiver to handle customer actions + IntentFilter filter = new IntentFilter(); + filter.addAction(ACTION_STOP); + filter.addAction(ACTION_PAUSE); + filter.addAction(ACTION_PLAY); + filter.addAction((BACKGROUND_AUDIO)); + receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action.equals(ACTION_PAUSE)) { + videoPlayerFragment.pauseVideo(); + } + if (action.equals(ACTION_PLAY)) { + videoPlayerFragment.pauseToggle(); + } + + if (action.equals(BACKGROUND_AUDIO)) { + unregisterReceiver(receiver); + finish(); + } + if (action.equals(ACTION_STOP)) { + unregisterReceiver(receiver); + finishAndRemoveTask(); + } + } + }; + registerReceiver(receiver, filter); + + Log.v(TAG, "switched to pip "); + // videoPlayerFragment.useController(false); + } + public void changedToNormalMode(){ + FragmentManager fragmentManager = getSupportFragmentManager(); + VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + + videoPlayerFragment.showControls(true); + if (receiver != null) { + unregisterReceiver(receiver); + } + Log.v(TAG,"switched to normal"); + // videoPlayerFragment.useController(true); + } } +