aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2015-02-15 13:29:06 +0100
committerBananeweizen <bananeweizen@gmx.de>2015-02-15 13:29:06 +0100
commitecce9bc407f87027dd3c1d7b0e10ac74cf54c3bd (patch)
treefa0b20848459437d4ec206b1911a56e82a6ffb85 /main
parentffb66061848fdf78b1cae3452e24f74228ac5d6a (diff)
downloadcgeo-ecce9bc407f87027dd3c1d7b0e10ac74cf54c3bd.zip
cgeo-ecce9bc407f87027dd3c1d7b0e10ac74cf54c3bd.tar.gz
cgeo-ecce9bc407f87027dd3c1d7b0e10ac74cf54c3bd.tar.bz2
fix #4679: show stored log as first in logbook
Diffstat (limited to 'main')
-rw-r--r--main/res/values/changelog_master.xml8
-rw-r--r--main/res/values/strings.xml3
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java4
-rw-r--r--main/src/cgeo/geocaching/ui/logs/CacheLogsViewCreator.java42
-rw-r--r--main/src/cgeo/geocaching/ui/logs/EditOfflineLogListener.java25
5 files changed, 68 insertions, 14 deletions
diff --git a/main/res/values/changelog_master.xml b/main/res/values/changelog_master.xml
index b20c60c..40ed5a2 100644
--- a/main/res/values/changelog_master.xml
+++ b/main/res/values/changelog_master.xml
@@ -4,17 +4,19 @@
<string name="changelog_master" translatable="false">
<b>Next feature release:</b>\n
· New: Distance and direction shown on map\n
- · New: Confirmation on backup/restore\n
+ · New: Show own saved log first in logbook\n
+ · New: Show hint in compass and map action bar\n
· New: Sort events of same date by time (if recognized from cache description)\n
- · New: Show rudimentary details for geocaching.com.au swaggies\n
· New: Weekday shown in event lists\n
+ · New: Show rudimentary details for geocaching.com.au swaggies\n
· New: Filter for caches with offline logs\n
- · New: Show hint in compass\n
· New: Allow export of waypoints without coords to Locus\n
+ · New: Confirmation on backup/restore\n
· Fix: Don\'t allow logs in the future\n
· Fix: Allow shortcut creation for All caches list\n
· Fix: Some menus not available when invoking map from compass\n
· Fix: Do not limit to 10 logs for OC caches\n
+ · Fix: Recognize more hyperlinks of opencaching caches\n
\n
</string>
</resources>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 2eecdf1..3990ff6 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -121,7 +121,8 @@
<string name="log_password_title">Log Password:</string>
<string name="log_hint_log_password">Enter your log password</string>
<string name="log_oc_team_comment">OC Team comment</string>
-
+ <string name="log_your_saved_log">Your saved log</string>
+
<string-array name="log_image_scales">
<item>No scaling</item>
<item>512 px</item>
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 9dc2362..d80431f 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -2187,4 +2187,8 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
public void cachesAround() {
CacheListActivity.startActivityCoordinates(this, cache.getCoords());
}
+
+ public void setNeedsRefresh() {
+ refreshOnResume = true;
+ }
}
diff --git a/main/src/cgeo/geocaching/ui/logs/CacheLogsViewCreator.java b/main/src/cgeo/geocaching/ui/logs/CacheLogsViewCreator.java
index 6855aab..e52003d 100644
--- a/main/src/cgeo/geocaching/ui/logs/CacheLogsViewCreator.java
+++ b/main/src/cgeo/geocaching/ui/logs/CacheLogsViewCreator.java
@@ -2,6 +2,7 @@ package cgeo.geocaching.ui.logs;
import cgeo.geocaching.CacheDetailActivity;
import cgeo.geocaching.CgeoApplication;
+import cgeo.geocaching.DataStore;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.LogEntry;
import cgeo.geocaching.R;
@@ -24,27 +25,33 @@ import java.util.Map.Entry;
public class CacheLogsViewCreator extends LogsViewCreator {
private final boolean allLogs;
private final Resources res = CgeoApplication.getInstance().getResources();
+ private final CacheDetailActivity cacheDetailActivity;
public CacheLogsViewCreator(final CacheDetailActivity cacheDetailActivity, final boolean allLogs) {
super(cacheDetailActivity);
+ this.cacheDetailActivity = cacheDetailActivity;
this.allLogs = allLogs;
}
- /**
- * May return null!
- *
- */
private Geocache getCache() {
- if (this.activity instanceof CacheDetailActivity) {
- final CacheDetailActivity details = (CacheDetailActivity) this.activity;
- return details.getCache();
- }
- return null;
+ return cacheDetailActivity.getCache();
}
@Override
protected List<LogEntry> getLogs() {
- return allLogs ? getCache().getLogs() : getCache().getFriendsLogs();
+ final Geocache cache = getCache();
+ final List<LogEntry> logs = allLogs ? cache.getLogs() : cache.getFriendsLogs();
+ return addOwnOfflineLog(cache, logs);
+ }
+
+ private List<LogEntry> addOwnOfflineLog(final Geocache cache, final List<LogEntry> logsIn) {
+ final LogEntry log = DataStore.loadLogOffline(cache.getGeocode());
+ final ArrayList<LogEntry> logs = new ArrayList<>(logsIn);
+ if (log != null) {
+ log.author = res.getString(R.string.log_your_saved_log);
+ logs.add(0, log);
+ }
+ return logs;
}
@Override
@@ -94,6 +101,21 @@ public class CacheLogsViewCreator extends LogsViewCreator {
}
@Override
+ protected void fillViewHolder(final View convertView, final LogViewHolder holder, final LogEntry log) {
+ super.fillViewHolder(convertView, holder, log);
+ if (null == convertView) {
+ if (isOfflineLog(log)) {
+ holder.author.setOnClickListener(new EditOfflineLogListener(getCache(), cacheDetailActivity));
+ holder.text.setOnClickListener(new EditOfflineLogListener(getCache(), cacheDetailActivity));
+ }
+ }
+ }
+
+ private boolean isOfflineLog(final LogEntry log) {
+ return log.author.equals(activity.getString(R.string.log_your_saved_log));
+ }
+
+ @Override
protected boolean isValid() {
return getCache() != null;
}
diff --git a/main/src/cgeo/geocaching/ui/logs/EditOfflineLogListener.java b/main/src/cgeo/geocaching/ui/logs/EditOfflineLogListener.java
new file mode 100644
index 0000000..2e0f154
--- /dev/null
+++ b/main/src/cgeo/geocaching/ui/logs/EditOfflineLogListener.java
@@ -0,0 +1,25 @@
+package cgeo.geocaching.ui.logs;
+
+import cgeo.geocaching.CacheDetailActivity;
+import cgeo.geocaching.Geocache;
+
+import android.view.View;
+import android.view.View.OnClickListener;
+
+class EditOfflineLogListener implements OnClickListener {
+
+ private final Geocache cache;
+ private final CacheDetailActivity activity;
+
+ public EditOfflineLogListener(final Geocache cache, final CacheDetailActivity activity) {
+ this.cache = cache;
+ this.activity = activity;
+ }
+
+ @Override
+ public void onClick(final View v) {
+ activity.setNeedsRefresh();
+ cache.logVisit(activity);
+ }
+
+}