diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-10-06 19:52:18 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-10-06 19:52:18 +0200 |
| commit | 3609dc675bd4579f933275cd18769c502c1721de (patch) | |
| tree | 8a3807126ec8716ab74d7f1ff6d42b0dcef6dcdc /main | |
| parent | 34905d520cb033bf3abdb6d11d3bffd1a5e7be7e (diff) | |
| download | cgeo-3609dc675bd4579f933275cd18769c502c1721de.zip cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.gz cgeo-3609dc675bd4579f933275cd18769c502c1721de.tar.bz2 | |
fix #4400: Insert last log text
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/menu/abstract_logging_activity.xml | 5 | ||||
| -rw-r--r-- | main/res/values/changelog_master.xml | 1 | ||||
| -rw-r--r-- | main/res/values/preference_keys.xml | 2 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/AbstractLoggingActivity.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/LogCacheActivity.java | 7 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/LogTrackableActivity.java | 6 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/Settings.java | 16 |
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); + } } |
