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

Commit 2919222d 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
(cherry picked from commit 6c1e6fec)
parent 0c3d74bc
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;
            }
        }