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

Commit 6c1e6fec authored by Chuck Liao's avatar Chuck Liao
Browse files

Fix can't find default theme bundle for some specific languages.

It's because the translation of R.string.default_theme_title in some language is different with the title of the default theme bundle.
Change the logic of finding default theme bundle to get rid of string comparison.

Bug: 176087825
Change-Id: I471a711ad51515c8b4586b4e8a9b1e8e88b5b7d4
parent 98397d9f
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -287,9 +287,10 @@ public class ThemeFragment extends AppbarFragment {
                mSelectedTheme = previouslySelectedTheme != null
                        ? previouslySelectedTheme
                        : activeTheme;
                // 3. Select the default theme if there is no matching custom enabled theme.
                // 3. Select the first system theme(default theme currently)
                //    if there is no matching custom enabled theme.
                if (mSelectedTheme == null) {
                    mSelectedTheme = findDefaultThemeBundle(options);
                    mSelectedTheme = findFirstSystemThemeBundle(options);
                }

                mOptionsController.setSelectedOption(mSelectedTheme);
@@ -324,8 +325,7 @@ public class ThemeFragment extends AppbarFragment {
                }
            }
            if (mSelectedTheme == null) {
                // Select the default theme if there is no matching custom enabled theme
                mSelectedTheme = findDefaultThemeBundle(options);
                mSelectedTheme = findFirstSystemThemeBundle(options);
            }
            mOptionsController.setSelectedOption(mSelectedTheme);
            // Set selected option above will show BottomActionBar,
@@ -334,11 +334,9 @@ public class ThemeFragment extends AppbarFragment {
        }, true);
    }

    private ThemeBundle findDefaultThemeBundle(List<ThemeBundle> options) {
        String defaultThemeTitle =
                getActivity().getResources().getString(R.string.default_theme_title);
    private ThemeBundle findFirstSystemThemeBundle(List<ThemeBundle> options) {
        for (ThemeBundle bundle : options) {
            if (bundle.getTitle().equals(defaultThemeTitle)) {
            if (!(bundle instanceof CustomTheme)) {
                return bundle;
            }
        }