From cfe4d191e45e831478026971fbdbecde168f49db Mon Sep 17 00:00:00 2001 From: jhonboy121 Date: Thu, 16 May 2024 02:02:35 +0000 Subject: [PATCH] Evolver: Allow toggling screen off UDFPS Co-authored-by: Pranav Vashi Signed-off-by: AnierinB --- res/values/evolution_strings.xml | 2 ++ res/xml/evolution_settings_lock_screen.xml | 7 ++++++ .../fragments/lockscreen/LockScreen.java | 24 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml index daaa752..ba08e0d 100644 --- a/res/values/evolution_strings.xml +++ b/res/values/evolution_strings.xml @@ -90,6 +90,8 @@ Fingerprint Ripple animation Show ripple animation when unlocked with fingerprint + Screen-Off UDFPS + Keep UDFPS enabled while the screen is off Gestures diff --git a/res/xml/evolution_settings_lock_screen.xml b/res/xml/evolution_settings_lock_screen.xml index 9806537..dd3172b 100644 --- a/res/xml/evolution_settings_lock_screen.xml +++ b/res/xml/evolution_settings_lock_screen.xml @@ -31,5 +31,12 @@ android:title="@string/lock_screen_fingerprint_ripple_title" android:summary="@string/lock_screen_fingerprint_ripple_summary" android:defaultValue="true" /> + + + diff --git a/src/org/evolution/settings/fragments/lockscreen/LockScreen.java b/src/org/evolution/settings/fragments/lockscreen/LockScreen.java index f8cf5a1..999e385 100644 --- a/src/org/evolution/settings/fragments/lockscreen/LockScreen.java +++ b/src/org/evolution/settings/fragments/lockscreen/LockScreen.java @@ -10,6 +10,7 @@ import android.content.Context; import android.content.res.Resources; import android.hardware.fingerprint.FingerprintManager; import android.os.Bundle; +import android.text.TextUtils; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceChangeListener; @@ -24,6 +25,8 @@ import com.android.settingslib.search.SearchIndexable; import java.util.List; +import org.evolution.settings.preferences.SecureSettingSwitchPreference; + @SearchIndexable public class LockScreen extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { @@ -32,8 +35,10 @@ public class LockScreen extends SettingsPreferenceFragment implements private static final String KEY_FINGERPRINT_CATEGORY = "lock_screen_fingerprint_category"; private static final String KEY_RIPPLE_EFFECT = "enable_ripple_effect"; + private static final String KEY_SCREEN_OFF_UDFPS = "screen_off_udfps_enabled"; private PreferenceCategory mFingerprintCategory; + private SecureSettingSwitchPreference mScreenOffUdfps; @Override public void onCreate(Bundle savedInstanceState) { @@ -46,12 +51,22 @@ public class LockScreen extends SettingsPreferenceFragment implements final Resources resources = context.getResources(); mFingerprintCategory = (PreferenceCategory) findPreference(KEY_FINGERPRINT_CATEGORY); + mScreenOffUdfps = (SecureSettingSwitchPreference) findPreference(KEY_SCREEN_OFF_UDFPS); FingerprintManager fingerprintManager = (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE); if (fingerprintManager == null || !fingerprintManager.isHardwareDetected()) { prefScreen.removePreference(mFingerprintCategory); + } else { + boolean screenOffUdfpsAvailable = resources.getBoolean( + com.android.internal.R.bool.config_supportScreenOffUdfps) || + !TextUtils.isEmpty(resources.getString( + com.android.internal.R.string.config_dozeUdfpsLongPressSensorType)); + + if (!screenOffUdfpsAvailable) { + mFingerprintCategory.removePreference(mScreenOffUdfps); + } } } @@ -80,6 +95,15 @@ public class LockScreen extends SettingsPreferenceFragment implements if (fingerprintManager == null || !fingerprintManager.isHardwareDetected()) { keys.add(KEY_RIPPLE_EFFECT); + keys.add(KEY_SCREEN_OFF_UDFPS); + } else { + boolean screenOffUdfpsAvailable = resources.getBoolean( + com.android.internal.R.bool.config_supportScreenOffUdfps) || + !TextUtils.isEmpty(resources.getString( + com.android.internal.R.string.config_dozeUdfpsLongPressSensorType)); + if (!screenOffUdfpsAvailable) { + keys.add(KEY_SCREEN_OFF_UDFPS); + } } return keys; }