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. // the description.
final String key = matchLevelString + "." + description + "." + wordlistId; final String key = matchLevelString + "." + description + "." + wordlistId;
final WordListPreference existingPref = prefMap.get(key); 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 oldPreference = mCurrentPreferenceMap.get(key);
final WordListPreference pref; final WordListPreference pref;
if (null != oldPreference 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 // 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. // map. Also, status may differ so we don't want to use #equals() here.
pref = oldPreference; pref = oldPreference;
pref.mStatus = status; pref.setStatus(status);
} else { } else {
// Otherwise, discard it and create a new one instead. // Otherwise, discard it and create a new one instead.
pref = new WordListPreference(activity, mDictionaryListInterfaceState, 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 @Override
public boolean onOptionsItemSelected(final MenuItem item) { public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {

View File

@ -61,7 +61,7 @@ public final class WordListPreference extends Preference {
public final Locale mLocale; public final Locale mLocale;
public final String mDescription; public final String mDescription;
// The status // The status
public int mStatus; private int mStatus;
// The size of the dictionary file // The size of the dictionary file
private final int mFilesize; private final int mFilesize;
@ -92,7 +92,7 @@ public final class WordListPreference extends Preference {
setKey(wordlistId); setKey(wordlistId);
} }
private void setStatus(final int status) { public void setStatus(final int status) {
if (status == mStatus) return; if (status == mStatus) return;
mStatus = status; mStatus = status;
setSummary(getSummary(status)); setSummary(getSummary(status));
@ -106,6 +106,11 @@ public final class WordListPreference extends Preference {
return mInterfaceState.addToCacheAndReturnView(newView); 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) { private String getSummary(final int status) {
switch (status) { switch (status) {
// If we are deleting the word list, for the user it's like it's already deleted. // If we are deleting the word list, for the user it's like it's already deleted.