diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 873c426..5bd2286 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -1135,6 +1135,7 @@ Fingerprint On Display + Configure FOD View Screen off FOD Allows unlocking the device without having to wake up the screen first diff --git a/res/xml/cherish_settings_lockscreen.xml b/res/xml/cherish_settings_lockscreen.xml index b8e2ec4..70fa05d 100644 --- a/res/xml/cherish_settings_lockscreen.xml +++ b/res/xml/cherish_settings_lockscreen.xml @@ -270,40 +270,13 @@ android:summary="@string/keyguard_show_battery_summary" android:fragment="com.cherish.settings.fragments.KeygaurdBatteryBar" /> - - - - - - - - - - - + + diff --git a/res/xml/fod_settings.xml b/res/xml/fod_settings.xml new file mode 100644 index 0000000..985778b --- /dev/null +++ b/res/xml/fod_settings.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + diff --git a/src/com/cherish/settings/fragments/FODSettings.java b/src/com/cherish/settings/fragments/FODSettings.java new file mode 100644 index 0000000..0a88f0e --- /dev/null +++ b/src/com/cherish/settings/fragments/FODSettings.java @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2021 The CherishOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cherish.settings.fragments.lockscreen; + +import com.android.internal.logging.nano.MetricsProto; + +import android.os.Bundle; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.os.UserHandle; +import android.provider.SearchIndexableResource; +import android.content.ContentResolver; +import android.content.res.Resources; +import android.provider.Settings; +import com.android.settings.R; + +import android.os.SystemProperties; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; +import androidx.preference.PreferenceGroup; +import androidx.preference.PreferenceCategory; +import androidx.preference.Preference.OnPreferenceChangeListener; +import androidx.preference.SwitchPreference; + +import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.search.Indexable; +import com.android.settingslib.search.SearchIndexable; + +import java.util.Locale; +import android.text.TextUtils; +import android.view.View; + +import com.android.settings.SettingsPreferenceFragment; +import com.cherish.settings.preferences.SystemSettingSwitchPreference; +import com.android.settings.Utils; +import android.util.Log; +import android.hardware.fingerprint.FingerprintManager; + +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.Collections; + + +@SearchIndexable +public class FODSettings extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener, Indexable { + + private ContentResolver mResolver; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.fod_settings); + PreferenceScreen prefScreen = getPreferenceScreen(); + + boolean enableScreenOffFOD = getContext().getResources(). + getBoolean(com.android.internal.R.bool.config_needCustomFODView); + Preference ScreenOffFODPref = (Preference) findPreference("fod_gesture"); + + if (!enableScreenOffFOD){ + prefScreen.removePreference(ScreenOffFODPref); + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + return false; + } + + @Override + public int getMetricsCategory() { + return MetricsProto.MetricsEvent.CHERISH_SETTINGS; + } + + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider() { + @Override + public List getXmlResourcesToIndex(Context context, + boolean enabled) { + final ArrayList result = new ArrayList<>(); + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = R.xml.fod_settings; + result.add(sir); + return result; + } + + @Override + public List getNonIndexableKeys(Context context) { + final List keys = super.getNonIndexableKeys(context); + return keys; + } + }; +} diff --git a/src/com/cherish/settings/fragments/LockScreenSettings.java b/src/com/cherish/settings/fragments/LockScreenSettings.java index 787713c..c4a40e4 100644 --- a/src/com/cherish/settings/fragments/LockScreenSettings.java +++ b/src/com/cherish/settings/fragments/LockScreenSettings.java @@ -54,7 +54,9 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements private static final String DATE_FONT_SIZE = "lockdate_font_size"; private static final String LOCKOWNER_FONT_SIZE = "lockowner_font_size"; private static final String AOD_SCHEDULE_KEY = "always_on_display_schedule"; + private static final String LOCKSCREEN_FOD_CATEGORY = "lockscreen_fod_category"; private ContentResolver mResolver; + private Preference FODSettings; static final int MODE_DISABLED = 0; static final int MODE_NIGHT = 1; @@ -77,20 +79,9 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements final PreferenceScreen prefScreen = getPreferenceScreen(); Resources resources = getResources(); - PreferenceCategory overallPreferences = (PreferenceCategory) findPreference("fod_category"); - mResolver = getActivity().getContentResolver(); - - boolean enableScreenOffFOD = getContext().getResources(). - getBoolean(com.android.internal.R.bool.config_supportsInDisplayFingerprint); - Preference ScreenOffFODPref = (Preference) findPreference("fod_gesture"); - - if (!enableScreenOffFOD){ - overallPreferences.removePreference(ScreenOffFODPref); - } - - if (!getResources().getBoolean(com.android.internal.R.bool.config_supportsInDisplayFingerprint)) { - prefScreen.removePreference(findPreference("fod_category")); - } + FODSettings = (Preference) findPreference(LOCKSCREEN_FOD_CATEGORY); + if (!getResources().getBoolean(com.android.internal.R.bool.config_needCustomFODView)) { + prefScreen.removePreference(FODSettings); // Lock Clock Size mClockFontSize = (CustomSeekBarPreference) findPreference(CLOCK_FONT_SIZE);