diff options
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 28 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 22 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractActivity.java | 21 |
3 files changed, 32 insertions, 39 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index b905a46..414fd13 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -354,12 +354,12 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); final String itemTitle = (String) ((TextView) ((View) view.getParent()).findViewById(R.id.name)).getText(); - buildDetailsContextMenu(menu, itemTitle, true); + buildDetailsContextMenu(menu, clickedItemText, itemTitle, true); break; case R.id.shortdesc: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_description), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_description), false); break; case R.id.longdesc: assert view instanceof TextView; @@ -370,27 +370,27 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } else { clickedItemText = shortDesc + "\n\n" + ((TextView) view).getText(); } - buildDetailsContextMenu(menu, res.getString(R.string.cache_description), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_description), false); break; case R.id.personalnote: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_personal_note), true); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_personal_note), true); break; case R.id.hint: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_hint), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_hint), false); break; case R.id.log: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_logs), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_logs), false); break; case R.id.date: // event date assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_event), true); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_event), true); menu.findItem(R.id.menu_calendar).setVisible(cache.canBeAddedToCalendar()); break; case R.id.waypoint: @@ -417,20 +417,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } } - private void buildDetailsContextMenu(ContextMenu menu, String fieldTitle, boolean copyOnly) { - menu.setHeaderTitle(fieldTitle); - getMenuInflater().inflate(R.menu.details_context, menu); - menu.findItem(R.id.menu_translate_to_sys_lang).setVisible(!copyOnly); - if (!copyOnly) { - if (clickedItemText.length() > TranslationUtils.TRANSLATION_TEXT_LENGTH_WARN) { - showToast(res.getString(R.string.translate_length_warning)); - } - menu.findItem(R.id.menu_translate_to_sys_lang).setTitle(res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage())); - } - 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()) { diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java index de5c21a..117e9d8 100644 --- a/main/src/cgeo/geocaching/TrackableActivity.java +++ b/main/src/cgeo/geocaching/TrackableActivity.java @@ -205,42 +205,28 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); final String itemTitle = (String) ((TextView) ((View) view.getParent()).findViewById(R.id.name)).getText(); - buildDetailsContextMenu(menu, itemTitle, true); + buildDetailsContextMenu(menu, clickedItemText, itemTitle, true); break; case R.id.goal: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.trackable_goal), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.trackable_goal), false); break; case R.id.details: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.trackable_details), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.trackable_details), false); break; case R.id.log: assert view instanceof TextView; clickedItemText = ((TextView) view).getText(); - buildDetailsContextMenu(menu, res.getString(R.string.cache_logs), false); + buildDetailsContextMenu(menu, clickedItemText, res.getString(R.string.cache_logs), false); break; default: break; } } - private void buildDetailsContextMenu(ContextMenu menu, String fieldTitle, boolean copyOnly) { - menu.setHeaderTitle(fieldTitle); - getMenuInflater().inflate(R.menu.details_context, menu); - menu.findItem(R.id.menu_translate_to_sys_lang).setVisible(!copyOnly); - if (!copyOnly) { - if (clickedItemText.length() > TranslationUtils.TRANSLATION_TEXT_LENGTH_WARN) { - showToast(res.getString(R.string.translate_length_warning)); - } - menu.findItem(R.id.menu_translate_to_sys_lang).setTitle(res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage())); - } - 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()) { diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java index 510969b..8aaf229 100644 --- a/main/src/cgeo/geocaching/activity/AbstractActivity.java +++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java @@ -3,16 +3,23 @@ package cgeo.geocaching.activity; import butterknife.ButterKnife; import cgeo.geocaching.CgeoApplication; +import cgeo.geocaching.R; import cgeo.geocaching.compatibility.Compatibility; import cgeo.geocaching.network.Cookies; import cgeo.geocaching.settings.Settings; +import cgeo.geocaching.utils.TranslationUtils; + +import org.apache.commons.lang3.StringUtils; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.app.FragmentActivity; +import android.view.ContextMenu; import android.view.View; import android.widget.EditText; +import java.util.Locale; + public abstract class AbstractActivity extends FragmentActivity implements IAbstractActivity { protected CgeoApplication app = null; @@ -120,4 +127,18 @@ public abstract class AbstractActivity extends FragmentActivity implements IAbst public void showKeyboard(final View view) { new Keyboard(this).show(view); } + + protected void buildDetailsContextMenu(final ContextMenu menu, final CharSequence clickedItemText, final String fieldTitle, final boolean copyOnly) { + menu.setHeaderTitle(fieldTitle); + getMenuInflater().inflate(R.menu.details_context, menu); + menu.findItem(R.id.menu_translate_to_sys_lang).setVisible(!copyOnly); + if (!copyOnly) { + if (clickedItemText.length() > TranslationUtils.TRANSLATION_TEXT_LENGTH_WARN) { + showToast(res.getString(R.string.translate_length_warning)); + } + menu.findItem(R.id.menu_translate_to_sys_lang).setTitle(res.getString(R.string.translate_to_sys_lang, Locale.getDefault().getDisplayLanguage())); + } + final boolean localeIsEnglish = StringUtils.equals(Locale.getDefault().getLanguage(), Locale.ENGLISH.getLanguage()); + menu.findItem(R.id.menu_translate_to_english).setVisible(!copyOnly && !localeIsEnglish); + } } |
