diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index 5011efc..4874afa 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -1132,8 +1132,11 @@
Qs clock
Display an oos like clock on qs
-
- Fingerprint On Display
+
+ FOD settings
+
+
+ FOD animation
Configure FOD View
diff --git a/res/xml/cherish_settings_lockscreen.xml b/res/xml/cherish_settings_lockscreen.xml
index 0cfc5cd..02b5211 100644
--- a/res/xml/cherish_settings_lockscreen.xml
+++ b/res/xml/cherish_settings_lockscreen.xml
@@ -269,13 +269,61 @@
android:entryValues="@array/lockscreen_albumart_filter_values"
android:dependency="lockscreen_media_metadata"
android:defaultValue="0" />
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/xml/fod_settings.xml b/res/xml/fod_settings.xml
deleted file mode 100644
index 9758e9f..0000000
--- a/res/xml/fod_settings.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/com/cherish/settings/fragments/FODSettings.java b/src/com/cherish/settings/fragments/FODSettings.java
deleted file mode 100644
index dc784c1..0000000
--- a/src/com/cherish/settings/fragments/FODSettings.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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();
- }
-
- 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 6b5a277..8e75ba9 100644
--- a/src/com/cherish/settings/fragments/LockScreenSettings.java
+++ b/src/com/cherish/settings/fragments/LockScreenSettings.java
@@ -39,6 +39,7 @@ import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.internal.util.cherish.FodUtils;
+import com.android.internal.util.cherish.CherishUtils;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.cherish.settings.preferences.SecureSettingListPreference;
@@ -61,7 +62,8 @@ 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 static final String FOD_ANIMATION_CATEGORY = "fod_animations";
+ private static final String FOD_ICON_PICKER_CATEGORY = "fod_icon_picker";
private ContentResolver mResolver;
private Preference FODSettings;
@@ -75,6 +77,7 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
private CustomSeekBarPreference mDateFontSize;
private CustomSeekBarPreference mOwnerInfoFontSize;
private CustomSeekBarPreference mCustomTextClockFontSize;
+ private PreferenceCategory mFODIconPickerCategory;
private Preference mAODPref;
@Override
@@ -83,13 +86,20 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.cherish_settings_lockscreen);
ContentResolver resolver = getActivity().getContentResolver();
- final PreferenceScreen prefScreen = getPreferenceScreen();
+ PreferenceScreen prefScreen = getPreferenceScreen();
Resources resources = getResources();
- FODSettings = (Preference) findPreference(LOCKSCREEN_FOD_CATEGORY);
- if (FODSettings != null
- && !getResources().getBoolean(com.android.internal.R.bool.config_needCustomFODView)) {
- prefScreen.removePreference(FODSettings);
+ mFODIconPickerCategory = findPreference(FOD_ICON_PICKER_CATEGORY);
+ if (mFODIconPickerCategory != null && !FodUtils.hasFodSupport(getContext())) {
+ prefScreen.removePreference(mFODIconPickerCategory);
+ }
+
+ final PreferenceCategory fodCat = (PreferenceCategory) prefScreen
+ .findPreference(FOD_ANIMATION_CATEGORY);
+ final boolean isFodAnimationResources = CherishUtils.isPackageInstalled(getContext(),
+ getResources().getString(com.android.internal.R.string.config_fodAnimationPackage));
+ if (!isFodAnimationResources) {
+ prefScreen.removePreference(fodCat);
}
// Lock Clock Size
@@ -197,6 +207,9 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
@Override
public List getNonIndexableKeys(Context context) {
List keys = super.getNonIndexableKeys(context);
+ if (!FodUtils.hasFodSupport(context)) {
+ keys.add(FOD_ICON_PICKER_CATEGORY);
+ }
return keys;
}
};