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

Commit 26f48949 authored by Jean Chalard's avatar Jean Chalard
Browse files

Fix the displayed status after download

Bug: 9166225
Change-Id: I7490593d88a5854b9e675b9ead89d2ea9b49315c
parent f61999ca
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -304,7 +304,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment
                // the description.
                final String key = matchLevelString + "." + description + "." + wordlistId;
                final WordListPreference existingPref = prefMap.get(key);
                if (null == existingPref || hasPriority(status, existingPref.mStatus)) {
                if (null == existingPref || existingPref.hasPriorityOver(status)) {
                    final WordListPreference oldPreference = mCurrentPreferenceMap.get(key);
                    final WordListPreference pref;
                    if (null != oldPreference
@@ -315,7 +315,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment
                        // need to be the same, others have been tested through the key of the
                        // map. Also, status may differ so we don't want to use #equals() here.
                        pref = oldPreference;
                        pref.mStatus = status;
                        pref.setStatus(status);
                    } else {
                        // Otherwise, discard it and create a new one instead.
                        pref = new WordListPreference(activity, mDictionaryListInterfaceState,
@@ -331,18 +331,6 @@ public final class DictionarySettingsFragment extends PreferenceFragment
        }
    }

    /**
     * Finds out if a given status has priority over another for display order.
     *
     * @param newStatus
     * @param oldStatus
     * @return whether newStatus has priority over oldStatus.
     */
    private static boolean hasPriority(final int newStatus, final int oldStatus) {
        // Both of these should be one of MetadataDbHelper.STATUS_*
        return newStatus > oldStatus;
    }

    @Override
    public boolean onOptionsItemSelected(final MenuItem item) {
        switch (item.getItemId()) {
+7 −2
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ public final class WordListPreference extends Preference {
    public final Locale mLocale;
    public final String mDescription;
    // The status
    public int mStatus;
    private int mStatus;
    // The size of the dictionary file
    private final int mFilesize;

@@ -92,7 +92,7 @@ public final class WordListPreference extends Preference {
        setKey(wordlistId);
    }

    private void setStatus(final int status) {
    public void setStatus(final int status) {
        if (status == mStatus) return;
        mStatus = status;
        setSummary(getSummary(status));
@@ -106,6 +106,11 @@ public final class WordListPreference extends Preference {
        return mInterfaceState.addToCacheAndReturnView(newView);
    }

    public boolean hasPriorityOver(final int otherPrefStatus) {
        // Both of these should be one of MetadataDbHelper.STATUS_*
        return mStatus > otherPrefStatus;
    }

    private String getSummary(final int status) {
        switch (status) {
            // If we are deleting the word list, for the user it's like it's already deleted.