aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/LogCacheActivity.java4
-rw-r--r--main/src/cgeo/geocaching/utils/DateUtils.java17
2 files changed, 20 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/LogCacheActivity.java b/main/src/cgeo/geocaching/LogCacheActivity.java
index 1d31e27..c60d2e4 100644
--- a/main/src/cgeo/geocaching/LogCacheActivity.java
+++ b/main/src/cgeo/geocaching/LogCacheActivity.java
@@ -618,6 +618,10 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
Dialogs.message(this, R.string.log_post_not_possible);
return;
}
+ if (DateUtils.isFuture(date)) {
+ Dialogs.message(this, R.string.log_date_future_not_allowed);
+ return;
+ }
if (typeSelected.mustConfirmLog()) {
Dialogs.confirm(this, R.string.confirm_log_title, res.getString(R.string.confirm_log_message, typeSelected.getL10n()), new OnClickListener() {
diff --git a/main/src/cgeo/geocaching/utils/DateUtils.java b/main/src/cgeo/geocaching/utils/DateUtils.java
index 9aa4222..8278be7 100644
--- a/main/src/cgeo/geocaching/utils/DateUtils.java
+++ b/main/src/cgeo/geocaching/utils/DateUtils.java
@@ -11,7 +11,7 @@ public final class DateUtils {
// utility class
}
- public static int daysSince(long date) {
+ public static int daysSince(final long date) {
final Calendar logDate = Calendar.getInstance();
logDate.setTimeInMillis(date);
logDate.set(Calendar.SECOND, 0);
@@ -24,6 +24,10 @@ public final class DateUtils {
return (int) Math.round((today.getTimeInMillis() - logDate.getTimeInMillis()) / 86400000d);
}
+ public static int daysSince(final Calendar date) {
+ return daysSince(date.getTimeInMillis());
+ }
+
public static boolean isPastEvent(final Geocache cache) {
if (!cache.isEventCache()) {
return false;
@@ -32,4 +36,15 @@ public final class DateUtils {
return hiddenDate != null && DateUtils.daysSince(hiddenDate.getTime()) > 0;
}
+ /**
+ * Return whether the given date is *more* than 1 day away. We allow 1 day to be "present time" to compensate for
+ * potential timezone issues.
+ *
+ * @param date
+ * @return
+ */
+ public static boolean isFuture(final Calendar date) {
+ return daysSince(date) < -1;
+ }
+
}