From bea7cab0c33b56be56ceb305b6abe7a4d33c3730 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 27 Jul 2019 17:00:00 -0400 Subject: [PATCH] Hide overlays in PiP mode --- app/src/main/java/com/limelight/Game.java | 28 ++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index d9c29f45..13559545 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -115,7 +115,10 @@ public class Game extends Activity implements SurfaceHolder.Callback, private boolean grabbedInput = true; private boolean grabComboDown = false; private StreamView streamView; + + private boolean isHidingOverlays; private TextView notificationOverlayView; + private int requestedNotificationOverlayVisibility = View.GONE; private TextView performanceOverlayView; private ShortcutHelper shortcutHelper; @@ -494,13 +497,28 @@ public class Game extends Activity implements SurfaceHolder.Callback, // Refresh layout of OSC for possible new screen size virtualController.refreshLayout(); - // Hide OSC in PiP + // Hide on-screen overlays in PiP mode if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (isInPictureInPictureMode()) { + isHidingOverlays = true; + virtualController.hide(); + + performanceOverlayView.setVisibility(View.GONE); + notificationOverlayView.setVisibility(View.GONE); } else { + isHidingOverlays = false; + virtualController.show(); + + // Restore overlays to previous state when leaving PiP + + if (prefConfig.enablePerfOverlay) { + performanceOverlayView.setVisibility(View.VISIBLE); + } + + notificationOverlayView.setVisibility(requestedNotificationOverlayVisibility); } } } @@ -1402,10 +1420,14 @@ public class Game extends Activity implements SurfaceHolder.Callback, notificationOverlayView.setText(getResources().getString(R.string.poor_connection_msg)); } - notificationOverlayView.setVisibility(View.VISIBLE); + requestedNotificationOverlayVisibility = View.VISIBLE; } else if (connectionStatus == MoonBridge.CONN_STATUS_OKAY) { - notificationOverlayView.setVisibility(View.GONE); + requestedNotificationOverlayVisibility = View.GONE; + } + + if (!isHidingOverlays) { + notificationOverlayView.setVisibility(requestedNotificationOverlayVisibility); } } });