From 32309bb88b5053056542f45aeb8f42f2c1dab3fb Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 1 Jan 2014 02:38:14 -0600 Subject: [PATCH] Add newDate helper methods --- .../todoroo/andlib/utility/DateUtilities.java | 13 +++++----- .../java/com/todoroo/astrid/api/PermaSql.java | 6 +++-- .../com/todoroo/astrid/data/RemoteModel.java | 5 ++-- .../java/com/todoroo/astrid/data/Task.java | 6 +++-- .../astrid/sync/SyncProviderPreferences.java | 9 ++++--- .../java/org/tasks/date/DateTimeUtils.java | 22 ++++++++++++++++ .../astrid/backup/BackupServiceTests.java | 5 ++-- .../astrid/reminders/NotificationTests.java | 4 +-- .../reminders/ReminderServiceTests.java | 4 +-- .../astrid/repeats/NewRepeatTests.java | 16 +++++++----- .../astrid/service/TitleParserTest.java | 26 ++++++++++--------- .../todoroo/astrid/adapter/TaskAdapter.java | 9 ++++--- .../astrid/alarms/AlarmControlSet.java | 8 +++--- .../astrid/alarms/AlarmDetailExposer.java | 6 +++-- .../todoroo/astrid/alarms/AlarmService.java | 5 ++-- .../astrid/backup/BackupDateUtilities.java | 4 ++- .../astrid/backup/BackupPreferences.java | 4 ++- .../calls/PhoneStateChangedReceiver.java | 4 ++- .../todoroo/astrid/files/FileUtilities.java | 4 ++- .../astrid/gcal/CalendarAlarmScheduler.java | 4 +-- .../astrid/gcal/CalendarReminderActivity.java | 6 ++--- .../astrid/gtasks/api/GtasksApiUtilities.java | 14 +++++----- .../gtasks/sync/GtasksSyncV2Provider.java | 6 +++-- .../astrid/notes/EditNoteActivity.java | 7 ++--- .../reminders/NotificationFragment.java | 4 ++- .../astrid/reminders/Notifications.java | 5 ++-- .../astrid/reminders/ReminderDialog.java | 4 ++- .../astrid/reminders/ReminderService.java | 14 +++++----- .../astrid/reminders/WhenReminder.java | 4 +-- .../astrid/repeats/RepeatControlSet.java | 4 ++- .../repeats/RepeatTaskCompleteListener.java | 19 +++++++------- .../com/todoroo/astrid/ui/CalendarView.java | 6 +++-- .../todoroo/astrid/ui/DateAndTimePicker.java | 14 +++++----- .../todoroo/astrid/ui/DateChangedAlerts.java | 5 ++-- .../astrid/ui/HideUntilControlSet.java | 14 +++++----- .../todoroo/andlib/test/TranslationTests.java | 3 ++- .../andlib/utility/DateUtilitiesTest.java | 7 ++--- .../astrid/repeats/AdvancedRepeatTest.java | 13 +++++----- .../repeats/RepeatAfterCompleteTest.java | 8 +++--- .../RepeatTaskCompleteListenerTest.java | 11 ++++---- 40 files changed, 203 insertions(+), 129 deletions(-) diff --git a/api/src/main/java/com/todoroo/andlib/utility/DateUtilities.java b/api/src/main/java/com/todoroo/andlib/utility/DateUtilities.java index 83e49b122..c7ba58867 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/DateUtilities.java +++ b/api/src/main/java/com/todoroo/andlib/utility/DateUtilities.java @@ -19,6 +19,7 @@ import java.util.Date; import java.util.Locale; import static org.tasks.date.DateTimeUtils.currentTimeMillis; +import static org.tasks.date.DateTimeUtils.newDate; public class DateUtilities { @@ -57,7 +58,7 @@ public class DateUtilities { /** Returns unixtime one month from now */ public static long oneMonthFromNow() { - Date date = new Date(now()); + Date date = newDate(); date.setMonth(date.getMonth() + 1); return date.getTime(); } @@ -156,7 +157,7 @@ public class DateUtilities { value = "d '#'"; } - if (date.getYear() != (new Date()).getYear()) { + if (date.getYear() != (newDate()).getYear()) { value = value + "\nyyyy"; } if (arrayBinaryContains(locale.getLanguage(), "ja", "zh")) //$NON-NLS-1$ @@ -204,8 +205,8 @@ public class DateUtilities { * @return yesterday, today, tomorrow, or null */ public static String getRelativeDay(Context context, long date, boolean abbreviated) { - long today = clearTime(new Date()); - long input = clearTime(new Date(date)); + long today = clearTime(newDate()); + long input = clearTime(newDate(date)); if(today == input) { return context.getString(R.string.today).toLowerCase(); @@ -221,10 +222,10 @@ public class DateUtilities { if(today + DateUtilities.ONE_WEEK >= input && today - DateUtilities.ONE_WEEK <= input) { - return abbreviated ? DateUtilities.getWeekdayShort(new Date(date)) : DateUtilities.getWeekday(new Date(date)); + return abbreviated ? DateUtilities.getWeekdayShort(newDate(date)) : DateUtilities.getWeekday(newDate(date)); } - return DateUtilities.getDateStringHideYear(new Date(date)); + return DateUtilities.getDateStringHideYear(newDate(date)); } public static boolean isEndOfMonth(Date d) { diff --git a/api/src/main/java/com/todoroo/astrid/api/PermaSql.java b/api/src/main/java/com/todoroo/astrid/api/PermaSql.java index 420312e33..b0a149e5b 100644 --- a/api/src/main/java/com/todoroo/astrid/api/PermaSql.java +++ b/api/src/main/java/com/todoroo/astrid/api/PermaSql.java @@ -9,6 +9,8 @@ import com.todoroo.andlib.utility.DateUtilities; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * PermaSql allows for creating SQL statements that can be saved and used * later without dates getting stale. It also allows these values to be @@ -79,7 +81,7 @@ public final class PermaSql { } private static String replaceEodValues(String value) { - Date date = new Date(); + Date date = newDate(); date.setHours(23); date.setMinutes(59); date.setSeconds(59); @@ -94,7 +96,7 @@ public final class PermaSql { } private static String replaceNoonValues(String value) { - Date date = new Date(); + Date date = newDate(); date.setHours(12); date.setMinutes(0); date.setSeconds(0); diff --git a/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java b/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java index 4809dfa8e..10893f88c 100644 --- a/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java +++ b/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java @@ -23,7 +23,8 @@ import org.json.JSONObject; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.util.Date; + +import static org.tasks.date.DateTimeUtils.newDate; /** * A model that is synchronized to a remote server and has a remote id @@ -109,7 +110,7 @@ abstract public class RemoteModel extends AbstractModel { tag_date = tagData.getValue(TagData.CREATION_DATE); } if (tag_date == 0) { - tag_date = DateUtilities.dateToUnixtime(new Date()); + tag_date = DateUtilities.dateToUnixtime(newDate()); } return String.format("cached::%s%s", tagData.getValue(TagData.NAME), tag_date); } diff --git a/api/src/main/java/com/todoroo/astrid/data/Task.java b/api/src/main/java/com/todoroo/astrid/data/Task.java index 67b0bbeb3..fba107378 100644 --- a/api/src/main/java/com/todoroo/astrid/data/Task.java +++ b/api/src/main/java/com/todoroo/astrid/data/Task.java @@ -23,6 +23,8 @@ import org.tasks.api.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Data Model which represents a task users need to accomplish. * @@ -394,7 +396,7 @@ public final class Task extends RemoteModel { return date; } - Date dueDate = new Date(date / 1000L * 1000L); // get rid of millis + Date dueDate = newDate(date / 1000L * 1000L); // get rid of millis if(setting != URGENCY_SPECIFIC_DAY_TIME) { dueDate.setHours(12); dueDate.setMinutes(0); @@ -441,7 +443,7 @@ public final class Task extends RemoteModel { return date; } - Date hideUntil = new Date(date / 1000L * 1000L); // get rid of millis + Date hideUntil = newDate(date / 1000L * 1000L); // get rid of millis if(setting != HIDE_UNTIL_SPECIFIC_DAY_TIME && setting != HIDE_UNTIL_DUE_TIME) { hideUntil.setHours(0); hideUntil.setMinutes(0); diff --git a/api/src/main/java/com/todoroo/astrid/sync/SyncProviderPreferences.java b/api/src/main/java/com/todoroo/astrid/sync/SyncProviderPreferences.java index 61b400105..6be0d3847 100644 --- a/api/src/main/java/com/todoroo/astrid/sync/SyncProviderPreferences.java +++ b/api/src/main/java/com/todoroo/astrid/sync/SyncProviderPreferences.java @@ -26,10 +26,11 @@ import com.todoroo.andlib.utility.TodorooPreferenceActivity; import org.tasks.api.R; -import java.util.Date; import java.util.HashMap; import java.util.Set; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Utility class for common synchronization action: displaying synchronization * preferences and an action panel so users can initiate actions from the menu. @@ -136,13 +137,13 @@ abstract public class SyncProviderPreferences extends TodorooPreferenceActivity if(getUtilities().getLastAttemptedSyncDate() != 0) { status = r.getString(R.string.sync_status_failed, DateUtilities.getDateStringWithTime(SyncProviderPreferences.this, - new Date(getUtilities().getLastAttemptedSyncDate()))); + newDate(getUtilities().getLastAttemptedSyncDate()))); statusColor = Color.rgb(100, 0, 0); } else { long lastSyncDate = getUtilities().getLastSyncDate(); String dateString = lastSyncDate > 0 ? DateUtilities.getDateStringWithTime(SyncProviderPreferences.this, - new Date(lastSyncDate)) : ""; //$NON-NLS-1$ + newDate(lastSyncDate)) : ""; //$NON-NLS-1$ status = r.getString(R.string.sync_status_errors, dateString); statusColor = Color.rgb(100, 100, 0); } @@ -150,7 +151,7 @@ abstract public class SyncProviderPreferences extends TodorooPreferenceActivity else if(getUtilities().getLastSyncDate() > 0) { status = r.getString(R.string.sync_status_success, DateUtilities.getDateStringWithTime(SyncProviderPreferences.this, - new Date(getUtilities().getLastSyncDate()))); + newDate(getUtilities().getLastSyncDate()))); statusColor = Color.rgb(0, 100, 0); } else { status = r.getString(R.string.sync_status_never); diff --git a/api/src/main/java/org/tasks/date/DateTimeUtils.java b/api/src/main/java/org/tasks/date/DateTimeUtils.java index 973626f99..a6617bd68 100644 --- a/api/src/main/java/org/tasks/date/DateTimeUtils.java +++ b/api/src/main/java/org/tasks/date/DateTimeUtils.java @@ -1,9 +1,31 @@ package org.tasks.date; +import java.util.Date; + public class DateTimeUtils { public static long currentTimeMillis() { return org.joda.time.DateTimeUtils.currentTimeMillis(); } + public static Date newDate() { + return newDate(currentTimeMillis()); + } + + public static Date newDate(long date) { + return new Date(date); + } + + public static Date newDate(int year, int month, int day) { + return new Date(year - 1900, month - 1, day); + } + + public static Date newDate(int year, int month, int day, int hour, int minute, int second) { + return new Date(year - 1900, month - 1, day, hour, minute, second); + } + + public static Date newDateUtc(int year, int month, int day, int hour, int minute, int second) { + return newDate(Date.UTC(year - 1900, month - 1, day, hour, minute, second)); + } + } diff --git a/astrid/src/instrumentTest/java/com/todoroo/astrid/backup/BackupServiceTests.java b/astrid/src/instrumentTest/java/com/todoroo/astrid/backup/BackupServiceTests.java index c7bc2c9a3..04a45dfd0 100644 --- a/astrid/src/instrumentTest/java/com/todoroo/astrid/backup/BackupServiceTests.java +++ b/astrid/src/instrumentTest/java/com/todoroo/astrid/backup/BackupServiceTests.java @@ -19,7 +19,8 @@ import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.Date; + +import static org.tasks.date.DateTimeUtils.newDate; public class BackupServiceTests extends DatabaseTestCase { @@ -148,7 +149,7 @@ public class BackupServiceTests extends DatabaseTestCase { // create some backup files for(int i = 0; i < 10; i++) { DateFormat df = new SimpleDateFormat("MMdd-HHmm"); - String name = String.format("auto.%02d%s.xml", i, df.format(new Date())); + String name = String.format("auto.%02d%s.xml", i, df.format(newDate())); File tempFile = new File(temporaryDirectory, name); tempFile.createNewFile(); } diff --git a/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/NotificationTests.java b/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/NotificationTests.java index 6e1b18fcc..a1f75df39 100644 --- a/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/NotificationTests.java +++ b/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/NotificationTests.java @@ -18,7 +18,7 @@ import com.todoroo.astrid.test.DatabaseTestCase; import org.tasks.R; -import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; public class NotificationTests extends DatabaseTestCase { @@ -122,7 +122,7 @@ public class NotificationTests extends DatabaseTestCase { Intent intent = new Intent(); intent.putExtra(Notifications.ID_KEY, task.getId()); - int hour = new Date().getHours(); + int hour = newDate().getHours(); Preferences.setStringFromInteger(R.string.p_rmd_quietStart, hour - 1); Preferences.setStringFromInteger(R.string.p_rmd_quietEnd, hour + 1); diff --git a/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/ReminderServiceTests.java b/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/ReminderServiceTests.java index 35e912539..c432e43d2 100644 --- a/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/ReminderServiceTests.java +++ b/astrid/src/instrumentTest/java/com/todoroo/astrid/reminders/ReminderServiceTests.java @@ -13,7 +13,7 @@ import com.todoroo.astrid.reminders.ReminderService.AlarmScheduler; import com.todoroo.astrid.test.DatabaseTestCase; import com.todoroo.astrid.utility.AstridPreferences; -import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; public class ReminderServiceTests extends DatabaseTestCase { @@ -240,7 +240,7 @@ public class ReminderServiceTests extends DatabaseTestCase { public void createAlarm(Task task, long time, int type) { if(time == 0 || time == Long.MAX_VALUE) return; - fail("created alarm, no alarm expected (" + type + ": " + new Date(time)); + fail("created alarm, no alarm expected (" + type + ": " + newDate(time)); } } diff --git a/astrid/src/instrumentTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java b/astrid/src/instrumentTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java index bcb5ef450..787ecb529 100644 --- a/astrid/src/instrumentTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java +++ b/astrid/src/instrumentTest/java/com/todoroo/astrid/repeats/NewRepeatTests.java @@ -31,6 +31,8 @@ import java.util.Date; import java.util.HashSet; import java.util.List; +import static org.tasks.date.DateTimeUtils.newDate; + public class NewRepeatTests extends DatabaseTestCase { @Autowired @@ -71,12 +73,12 @@ public class NewRepeatTests extends DatabaseTestCase { } protected void assertTimesMatch(long expectedTime, long newDueDate) { - assertTrue(String.format("Expected %s, was %s", new Date(expectedTime), new Date(newDueDate)), + assertTrue(String.format("Expected %s, was %s", newDate(expectedTime), newDate(newDueDate)), Math.abs(expectedTime - newDueDate) < 5000); } protected void assertTimesWithinOneHour(long expectedTime, long newDueDate) { - assertTrue(String.format("Expected %s, was %s", new Date(expectedTime), new Date(newDueDate)), + assertTrue(String.format("Expected %s, was %s", newDate(expectedTime), newDate(newDueDate)), Math.abs(expectedTime - newDueDate) <= DateUtilities.ONE_HOUR); } @@ -105,7 +107,7 @@ public class NewRepeatTests extends DatabaseTestCase { Task t = new Task(); t.setValue(Task.TITLE, title); long dueDate = DateUtilities.now() + DateUtilities.ONE_DAY * 3; - Date adjustDate = new Date(dueDate); + Date adjustDate = newDate(dueDate); adjustDate.setSeconds(1); dueDate = adjustDate.getTime(); dueDate = (dueDate / 1000L) * 1000L; // Strip milliseconds @@ -129,7 +131,7 @@ public class NewRepeatTests extends DatabaseTestCase { t = taskDao.fetch(t.getId(), Task.PROPERTIES); // Refetch long completionDate = setCompletionDate(completeBefore, t, dueDate); - System.err.println("Completion date: " + new Date(completionDate)); + System.err.println("Completion date: " + newDate(completionDate)); waitAndSync(); @@ -176,7 +178,7 @@ public class NewRepeatTests extends DatabaseTestCase { } Weekday[] allWeekdays = Weekday.values(); - Date date = new Date(result); + Date date = newDate(result); Weekday start = allWeekdays[date.getDay()]; int i; for (i = 0; i < allWeekdays.length; i++) { @@ -226,7 +228,7 @@ public class NewRepeatTests extends DatabaseTestCase { } else if (frequency.equals(Frequency.WEEKLY)) { expectedTime = computeWeeklyCaseDueDate(fromDate, rrule, fromCompletion); } else if (frequency.equals(Frequency.MONTHLY)) { - Date originalDate = new Date(expectedTime); + Date originalDate = newDate(expectedTime); for (int i = 0; i < interval; i++) { int month = originalDate.getMonth(); if (month == 11) { // Roll over the year and set the month to January @@ -238,7 +240,7 @@ public class NewRepeatTests extends DatabaseTestCase { } expectedTime = originalDate.getTime(); } else if (frequency.equals(Frequency.YEARLY)) { - Date originalCompleteDate = new Date(expectedTime); + Date originalCompleteDate = newDate(expectedTime); originalCompleteDate.setYear(originalCompleteDate.getYear() + interval); expectedTime = originalCompleteDate.getTime(); } diff --git a/astrid/src/instrumentTest/java/com/todoroo/astrid/service/TitleParserTest.java b/astrid/src/instrumentTest/java/com/todoroo/astrid/service/TitleParserTest.java index c0990a290..01612e81b 100644 --- a/astrid/src/instrumentTest/java/com/todoroo/astrid/service/TitleParserTest.java +++ b/astrid/src/instrumentTest/java/com/todoroo/astrid/service/TitleParserTest.java @@ -19,6 +19,8 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + public class TitleParserTest extends DatabaseTestCase { @Override @@ -62,7 +64,7 @@ public class TitleParserTest extends DatabaseTestCase { for (int i = 0; i < 23; i++) { String testTitle = "Jog on " + titleMonthStrings[i] + " 12."; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMonth(), i/2); assertEquals(date.getDate(), 12); } @@ -74,7 +76,7 @@ public class TitleParserTest extends DatabaseTestCase { for (int i = 1; i < 13; i++) { String testTitle = "Jog on " + i + "/12/13"; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMonth(), i-1); assertEquals(date.getDate(), 12); assertEquals(date.getYear(), 113); @@ -86,7 +88,7 @@ public class TitleParserTest extends DatabaseTestCase { Task task = new Task(); String testTitle = "Jog on 23:21."; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 21); assertEquals(date.getHours(), 23); } @@ -96,7 +98,7 @@ public class TitleParserTest extends DatabaseTestCase { Task task = new Task(); String testTitle = "Jog at 8:33 PM."; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 33); assertEquals(date.getHours(), 20); } @@ -106,7 +108,7 @@ public class TitleParserTest extends DatabaseTestCase { Task task = new Task(); String testTitle = "Jog at 8 PM."; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 0); assertEquals(date.getHours(), 20); } @@ -116,7 +118,7 @@ public class TitleParserTest extends DatabaseTestCase { Task task = new Task(); String testTitle = "Jog at 8 o'clock AM."; insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 0); assertEquals(date.getHours(), 8); } @@ -131,7 +133,7 @@ public class TitleParserTest extends DatabaseTestCase { }; for (String testTitle: testTitles) { insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 0); assertEquals(date.getHours(), 8); } @@ -149,7 +151,7 @@ public class TitleParserTest extends DatabaseTestCase { }; for (String testTitle: testTitles) { insertTitleAddTask(testTitle, task); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getMinutes(), 30); assertEquals(date.getHours(), 12); } @@ -171,7 +173,7 @@ public class TitleParserTest extends DatabaseTestCase { String title = "Jog today"; task.setValue(Task.TITLE, title); TaskService.createWithValues(task, null, title); - Date date = new Date(task.getValue(Task.DUE_DATE)); + Date date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getDay()+1, today.get(Calendar.DAY_OF_WEEK)); //Calendar starts 1-6, date.getDay() starts at 0 @@ -179,7 +181,7 @@ public class TitleParserTest extends DatabaseTestCase { title = "Jog tomorrow"; task.setValue(Task.TITLE, title); TaskService.createWithValues(task, null, title); - date = new Date(task.getValue(Task.DUE_DATE)); + date = newDate(task.getValue(Task.DUE_DATE)); assertEquals((date.getDay()+1) % 7, (today.get(Calendar.DAY_OF_WEEK)+1) % 7); String[] days = { @@ -206,14 +208,14 @@ public class TitleParserTest extends DatabaseTestCase { title = "Jog "+ days[i]; task.setValue(Task.TITLE, title); TaskService.createWithValues(task, null, title); - date = new Date(task.getValue(Task.DUE_DATE)); + date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getDay(), i); task = new Task(); title = "Jog "+ abrevDays[i]; task.setValue(Task.TITLE, title); TaskService.createWithValues(task, null, title); - date = new Date(task.getValue(Task.DUE_DATE)); + date = newDate(task.getValue(Task.DUE_DATE)); assertEquals(date.getDay(), i); } diff --git a/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java index 6cabec11f..8b20db44b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java @@ -75,12 +75,13 @@ import org.tasks.R; import java.util.Collection; import java.util.Collections; -import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.concurrent.atomic.AtomicReference; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Adapter for displaying a user's tasks as a list * @@ -667,7 +668,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { String string = DateUtilities.getRelativeDay(fragment.getActivity(), date); if(Task.hasDueTime(date)) { string = String.format(formatString, string, //$NON-NLS-1$ - DateUtilities.getTimeString(fragment.getActivity(), new Date(date))); + DateUtilities.getTimeString(fragment.getActivity(), newDate(date))); } dateCache.put(date, string); @@ -712,8 +713,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable { continue; } else if(Constants.DEBUG) { System.err.println("Forced loading of details: " + task.getId() + //$NON-NLS-1$ - "\n details: " + new Date(task.getValue(Task.DETAILS_DATE)) + //$NON-NLS-1$ - "\n modified: " + new Date(task.getValue(Task.MODIFICATION_DATE))); //$NON-NLS-1$ + "\n details: " + newDate(task.getValue(Task.DETAILS_DATE)) + //$NON-NLS-1$ + "\n modified: " + newDate(task.getValue(Task.MODIFICATION_DATE))); //$NON-NLS-1$ } addTaskToLoadingArray(task); diff --git a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmControlSet.java b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmControlSet.java index 3a84b320f..90aa843a7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmControlSet.java @@ -27,6 +27,8 @@ import org.tasks.R; import java.util.Date; import java.util.LinkedHashSet; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Control set to manage adding and removing tags * @@ -50,7 +52,7 @@ public final class AlarmControlSet extends TaskEditControlSet { TodorooCursor cursor = AlarmService.getInstance().getAlarms(model.getId()); try { for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { - addAlarm(new Date(cursor.get(AlarmFields.TIME))); + addAlarm(newDate(cursor.get(AlarmFields.TIME))); } } finally { cursor.close(); @@ -63,7 +65,7 @@ public final class AlarmControlSet extends TaskEditControlSet { View.OnClickListener addAlarmListener = new View.OnClickListener() { @Override public void onClick(View arg0) { - addAlarm(new Date()); + addAlarm(newDate()); } }; getView().findViewById(R.id.alarms_add).setOnClickListener(addAlarmListener); @@ -108,7 +110,7 @@ public final class AlarmControlSet extends TaskEditControlSet { public void onDateAndTimeSelected(long date) { if (date > 0) { if (!pickerDialog.hasTime()) { - Date d = new Date(date); + Date d = newDate(date); d.setHours(18); d.setMinutes(0); d.setSeconds(0); diff --git a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmDetailExposer.java b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmDetailExposer.java index 2039c12d8..10cb2493d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmDetailExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmDetailExposer.java @@ -18,6 +18,8 @@ import com.todoroo.astrid.data.Metadata; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Exposes Task Detail for tags, i.e. "Tags: frogs, animals" * @@ -64,8 +66,8 @@ public class AlarmDetailExposer extends BroadcastReceiver { return null; } int flags = DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME; - Date today = new Date(); - Date alarm = new Date(nextTime); + Date today = newDate(); + Date alarm = newDate(nextTime); if(today.getYear() == alarm.getYear()) { flags |= DateUtils.FORMAT_NO_YEAR; } diff --git a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java index 7c56e97f3..d81a300de 100644 --- a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java +++ b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java @@ -30,9 +30,10 @@ import com.todoroo.astrid.service.MetadataService.SynchronizeMetadataCallback; import com.todoroo.astrid.utility.Constants; import java.util.ArrayList; -import java.util.Date; import java.util.LinkedHashSet; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Provides operations for working with alerts * @@ -191,7 +192,7 @@ public class AlarmService { } else if(time > DateUtilities.now()) { if(Constants.DEBUG) { Log.e("Astrid", "Alarm (" + taskId + ", " + ReminderService.TYPE_ALARM + - ", " + alarm.getId() + ") set for " + new Date(time)); + ", " + alarm.getId() + ") set for " + newDate(time)); } am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); } diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupDateUtilities.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupDateUtilities.java index a77c11392..f28aa7c16 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupDateUtilities.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupDateUtilities.java @@ -12,6 +12,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Date Utility functions for backups * @@ -55,7 +57,7 @@ public class BackupDateUtilities { */ public static String getDateForExport() { DateFormat df = new SimpleDateFormat("yyMMdd-HHmm"); - return df.format(new Date()); + return df.format(newDate()); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java index 140d20495..982dfe2e2 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/BackupPreferences.java @@ -24,6 +24,8 @@ import org.tasks.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Displays synchronization preferences and an action panel so users can * initiate actions from the menu. @@ -123,7 +125,7 @@ public class BackupPreferences extends TodorooPreferenceActivity { } else if(last > 0) { status = r.getString(R.string.backup_status_success, DateUtilities.getDateStringWithTime(BackupPreferences.this, - new Date(last))); + newDate(last))); statusColor = Color.rgb(0, 100, 0); preference.setOnPreferenceClickListener(null); } else { diff --git a/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java b/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java index c6a05813e..6712ec1f6 100644 --- a/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java +++ b/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java @@ -24,6 +24,8 @@ import org.tasks.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + public class PhoneStateChangedReceiver extends BroadcastReceiver { private static final String PREF_LAST_INCOMING_NUMBER = "last_incoming_number"; @@ -108,7 +110,7 @@ public class PhoneStateChangedReceiver extends BroadcastReceiver { int nameIndex = calls.getColumnIndex(Calls.CACHED_NAME); String name = calls.getString(nameIndex); - String timeString = DateUtilities.getTimeString(context, new Date(date)); + String timeString = DateUtilities.getTimeString(context, newDate(date)); long contactId = getContactIdFromNumber(context, number); diff --git a/astrid/src/main/java/com/todoroo/astrid/files/FileUtilities.java b/astrid/src/main/java/com/todoroo/astrid/files/FileUtilities.java index 8e556aaf4..147290e4b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/files/FileUtilities.java +++ b/astrid/src/main/java/com/todoroo/astrid/files/FileUtilities.java @@ -19,6 +19,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.atomic.AtomicReference; +import static org.tasks.date.DateTimeUtils.newDate; + public class FileUtilities { /** @@ -51,7 +53,7 @@ public class FileUtilities { String dir = getAttachmentsDirectory(context).getAbsolutePath(); - String name = getNonCollidingFileName(dir, context.getString(prefixId) + " " + getDateStringForFilename(context, new Date()), extension); + String name = getNonCollidingFileName(dir, context.getString(prefixId) + " " + getDateStringForFilename(context, newDate()), extension); if (nameReference != null) { nameReference.set(name); diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmScheduler.java b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmScheduler.java index 74912cd1e..187029aea 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmScheduler.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmScheduler.java @@ -15,7 +15,7 @@ import com.todoroo.astrid.utility.Constants; import org.tasks.R; -import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; public class CalendarAlarmScheduler { @@ -62,7 +62,7 @@ public class CalendarAlarmScheduler { am.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); if (Constants.DEBUG) { - Log.w(TAG, "Scheduling calendar alarm for " + new Date(alarmTime)); + Log.w(TAG, "Scheduling calendar alarm for " + newDate(alarmTime)); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java index 49445acd4..af060703a 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarReminderActivity.java @@ -32,7 +32,7 @@ import com.todoroo.astrid.utility.Constants; import org.tasks.R; -import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; public class CalendarReminderActivity extends Activity { @@ -202,7 +202,7 @@ public class CalendarReminderActivity extends Activity { @Override public void onClick(DialogInterface dialog, int which) { createNewList(tag.getValue(TagData.NAME) + " " - + DateUtilities.getDateStringHideYear(new Date(startTime))); + + DateUtilities.getDateStringHideYear(newDate(startTime))); } }, new DialogInterface.OnClickListener() { @@ -244,7 +244,7 @@ public class CalendarReminderActivity extends Activity { long alarmTime = endTime + DateUtilities.ONE_MINUTE * 5; if (Constants.DEBUG) { - Log.w(CalendarAlarmScheduler.TAG, "Scheduling calendar alarm for " + new Date(alarmTime)); + Log.w(CalendarAlarmScheduler.TAG, "Scheduling calendar alarm for " + newDate(alarmTime)); } am.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent); dismissButton.performClick(); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java index 24cabd2dc..2d02edf51 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java @@ -10,18 +10,20 @@ import com.google.api.client.util.DateTime; import java.util.Date; import java.util.TimeZone; +import static org.tasks.date.DateTimeUtils.newDate; + public class GtasksApiUtilities { public static DateTime unixTimeToGtasksCompletionTime(long time) { if (time < 0) { return null; } - return new DateTime(new Date(time), TimeZone.getDefault()); + return new DateTime(newDate(time), TimeZone.getDefault()); } // public static String unixTimeToGtasksCompletionTime(long time) { // if (time == 0) return null; -// return new DateTime(new Date(time), TimeZone.getDefault()).toStringRfc3339(); +// return new DateTime(newDate(time), TimeZone.getDefault()).toStringRfc3339(); // } @@ -36,7 +38,7 @@ public class GtasksApiUtilities { // if (gtasksCompletedTime == null) return defaultValue; // try { // long utcTime = DateTime.parseRfc3339(gtasksCompletedTime).value; -// Date date = new Date(utcTime); +// Date date = newDate(utcTime); // return date.getTime(); // } catch (NumberFormatException e) { // return defaultValue; @@ -53,7 +55,7 @@ public class GtasksApiUtilities { if (time < 0) { return null; } - Date date = new Date(time); + Date date = newDate(time); date.setHours(0); date.setMinutes(0); date.setSeconds(0); @@ -73,8 +75,8 @@ public class GtasksApiUtilities { } try { long utcTime = gtasksDueTime.getValue(); //DateTime.parseRfc3339(gtasksDueTime).value; - Date date = new Date(utcTime); - Date returnDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000); + Date date = newDate(utcTime); + Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000); return returnDate.getTime(); } catch (NumberFormatException e) { return defaultValue; diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java index c042a4645..0df4d4541 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java @@ -51,6 +51,8 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import static org.tasks.date.DateTimeUtils.newDate; + public class GtasksSyncV2Provider extends SyncV2Provider { @Autowired TaskService taskService; @@ -350,8 +352,8 @@ public class GtasksSyncV2Provider extends SyncV2Provider { private void mergeDates(Task remote, Task local) { if(remote.hasDueDate() && local.hasDueTime()) { - Date newDate = new Date(remote.getValue(Task.DUE_DATE)); - Date oldDate = new Date(local.getValue(Task.DUE_DATE)); + Date newDate = newDate(remote.getValue(Task.DUE_DATE)); + Date oldDate = newDate(local.getValue(Task.DUE_DATE)); newDate.setHours(oldDate.getHours()); newDate.setMinutes(oldDate.getMinutes()); newDate.setSeconds(oldDate.getSeconds()); diff --git a/astrid/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java b/astrid/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java index b2cafaeda..60c16a162 100644 --- a/astrid/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java @@ -63,10 +63,11 @@ import org.tasks.R; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.Date; import java.util.LinkedList; import java.util.List; +import static org.tasks.date.DateTimeUtils.newDate; + public class EditNoteActivity extends LinearLayout implements TimerActionListener { private Task task; @@ -460,7 +461,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene public void timerStarted(Task t) { addComment(String.format("%s %s", //$NON-NLS-1$ getContext().getString(R.string.TEA_timer_comment_started), - DateUtilities.getTimeString(getContext(), new Date())), + DateUtilities.getTimeString(getContext(), newDate())), UserActivity.ACTION_TASK_COMMENT, t.getUuid(), t.getValue(Task.TITLE), @@ -472,7 +473,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene String elapsedTime = DateUtils.formatElapsedTime(t.getValue(Task.ELAPSED_SECONDS)); addComment(String.format("%s %s\n%s %s", //$NON-NLS-1$ getContext().getString(R.string.TEA_timer_comment_stopped), - DateUtilities.getTimeString(getContext(), new Date()), + DateUtilities.getTimeString(getContext(), newDate()), getContext().getString(R.string.TEA_timer_comment_spent), elapsedTime), UserActivity.ACTION_TASK_COMMENT, t.getUuid(), diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/NotificationFragment.java b/astrid/src/main/java/com/todoroo/astrid/reminders/NotificationFragment.java index ae8aa01ee..8786e05f9 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/NotificationFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/NotificationFragment.java @@ -30,6 +30,8 @@ import org.tasks.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * This activity is launched when a user opens up a notification from the * tray. It launches the appropriate activity based on the passed in parameters. @@ -129,7 +131,7 @@ public class NotificationFragment extends TaskListFragment { */ public static void snooze(Activity activity, OnTimeSetListener onTimeSet, SnoozeCallback snoozeCallback) { if(Preferences.getBoolean(R.string.p_rmd_snooze_dialog, false)) { - Date now = new Date(); + Date now = newDate(); now.setHours(now.getHours() + 1); int hour = now.getHours(); int minute = now.getMinutes(); diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java b/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java index ea791676f..c61bb2b96 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java @@ -44,11 +44,12 @@ import com.todoroo.astrid.voice.VoiceOutputService; import org.tasks.R; -import java.util.Date; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import static org.tasks.date.DateTimeUtils.newDate; + public class Notifications extends BroadcastReceiver { // --- constants @@ -471,7 +472,7 @@ public class Notifications extends BroadcastReceiver { int quietHoursStart = Preferences.getIntegerFromString(R.string.p_rmd_quietStart, -1); int quietHoursEnd = Preferences.getIntegerFromString(R.string.p_rmd_quietEnd, -1); if(quietHoursStart != -1 && quietHoursEnd != -1) { - int hour = new Date().getHours(); + int hour = newDate().getHours(); if(quietHoursStart <= quietHoursEnd) { if(hour >= quietHoursStart && hour < quietHoursEnd) { return true; diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderDialog.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderDialog.java index 391fc774d..7eb29c8a1 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderDialog.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderDialog.java @@ -27,6 +27,8 @@ import org.tasks.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * A dialog that shows your task reminder * @@ -55,7 +57,7 @@ public class ReminderDialog extends Dialog { final OnTimeSetListener onTimeSet = new OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hours, int minutes) { - Date alarmTime = new Date(); + Date alarmTime = newDate(); alarmTime.setHours(hours); alarmTime.setMinutes(minutes); if(alarmTime.getTime() < DateUtilities.now()) { diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java index edb165f0c..cb6af502b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java @@ -33,6 +33,8 @@ import org.tasks.R; import java.util.Date; import java.util.Random; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Data service for reminders @@ -260,7 +262,7 @@ public final class ReminderService { private long calculateNextOverdueReminder(Task task) { // Uses getNowValue() instead of DateUtilities.now() if(task.hasDueDate() && task.getFlag(Task.REMINDER_FLAGS, Task.NOTIFY_AFTER_DEADLINE)) { - Date due = new Date(task.getValue(Task.DUE_DATE)); + Date due = newDate(task.getValue(Task.DUE_DATE)); if (!task.hasDueTime()) { due.setHours(23); due.setMinutes(59); @@ -312,7 +314,7 @@ public final class ReminderService { dueDateAlarm = dueDate; } else if (DateUtilities.now() > lastReminder + DateUtilities.ONE_DAY) { // return notification time on this day - Date date = new Date(dueDate); + Date date = newDate(dueDate); date.setHours(Preferences.getIntegerFromString(R.string.p_rmd_time, 18)); date.setMinutes(0); date.setSeconds(0); @@ -323,13 +325,13 @@ public final class ReminderService { // on this day before start of quiet hours or after quiet hours // randomly placed in this interval int quietHoursStart = Preferences.getIntegerFromString(R.string.p_rmd_quietStart, -1); - Date quietHoursStartDate = new Date(); + Date quietHoursStartDate = newDate(); quietHoursStartDate.setHours(quietHoursStart); quietHoursStartDate.setMinutes(0); quietHoursStartDate.setSeconds(0); int quietHoursEnd = Preferences.getIntegerFromString(R.string.p_rmd_quietEnd, -1); - Date quietHoursEndDate = new Date(); + Date quietHoursEndDate = newDate(); quietHoursEndDate.setHours(quietHoursStart); quietHoursEndDate.setMinutes(0); quietHoursEndDate.setSeconds(0); @@ -341,7 +343,7 @@ public final class ReminderService { int periodDivFactor = 4; if(quietHoursStart != -1 && quietHoursEnd != -1) { - int hour = new Date().getHours(); + int hour = newDate().getHours(); if(quietHoursStart <= quietHoursEnd) { if(hour >= quietHoursStart && hour < quietHoursEnd) { // its quiet now, quietHoursEnd is 23 max, @@ -478,7 +480,7 @@ public final class ReminderService { } if(Constants.DEBUG) { - Log.e("Astrid", "Reminder set for " + new Date(time) + " for (\"" + task.getValue(Task.TITLE) + "\" (" + task.getId() + "), " + type + ")"); + Log.e("Astrid", "Reminder set for " + newDate(time) + " for (\"" + task.getValue(Task.TITLE) + "\" (" + task.getId() + "), " + type + ")"); } am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); } diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/WhenReminder.java b/astrid/src/main/java/com/todoroo/astrid/reminders/WhenReminder.java index fcf2f361f..c040253c2 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/WhenReminder.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/WhenReminder.java @@ -6,7 +6,7 @@ import com.todoroo.andlib.service.ContextManager; import com.todoroo.astrid.api.TaskContextActionExposer; import com.todoroo.astrid.data.Task; -import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; public class WhenReminder implements TaskContextActionExposer { @@ -21,7 +21,7 @@ public class WhenReminder implements TaskContextActionExposer { } Toast.makeText(ContextManager.getContext(), "Scheduled Alarm: " + - new Date(time), Toast.LENGTH_LONG).show(); + newDate(time), Toast.LENGTH_LONG).show(); ReminderService.getInstance().setScheduler(null); } }); diff --git a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java index 632a6b933..d9c896cf3 100644 --- a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java @@ -48,6 +48,8 @@ import java.util.Date; import java.util.LinkedList; import java.util.List; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Control Set for managing repeats * @@ -205,7 +207,7 @@ public class RepeatControlSet extends PopupControlSet { protected void readFromTaskOnInitialize() { Date date; if(model.getValue(Task.DUE_DATE) != 0) { - date = new Date(model.getValue(Task.DUE_DATE)); + date = newDate(model.getValue(Task.DUE_DATE)); int dayOfWeek = date.getDay(); for(int i = 0; i < 7; i++) { diff --git a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index e32e384d5..b0eb68850 100644 --- a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -36,6 +36,9 @@ import java.util.Date; import java.util.List; import java.util.TimeZone; +import static org.tasks.date.DateTimeUtils.newDate; +import static org.tasks.date.DateTimeUtils.newDateUtc; + public class RepeatTaskCompleteListener extends BroadcastReceiver { @Override @@ -178,8 +181,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { }; - private static WeekdayNum findNextWeekday(List byDay, - Calendar date) { + private static WeekdayNum findNextWeekday(List byDay, Calendar date) { WeekdayNum next = byDay.get(0); for (WeekdayNum weekday : byDay) { if (weekday.wday.javaDayNum > date.get(Calendar.DAY_OF_WEEK)) { @@ -220,9 +222,9 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { long newDueDate; if(nextDate instanceof DateTimeValueImpl) { DateTimeValueImpl newDateTime = (DateTimeValueImpl)nextDate; - Date date = new Date(Date.UTC(newDateTime.year() - 1900, newDateTime.month() - 1, + Date date = newDateUtc(newDateTime.year(), newDateTime.month(), newDateTime.day(), newDateTime.hour(), - newDateTime.minute(), newDateTime.second())); + newDateTime.minute(), newDateTime.second()); // time may be inaccurate due to DST, force time to be same date.setHours(original.getHours()); date.setMinutes(original.getMinutes()); @@ -230,8 +232,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { date.getTime()); } else { newDueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, - new Date(nextDate.year() - 1900, nextDate.month() - 1, - nextDate.day()).getTime()); + newDate(nextDate.year(), nextDate.month(), nextDate.day()).getTime()); } return newDueDate; } @@ -251,11 +252,11 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { /** Set up repeat start date */ private static Date setUpStartDate(Task task, boolean repeatAfterCompletion, Frequency frequency) { - Date startDate = new Date(); + Date startDate = newDate(); if(task.hasDueDate()) { - Date dueDate = new Date(task.getValue(Task.DUE_DATE)); + Date dueDate = newDate(task.getValue(Task.DUE_DATE)); if(repeatAfterCompletion) { - startDate = new Date(task.getValue(Task.COMPLETION_DATE)); + startDate = newDate(task.getValue(Task.COMPLETION_DATE)); } else { startDate = dueDate; } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/CalendarView.java b/astrid/src/main/java/com/todoroo/astrid/ui/CalendarView.java index 79b6be611..d767e0bea 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/CalendarView.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/CalendarView.java @@ -32,6 +32,8 @@ import org.tasks.R; import java.util.Calendar; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + public class CalendarView extends View { private static final int PADDING = 0; @@ -67,7 +69,7 @@ public class CalendarView extends View { private float boxWidth; private float boxHeight; - private Date calendarDate = new Date(); + private Date calendarDate = newDate(); private int currentHighlightDay = -1; public interface OnSelectedDateListener { @@ -324,7 +326,7 @@ public class CalendarView extends View { // Day heading -- End // Calendar -- Start - calendar.setTime(getCoercedDate(new Date(), calendarDate)); // Reset the calendar to either today or the specified date + calendar.setTime(getCoercedDate(newDate(), calendarDate)); // Reset the calendar to either today or the specified date if (currentHighlightDay == -1) { currentHighlightDay = calendarDate.getTime() == 0 ? 0 : calendar.get(Calendar.DATE); diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/DateAndTimePicker.java b/astrid/src/main/java/com/todoroo/astrid/ui/DateAndTimePicker.java index 88cba123c..2db3d3990 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/DateAndTimePicker.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/DateAndTimePicker.java @@ -28,6 +28,8 @@ import org.tasks.R; import java.util.ArrayList; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + public class DateAndTimePicker extends LinearLayout { private static final int SHORTCUT_PADDING = 8; @@ -79,7 +81,7 @@ public class DateAndTimePicker extends LinearLayout { } public void initializeWithDate(long dateValue) { - Date date = new Date(dateValue); + Date date = newDate(dateValue); Date forCalendar; if (dateValue> 0) { forCalendar = getDateForCalendar(date); @@ -100,7 +102,7 @@ public class DateAndTimePicker extends LinearLayout { } private Date getDateForCalendar(Date date) { - Date forCalendar = new Date(date.getTime() / 1000L * 1000L); + Date forCalendar = newDate(date.getTime() / 1000L * 1000L); forCalendar.setHours(12); forCalendar.setMinutes(0); forCalendar.setSeconds(0); @@ -128,7 +130,7 @@ public class DateAndTimePicker extends LinearLayout { private void forceDateSelected() { ToggleButton none = (ToggleButton) dateShortcuts.getChildAt(dateShortcuts.getChildCount() - 1); if (none.isChecked()) { - Date date = new Date(todayUrgency.dueDate); + Date date = newDate(todayUrgency.dueDate); calendarView.setCalendarDate(date); calendarView.invalidate(); if (todayUrgency.setting == Task.URGENCY_NONE) { @@ -212,7 +214,7 @@ public class DateAndTimePicker extends LinearLayout { @Override public void onClick(View v) { UrgencyValue value = (UrgencyValue) v.getTag(); - Date date = new Date(value.dueDate); + Date date = newDate(value.dueDate); calendarView.setCalendarDate(date); calendarView.invalidate(); if (value.setting == Task.URGENCY_NONE) { @@ -243,7 +245,7 @@ public class DateAndTimePicker extends LinearLayout { } public long constructDueDate() { - Date calendarDate = new Date(calendarView.getCalendarDate().getTime()); + Date calendarDate = newDate(calendarView.getCalendarDate().getTime()); if (timePicker.hasTime() && calendarDate.getTime() > 0) { calendarDate.setHours(timePicker.getHours()); calendarDate.setMinutes(timePicker.getMinutes()); @@ -274,7 +276,7 @@ public class DateAndTimePicker extends LinearLayout { public static String getDisplayString(Context context, long forDate, boolean useNewline, boolean hideYear, boolean hideTime) { StringBuilder displayString = new StringBuilder(); - Date d = new Date(forDate); + Date d = newDate(forDate); if (d.getTime() > 0) { if (hideYear) { displayString.append(DateUtilities.getDateStringHideYear(d)); diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java b/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java index 538f14dff..b3c06b828 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java @@ -37,7 +37,8 @@ import com.todoroo.astrid.utility.Flags; import org.tasks.R; import java.text.ParseException; -import java.util.Date; + +import static org.tasks.date.DateTimeUtils.newDate; /** * Helper class that creates a dialog to confirm the results of a quick add markup @@ -305,7 +306,7 @@ public class DateChangedAlerts { String dueString = date > 0 ? DateUtilities.getRelativeDay(context, date, false) : ""; if(Task.hasDueTime(date)) { dueString = String.format("%s at %s", dueString, //$NON-NLS-1$ - DateUtilities.getTimeString(context, new Date(date))); + DateUtilities.getTimeString(context, newDate(date))); } return dueString; } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java b/astrid/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java index 6893cb1ee..f35a325d5 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java @@ -25,6 +25,8 @@ import org.tasks.R; import java.util.Date; +import static org.tasks.date.DateTimeUtils.newDate; + /** * Control set for specifying when a task should be hidden * @@ -94,13 +96,13 @@ public class HideUntilControlSet extends PopupControlSet implements OnItemSelect if(specificDate > 0) { HideUntilValue[] updated = new HideUntilValue[values.length + 1]; System.arraycopy(values, 0, updated, 1, values.length); - Date hideUntilAsDate = new Date(specificDate); + Date hideUntilAsDate = newDate(specificDate); if(hideUntilAsDate.getHours() == 0 && hideUntilAsDate.getMinutes() == 0 && hideUntilAsDate.getSeconds() == 0) { - updated[0] = new HideUntilValue(DateUtilities.getDateString(new Date(specificDate)), + updated[0] = new HideUntilValue(DateUtilities.getDateString(newDate(specificDate)), Task.HIDE_UNTIL_SPECIFIC_DAY, specificDate); existingDate = specificDate; } else { - updated[0] = new HideUntilValue(DateUtilities.getDateStringWithTime(activity, new Date(specificDate)), + updated[0] = new HideUntilValue(DateUtilities.getDateStringWithTime(activity, newDate(specificDate)), Task.HIDE_UNTIL_SPECIFIC_DAY_TIME, specificDate); existingDate = specificDate; } @@ -118,7 +120,7 @@ public class HideUntilControlSet extends PopupControlSet implements OnItemSelect // ... at conclusion of dialog, update our list HideUntilValue item = adapter.getItem(position); if(item.date == SPECIFIC_DATE) { - customDate = new Date(existingDate == EXISTING_TIME_UNSET ? DateUtilities.now() : existingDate); + customDate = newDate(existingDate == EXISTING_TIME_UNSET ? DateUtilities.now() : existingDate); customDate.setSeconds(0); final DateAndTimeDialog dateAndTimeDialog = new DateAndTimeDialog(activity, customDate.getTime()); @@ -127,7 +129,7 @@ public class HideUntilControlSet extends PopupControlSet implements OnItemSelect @Override public void onDateAndTimeSelected(long date) { if (date > 0) { - customDate = new Date(date); + customDate = newDate(date); if (!dateAndTimeDialog.hasTime()) { customDate.setHours(0); customDate.setMinutes(0); @@ -219,7 +221,7 @@ public class HideUntilControlSet extends PopupControlSet implements OnItemSelect public void readFromTask(Task task) { long date = task.getValue(Task.HIDE_UNTIL); - Date dueDay = new Date(task.getValue(Task.DUE_DATE)/1000L*1000L); + Date dueDay = newDate(task.getValue(Task.DUE_DATE)/1000L*1000L); dueDay.setHours(0); dueDay.setMinutes(0); diff --git a/astrid/src/test/java/com/todoroo/andlib/test/TranslationTests.java b/astrid/src/test/java/com/todoroo/andlib/test/TranslationTests.java index 4c51451d0..2f73151da 100644 --- a/astrid/src/test/java/com/todoroo/andlib/test/TranslationTests.java +++ b/astrid/src/test/java/com/todoroo/andlib/test/TranslationTests.java @@ -21,6 +21,7 @@ import java.util.Locale; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.tasks.date.DateTimeUtils.newDate; /** * Tests translations for consistency with the default values. You must @@ -202,7 +203,7 @@ abstract public class TranslationTests extends TodorooRobolectricTestCase { final StringBuilder failures = new StringBuilder(); final int[] dateStrings = getDateFormatStrings(); - final Date date = new Date(); + final Date date = newDate(); forEachLocale(new Runnable() { public void run() { diff --git a/astrid/src/test/java/com/todoroo/andlib/utility/DateUtilitiesTest.java b/astrid/src/test/java/com/todoroo/andlib/utility/DateUtilitiesTest.java index 3e895ff34..8ad9f5be6 100644 --- a/astrid/src/test/java/com/todoroo/andlib/utility/DateUtilitiesTest.java +++ b/astrid/src/test/java/com/todoroo/andlib/utility/DateUtilitiesTest.java @@ -23,6 +23,7 @@ import static com.todoroo.andlib.utility.DateUtilities.oneMonthFromNow; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.tasks.Freeze.freezeAt; +import static org.tasks.date.DateTimeUtils.newDate; @RunWith(RobolectricTestRunner.class) public class DateUtilitiesTest extends TodorooRobolectricTestCase { @@ -35,7 +36,7 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase { public void testTimeString() { forEachLocale(new Runnable() { public void run() { - Date d = new Date(); + Date d = newDate(); set24Hour(false); for(int i = 0; i < 24; i++) { @@ -56,7 +57,7 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase { public void testDateString() { forEachLocale(new Runnable() { public void run() { - Date d = new Date(); + Date d = newDate(); for(int i = 0; i < 12; i++) { d.setMonth(i); @@ -70,7 +71,7 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase { public void testWeekdayString() { forEachLocale(new Runnable() { public void run() { - Date d = new Date(); + Date d = newDate(); for(int i = 0; i < 7; i++) { d.setDate(i); diff --git a/astrid/src/test/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java b/astrid/src/test/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java index 0e7024817..0d110241e 100644 --- a/astrid/src/test/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java +++ b/astrid/src/test/java/com/todoroo/astrid/repeats/AdvancedRepeatTest.java @@ -24,6 +24,7 @@ import java.util.Calendar; import java.util.Date; import static org.junit.Assert.assertEquals; +import static org.tasks.date.DateTimeUtils.newDate; @RunWith(RobolectricTestRunner.class) public class AdvancedRepeatTest extends TodorooRobolectricTestCase { @@ -53,7 +54,7 @@ public class AdvancedRepeatTest extends TodorooRobolectricTestCase { buildRRule(1, Frequency.DAILY); // test specific day & time - long dayWithTime = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, new Date(110, 7, 1, 10, 4).getTime()); + long dayWithTime = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, newDate(2010, 8, 1, 10, 4, 0).getTime()); task.setValue(Task.DUE_DATE, dayWithTime); long nextDayWithTime = dayWithTime + DateUtilities.ONE_DAY; @@ -66,10 +67,10 @@ public class AdvancedRepeatTest extends TodorooRobolectricTestCase { buildRRule(1, Frequency.DAILY); // test specific day & time - long dayWithTime = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, new Date(110, 7, 1, 10, 4, 0).getTime()); + long dayWithTime = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, newDate(2010, 8, 1, 10, 4, 0).getTime()); task.setValue(Task.DUE_DATE, dayWithTime); - Date todayWithTime = new Date(); + Date todayWithTime = newDate(); todayWithTime.setHours(10); todayWithTime.setMinutes(4); todayWithTime.setSeconds(1); @@ -240,13 +241,13 @@ public class AdvancedRepeatTest extends TodorooRobolectricTestCase { } public static void assertDateTimeEquals(long date, long other) { - assertEquals("Expected: " + new Date(date) + ", Actual: " + new Date(other), + assertEquals("Expected: " + newDate(date) + ", Actual: " + newDate(other), date, other); } private void assertDateEquals(long actual, long expected) { - assertEquals("Due Date is '" + DateUtilities.getDateStringWithWeekday(new Date(actual)) - + "', expected '" + DateUtilities.getDateStringWithWeekday(new Date(expected)) + "'", + assertEquals("Due Date is '" + DateUtilities.getDateStringWithWeekday(newDate(actual)) + + "', expected '" + DateUtilities.getDateStringWithWeekday(newDate(expected)) + "'", expected, actual); } diff --git a/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatAfterCompleteTest.java b/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatAfterCompleteTest.java index d14a21666..1de96b918 100644 --- a/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatAfterCompleteTest.java +++ b/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatAfterCompleteTest.java @@ -20,12 +20,12 @@ import org.robolectric.RobolectricTestRunner; import java.text.ParseException; import java.util.ArrayList; -import java.util.Date; import java.util.TimeZone; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.tasks.date.DateTimeUtils.newDate; @RunWith(RobolectricTestRunner.class) public class RepeatAfterCompleteTest extends TodorooRobolectricTestCase { @@ -122,15 +122,15 @@ public class RepeatAfterCompleteTest extends TodorooRobolectricTestCase { public static void assertDateTimeEquals(String message, long expected, long actual) { expected = expected / 60000L * 60000; actual = actual / 60000L * 60000; - assertEquals(message + ": Expected: " + new Date(expected) + ", Actual: " + new Date(actual), + assertEquals(message + ": Expected: " + newDate(expected) + ", Actual: " + newDate(actual), expected, actual); } private void assertDateEquals(String message, long expected, long actual) { expected = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, expected); actual = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, actual); - assertEquals(message + ": Due Date is '" + DateUtilities.getDateStringWithWeekday(new Date(actual)) - + "', expected '" + DateUtilities.getDateStringWithWeekday(new Date(expected)) + "'", + assertEquals(message + ": Due Date is '" + DateUtilities.getDateStringWithWeekday(newDate(actual)) + + "', expected '" + DateUtilities.getDateStringWithWeekday(newDate(expected)) + "'", expected, actual); } diff --git a/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListenerTest.java b/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListenerTest.java index 356c48539..744fcf35a 100644 --- a/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListenerTest.java +++ b/astrid/src/test/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListenerTest.java @@ -11,36 +11,37 @@ import java.util.Date; import static com.todoroo.astrid.repeats.RepeatTaskCompleteListener.handleSubdayRepeat; import static org.junit.Assert.assertEquals; +import static org.tasks.date.DateTimeUtils.newDate; @RunWith(RobolectricTestRunner.class) public class RepeatTaskCompleteListenerTest { - private static final Date start = new Date(113, 11, 31, 8, 31, 59); + private static final Date start = newDate(2013, 12, 31, 8, 31, 59); @Test public void repeatEveryMinute() { assertEquals( - new Date(113, 11, 31, 8, 32, 1).getTime(), // astrid always sets seconds to one + newDate(2013, 12, 31, 8, 32, 1).getTime(), // astrid always sets seconds to one handleSubdayRepeat(start, newRule(1, Frequency.MINUTELY))); } @Test public void repeatEveryOtherMinute() { assertEquals( - new Date(113, 11, 31, 8, 33, 1).getTime(), + newDate(2013, 12, 31, 8, 33, 1).getTime(), handleSubdayRepeat(start, newRule(2, Frequency.MINUTELY))); } @Test public void repeatEveryHour() { assertEquals( - new Date(113, 11, 31, 9, 31, 1).getTime(), + newDate(2013, 12, 31, 9, 31, 1).getTime(), handleSubdayRepeat(start, newRule(1, Frequency.HOURLY))); } @Test public void repeatEveryOtherHour() { assertEquals( - new Date(113, 11, 31, 10, 31, 1).getTime(), + newDate(2013, 12, 31, 10, 31, 1).getTime(), handleSubdayRepeat(start, newRule(2, Frequency.HOURLY))); }