pipa: peripheralmanager: Rework pen settings
Change-Id: I95c338cf28969e5fbcafe985f080821574ec12e7
This commit is contained in:
committed by
Abdulwahab Isam
parent
81b53db4d5
commit
cd9f1f5701
@@ -13,6 +13,7 @@ import android.os.SystemProperties;
|
||||
import android.util.Log;
|
||||
import android.view.InputDevice;
|
||||
|
||||
import android.preference.PreferenceManager;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
public class PenUtils {
|
||||
@@ -25,16 +26,15 @@ public class PenUtils {
|
||||
|
||||
private static InputManager mInputManager;
|
||||
|
||||
public static final String SHARED_STYLUS = "shared_stylus_force";
|
||||
private static final String STYLUS_KEY = "stylus_switch_key";
|
||||
|
||||
private static SharedPreferences preferences;
|
||||
|
||||
public static void setup(Context context) {
|
||||
mInputManager = (InputManager) context.getSystemService(Context.INPUT_SERVICE);
|
||||
refreshPenMode();
|
||||
mInputManager.registerInputDeviceListener(mInputDeviceListener, null);
|
||||
SharedPreferences preferences = context.getSharedPreferences(SHARED_STYLUS,
|
||||
Context.MODE_PRIVATE);
|
||||
preferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
refreshPenMode();
|
||||
}
|
||||
|
||||
public static void enablePenMode() {
|
||||
@@ -49,7 +49,7 @@ public class PenUtils {
|
||||
|
||||
private static void refreshPenMode() {
|
||||
for (int id : mInputManager.getInputDeviceIds()) {
|
||||
if (isDeviceXiaomiPen(id) || preferences.getInt(SHARED_STYLUS, 0) == 1) {
|
||||
if (isDeviceXiaomiPen(id) || preferences.getBoolean(STYLUS_KEY, false)) {
|
||||
if (DEBUG) Log.d(TAG, "refreshPenMode: Found Xiaomi Pen");
|
||||
enablePenMode();
|
||||
return;
|
||||
|
||||
@@ -20,55 +20,61 @@ 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.MainSwitchPreference;
|
||||
|
||||
import org.lineageos.xiaomiperipheralmanager.PenUtils;
|
||||
|
||||
import org.lineageos.xiaomiperipheralmanager.R;
|
||||
|
||||
public class StylusSettingsFragment extends PreferenceFragment implements
|
||||
OnPreferenceChangeListener {
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
private static final String TAG = "XiaomiPeripheralManagerPenUtils";
|
||||
private static final String STYLUS_KEY = "stylus_switch_key";
|
||||
public static final String SHARED_STYLUS = "shared_stylus_force";
|
||||
|
||||
private SwitchPreference mStylusPreference;
|
||||
private SharedPreferences mStylusPreference;
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
addPreferencesFromResource(R.xml.stylus_settings);
|
||||
|
||||
SharedPreferences preferences = getActivity().getSharedPreferences(SHARED_STYLUS,
|
||||
Context.MODE_PRIVATE);
|
||||
mStylusPreference = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
SwitchPreference switchPreference = (SwitchPreference) findPreference(STYLUS_KEY);
|
||||
|
||||
mStylusPreference = (SwitchPreference) findPreference(STYLUS_KEY);
|
||||
mStylusPreference.setChecked(preferences.getInt(SHARED_STYLUS, 0) == 1);
|
||||
mStylusPreference.setEnabled(true);
|
||||
mStylusPreference.setOnPreferenceChangeListener(this);
|
||||
switchPreference.setChecked(mStylusPreference.getBoolean(STYLUS_KEY, false));
|
||||
switchPreference.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (STYLUS_KEY.equals(preference.getKey())) {
|
||||
forceStylus((Boolean) newValue ? 1 : 0);
|
||||
}
|
||||
return true;
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
mStylusPreference.registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
private void forceStylus(int status) {
|
||||
SharedPreferences preferences = getActivity().getSharedPreferences(SHARED_STYLUS,
|
||||
Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = preferences.edit();
|
||||
editor.putInt(SHARED_STYLUS, status);
|
||||
editor.commit();
|
||||
if (status == 1)
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
mStylusPreference.unregisterOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreference, String key) {
|
||||
if (STYLUS_KEY.equals(key)) {
|
||||
forceStylus(mStylusPreference.getBoolean(key, false));
|
||||
}
|
||||
}
|
||||
|
||||
private void forceStylus(boolean status) {
|
||||
mStylusPreference.edit().putBoolean(STYLUS_KEY, status).apply();
|
||||
|
||||
if (status)
|
||||
PenUtils.enablePenMode();
|
||||
else
|
||||
PenUtils.disablePenMode();
|
||||
|
||||
Reference in New Issue
Block a user