aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/ui/CacheDetailsCreator.java')
-rw-r--r--main/src/cgeo/geocaching/ui/CacheDetailsCreator.java36
1 files changed, 17 insertions, 19 deletions
diff --git a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
index 40cd726..7db3592 100644
--- a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
+++ b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
@@ -16,7 +16,6 @@ import org.eclipse.jdt.annotation.NonNull;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.res.Resources;
-import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -26,7 +25,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
// TODO The suppression of this lint finding is bad. But to fix it, someone needs to rework the layout of the cache
@@ -102,11 +100,14 @@ public final class CacheDetailsCreator {
public void addCacheState(final Geocache cache) {
if (cache.isLogOffline() || cache.isArchived() || cache.isDisabled() || cache.isPremiumMembersOnly() || cache.isFound()) {
final List<String> states = new ArrayList<>(5);
+ String date = getVisitedDate(cache);
if (cache.isLogOffline()) {
- states.add(res.getString(R.string.cache_status_offline_log));
+ states.add(res.getString(R.string.cache_status_offline_log) + date);
+ // reset the found date, to avoid showing it twice
+ date = "";
}
if (cache.isFound()) {
- states.add(res.getString(R.string.cache_status_found));
+ states.add(res.getString(R.string.cache_status_found) + date);
}
if (cache.isArchived()) {
states.add(res.getString(R.string.cache_status_archived));
@@ -121,12 +122,17 @@ public final class CacheDetailsCreator {
}
}
+ private static String getVisitedDate(final Geocache cache) {
+ final long visited = cache.getVisitedDate();
+ return visited != 0 ? " (" + Formatter.formatShortDate(visited) + ")" : "";
+ }
+
public void addRating(final Geocache cache) {
if (cache.getRating() > 0) {
final RelativeLayout itemLayout = addStars(R.string.cache_rating, cache.getRating());
if (cache.getVotes() > 0) {
final TextView itemAddition = ButterKnife.findById(itemLayout, R.id.addition);
- itemAddition.setText("(" + cache.getVotes() + ")");
+ itemAddition.setText(" (" + cache.getVotes() + ')');
itemAddition.setVisibility(View.VISIBLE);
}
}
@@ -170,7 +176,7 @@ public final class CacheDetailsCreator {
}
public void addDistance(final Waypoint wpt, final TextView waypointDistanceView) {
- Float distance = CgeoApplication.getInstance().distanceNonBlocking(wpt);
+ final Float distance = CgeoApplication.getInstance().distanceNonBlocking(wpt);
String text = "--";
if (distance != null) {
text = Units.getDistanceFromKilometers(distance);
@@ -191,20 +197,12 @@ public final class CacheDetailsCreator {
}
public TextView addHiddenDate(final @NonNull Geocache cache) {
- final Date hiddenDate = cache.getHiddenDate();
- if (hiddenDate == null) {
+ final String dateString = Formatter.formatHiddenDate(cache);
+ if (StringUtils.isEmpty(dateString)) {
return null;
}
- final long time = hiddenDate.getTime();
- if (time > 0) {
- String dateString = Formatter.formatFullDate(time);
- if (cache.isEventCache()) {
- dateString = DateUtils.formatDateTime(CgeoApplication.getInstance().getBaseContext(), time, DateUtils.FORMAT_SHOW_WEEKDAY) + ", " + dateString;
- }
- final TextView view = add(cache.isEventCache() ? R.string.cache_event : R.string.cache_hidden, dateString);
- view.setId(R.id.date);
- return view;
- }
- return null;
+ final TextView view = add(cache.isEventCache() ? R.string.cache_event : R.string.cache_hidden, dateString);
+ view.setId(R.id.date);
+ return view;
}
}