aboutsummaryrefslogtreecommitdiffstats
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
parent34905d520cb033bf3abdb6d11d3bffd1a5e7be7e (diff)
downloadcgeo-3609dc675bd4579f933275cd18769c502c1721de.zip
cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.gz
cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.bz2
fix #4400: Insert last log text
-rw-r--r--main/res/menu/abstract_logging_activity.xml5
-rw-r--r--main/res/values/changelog_master.xml1
-rw-r--r--main/res/values/preference_keys.xml2
-rw-r--r--main/res/values/strings.xml1
-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
8 files changed, 55 insertions, 0 deletions
diff --git a/main/res/menu/abstract_logging_activity.xml b/main/res/menu/abstract_logging_activity.xml
index aeb6720..9c91399 100644
--- a/main/res/menu/abstract_logging_activity.xml
+++ b/main/res/menu/abstract_logging_activity.xml
@@ -32,6 +32,11 @@
<menu /> <!-- filled dynamically -->
</item>
<item
+ android:id="@+id/menu_repeat_last"
+ android:title="@string/log_repeat"
+ app:showAsAction="ifRoom|withText">
+ </item>
+ <item
android:id="@+id/save"
android:icon="@drawable/ic_menu_save"
android:title="@string/log_save"
diff --git a/main/res/values/changelog_master.xml b/main/res/values/changelog_master.xml
index 8fac080..53cea8b 100644
--- a/main/res/values/changelog_master.xml
+++ b/main/res/values/changelog_master.xml
@@ -12,6 +12,7 @@
· New: Import lab caches as virtual caches\n
· New: Remember zoom level of live map and cache map separately\n
· New: Confirmation for deleting all offline logs\n
+ · New: Menu item for repeating last log text\n
· Fix: Improved compass rotation algorithm\n
· Fix: Smilies fit line height in logbook\n
\n
diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml
index 4787308..4bb908d 100644
--- a/main/res/values/preference_keys.xml
+++ b/main/res/values/preference_keys.xml
@@ -182,4 +182,6 @@
<string name="pref_changelog_last_checksum">changelog_last_checksum</string>
<string name="pref_caches_history">caches_history</string>
<string name="pref_hardware_acceleration">hardware_acceleration2</string>
+ <string name="pref_last_cache_log">last_cache_log</string>
+ <string name="pref_last_trackable_log">last_trackable_log</string>
</resources>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index f411cc4..c7f458a 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -92,6 +92,7 @@
<string name="log_clear">Clear</string>
<string name="log_post_not_possible">Loading Log Page…</string>
<string name="log_add">Add</string>
+ <string name="log_repeat">Repeat last log</string>
<string name="log_no_rating">No rating</string>
<string name="log_stars_1_description">Poor</string>
<string name="log_stars_15_description">Fairly poor</string>
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);
+ }
}