From 923bc293d18a14cbcccb2f50b656befae8f6ec7e Mon Sep 17 00:00:00 2001 From: wellorbetter Date: Thu, 23 Apr 2026 18:23:12 +0800 Subject: [PATCH] feat(gestures): add user-selectable sleep method preference (#6664) Allow users to choose their preferred sleep method (Auto/Root/ Accessibility Service/Device Admin) for the double-tap-to-sleep gesture, instead of relying on the fixed priority fallback chain. This addresses the issue where OEM ROMs aggressively kill accessibility services, making the sleep gesture unreliable on non-rooted devices. Users can now explicitly select Device Admin as an alternative that won't be killed by battery optimization. Closes #6463 --- lawnchair/res/values/strings.xml | 6 ++++ .../gestures/handlers/SleepGestureHandler.kt | 17 +++++++++- .../lawnchair/gestures/handlers/SleepMode.kt | 34 +++++++++++++++++++ .../preferences2/PreferenceManager2.kt | 8 +++++ .../destinations/GesturePreferences.kt | 11 ++++++ 5 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 lawnchair/src/app/lawnchair/gestures/handlers/SleepMode.kt diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index cb8bf5f9f0..5c2e433d11 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -616,6 +616,12 @@ To %1$s, turn on the Lawnchair accessibility service. Tap \"Open settings\", select \"Lawnchair\" and turn on \"Use Lawnchair.\" Lawnchair uses Accessibility\'s `performGlobalAction` method to perform this action. This is a sensitive permission that allows monitoring other apps. However, Lawnchair is not configured for that functionality and receives no events. + Sleep mode + Automatic + Root + Accessibility service + Device admin +