Fix the displayed status after download

Bug: 9166225
Change-Id: I7490593d88a5854b9e675b9ead89d2ea9b49315c
main
Jean Chalard 2013-05-29 18:02:25 +09:00
parent f61999caba
commit 26f489493e
2 changed files with 9 additions and 16 deletions

View File

@ -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()) {

View File

@ -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.