From 2e9428d54c9f79ad675cdfc6360d793981c4a852 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Tue, 19 Nov 2024 22:19:59 +0100 Subject: [PATCH] Tweak: only instantiate the dialog when first needed --- .../net/kdt/pojavlaunch/MainActivity.java | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java index 41fa5b9c8..a77892a1a 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MainActivity.java @@ -190,7 +190,7 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe case 0: dialogForceClose(MainActivity.this); break; case 1: openLogOutput(); break; case 2: dialogSendCustomKey(); break; - case 3: mQuickSettingSideDialog.appear(true); break; + case 3: openQuickSettings(); break; case 4: openCustomControls(); break; } drawerLayout.closeDrawers(); @@ -212,24 +212,6 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe Tools.showErrorRemote(e); } }); - - mQuickSettingSideDialog = new QuickSettingSideDialog(this, mControlLayout) { - @Override - public void onResolutionChanged() { - //TODO: reflect the change in event positions sent down to the game - minecraftGLView.refreshSize(); - } - - @Override - public void onGyroStateChanged() { - mGyroControl.updateOrientation(); - if (PREF_ENABLE_GYRO) { - mGyroControl.enable(); - } else { - mGyroControl.disable(); - } - } - }; } catch (Throwable e) { Tools.showError(this, e, true); } @@ -401,6 +383,28 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe loggerView.setVisibility(View.VISIBLE); } + private void openQuickSettings() { + if(mQuickSettingSideDialog == null) { + mQuickSettingSideDialog = new QuickSettingSideDialog(this, mControlLayout) { + @Override + public void onResolutionChanged() { + minecraftGLView.refreshSize(); + } + + @Override + public void onGyroStateChanged() { + mGyroControl.updateOrientation(); + if (PREF_ENABLE_GYRO) { + mGyroControl.enable(); + } else { + mGyroControl.disable(); + } + } + }; + } + Tools.runOnUiThread(() -> mQuickSettingSideDialog.appear(true)); + } + public static void toggleMouse(Context ctx) { if (CallbackBridge.isGrabbing()) return;