From 9070df88defd258452f501681a642eb18fed60cb Mon Sep 17 00:00:00 2001 From: AdarshGrewal Date: Tue, 12 Aug 2025 12:00:00 +0000 Subject: [PATCH] pipa: peripheralmanager: Split refresh rate handling from force stylus * lets just make sylus mode a thing which for 120hz for it to work --- peripheralmanager/res/values/strings.xml | 7 ++- peripheralmanager/res/xml/stylus_settings.xml | 19 ++++-- .../xiaomiperipheralmanager/PenUtils.java | 2 - .../StylusSettingsFragment.java | 60 +++++++++++-------- 4 files changed, 54 insertions(+), 34 deletions(-) diff --git a/peripheralmanager/res/values/strings.xml b/peripheralmanager/res/values/strings.xml index eb26843..2102654 100644 --- a/peripheralmanager/res/values/strings.xml +++ b/peripheralmanager/res/values/strings.xml @@ -11,7 +11,8 @@ Stylus Stylus Settings - Force recognize stylus - Enable this settings to allow using third party styluses - + Stylus Mode + Force recognize stylus + Enable this settings to allow using third party styluses + Stylus Mode limits display\'s max refresh rate to 120Hz diff --git a/peripheralmanager/res/xml/stylus_settings.xml b/peripheralmanager/res/xml/stylus_settings.xml index 1d0a5bb..6a0e52c 100644 --- a/peripheralmanager/res/xml/stylus_settings.xml +++ b/peripheralmanager/res/xml/stylus_settings.xml @@ -18,10 +18,21 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/stylus_title"> - + android:defaultValue="false" /> + + + + diff --git a/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/PenUtils.java b/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/PenUtils.java index 675bbcb..f19c49b 100644 --- a/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/PenUtils.java +++ b/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/PenUtils.java @@ -43,14 +43,12 @@ public class PenUtils { Log.d(TAG, "enablePenMode: Enable Pen Mode"); SystemProperties.set("persist.vendor.parts.pen", "18"); Log.d(TAG, "enablePenMode: Setting Refresh Rates for Pen"); - mRefreshUtils.setPenRefreshRate(); } public static void disablePenMode() { Log.d(TAG, "disablePenMode: Disable Pen Mode"); SystemProperties.set("persist.vendor.parts.pen", "2"); Log.d(TAG, "disablePenMode: Resetting Refresh Rate Values"); - mRefreshUtils.setDefaultRefreshRate(); } private static void refreshPenMode() { diff --git a/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/StylusSettingsFragment.java b/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/StylusSettingsFragment.java index 5ad93ab..034513c 100644 --- a/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/StylusSettingsFragment.java +++ b/peripheralmanager/src/org/lineageos/xiaomiperipheralmanager/StylusSettingsFragment.java @@ -19,38 +19,40 @@ package org.lineageos.xiaomiperipheralmanager; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; -import android.widget.Switch; -import android.util.Log; - import android.preference.PreferenceManager; -import androidx.preference.ListPreference; -import androidx.preference.Preference; -import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.PreferenceFragment; import androidx.preference.SwitchPreference; +import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.MainSwitchPreference; -import org.lineageos.xiaomiperipheralmanager.PenUtils; -import org.lineageos.xiaomiperipheralmanager.R; - public class StylusSettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { - private static final String TAG = "XiaomiPeripheralManagerPenUtils"; - private static final String STYLUS_KEY = "stylus_switch_key"; + private static final String STYLUS_MODE_KEY = "stylus_mode_key"; + private static final String FORCE_RECOGNIZE_STYLUS_KEY = + "force_recognize_stylus_key"; private SharedPreferences mStylusPreference; + private RefreshUtils mRefreshUtils; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.stylus_settings); - mStylusPreference = PreferenceManager.getDefaultSharedPreferences(getContext()); - SwitchPreference switchPreference = (SwitchPreference) findPreference(STYLUS_KEY); + Context context = getContext(); + mStylusPreference = PreferenceManager.getDefaultSharedPreferences(context); + mRefreshUtils = new RefreshUtils(context); - switchPreference.setChecked(mStylusPreference.getBoolean(STYLUS_KEY, false)); - switchPreference.setEnabled(true); - } + MainSwitchPreference stylusModePref = + (MainSwitchPreference)findPreference("stylus_mode_key"); + stylusModePref.setChecked( + mStylusPreference.getBoolean("stylus_mode_key", false)); + + SwitchPreference forceRecognizePref = + (SwitchPreference)findPreference("force_recognize_stylus_key"); + forceRecognizePref.setChecked( + mStylusPreference.getBoolean("force_recognize_stylus_key", false)); + } @Override public void onResume() { @@ -65,18 +67,26 @@ public class StylusSettingsFragment extends PreferenceFragment implements } @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreference, String key) { - if (STYLUS_KEY.equals(key)) { - forceStylus(mStylusPreference.getBoolean(key, false)); + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, + String key) { + if (STYLUS_MODE_KEY.equals(key)) { + setStylusMode(sharedPreferences.getBoolean(key, false)); + } else if (FORCE_RECOGNIZE_STYLUS_KEY.equals(key)) { + setForceRecognizeStylus(sharedPreferences.getBoolean(key, false)); } } - private void forceStylus(boolean status) { - mStylusPreference.edit().putBoolean(STYLUS_KEY, status).apply(); + private void setStylusMode(boolean enabled) { + if (enabled) + mRefreshUtils.setPenRefreshRate(); + else + mRefreshUtils.setDefaultRefreshRate(); + } - if (status) - PenUtils.enablePenMode(); - else - PenUtils.disablePenMode(); + private void setForceRecognizeStylus(boolean enabled) { + if (enabled) + PenUtils.enablePenMode(); + else + PenUtils.disablePenMode(); } }