diff options
Diffstat (limited to 'main/src/cgeo/geocaching/LogTrackableActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/LogTrackableActivity.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/LogTrackableActivity.java b/main/src/cgeo/geocaching/LogTrackableActivity.java index 26f7c84..5c6d0f5 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; @@ -146,6 +147,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 +321,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,6 +333,20 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat return StatusCode.LOG_POST_ERROR; } + /** + * 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 void startActivity(final Context context, final Trackable trackable) { final Intent logTouchIntent = new Intent(context, LogTrackableActivity.class); logTouchIntent.putExtra(Intents.EXTRA_GEOCODE, trackable.getGeocode()); |
