aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java6
-rw-r--r--main/src/cgeo/geocaching/CacheListActivity.java8
-rw-r--r--main/src/cgeo/geocaching/CacheMenuHandler.java5
-rw-r--r--main/src/cgeo/geocaching/DataStore.java5
-rw-r--r--main/src/cgeo/geocaching/Geocache.java2
-rw-r--r--main/src/cgeo/geocaching/LogCacheActivity.java2
-rw-r--r--main/src/cgeo/geocaching/apps/AbstractLocusApp.java6
-rw-r--r--main/src/cgeo/geocaching/ui/CacheDetailsCreator.java18
-rw-r--r--main/src/cgeo/geocaching/ui/CacheListAdapter.java6
-rw-r--r--main/src/cgeo/geocaching/ui/Formatter.java10
-rw-r--r--main/src/cgeo/geocaching/utils/DateUtils.java12
11 files changed, 52 insertions, 28 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index ba8f470..f92245c 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -107,6 +107,7 @@ import android.widget.TextView.BufferType;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Date;
import java.util.EnumSet;
import java.util.List;
import java.util.Locale;
@@ -971,8 +972,9 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
// cache hidden
- if (cache.getHiddenDate() != null) {
- final long time = cache.getHiddenDate().getTime();
+ final Date hiddenDate = cache.getHiddenDate();
+ if (hiddenDate != null) {
+ final long time = hiddenDate.getTime();
if (time > 0) {
String dateString = Formatter.formatFullDate(time);
if (cache.isEventCache()) {
diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java
index 59f7297..8226f38 100644
--- a/main/src/cgeo/geocaching/CacheListActivity.java
+++ b/main/src/cgeo/geocaching/CacheListActivity.java
@@ -78,7 +78,6 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -706,11 +705,8 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA
public void deletePastEvents() {
final List<Geocache> deletion = new ArrayList<Geocache>();
for (final Geocache cache : adapter.getCheckedOrAllCaches()) {
- if (cache.isEventCache()) {
- final Date eventDate = cache.getHiddenDate();
- if (DateUtils.daysSince(eventDate.getTime()) > 0) {
- deletion.add(cache);
- }
+ if (DateUtils.isPastEvent(cache)) {
+ deletion.add(cache);
}
}
new DropDetailsTask(false).execute(deletion.toArray(new Geocache[deletion.size()]));
diff --git a/main/src/cgeo/geocaching/CacheMenuHandler.java b/main/src/cgeo/geocaching/CacheMenuHandler.java
index 9326a73..887f6cf 100644
--- a/main/src/cgeo/geocaching/CacheMenuHandler.java
+++ b/main/src/cgeo/geocaching/CacheMenuHandler.java
@@ -17,6 +17,8 @@ import android.net.Uri;
import android.view.Menu;
import android.view.MenuItem;
+import java.util.Date;
+
/**
* Shared menu handling for all activities having menu items related to a cache.
*
@@ -83,10 +85,11 @@ public class CacheMenuHandler extends AbstractUIFactory {
final boolean calendarAddOnAvailable = ProcessUtils.isIntentAvailable(ICalendar.INTENT, Uri.parse(ICalendar.URI_SCHEME + "://" + ICalendar.URI_HOST));
if (calendarAddOnAvailable) {
+ final Date hiddenDate = cache.getHiddenDate();
final Parameters params = new Parameters(
ICalendar.PARAM_NAME, cache.getName(),
ICalendar.PARAM_NOTE, StringUtils.defaultString(cache.getPersonalNote()),
- ICalendar.PARAM_HIDDEN_DATE, String.valueOf(cache.getHiddenDate().getTime()),
+ ICalendar.PARAM_HIDDEN_DATE, hiddenDate != null ? String.valueOf(hiddenDate.getTime()) : StringUtils.EMPTY,
ICalendar.PARAM_URL, StringUtils.defaultString(cache.getUrl()),
ICalendar.PARAM_COORDS, cache.getCoords() == null ? "" : cache.getCoords().format(GeopointFormatter.Format.LAT_LON_DECMINUTE_RAW),
ICalendar.PARAM_LOCATION, StringUtils.defaultString(cache.getLocation()),
diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java
index 7c19a83..4677f03 100644
--- a/main/src/cgeo/geocaching/DataStore.java
+++ b/main/src/cgeo/geocaching/DataStore.java
@@ -1067,10 +1067,11 @@ public class DataStore {
values.put("name", cache.getName());
values.put("owner", cache.getOwnerDisplayName());
values.put("owner_real", cache.getOwnerUserId());
- if (cache.getHiddenDate() == null) {
+ final Date hiddenDate = cache.getHiddenDate();
+ if (hiddenDate == null) {
values.put("hidden", 0);
} else {
- values.put("hidden", cache.getHiddenDate().getTime());
+ values.put("hidden", hiddenDate.getTime());
}
values.put("hint", cache.getHint());
values.put("size", cache.getSize() == null ? "" : cache.getSize().id);
diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java
index 7c3a2d6..8cfedb3 100644
--- a/main/src/cgeo/geocaching/Geocache.java
+++ b/main/src/cgeo/geocaching/Geocache.java
@@ -37,6 +37,7 @@ import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.Nullable;
import android.app.Activity;
import android.content.Intent;
@@ -750,6 +751,7 @@ public class Geocache implements ICache, IWaypoint {
}
@Override
+ @Nullable
public Date getHiddenDate() {
return hidden;
}
diff --git a/main/src/cgeo/geocaching/LogCacheActivity.java b/main/src/cgeo/geocaching/LogCacheActivity.java
index 34f036c..f17a008 100644
--- a/main/src/cgeo/geocaching/LogCacheActivity.java
+++ b/main/src/cgeo/geocaching/LogCacheActivity.java
@@ -344,7 +344,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
rating = GCVote.NO_RATING;
if (cache.isEventCache()) {
final Date eventDate = cache.getHiddenDate();
- boolean expired = DateUtils.daysSince(eventDate.getTime()) >= 0;
+ boolean expired = DateUtils.isPastEvent(cache);
if (cache.hasOwnLog(LogType.WILL_ATTEND) || expired) {
typeSelected = cache.hasOwnLog(LogType.ATTENDED) ? LogType.NOTE : LogType.ATTENDED;
diff --git a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
index 4b524bf..d6c2fe6 100644
--- a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
+++ b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.location.Location;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Locale;
@@ -119,8 +120,9 @@ public abstract class AbstractLocusApp extends AbstractApp {
pg.premiumOnly = cache.isPremiumMembersOnly();
pg.name = cache.getName();
pg.placedBy = cache.getOwnerDisplayName();
- if (cache.getHiddenDate() != null) {
- pg.hidden = ISO8601DATE.format(cache.getHiddenDate().getTime());
+ final Date hiddenDate = cache.getHiddenDate();
+ if (hiddenDate != null) {
+ pg.hidden = ISO8601DATE.format(hiddenDate.getTime());
}
int locusId = toLocusType(cache.getType());
if (locusId != NO_LOCUS_ID) {
diff --git a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
index 5db562e..f1cee05 100644
--- a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
+++ b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
@@ -22,6 +22,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
public final class CacheDetailsCreator {
@@ -179,12 +180,17 @@ public final class CacheDetailsCreator {
}
public void addEventDate(@NonNull Geocache cache) {
- if (cache.isEventCache() && cache.getHiddenDate() != null) {
- final long time = cache.getHiddenDate().getTime();
- if (time > 0) {
- final String dateString = DateUtils.formatDateTime(CgeoApplication.getInstance().getBaseContext(), time, DateUtils.FORMAT_SHOW_WEEKDAY) + ", " + Formatter.formatFullDate(time);
- add(R.string.cache_event, dateString);
- }
+ if (!cache.isEventCache()) {
+ return;
+ }
+ final Date hiddenDate = cache.getHiddenDate();
+ if (hiddenDate == null) {
+ return;
+ }
+ final long time = hiddenDate.getTime();
+ if (time > 0) {
+ final String dateString = DateUtils.formatDateTime(CgeoApplication.getInstance().getBaseContext(), time, DateUtils.FORMAT_SHOW_WEEKDAY) + ", " + Formatter.formatFullDate(time);
+ add(R.string.cache_event, dateString);
}
}
}
diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
index 56cc60a..9646c6a 100644
--- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java
+++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
@@ -400,7 +400,7 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> {
}
Spannable spannable = null;
- if (cache.isDisabled() || cache.isArchived() || isPastEvent(cache)) { // strike
+ if (cache.isDisabled() || cache.isArchived() || DateUtils.isPastEvent(cache)) { // strike
spannable = Spannable.Factory.getInstance().newSpannable(cache.getName());
spannable.setSpan(new StrikethroughSpan(), 0, spannable.toString().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@@ -489,10 +489,6 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> {
return v;
}
- private static boolean isPastEvent(final Geocache cache) {
- return cache.isEventCache() && DateUtils.daysSince(cache.getHiddenDate().getTime()) > 0;
- }
-
private static Drawable getCacheIcon(Geocache cache) {
int hashCode = getIconHashCode(cache.getType(), cache.hasUserModifiedCoords() || cache.hasFinalDefined());
final Drawable drawable = gcIconDrawables.get(hashCode);
diff --git a/main/src/cgeo/geocaching/ui/Formatter.java b/main/src/cgeo/geocaching/ui/Formatter.java
index 49c7a50..9242b9a 100644
--- a/main/src/cgeo/geocaching/ui/Formatter.java
+++ b/main/src/cgeo/geocaching/ui/Formatter.java
@@ -15,6 +15,7 @@ import android.text.format.DateUtils;
import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
public abstract class Formatter {
@@ -110,7 +111,7 @@ public abstract class Formatter {
/**
* Generate a numeric date and time string according to system-wide settings (locale,
* date format) such as "7 september at 12:35".
- *
+ *
* @param date
* milliseconds since the epoch
* @return the formatted string
@@ -153,8 +154,11 @@ public abstract class Formatter {
// don't show "not chosen" for events and virtuals, that should be the normal case
if (cache.getSize() != CacheSize.UNKNOWN && cache.showSize()) {
infos.add(cache.getSize().getL10n());
- } else if (cache.isEventCache() && cache.getHiddenDate() != null) {
- infos.add(Formatter.formatShortDate(cache.getHiddenDate().getTime()));
+ } else if (cache.isEventCache()) {
+ final Date hiddenDate = cache.getHiddenDate();
+ if (hiddenDate != null) {
+ infos.add(Formatter.formatShortDate(hiddenDate.getTime()));
+ }
}
}
diff --git a/main/src/cgeo/geocaching/utils/DateUtils.java b/main/src/cgeo/geocaching/utils/DateUtils.java
index b148979..9aa4222 100644
--- a/main/src/cgeo/geocaching/utils/DateUtils.java
+++ b/main/src/cgeo/geocaching/utils/DateUtils.java
@@ -1,6 +1,9 @@
package cgeo.geocaching.utils;
+import cgeo.geocaching.Geocache;
+
import java.util.Calendar;
+import java.util.Date;
public final class DateUtils {
@@ -20,4 +23,13 @@ public final class DateUtils {
today.set(Calendar.HOUR_OF_DAY, 0);
return (int) Math.round((today.getTimeInMillis() - logDate.getTimeInMillis()) / 86400000d);
}
+
+ public static boolean isPastEvent(final Geocache cache) {
+ if (!cache.isEventCache()) {
+ return false;
+ }
+ final Date hiddenDate = cache.getHiddenDate();
+ return hiddenDate != null && DateUtils.daysSince(hiddenDate.getTime()) > 0;
+ }
+
}