aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-09-10 22:10:45 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-09-10 22:10:45 +0200
commita3f82d1f5555f0796b4f574145ce62551a97dff4 (patch)
treed44b4e279fd588b54843c0e129fd52a274fa69fc
parent96d22a41eda0e260018caa42a75c40584dd7cc88 (diff)
downloadcgeo-a3f82d1f5555f0796b4f574145ce62551a97dff4.zip
cgeo-a3f82d1f5555f0796b4f574145ce62551a97dff4.tar.gz
cgeo-a3f82d1f5555f0796b4f574145ce62551a97dff4.tar.bz2
fix 4340: remove "NUMBER" template from trackable log activity
-rw-r--r--main/src/cgeo/geocaching/LogTrackableActivity.java18
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java2
-rw-r--r--tests/src/cgeo/geocaching/activity/logtrackable/AbstractLogTrackableActivityTest.java32
-rw-r--r--tests/src/cgeo/geocaching/activity/logtrackable/LogTrackableActivityTest.java44
4 files changed, 93 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/LogTrackableActivity.java b/main/src/cgeo/geocaching/LogTrackableActivity.java
index 5c6d0f5..47fc4c3 100644
--- a/main/src/cgeo/geocaching/LogTrackableActivity.java
+++ b/main/src/cgeo/geocaching/LogTrackableActivity.java
@@ -16,7 +16,9 @@ import cgeo.geocaching.ui.dialog.DateDialog;
import cgeo.geocaching.ui.dialog.Dialogs;
import cgeo.geocaching.utils.Formatter;
import cgeo.geocaching.utils.Log;
+import cgeo.geocaching.utils.LogTemplateProvider;
import cgeo.geocaching.utils.LogTemplateProvider.LogContext;
+import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -29,6 +31,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.ContextMenu;
+import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
@@ -347,12 +350,12 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
DataStore.saveTrackable(trackable);
}
- public static void startActivity(final Context context, final Trackable trackable) {
+ public static Intent getIntent(final Context context, final Trackable trackable) {
final Intent logTouchIntent = new Intent(context, LogTrackableActivity.class);
logTouchIntent.putExtra(Intents.EXTRA_GEOCODE, trackable.getGeocode());
logTouchIntent.putExtra(Intents.EXTRA_GUID, trackable.getGuid());
logTouchIntent.putExtra(Intents.EXTRA_TRACKING_CODE, trackable.getTrackingcode());
- context.startActivity(logTouchIntent);
+ return logTouchIntent;
}
@Override
@@ -389,4 +392,15 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
}
}
+ @Override
+ public boolean onCreateOptionsMenu(final Menu menu) {
+ final boolean result = super.onCreateOptionsMenu(menu);
+ for (final LogTemplate template : LogTemplateProvider.getTemplatesWithoutSignature()) {
+ if (template.getTemplateString().equals("NUMBER")) {
+ menu.findItem(R.id.menu_templates).getSubMenu().removeItem(template.getItemId());
+ }
+ }
+ return result;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index 81516c3..a427ced 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -206,7 +206,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_log_touch:
- LogTrackableActivity.startActivity(this, trackable);
+ startActivity(LogTrackableActivity.getIntent(this, trackable));
return true;
case R.id.menu_browser_trackable:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(trackable.getUrl())));
diff --git a/tests/src/cgeo/geocaching/activity/logtrackable/AbstractLogTrackableActivityTest.java b/tests/src/cgeo/geocaching/activity/logtrackable/AbstractLogTrackableActivityTest.java
new file mode 100644
index 0000000..e6597dc
--- /dev/null
+++ b/tests/src/cgeo/geocaching/activity/logtrackable/AbstractLogTrackableActivityTest.java
@@ -0,0 +1,32 @@
+package cgeo.geocaching.activity.logtrackable;
+
+import cgeo.geocaching.DataStore;
+import cgeo.geocaching.LogTrackableActivity;
+import cgeo.geocaching.Trackable;
+
+import android.test.ActivityInstrumentationTestCase2;
+
+public abstract class AbstractLogTrackableActivityTest extends ActivityInstrumentationTestCase2<LogTrackableActivity> {
+
+ private static Trackable trackable;
+
+ public AbstractLogTrackableActivityTest() {
+ super(LogTrackableActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ createTrackable();
+ setActivityIntent(LogTrackableActivity.getIntent(getInstrumentation().getContext(), trackable));
+ getActivity();
+ }
+
+ protected static void createTrackable() {
+ trackable = new Trackable();
+ trackable.setName("Test trackable");
+ trackable.setGeocode("TB4D09K");
+ DataStore.saveTrackable(trackable);
+ }
+
+}
diff --git a/tests/src/cgeo/geocaching/activity/logtrackable/LogTrackableActivityTest.java b/tests/src/cgeo/geocaching/activity/logtrackable/LogTrackableActivityTest.java
new file mode 100644
index 0000000..c894474
--- /dev/null
+++ b/tests/src/cgeo/geocaching/activity/logtrackable/LogTrackableActivityTest.java
@@ -0,0 +1,44 @@
+package cgeo.geocaching.activity.logtrackable;
+
+import static com.google.android.apps.common.testing.ui.espresso.Espresso.onData;
+import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView;
+import static com.google.android.apps.common.testing.ui.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
+import static com.google.android.apps.common.testing.ui.espresso.action.ViewActions.click;
+import static com.google.android.apps.common.testing.ui.espresso.assertion.ViewAssertions.doesNotExist;
+import static com.google.android.apps.common.testing.ui.espresso.assertion.ViewAssertions.matches;
+import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.isDisplayed;
+import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withText;
+import static org.hamcrest.Matchers.hasToString;
+import static org.hamcrest.Matchers.startsWith;
+
+import cgeo.geocaching.R;
+
+public class LogTrackableActivityTest extends AbstractLogTrackableActivityTest {
+
+ public void testInsertNameExists() throws Exception {
+ openActionBar();
+ clickActionBarItem(R.string.log_add);
+
+ onView(withText(getString(R.string.init_signature_template_name))).check(matches(isDisplayed()));
+ }
+
+ public void testInsertNumberNotExists() throws Exception {
+ openActionBar();
+ clickActionBarItem(R.string.log_add);
+
+ onView(withText(getString(R.string.init_signature_template_number))).check(doesNotExist());
+ }
+
+ private void clickActionBarItem(int labelResourceId) {
+ onData(hasToString(startsWith(getString(labelResourceId)))).perform(click());
+ }
+
+ private void openActionBar() {
+ openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
+ }
+
+ private String getString(int resId) {
+ return getActivity().getString(resId);
+ }
+
+}