From dcbb1e010e8aac82911b47dde6e5ee6b9ac16fae Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Mon, 23 Dec 2024 09:36:59 +0100 Subject: [PATCH] refactor(customseekbar): implement seekBarIncrement attribute --- .../src/main/java/com/kdt/CustomSeekbar.java | 19 ++++++++++++++----- .../prefs/QuickSettingSideDialog.java | 4 ---- .../main/res/layout/dialog_quick_setting.xml | 8 ++++++++ .../src/main/res/values/attributes.xml | 7 +++++++ 4 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 app_pojavlauncher/src/main/res/values/attributes.xml diff --git a/app_pojavlauncher/src/main/java/com/kdt/CustomSeekbar.java b/app_pojavlauncher/src/main/java/com/kdt/CustomSeekbar.java index 050276e3e..be80f33a8 100644 --- a/app_pojavlauncher/src/main/java/com/kdt/CustomSeekbar.java +++ b/app_pojavlauncher/src/main/java/com/kdt/CustomSeekbar.java @@ -2,9 +2,14 @@ package com.kdt; import android.annotation.SuppressLint; import android.content.Context; +import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.SeekBar; +import androidx.annotation.Nullable; + +import net.kdt.pojavlaunch.R; + /** * Seekbar with ability to handle ranges and increments */ @@ -19,22 +24,22 @@ public class CustomSeekbar extends SeekBar { public CustomSeekbar(Context context) { super(context); - setup(); + setup(null); } public CustomSeekbar(Context context, AttributeSet attrs) { super(context, attrs); - setup(); + setup(attrs); } public CustomSeekbar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - setup(); + setup(attrs); } public CustomSeekbar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - setup(); + setup(attrs); } public void setIncrement(int increment) { @@ -75,7 +80,11 @@ public class CustomSeekbar extends SeekBar { mListener = l; } - public void setup() { + public void setup(@Nullable AttributeSet attrs) { + try (TypedArray attributes = getContext().obtainStyledAttributes(attrs, R.styleable.CustomSeekbar)) { + mIncrement = attributes.getInt(R.styleable.CustomSeekbar_seekBarIncrement, 1); + } + super.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { /** Store the previous progress to prevent double calls with increments */ private int previousProgress = 0; 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 2da6d8047..3cf0131df 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 @@ -123,7 +123,6 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { }); mGyroSensitivityBar.setRange(25, 300); - mGyroSensitivityBar.setIncrement(mGyroSensitivityBar.getContext().getResources().getInteger(R.integer.gyro_speed_seekbar_increment)); mGyroSensitivityBar.setOnSeekBarChangeListener((SimpleSeekBarListener) (seekBar, progress, fromUser) -> { PREF_GYRO_SENSITIVITY = progress / 100f; mEditor.putInt("gyroSensitivity", progress); @@ -133,7 +132,6 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { setSeekTextPercent(mGyroSensitivityText, mGyroSensitivityBar.getProgress()); mMouseSpeedBar.setRange(25, 300); - mMouseSpeedBar.setIncrement(mMouseSpeedBar.getContext().getResources().getInteger(R.integer.mouse_speed_seekbar_increment)); mMouseSpeedBar.setOnSeekBarChangeListener((SimpleSeekBarListener) (seekBar, progress, fromUser) -> { PREF_MOUSESPEED = progress / 100f; mEditor.putInt("mousespeed", progress); @@ -143,7 +141,6 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { setSeekTextPercent(mMouseSpeedText, mMouseSpeedBar.getProgress()); mGestureDelayBar.setRange(100, 1000); - mGestureDelayBar.setIncrement(mGestureDelayBar.getContext().getResources().getInteger(R.integer.gesture_delay_seekbar_increment)); mGestureDelayBar.setOnSeekBarChangeListener((SimpleSeekBarListener) (seekBar, progress, fromUser) -> { PREF_LONGPRESS_TRIGGER = progress; mEditor.putInt("timeLongPressTrigger", progress); @@ -153,7 +150,6 @@ public abstract class QuickSettingSideDialog extends com.kdt.SideDialogView { setSeekTextMillisecond(mGestureDelayText, mGestureDelayBar.getProgress()); mResolutionBar.setRange(25, 100); - mResolutionBar.setIncrement(mResolutionBar.getContext().getResources().getInteger(R.integer.resolution_seekbar_increment)); mResolutionBar.setOnSeekBarChangeListener((SimpleSeekBarListener) (seekBar, progress, fromUser) -> { PREF_SCALE_FACTOR = progress/100f; mEditor.putInt("resolutionRatio", progress); diff --git a/app_pojavlauncher/src/main/res/layout/dialog_quick_setting.xml b/app_pojavlauncher/src/main/res/layout/dialog_quick_setting.xml index 435781a04..211e63dd7 100644 --- a/app_pojavlauncher/src/main/res/layout/dialog_quick_setting.xml +++ b/app_pojavlauncher/src/main/res/layout/dialog_quick_setting.xml @@ -27,6 +27,8 @@ android:layout_width="0dp" android:layout_height="@dimen/_36sdp" + app:seekBarIncrement="@integer/resolution_seekbar_increment" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.538" app:layout_constraintStart_toStartOf="parent" @@ -92,6 +94,8 @@ android:layout_width="0dp" android:layout_height="@dimen/_36sdp" + app:seekBarIncrement="@integer/gyro_speed_seekbar_increment" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.538" app:layout_constraintStart_toStartOf="parent" @@ -127,6 +131,8 @@ android:layout_width="0dp" android:layout_height="@dimen/_36sdp" + app:seekBarIncrement="@integer/mouse_speed_seekbar_increment" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.538" app:layout_constraintStart_toStartOf="parent" @@ -172,6 +178,8 @@ android:layout_width="0dp" android:layout_height="@dimen/_36sdp" + app:seekBarIncrement="@integer/gesture_delay_seekbar_increment" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.538" app:layout_constraintStart_toStartOf="parent" diff --git a/app_pojavlauncher/src/main/res/values/attributes.xml b/app_pojavlauncher/src/main/res/values/attributes.xml new file mode 100644 index 000000000..30cbe7a16 --- /dev/null +++ b/app_pojavlauncher/src/main/res/values/attributes.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file