Add newDate helper methods

pull/73/head
Alex Baker 11 years ago
parent b8ca9c34ed
commit 32309bb88b

@ -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) {

@ -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);

@ -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);
}

@ -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);

@ -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);

@ -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));
}
}

@ -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();
}

@ -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);

@ -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));
}
}

@ -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<REMOTE_MODEL> extends DatabaseTestCase {
@Autowired
@ -71,12 +73,12 @@ public class NewRepeatTests<REMOTE_MODEL> 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<REMOTE_MODEL> 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<REMOTE_MODEL> 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<REMOTE_MODEL> 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<REMOTE_MODEL> 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<REMOTE_MODEL> 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();
}

@ -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);
}

@ -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);

@ -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<Metadata> 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);

@ -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;
}

@ -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);
}

@ -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());
}
}

@ -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 {

@ -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);

@ -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);

@ -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));
}
}

@ -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();

@ -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;

@ -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());

@ -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(),

@ -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();

@ -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;

@ -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()) {

@ -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);
}

@ -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);
}
});

@ -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++) {

@ -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<WeekdayNum> byDay,
Calendar date) {
private static WeekdayNum findNextWeekday(List<WeekdayNum> 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;
}

@ -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);

@ -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));

@ -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;
}

@ -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);

@ -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() {

@ -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);

@ -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);
}

@ -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);
}

@ -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)));
}

Loading…
Cancel
Save