am ab0c66b9: [PB10] Add a progress bar to display file download progress

* commit 'ab0c66b9d1f732a0dc372abd6d113d2cac33b8ac':
  [PB10] Add a progress bar to display file download progress
main
Jean Chalard 2013-04-26 04:42:26 -07:00 committed by Android Git Automerger
commit eb34f71088
3 changed files with 35 additions and 15 deletions

View File

@ -52,23 +52,27 @@
android:ellipsize="marquee" android:ellipsize="marquee"
android:fadingEdge="horizontal" /> android:fadingEdge="horizontal" />
<TextView <FrameLayout
android:id="@+android:id/summary"
android:layout_marginLeft="5dip"
android:layout_marginStart="5dip"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" android:layout_marginStart="5dip">
android:textColor="?android:attr/textColorSecondary"
android:maxLines="1" />
<!-- <ProgressBar --> <TextView
<!-- android:id="@+id/dictionary_line_progress_bar" --> android:id="@+android:id/summary"
<!-- style="@android:style/Widget.Holo.ProgressBar.Horizontal" --> android:layout_width="match_parent"
<!-- android:layout_width="match_parent" --> android:layout_height="wrap_content"
<!-- android:layout_height="match_parent" --> android:textAppearance="?android:attr/textAppearanceSmall"
<!-- android:gravity="center" /> --> android:textColor="?android:attr/textColorSecondary"
android:maxLines="1" />
<ProgressBar
android:id="@+id/dictionary_line_progress_bar"
style="@android:style/Widget.Holo.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
</FrameLayout>
</LinearLayout> </LinearLayout>
<com.android.inputmethod.dictionarypack.ButtonSwitcher <com.android.inputmethod.dictionarypack.ButtonSwitcher

View File

@ -285,6 +285,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment
final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN); final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
final int descriptionIndex = cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN); final int descriptionIndex = cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN);
final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN); final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
final int filesizeIndex = cursor.getColumnIndex(MetadataDbHelper.FILESIZE_COLUMN);
do { do {
final String wordlistId = cursor.getString(idIndex); final String wordlistId = cursor.getString(idIndex);
final int version = cursor.getInt(versionIndex); final int version = cursor.getInt(versionIndex);
@ -294,6 +295,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment
final int status = cursor.getInt(statusIndex); final int status = cursor.getInt(statusIndex);
final int matchLevel = LocaleUtils.getMatchLevel(systemLocaleString, localeString); final int matchLevel = LocaleUtils.getMatchLevel(systemLocaleString, localeString);
final String matchLevelString = LocaleUtils.getMatchLevelSortedString(matchLevel); final String matchLevelString = LocaleUtils.getMatchLevelSortedString(matchLevel);
final int filesize = cursor.getInt(filesizeIndex);
// The key is sorted in lexicographic order, according to the match level, then // The key is sorted in lexicographic order, according to the match level, then
// the description. // the description.
final String key = matchLevelString + "." + description + "." + wordlistId; final String key = matchLevelString + "." + description + "." + wordlistId;
@ -301,7 +303,7 @@ public final class DictionarySettingsFragment extends PreferenceFragment
if (null == existingPref || hasPriority(status, existingPref.mStatus)) { if (null == existingPref || hasPriority(status, existingPref.mStatus)) {
final WordListPreference pref = new WordListPreference(activity, final WordListPreference pref = new WordListPreference(activity,
mDictionaryListInterfaceState, mClientId, wordlistId, version, locale, mDictionaryListInterfaceState, mClientId, wordlistId, version, locale,
description, status); description, status, filesize);
prefList.put(key, pref); prefList.put(key, pref);
} }
} while (cursor.moveToNext()); } while (cursor.moveToNext());

View File

@ -24,6 +24,8 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewParent; import android.view.ViewParent;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
@ -59,6 +61,8 @@ public final class WordListPreference extends Preference {
public final int mVersion; public final int mVersion;
// The status // The status
public int mStatus; public int mStatus;
// The size of the dictionary file
private final int mFilesize;
private final DictionaryListInterfaceState mInterfaceState; private final DictionaryListInterfaceState mInterfaceState;
private final OnWordListPreferenceClick mPreferenceClickHandler = private final OnWordListPreferenceClick mPreferenceClickHandler =
@ -69,13 +73,14 @@ public final class WordListPreference extends Preference {
public WordListPreference(final Context context, public WordListPreference(final Context context,
final DictionaryListInterfaceState dictionaryListInterfaceState, final String clientId, final DictionaryListInterfaceState dictionaryListInterfaceState, final String clientId,
final String wordlistId, final int version, final Locale locale, final String wordlistId, final int version, final Locale locale,
final String description, final int status) { final String description, final int status, final int filesize) {
super(context, null); super(context, null);
mContext = context; mContext = context;
mInterfaceState = dictionaryListInterfaceState; mInterfaceState = dictionaryListInterfaceState;
mClientId = clientId; mClientId = clientId;
mVersion = version; mVersion = version;
mWordlistId = wordlistId; mWordlistId = wordlistId;
mFilesize = filesize;
setLayoutResource(R.layout.dictionary_line); setLayoutResource(R.layout.dictionary_line);
@ -189,6 +194,15 @@ public final class WordListPreference extends Preference {
protected void onBindView(final View view) { protected void onBindView(final View view) {
super.onBindView(view); super.onBindView(view);
((ViewGroup)view).setLayoutTransition(null); ((ViewGroup)view).setLayoutTransition(null);
final ProgressBar progressBar =
(ProgressBar)view.findViewById(R.id.dictionary_line_progress_bar);
final TextView status = (TextView)view.findViewById(android.R.id.summary);
progressBar.setMax(mFilesize);
final boolean showProgressBar = (MetadataDbHelper.STATUS_DOWNLOADING == mStatus);
status.setVisibility(showProgressBar ? View.INVISIBLE : View.VISIBLE);
progressBar.setVisibility(showProgressBar ? View.VISIBLE : View.INVISIBLE);
final ButtonSwitcher buttonSwitcher = final ButtonSwitcher buttonSwitcher =
(ButtonSwitcher)view.findViewById(R.id.wordlist_button_switcher); (ButtonSwitcher)view.findViewById(R.id.wordlist_button_switcher);
if (mInterfaceState.isOpen(mWordlistId)) { if (mInterfaceState.isOpen(mWordlistId)) {