Fix the displayed status after download
Bug: 9166225 Change-Id: I7490593d88a5854b9e675b9ead89d2ea9b49315cmain
parent
f61999caba
commit
26f489493e
|
@ -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()) {
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue