aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/LogTrackableActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/LogTrackableActivity.java')
-rw-r--r--main/src/cgeo/geocaching/LogTrackableActivity.java47
1 files changed, 45 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/LogTrackableActivity.java b/main/src/cgeo/geocaching/LogTrackableActivity.java
index 26f7c84..47fc4c3 100644
--- a/main/src/cgeo/geocaching/LogTrackableActivity.java
+++ b/main/src/cgeo/geocaching/LogTrackableActivity.java
@@ -3,6 +3,7 @@ package cgeo.geocaching;
import butterknife.ButterKnife;
import butterknife.InjectView;
+import cgeo.geocaching.activity.Keyboard;
import cgeo.geocaching.connector.gc.GCLogin;
import cgeo.geocaching.connector.gc.GCParser;
import cgeo.geocaching.enumerations.LogType;
@@ -15,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;
@@ -28,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;
@@ -146,6 +150,17 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
}
init();
+ requestKeyboardForLogging();
+ }
+
+ @Override
+ protected void requestKeyboardForLogging() {
+ if (StringUtils.isBlank(trackingEditText.getText())) {
+ new Keyboard(this).show(trackingEditText);
+ }
+ else {
+ super.requestKeyboardForLogging();
+ }
}
@Override
@@ -309,6 +324,9 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
tweetCheck.isChecked() && tweetBox.getVisibility() == View.VISIBLE) {
Twitter.postTweetTrackable(geocode, new LogEntry(0, typeSelected, log));
}
+ if (status == StatusCode.NO_ERROR) {
+ addLocalTrackableLog(log);
+ }
return status;
} catch (final Exception e) {
@@ -318,12 +336,26 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
return StatusCode.LOG_POST_ERROR;
}
- public static void startActivity(final Context context, final Trackable trackable) {
+ /**
+ * Adds the new log to the list of log entries for this trackable to be able to show it in the trackable activity.
+ *
+ *
+ * @param logText
+ */
+ private void addLocalTrackableLog(final String logText) {
+ final LogEntry logEntry = new LogEntry(Calendar.getInstance().getTimeInMillis(), typeSelected, logText);
+ final ArrayList<LogEntry> modifiedLogs = new ArrayList<>(trackable.getLogs());
+ modifiedLogs.add(0, logEntry);
+ trackable.setLogs(modifiedLogs);
+ DataStore.saveTrackable(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
@@ -360,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;
+ }
+
}