Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 259dec18 authored by Vania Januar's avatar Vania Januar
Browse files

Toggle for disabling stylus buttons.

This change enables users to disable stylus button
pressed from the Stylus Connected Device details Settings page.

Bug: b/251199452
Test: StylusDevicesControllerTest
Change-Id: I807ef8d5a56c2177037dcb527630d8bfb8f86f7c
parent 2df165a5
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.provider.Settings.Secure;
import android.util.Log;
import android.view.InputDevice;

@@ -125,6 +126,8 @@ public class StylusDevicesController extends AbstractPreferenceController implem
        pref.setTitle(mContext.getString(R.string.stylus_ignore_button));
        pref.setIcon(R.drawable.ic_block);
        pref.setOnPreferenceClickListener(this);
        pref.setChecked(Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.STYLUS_BUTTONS_DISABLED, 0) == 1);
        return pref;
    }

@@ -147,7 +150,9 @@ public class StylusDevicesController extends AbstractPreferenceController implem
                        ((SwitchPreference) preference).isChecked() ? 1 : 0);
                break;
            case KEY_IGNORE_BUTTON:
                // TODO(b/251199452): to turn off stylus button presses
                Settings.Secure.putInt(mContext.getContentResolver(),
                        Secure.STYLUS_BUTTONS_DISABLED,
                        ((SwitchPreference) preference).isChecked() ? 1 : 0);
                break;
        }
        return true;
+37 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings.Secure;
import android.view.InputDevice;
import android.view.inputmethod.InputMethodManager;

@@ -227,6 +228,42 @@ public class StylusDevicesControllerTest {
                Settings.Global.STYLUS_HANDWRITING_ENABLED, -1)).isEqualTo(1);
    }

    @Test
    public void buttonsPreference_checkedWhenFlagTrue() {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.STYLUS_BUTTONS_DISABLED, 1);

        showScreen(mController);
        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);

        assertThat(buttonsPref.isChecked()).isEqualTo(true);
    }

    @Test
    public void buttonsPreference_uncheckedWhenFlagFalse() {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.STYLUS_BUTTONS_DISABLED, 0);

        showScreen(mController);
        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);

        assertThat(buttonsPref.isChecked()).isEqualTo(false);
    }

    @Test
    public void buttonsPreference_updatesFlagOnClick() {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.STYLUS_BUTTONS_DISABLED, 1);
        showScreen(mController);
        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);

        buttonsPref.performClick();

        assertThat(buttonsPref.isChecked()).isEqualTo(false);
        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                Secure.STYLUS_BUTTONS_DISABLED, -1)).isEqualTo(0);
    }

    private void showScreen(StylusDevicesController controller) {
        controller.displayPreference(mScreen);
    }