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

Commit 107f19fe authored by Chun-Ku Lin's avatar Chun-Ku Lin
Browse files

Update search title for dark theme modes

- Remove the title in xml and set the title in PreferenceController
- Add updateRawDataToIndex to add different search title for modes
- Add updateNonIndexableKeys when the flag is off

Bug: 416328688
Test: manual search for standard/expanded and see the search result
Flag: android.view.accessibility.force_invert_color
Change-Id: I66b5422081715c6be7fc695fe1e78cfae06d9535
parent ed8f7b27
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5862,10 +5862,14 @@
    <string name="dark_theme_version_category">Mode</string>
    <!-- Title for the accessibility preference for applying the original dark theme. [CHAR LIMIT=35] -->
    <string name="accessibility_standard_dark_theme_title">Standard</string>
    <!-- Title in the search result for standard dark theme mode. -->
    <string name="accessibility_standard_dark_theme_title_in_search">Standard Dark Theme</string>
    <!-- Summary for the accessibility preference for applying the original dark theme. [CHAR LIMIT=100] -->
    <string name="accessibility_standard_dark_theme_summary">Applies Dark theme across your device and supported apps</string>
    <!-- Title for the accessibility preference for forcing all apps to use dark theme. [CHAR LIMIT=35] -->
    <string name="accessibility_expanded_dark_theme_title">Expanded</string>
    <!-- Title in the search result for expanded dark theme mode. -->
    <string name="accessibility_expanded_dark_theme_title_in_search">Expanded Dark Theme</string>
    <!-- Summary for the accessibility preference for forcing all apps to use dark theme. [CHAR LIMIT=100] -->
    <string name="accessibility_expanded_dark_theme_summary">Automatically applies Dark theme to more apps for improved accessibility</string>
    <!-- Title for the accessibility preference for disabling animations. [CHAR LIMIT=35] -->
+0 −2
Original line number Diff line number Diff line
@@ -41,13 +41,11 @@
        settings:controller="com.android.settings.accessibility.ForceInvertPreferenceController">
        <com.android.settingslib.widget.SelectorWithWidgetPreference
            android:key="standard_dark_theme"
            android:title="@string/accessibility_standard_dark_theme_title"
            android:summary="@string/accessibility_standard_dark_theme_summary"
            settings:searchable="true"/>

        <com.android.settingslib.widget.SelectorWithWidgetPreference
            android:key="expanded_dark_theme"
            android:title="@string/accessibility_expanded_dark_theme_title"
            android:summary="@string/accessibility_expanded_dark_theme_summary"
            settings:searchable="true"/>
    </PreferenceCategory>
+33 −0
Original line number Diff line number Diff line
@@ -31,8 +31,11 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.widget.SelectorWithWidgetPreference;

import java.util.List;

/** A toggle preference controller for force invert (force dark). */
public class ForceInvertPreferenceController extends BasePreferenceController
        implements SelectorWithWidgetPreference.OnClickListener {
@@ -86,6 +89,11 @@ public class ForceInvertPreferenceController extends BasePreferenceController
                preferenceCategory.findPreference(STANDARD_DARK_THEME_KEY);
        mExpandedDarkThemePreference =
                preferenceCategory.findPreference(EXPANDED_DARK_THEME_KEY);

        // We want to support search with different title on the preference. To prevent search
        // indexes on the title in xml, we set the title in PreferenceController.
        mStandardDarkThemePreference.setTitle(R.string.accessibility_standard_dark_theme_title);
        mExpandedDarkThemePreference.setTitle(R.string.accessibility_expanded_dark_theme_title);
        mStandardDarkThemePreference.setOnClickListener(this);
        mExpandedDarkThemePreference.setOnClickListener(this);
        boolean isForceInvertEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
@@ -100,4 +108,29 @@ public class ForceInvertPreferenceController extends BasePreferenceController
        mStandardDarkThemePreference.setChecked(!isForceInvertEnabled);
        mExpandedDarkThemePreference.setChecked(isForceInvertEnabled);
    }

    @Override
    public void updateRawDataToIndex(@NonNull List<SearchIndexableRaw> rawData) {
        super.updateRawDataToIndex(rawData);
        SearchIndexableRaw standard = new SearchIndexableRaw(mContext);
        standard.key = STANDARD_DARK_THEME_KEY;
        standard.title = mContext.getString(
                R.string.accessibility_standard_dark_theme_title_in_search);
        rawData.add(standard);

        SearchIndexableRaw expanded = new SearchIndexableRaw(mContext);
        expanded.key = EXPANDED_DARK_THEME_KEY;
        expanded.title = mContext.getString(
                R.string.accessibility_expanded_dark_theme_title_in_search);
        rawData.add(expanded);
    }

    @Override
    public void updateNonIndexableKeys(@NonNull List<String> keys) {
        super.updateNonIndexableKeys(keys);
        if (!Flags.forceInvertColor()) {
            keys.add(STANDARD_DARK_THEME_KEY);
            keys.add(EXPANDED_DARK_THEME_KEY);
        }
    }
}