From 371494c43e0900e264b368dfa2194572ae455dd5 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Thu, 21 Nov 2024 20:13:28 +0100 Subject: [PATCH] Fix(quick settings): persisted settings after cancel --- .../customcontrols/ControlLayout.java | 2 +- .../handleview/EditControlSideDialog.java | 4 ++- .../prefs/QuickSettingSideDialog.java | 28 ++++++++++++------- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java index fc062d191..cc031aeff 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java @@ -422,7 +422,7 @@ public class ControlLayout extends FrameLayout { imm.hideSoftInputFromWindow(getWindowToken(), 0); if(mControlDialog != null) { mControlDialog.disappearColor(); - mControlDialog.disappear(false); + mControlDialog.disappear(true); } if(mActionRow != null) mActionRow.setFollowedButton(null); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlSideDialog.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlSideDialog.java index 21baf1933..171fdad7f 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlSideDialog.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlSideDialog.java @@ -103,7 +103,9 @@ public class EditControlSideDialog extends SideDialogView { @Override protected void onDisappear(boolean willDestroy) { - + if (willDestroy) { + mParent.removeView(mColorSelector.getRootView()); + } } /* While the selector could be retrofitted to side dialog, it's not worth the effort */ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/QuickSettingSideDialog.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/QuickSettingSideDialog.java index e14564352..fc467ceed 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/QuickSettingSideDialog.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/QuickSettingSideDialog.java @@ -11,6 +11,7 @@ import static net.kdt.pojavlaunch.prefs.LauncherPreferences.PREF_SCALE_FACTOR; import android.annotation.SuppressLint; import android.content.Context; +import android.content.SharedPreferences; import android.view.View; import android.view.ViewGroup; import android.widget.Switch; @@ -21,6 +22,7 @@ import androidx.constraintlayout.widget.ConstraintLayout; import com.kdt.CustomSeekbar; import net.kdt.pojavlaunch.R; +import net.kdt.pojavlaunch.Tools; import net.kdt.pojavlaunch.utils.interfaces.SimpleSeekBarListener; /** @@ -29,6 +31,7 @@ import net.kdt.pojavlaunch.utils.interfaces.SimpleSeekBarListener; */ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { + private SharedPreferences.Editor mEditor; @SuppressLint("UseSwitchCompatOrMaterialCode") private Switch mGyroSwitch, mGyroXSwitch, mGyroYSwitch, mGestureSwitch; private CustomSeekbar mGyroSensitivityBar, mMouseSpeedBar, mGestureDelayBar, mResolutionBar; @@ -48,7 +51,7 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { PREF_GYRO_INVERT_X = isChecked; onGyroStateChanged(); - LauncherPreferences.DEFAULT_PREF.edit().putBoolean("gyroInvertX", isChecked).apply(); + mEditor.putBoolean("gyroInvertX", isChecked); }); mGyroYSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> { PREF_GYRO_INVERT_Y = isChecked; onGyroStateChanged(); - LauncherPreferences.DEFAULT_PREF.edit().putBoolean("gyroInvertY", isChecked).apply(); + mEditor.putBoolean("gyroInvertY", isChecked); }); mGestureSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> { PREF_DISABLE_GESTURES = isChecked; updateGestureVisibility(isChecked); - LauncherPreferences.DEFAULT_PREF.edit().putBoolean("disableGestures", isChecked).apply(); + mEditor.putBoolean("disableGestures", isChecked); }); mGyroSensitivityBar.setRange(25, 300); mGyroSensitivityBar.setIncrement(5); mGyroSensitivityBar.setOnSeekBarChangeListener((SimpleSeekBarListener) (seekBar, progress, fromUser) -> { PREF_GYRO_SENSITIVITY = progress / 100f; - LauncherPreferences.DEFAULT_PREF.edit().putInt("gyroSensitivity", progress).apply(); + mEditor.putInt("gyroSensitivity", progress); mGyroSensitivityText.setText(progress + "%"); }); mGyroSensitivityBar.setProgress((int) (mOriginalGyroSensitivity * 100f)); @@ -131,7 +136,7 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { PREF_MOUSESPEED = progress / 100f; - LauncherPreferences.DEFAULT_PREF.edit().putInt("mousespeed", progress).apply(); + mEditor.putInt("mousespeed", progress); mMouseSpeedText.setText(progress + "%"); }); mMouseSpeedBar.setProgress((int) (mOriginalMouseSpeed * 100f)); @@ -140,7 +145,7 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { PREF_LONGPRESS_TRIGGER = progress; - LauncherPreferences.DEFAULT_PREF.edit().putInt("timeLongPressTrigger", progress).apply(); + mEditor.putInt("timeLongPressTrigger", progress); mGestureDelayText.setText(progress + "ms"); }); mGestureDelayBar.setProgress(mOriginalGestureDelay); @@ -149,7 +154,7 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { PREF_SCALE_FACTOR = progress/100f; - LauncherPreferences.DEFAULT_PREF.edit().putInt("resolutionRatio", progress).apply(); + mEditor.putInt("resolutionRatio", progress); mResolutionText.setText(progress + "%"); onResolutionChanged(); }); @@ -191,7 +196,10 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView cancel()); - setEndButtonListener(android.R.string.ok, v -> disappear(true)); + setEndButtonListener(android.R.string.ok, v -> { + mEditor.apply(); + disappear(true); + }); } /** Resets all settings to their original values */