aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-10-06 19:52:18 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-10-06 19:52:18 +0200
commit3609dc675bd4579f933275cd18769c502c1721de (patch)
tree8a3807126ec8716ab74d7f1ff6d42b0dcef6dcdc /main/src/cgeo/geocaching
parent34905d520cb033bf3abdb6d11d3bffd1a5e7be7e (diff)
downloadcgeo-3609dc675bd4579f933275cd18769c502c1721de.zip
cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.gz
cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.bz2
fix #4400: Insert last log text
Diffstat (limited to 'main/src/cgeo/geocaching')
-rw-r--r--main/src/cgeo/geocaching/AbstractLoggingActivity.java17
-rw-r--r--main/src/cgeo/geocaching/LogCacheActivity.java7
-rw-r--r--main/src/cgeo/geocaching/LogTrackableActivity.java6
-rw-r--r--main/src/cgeo/geocaching/settings/Settings.java16
4 files changed, 46 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/AbstractLoggingActivity.java b/main/src/cgeo/geocaching/AbstractLoggingActivity.java
index 15e8848..de1c047 100644
--- a/main/src/cgeo/geocaching/AbstractLoggingActivity.java
+++ b/main/src/cgeo/geocaching/AbstractLoggingActivity.java
@@ -12,6 +12,8 @@ import cgeo.geocaching.utils.LogTemplateProvider;
import cgeo.geocaching.utils.LogTemplateProvider.LogContext;
import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate;
+import org.apache.commons.lang3.StringUtils;
+
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
@@ -56,6 +58,10 @@ public abstract class AbstractLoggingActivity extends AbstractActionBarActivity
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
final int id = item.getItemId();
+ if (id == R.id.menu_repeat_last) {
+ replaceLog(getLastLog());
+ return true;
+ }
final LogTemplate template = LogTemplateProvider.getTemplate(id);
if (template != null) {
@@ -72,6 +78,11 @@ public abstract class AbstractLoggingActivity extends AbstractActionBarActivity
return super.onOptionsItemSelected(item);
}
+ /**
+ * @return the last log text used with this logging activity
+ */
+ protected abstract String getLastLog();
+
protected abstract LogContext getLogContext();
protected final void insertIntoLog(final String newText, final boolean moveCursor) {
@@ -79,6 +90,12 @@ public abstract class AbstractLoggingActivity extends AbstractActionBarActivity
ActivityMixin.insertAtPosition(log, newText, moveCursor);
}
+ private final void replaceLog(final String newText) {
+ final EditText log = (EditText) findViewById(R.id.log);
+ log.setText(StringUtils.EMPTY);
+ insertIntoLog(newText, true);
+ }
+
protected void requestKeyboardForLogging() {
new Keyboard(this).show(findViewById(R.id.log));
}
diff --git a/main/src/cgeo/geocaching/LogCacheActivity.java b/main/src/cgeo/geocaching/LogCacheActivity.java
index 3558b3c..6cba23a 100644
--- a/main/src/cgeo/geocaching/LogCacheActivity.java
+++ b/main/src/cgeo/geocaching/LogCacheActivity.java
@@ -490,6 +490,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
// again will be easy using "Clear" while retyping the text may not be.
if (force || (StringUtils.isNotEmpty(log) && !StringUtils.equals(log, text))) {
cache.logOffline(this, log, date, typeSelected);
+ Settings.setLastCacheLog(log);
}
text = log;
}
@@ -645,6 +646,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
R.string.log_saving :
R.string.log_saving_and_uploading);
new Poster(this, message).execute(currentLogText(), currentLogPassword());
+ Settings.setLastCacheLog(currentLogText());
}
@Override
@@ -670,4 +672,9 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
logVisitIntent.putExtra(Intents.EXTRA_GEOCODE, geocode);
return logVisitIntent;
}
+
+ @Override
+ protected String getLastLog() {
+ return Settings.getLastCacheLog();
+ }
}
diff --git a/main/src/cgeo/geocaching/LogTrackableActivity.java b/main/src/cgeo/geocaching/LogTrackableActivity.java
index 47fc4c3..fd84173 100644
--- a/main/src/cgeo/geocaching/LogTrackableActivity.java
+++ b/main/src/cgeo/geocaching/LogTrackableActivity.java
@@ -387,6 +387,7 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
final String tracking = trackingEditText.getText().toString();
final String log = logEditText.getText().toString();
new PostLogThread(postLogHandler, tracking, log).start();
+ Settings.setLastTrackableLog(log);
} else {
showToast(res.getString(R.string.err_log_load_data_still));
}
@@ -403,4 +404,9 @@ public class LogTrackableActivity extends AbstractLoggingActivity implements Dat
return result;
}
+ @Override
+ protected String getLastLog() {
+ return Settings.getLastTrackableLog();
+ }
+
}
diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java
index aeaf078..3f9c0a5 100644
--- a/main/src/cgeo/geocaching/settings/Settings.java
+++ b/main/src/cgeo/geocaching/settings/Settings.java
@@ -1113,4 +1113,20 @@ public class Settings {
public static boolean setUseHardwareAcceleration(final boolean useHardwareAcceleration) {
return putBoolean(R.string.pref_hardware_acceleration, useHardwareAcceleration);
}
+
+ public static String getLastCacheLog() {
+ return getString(R.string.pref_last_cache_log, StringUtils.EMPTY);
+ }
+
+ public static void setLastCacheLog(final String log) {
+ putString(R.string.pref_last_cache_log, log);
+ }
+
+ public static String getLastTrackableLog() {
+ return getString(R.string.pref_last_trackable_log, StringUtils.EMPTY);
+ }
+
+ public static void setLastTrackableLog(final String log) {
+ putString(R.string.pref_last_trackable_log, log);
+ }
}