diff options
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/LogCacheActivity.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/DateUtils.java | 17 |
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; + } + } |
