aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-02-24 22:06:29 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-02-24 22:12:43 +0100
commit4189238f5cac88a85e7f939025381a5caf3c6235 (patch)
tree3dc2dbfadb12c56a93133d75d9971c1aab31ad40 /main/src
parent15a579f823deca50c75f9f94cb6e2f4ddd760ac2 (diff)
downloadcgeo-4189238f5cac88a85e7f939025381a5caf3c6235.zip
cgeo-4189238f5cac88a85e7f939025381a5caf3c6235.tar.gz
cgeo-4189238f5cac88a85e7f939025381a5caf3c6235.tar.bz2
refactoring: do not duplicate code
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java28
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java22
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java21
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);
+ }
}