From 71309f84d2c4fb74c863e1de8890261bf3efd749 Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Fri, 20 Sep 2013 20:32:39 +0200 Subject: refactoring: convert details context menu to XML resource --- main/res/menu/details_context.xml | 21 ++++++ main/src/cgeo/geocaching/CacheDetailActivity.java | 78 ++++++++++------------- 2 files changed, 53 insertions(+), 46 deletions(-) create mode 100644 main/res/menu/details_context.xml diff --git a/main/res/menu/details_context.xml b/main/res/menu/details_context.xml new file mode 100644 index 0000000..0ae2f6d --- /dev/null +++ b/main/res/menu/details_context.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 174a036..ce20304 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -124,10 +124,6 @@ import java.util.regex.Pattern; */ public class CacheDetailActivity extends AbstractViewPagerActivity { - private static final int MENU_FIELD_COPY = 1; - private static final int MENU_FIELD_TRANSLATE = 2; - private static final int MENU_FIELD_TRANSLATE_EN = 3; - private static final int MENU_FIELD_SHARE = 4; private static final int MENU_SHARE = 12; private static final int MENU_CALENDAR = 11; private static final int MENU_CACHES_AROUND = 10; @@ -366,11 +362,11 @@ public class CacheDetailActivity extends AbstractViewPagerActivity TranslationUtils.TRANSLATION_TEXT_LENGTH_WARN) { showToast(res.getString(R.string.translate_length_warning)); } - menu.add(viewId, MENU_FIELD_TRANSLATE, 0, res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage())); - if (!StringUtils.equals(Locale.getDefault().getLanguage(), Locale.ENGLISH.getLanguage())) { - menu.add(viewId, MENU_FIELD_TRANSLATE_EN, 0, res.getString(R.string.translate_to_english)); - } - + menu.findItem(R.id.menu_translate_to_sys_lang).setTitle(res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage())); } - menu.add(viewId, MENU_FIELD_SHARE, 0, res.getString(R.string.cache_share_field)); + final boolean localeIsEnglish = StringUtils.equals(Locale.getDefault().getLanguage(), Locale.ENGLISH.getLanguage()); + menu.findItem(R.id.menu_translate_to_english).setVisible(!copyOnly && !localeIsEnglish); } @Override public boolean onContextItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_copy: + ClipboardUtils.copyToClipboard(clickedItemText); + showToast(res.getString(R.string.clipboard_copy_ok)); + return true; + case R.id.menu_translate_to_sys_lang: + TranslationUtils.startActivityTranslate(this, Locale.getDefault().getLanguage(), HtmlUtils.extractText(clickedItemText)); + return true; + case R.id.menu_translate_to_english: + TranslationUtils.startActivityTranslate(this, Locale.ENGLISH.getLanguage(), HtmlUtils.extractText(clickedItemText)); + return true; + case R.id.menu_cache_share_field: + final Intent intent = new Intent(Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, clickedItemText.toString()); + startActivity(Intent.createChooser(intent, res.getText(R.string.cache_share_field))); + return true; + default: + break; + } final int groupId = item.getGroupId(); final int index = item.getItemId(); switch (groupId) { - case R.id.value: - case R.id.shortdesc: - case R.id.longdesc: - case R.id.personalnote: - case R.id.hint: - case R.id.log: - switch (index) { - case MENU_FIELD_COPY: - ClipboardUtils.copyToClipboard(clickedItemText); - showToast(res.getString(R.string.clipboard_copy_ok)); - return true; - case MENU_FIELD_TRANSLATE: - TranslationUtils.startActivityTranslate(this, Locale.getDefault().getLanguage(), HtmlUtils.extractText(clickedItemText)); - return true; - case MENU_FIELD_TRANSLATE_EN: - TranslationUtils.startActivityTranslate(this, Locale.ENGLISH.getLanguage(), HtmlUtils.extractText(clickedItemText)); - return true; - case MENU_FIELD_SHARE: - final Intent intent = new Intent(Intent.ACTION_SEND); - intent.setType("text/plain"); - intent.putExtra(Intent.EXTRA_TEXT, clickedItemText.toString()); - startActivity(Intent.createChooser(intent, res.getText(R.string.cache_share_field))); - return true; - default: - break; - } - - break; case CONTEXT_MENU_WAYPOINT_EDIT: final Waypoint waypointEdit = cache.getWaypoint(index); if (waypointEdit != null) { -- cgit v1.1