[PB10] Add a progress bar to display file download progress

The progress bar is showing but doesn't show progress yet.

Bug: 7600384
Change-Id: I80debd3f4368e82e4184a6c638bdcc8e48ed2305
main
Jean Chalard 2013-04-24 20:31:39 +09:00
parent ae577ac1db
commit ab0c66b9d1
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)) {