From 1bc0b781d1021c8c464f0af993654e86ab0d8eb1 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Wed, 16 Oct 2013 02:13:54 +0530 Subject: [PATCH] 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 --- commons/res/menu/fragment_image_detail.xml | 6 +-- commons/res/values-qq/strings.xml | 4 +- commons/res/values/strings.xml | 4 +- .../media/MediaDetailPagerFragment.java | 40 +++++++++++++++---- 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/commons/res/menu/fragment_image_detail.xml b/commons/res/menu/fragment_image_detail.xml index aed7c5113..8a114ddbc 100644 --- a/commons/res/menu/fragment_image_detail.xml +++ b/commons/res/menu/fragment_image_detail.xml @@ -19,14 +19,14 @@ - diff --git a/commons/res/values-qq/strings.xml b/commons/res/values-qq/strings.xml index 44ec50d47..cd783dcd9 100644 --- a/commons/res/values-qq/strings.xml +++ b/commons/res/values-qq/strings.xml @@ -73,9 +73,9 @@ Menu item text that prompts user to send feedback to WMF via email Message shown on contributions list during first sync. Message shown on contribution list during non-first sync if no uploads present. - Menu item text prompting user to retry a failed upload. + Menu item text prompting user to retry a failed upload. {{Identical|Retry}} - Menu item text prompting user to abort and delete a failed upload. + Menu item text prompting user to cancel and delete a failed upload. Text label telling user the license of the current upload in progress. %1$s refers to appropriate display text for the chosen CC license Menu item text prompting user to download a selected photo or media file locally. {{Identical|Download}} diff --git a/commons/res/values/strings.xml b/commons/res/values/strings.xml index 5a5c1d197..d63160b23 100644 --- a/commons/res/values/strings.xml +++ b/commons/res/values/strings.xml @@ -85,8 +85,8 @@ Waiting for first sync... You have not yet uploaded any photos. - Retry - Abort + Retry + Cancel This image will be licensed under %1$s diff --git a/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java b/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java index ee15689a6..72817acf0 100644 --- a/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/media/MediaDetailPagerFragment.java @@ -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! - 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); + 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); + 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; } }