diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 3c2eba1e..9906ff42 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -40,6 +40,7 @@ import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; +import android.content.res.Configuration; import android.graphics.Point; import android.graphics.Rect; import android.hardware.input.InputManager; @@ -425,6 +426,26 @@ public class Game extends Activity implements SurfaceHolder.Callback, streamView.getHolder().addCallback(this); } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + if (virtualController != null) { + // Refresh layout of OSC for possible new screen size + virtualController.refreshLayout(); + + // Hide OSC in PiP + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (isInPictureInPictureMode()) { + virtualController.hide(); + } + else { + virtualController.show(); + } + } + } + } + @Override public void onUserLeaveHint() { super.onUserLeaveHint(); diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java index b5d334da..62935372 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java @@ -86,6 +86,14 @@ public class VirtualController { }); } + public void hide() { + relative_layout.setVisibility(View.INVISIBLE); + } + + public void show() { + relative_layout.setVisibility(View.VISIBLE); + } + public void removeElements() { for (VirtualControllerElement element : elements) { relative_layout.removeView(element);