Add a progress bar to display upload progress, instead of just text

Change-Id: Id858ce3e508031435f7ceda3b2ffe2372b0c5510
GitHub: https://github.com/wikimedia/apps-android-commons/pull/11
This commit is contained in:
YuviPanda 2013-06-17 15:13:57 +00:00 committed by Gerrit Code Review
parent 0d70ec6f80
commit b0bc8d0532
4 changed files with 23 additions and 8 deletions

View file

@ -30,6 +30,15 @@
android:orientation="vertical" android:orientation="vertical"
android:padding="8dp" android:padding="8dp"
> >
<ProgressBar
android:id="@+id/contributionProgress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ProgressBar"
android:indeterminateOnly="false"
android:max="100"
android:visibility="gone"
/>
<TextView <TextView
android:id="@+id/contributionState" android:id="@+id/contributionState"

View file

@ -1,5 +1,5 @@
<resources> <resources>
<style name="NotificationProgress" parent="android:Widget.Holo.ProgressBar.Horizontal" /> <style name="ProgressBar" parent="android:Widget.Holo.ProgressBar.Horizontal" />
</resources> </resources>

View file

@ -1,7 +1,5 @@
<resources> <resources>
<style name="NotificationText" parent="android:TextAppearance.StatusBar.EventContent" /> <style name="ProgressBar" parent="android:Widget.ProgressBar.Horizontal" />
<style name="NotificationTitle" parent="android:TextAppearance.StatusBar.EventContent.Title" />
</resources> </resources>

View file

@ -52,6 +52,7 @@ public class ContributionsListFragment extends SherlockFragment {
final TextView titleView; final TextView titleView;
final TextView stateView; final TextView stateView;
final TextView seqNumView; final TextView seqNumView;
final ProgressBar progressView;
String url; String url;
@ -60,6 +61,7 @@ public class ContributionsListFragment extends SherlockFragment {
titleView = (TextView)parent.findViewById(R.id.contributionTitle); titleView = (TextView)parent.findViewById(R.id.contributionTitle);
stateView = (TextView)parent.findViewById(R.id.contributionState); stateView = (TextView)parent.findViewById(R.id.contributionState);
seqNumView = (TextView)parent.findViewById(R.id.contributionSequenceNumber); seqNumView = (TextView)parent.findViewById(R.id.contributionSequenceNumber);
progressView = (ProgressBar)parent.findViewById(R.id.contributionProgress);
} }
} }
@ -122,23 +124,29 @@ public class ContributionsListFragment extends SherlockFragment {
switch(contribution.getState()) { switch(contribution.getState()) {
case Contribution.STATE_COMPLETED: case Contribution.STATE_COMPLETED:
views.stateView.setVisibility(View.GONE); views.stateView.setVisibility(View.GONE);
views.progressView.setVisibility(View.GONE);
views.stateView.setText(""); views.stateView.setText("");
break; break;
case Contribution.STATE_QUEUED: case Contribution.STATE_QUEUED:
views.stateView.setVisibility(View.VISIBLE); views.stateView.setVisibility(View.VISIBLE);
views.progressView.setVisibility(View.GONE);
views.stateView.setText(R.string.contribution_state_queued); views.stateView.setText(R.string.contribution_state_queued);
break; break;
case Contribution.STATE_IN_PROGRESS: case Contribution.STATE_IN_PROGRESS:
views.stateView.setVisibility(View.VISIBLE); views.stateView.setVisibility(View.GONE);
views.stateView.setText(R.string.contribution_state_starting); views.progressView.setVisibility(View.VISIBLE);
long total = contribution.getDataLength(); long total = contribution.getDataLength();
long transferred = contribution.getTransferred(); long transferred = contribution.getTransferred();
String stateString = String.format(getString(R.string.contribution_state_in_progress), (int)(((double)transferred / (double)total) * 100)); if(transferred == 0 || transferred >= total) {
views.stateView.setText(stateString); views.progressView.setIndeterminate(true);
} else {
views.progressView.setProgress((int)(((double)transferred / (double)total) * 100));
}
break; break;
case Contribution.STATE_FAILED: case Contribution.STATE_FAILED:
views.stateView.setVisibility(View.VISIBLE); views.stateView.setVisibility(View.VISIBLE);
views.stateView.setText(R.string.contribution_state_failed); views.stateView.setText(R.string.contribution_state_failed);
views.progressView.setVisibility(View.GONE);
break; break;
} }