Add newDate helper methods

pull/73/head
Alex Baker 12 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();
}

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

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

@ -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.
*

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

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

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

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

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

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

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

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

@ -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"
*

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

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

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

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

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

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

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

@ -10,6 +10,8 @@ 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) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -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,7 +67,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, 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 = newDate();

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

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