Fix which menu items get displayed at which state

Only show actions that are applicable to each state.
Also clarify that 'abort' actually only 'deleted' failed
uploads. We have no way to abort an in-progress upload yet

Change-Id: I2c18273e603e3ca6b1e03f83b7404e96b6d8bad0
This commit is contained in:
YuviPanda 2013-10-16 02:13:54 +05:30
parent b7c1f44d1e
commit 1bc0b781d1
4 changed files with 39 additions and 15 deletions

View file

@ -19,14 +19,14 @@
<item android:id="@+id/menu_retry_current_image"
android:showAsAction="ifRoom|withText"
android:icon="@android:drawable/ic_menu_revert"
android:title="@string/menu_retry"
android:title="@string/menu_retry_upload"
android:visible="false"
android:enabled="false"
/>
<item android:id="@+id/menu_abort_current_image"
<item android:id="@+id/menu_cancel_current_image"
android:showAsAction="never"
android:icon="@android:drawable/ic_menu_delete"
android:title="@string/menu_abort"
android:title="@string/menu_cancel_upload"
android:visible="false"
android:enabled="false"
/>

View file

@ -73,9 +73,9 @@
<string name="menu_feedback">Menu item text that prompts user to send feedback to WMF via email</string>
<string name="waiting_first_sync">Message shown on contributions list during first sync.</string>
<string name="no_uploads_yet">Message shown on contribution list during non-first sync if no uploads present.</string>
<string name="menu_retry">Menu item text prompting user to retry a failed upload.
<string name="menu_retry_upload">Menu item text prompting user to retry a failed upload.
{{Identical|Retry}}</string>
<string name="menu_abort">Menu item text prompting user to abort and delete a failed upload.</string>
<string name="menu_cancel_upload">Menu item text prompting user to cancel and delete a failed upload.</string>
<string name="share_license_summary">Text label telling user the license of the current upload in progress. %1$s refers to appropriate display text for the chosen CC license</string>
<string name="menu_download">Menu item text prompting user to download a selected photo or media file locally.
{{Identical|Download}}</string>

View file

@ -85,8 +85,8 @@
<string name="waiting_first_sync">Waiting for first sync...</string>
<string name="no_uploads_yet">You have not yet uploaded any photos.</string>
<string name="menu_retry">Retry</string>
<string name="menu_abort">Abort</string>
<string name="menu_retry_upload">Retry</string>
<string name="menu_cancel_upload">Cancel</string>
<string name="share_license_summary">This image will be licensed under %1$s</string>

View file

@ -142,7 +142,7 @@ public class MediaDetailPagerFragment extends SherlockFragment implements ViewPa
((ContributionsActivity)getActivity()).retryUpload(pager.getCurrentItem());
getSherlockActivity().getSupportFragmentManager().popBackStack();
return true;
case R.id.menu_abort_current_image:
case R.id.menu_cancel_current_image:
// todo: delete image
((ContributionsActivity)getActivity()).deleteUpload(pager.getCurrentItem());
getSherlockActivity().getSupportFragmentManager().popBackStack();
@ -228,13 +228,37 @@ public class MediaDetailPagerFragment extends SherlockFragment implements ViewPa
if(pager != null) {
MediaDetailProvider provider = (MediaDetailProvider)getSherlockActivity();
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
if(m != null && !m.getFilename().startsWith("File:")) {
// Crude way of checking if the file has been successfully saved!
if(m != null) {
// Enable default set of actions, then re-enable different set of actions only if it is a failed contrib
if(m instanceof Contribution) {
Contribution c = (Contribution)m;
switch(c.getState()) {
case Contribution.STATE_FAILED:
menu.findItem(R.id.menu_retry_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_cancel_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_retry_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_abort_current_image).setEnabled(true).setVisible(true);
break;
case Contribution.STATE_IN_PROGRESS:
case Contribution.STATE_QUEUED:
menu.findItem(R.id.menu_retry_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_cancel_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false);
break;
case Contribution.STATE_COMPLETED:
menu.findItem(R.id.menu_retry_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_cancel_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_browser_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true);
break;
}
}
return;
}
}