Remove Date and Calendar usage

pull/322/head
Alex Baker 10 years ago
parent 9321e8262c
commit fdb009528f

@ -198,15 +198,15 @@ public class DateUtilitiesTest extends AndroidTestCase {
}
public void testAddMonthsToTimestamp() {
assertEquals(newDate(2014, 1, 1).getTime(), addCalendarMonthsToUnixtime(newDate(2013, 12, 1).getTime(), 1));
assertEquals(newDate(2014, 12, 31).getTime(), addCalendarMonthsToUnixtime(newDate(2013, 12, 31).getTime(), 12));
assertEquals(newDate(2014, 1, 1).getMillis(), addCalendarMonthsToUnixtime(newDate(2013, 12, 1).getMillis(), 1));
assertEquals(newDate(2014, 12, 31).getMillis(), addCalendarMonthsToUnixtime(newDate(2013, 12, 31).getMillis(), 12));
}
public void testAddMonthsWithLessDays() {
assertEquals(newDate(2014, 3, 3).getTime(), addCalendarMonthsToUnixtime(newDate(2013, 12, 31).getTime(), 2));
assertEquals(newDate(2014, 3, 3).getMillis(), addCalendarMonthsToUnixtime(newDate(2013, 12, 31).getMillis(), 2));
}
public void testAddMonthsWithMoreDays() {
assertEquals(newDate(2014, 1, 30).getTime(), addCalendarMonthsToUnixtime(newDate(2013, 11, 30).getTime(), 2));
assertEquals(newDate(2014, 1, 30).getMillis(), addCalendarMonthsToUnixtime(newDate(2013, 11, 30).getMillis(), 2));
}
}

@ -25,7 +25,7 @@ public class NotifyAtDeadlineTest extends AndroidTestCase {
private static final int MILLIS_PER_HOUR = (int) TimeUnit.HOURS.toMillis(1);
private final Task dueAtNoon = new Task() {{
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getTime());
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getMillis());
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
}};
@ -69,7 +69,7 @@ public class NotifyAtDeadlineTest extends AndroidTestCase {
public void testDontNotifyMoreThanOncePerDay() {
Task task = new Task() {{
setDueDate(newDate(2014, 1, 23).getTime());
setDueDate(newDate(2014, 1, 23).getMillis());
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
setReminderLast(new DateTime(2014, 1, 23, 17, 23, 37).getMillis());
}};
@ -93,7 +93,7 @@ public class NotifyAtDeadlineTest extends AndroidTestCase {
Freeze.freezeAt(new DateTime(2014, 1, 27, 9, 13, 37, 501));
preferences.setInt(R.string.p_rmd_time, 8 * MILLIS_PER_HOUR);
Task task = new Task() {{
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getTime());
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getMillis());
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
}};
assertEquals(
@ -106,7 +106,7 @@ public class NotifyAtDeadlineTest extends AndroidTestCase {
Freeze.freezeAt(new DateTime(2014, 1, 27, 11, 13, 37, 501));
preferences.setInt(R.string.p_rmd_time, 8 * MILLIS_PER_HOUR);
Task task = new Task() {{
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getTime());
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getMillis());
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
}};
assertEquals(
@ -119,7 +119,7 @@ public class NotifyAtDeadlineTest extends AndroidTestCase {
Freeze.freezeAt(new DateTime(2014, 1, 27, 1, 53, 37, 509));
preferences.setInt(R.string.p_rmd_time, MILLIS_PER_HOUR);
Task task = new Task() {{
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getTime());
setDueDate(Task.URGENCY_SPECIFIC_DAY, newDate(2014, 1, 27).getMillis());
setReminderFlags(Task.NOTIFY_AT_DEADLINE);
}};
assertEquals(

@ -18,7 +18,7 @@ import javax.inject.Inject;
import static org.tasks.Freeze.freezeClock;
import static org.tasks.Freeze.thaw;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
public class ReminderServiceTest extends InjectingTestCase {
@ -233,7 +233,7 @@ public class ReminderServiceTest extends InjectingTestCase {
public void createAlarm(Context context, Task task, long time, int type) {
if(time == 0 || time == Long.MAX_VALUE)
return;
fail("created alarm, no alarm expected (" + type + ": " + newDate(time));
fail("created alarm, no alarm expected (" + type + ": " + newDateTime(time));
}
}

@ -20,7 +20,6 @@ import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
public class AdvancedRepeatTest extends AndroidTestCase {
@ -227,7 +226,7 @@ public class AdvancedRepeatTest extends AndroidTestCase {
}
public static void assertDateTimeEquals(long date, long other) {
assertEquals("Expected: " + newDate(date) + ", Actual: " + newDate(other),
assertEquals("Expected: " + newDateTime(date) + ", Actual: " + newDateTime(other),
date, other);
}

@ -23,15 +23,15 @@ import com.todoroo.astrid.test.DatabaseTestCase;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import org.tasks.time.DateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
public class NewRepeatTests extends DatabaseTestCase {
@ -73,12 +73,12 @@ public class NewRepeatTests extends DatabaseTestCase {
}
protected void assertTimesMatch(long expectedTime, long newDueDate) {
assertTrue(String.format("Expected %s, was %s", newDate(expectedTime), newDate(newDueDate)),
assertTrue(String.format("Expected %s, was %s", newDateTime(expectedTime), newDateTime(newDueDate)),
Math.abs(expectedTime - newDueDate) < 5000);
}
protected void assertTimesWithinOneHour(long expectedTime, long newDueDate) {
assertTrue(String.format("Expected %s, was %s", newDate(expectedTime), newDate(newDueDate)),
assertTrue(String.format("Expected %s, was %s", newDateTime(expectedTime), newDateTime(newDueDate)),
Math.abs(expectedTime - newDueDate) <= DateUtilities.ONE_HOUR);
}
@ -102,9 +102,8 @@ public class NewRepeatTests extends DatabaseTestCase {
Task t = new Task();
t.setTitle(title);
long dueDate = DateUtilities.now() + DateUtilities.ONE_DAY * 3;
Date adjustDate = newDate(dueDate);
adjustDate.setSeconds(1);
dueDate = adjustDate.getTime();
DateTime adjustDate = newDateTime(dueDate).withSecondOfMinute(1);
dueDate = adjustDate.getMillis();
dueDate = (dueDate / 1000L) * 1000L; // Strip milliseconds
t.setDueDate(dueDate);
@ -126,7 +125,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: " + newDate(completionDate));
System.err.println("Completion date: " + newDateTime(completionDate));
waitAndSync();
@ -163,8 +162,8 @@ public class NewRepeatTests extends DatabaseTestCase {
}
Weekday[] allWeekdays = Weekday.values();
Date date = newDate(result);
Weekday start = allWeekdays[date.getDay()];
DateTime date = newDateTime(result);
Weekday start = allWeekdays[date.getDayOfWeek()];
int i;
for (i = 0; i < allWeekdays.length; i++) {
if (start == allWeekdays[i]) break;
@ -213,21 +212,22 @@ public class NewRepeatTests extends DatabaseTestCase {
} else if (frequency.equals(Frequency.WEEKLY)) {
expectedTime = computeWeeklyCaseDueDate(fromDate, rrule, fromCompletion);
} else if (frequency.equals(Frequency.MONTHLY)) {
Date originalDate = newDate(expectedTime);
DateTime originalDate = newDateTime(expectedTime);
for (int i = 0; i < interval; i++) {
int month = originalDate.getMonth();
int month = originalDate.getMonthOfYear();
if (month == 11) { // Roll over the year and set the month to January
originalDate.setYear(originalDate.getYear() + 1);
originalDate.setMonth(0);
originalDate = originalDate
.withYear(originalDate.getYear() + 1)
.withMonthOfYear(1);
} else {
originalDate.setMonth(originalDate.getMonth() + 1);
originalDate = originalDate.withMonthOfYear(originalDate.getMonthOfYear() + 1);
}
}
expectedTime = originalDate.getTime();
expectedTime = originalDate.getMillis();
} else if (frequency.equals(Frequency.YEARLY)) {
Date originalCompleteDate = newDate(expectedTime);
originalCompleteDate.setYear(originalCompleteDate.getYear() + interval);
expectedTime = originalCompleteDate.getTime();
DateTime originalCompleteDate = newDateTime(expectedTime);
originalCompleteDate = originalCompleteDate.withYear(originalCompleteDate.getYear() + interval);
expectedTime = originalCompleteDate.getMillis();
}
return expectedTime;
}

@ -14,14 +14,14 @@ import com.todoroo.astrid.utility.TitleParser;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import org.tasks.time.DateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
public class TitleParserTest extends DatabaseTestCase {
@ -66,9 +66,9 @@ public class TitleParserTest extends DatabaseTestCase {
for (int i = 0; i < 23; i++) {
String testTitle = "Jog on " + titleMonthStrings[i] + " 12.";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMonth(), i/2);
assertEquals(date.getDate(), 12);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getMonthOfYear(), i/2 + 1);
assertEquals(date.getDayOfMonth(), 12);
}
}
@ -77,10 +77,10 @@ public class TitleParserTest extends DatabaseTestCase {
for (int i = 1; i < 13; i++) {
String testTitle = "Jog on " + i + "/12/13";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMonth(), i-1);
assertEquals(date.getDate(), 12);
assertEquals(date.getYear(), 113);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getMonthOfYear(), i);
assertEquals(date.getDayOfMonth(), 12);
assertEquals(date.getYear(), 2013);
}
}
@ -88,36 +88,36 @@ public class TitleParserTest extends DatabaseTestCase {
Task task = new Task();
String testTitle = "Jog on 23:21.";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 21);
assertEquals(date.getHours(), 23);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 23);
assertEquals(date.getMinuteOfHour(), 21);
}
public void test_AM_PM() {
Task task = new Task();
String testTitle = "Jog at 8:33 PM.";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 33);
assertEquals(date.getHours(), 20);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 20);
assertEquals(date.getMinuteOfHour(), 33);
}
public void test_at_hour() {
Task task = new Task();
String testTitle = "Jog at 8 PM.";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 0);
assertEquals(date.getHours(), 20);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 20);
assertEquals(date.getMinuteOfHour(), 0);
}
public void test_oclock_AM() {
Task task = new Task();
String testTitle = "Jog at 8 o'clock AM.";
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 0);
assertEquals(date.getHours(), 8);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 8);
assertEquals(date.getMinuteOfHour(), 0);
}
public void test_several_forms_of_eight() {
@ -129,9 +129,9 @@ public class TitleParserTest extends DatabaseTestCase {
};
for (String testTitle: testTitles) {
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 0);
assertEquals(date.getHours(), 8);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 8);
assertEquals(date.getMinuteOfHour(), 0);
}
}
@ -146,9 +146,9 @@ public class TitleParserTest extends DatabaseTestCase {
};
for (String testTitle: testTitles) {
insertTitleAddTask(testTitle, task);
Date date = newDate(task.getDueDate());
assertEquals(date.getMinutes(), 30);
assertEquals(date.getHours(), 12);
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getHourOfDay(), 12);
assertEquals(date.getMinuteOfHour(), 30);
}
}
@ -167,16 +167,16 @@ public class TitleParserTest extends DatabaseTestCase {
String title = "Jog today";
task.setTitle(title);
taskService.createWithValues(task, null, title);
Date date = newDate(task.getDueDate());
assertEquals(date.getDay()+1, today.get(Calendar.DAY_OF_WEEK));
DateTime date = newDateTime(task.getDueDate());
assertEquals(date.getDayOfMonth(), today.get(Calendar.DAY_OF_WEEK));
//Calendar starts 1-6, date.getDay() starts at 0
task = new Task();
title = "Jog tomorrow";
task.setTitle(title);
taskService.createWithValues(task, null, title);
date = newDate(task.getDueDate());
assertEquals((date.getDay()+1) % 7, (today.get(Calendar.DAY_OF_WEEK)+1) % 7);
date = newDateTime(task.getDueDate());
assertEquals((date.getDayOfWeek()) % 7, (today.get(Calendar.DAY_OF_WEEK)+1) % 7);
String[] days = {
"sunday",
@ -202,15 +202,15 @@ public class TitleParserTest extends DatabaseTestCase {
title = "Jog "+ days[i];
task.setTitle(title);
taskService.createWithValues(task, null, title);
date = newDate(task.getDueDate());
assertEquals(date.getDay(), i);
date = newDateTime(task.getDueDate());
assertEquals(date.getDayOfWeek(), i);
task = new Task();
title = "Jog "+ abrevDays[i];
task.setTitle(title);
taskService.createWithValues(task, null, title);
date = newDate(task.getDueDate());
assertEquals(date.getDay(), i);
date = newDateTime(task.getDueDate());
assertEquals(date.getDayOfWeek(), i);
}
}

@ -3,8 +3,6 @@ package org.tasks;
import org.tasks.time.DateTime;
import org.tasks.time.DateTimeUtils;
import java.util.Date;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class Freeze {
@ -13,10 +11,6 @@ public class Freeze {
return freezeAt(currentTimeMillis());
}
public static Freeze freezeAt(Date date) {
return freezeAt(date.getTime());
}
public static Freeze freezeAt(DateTime dateTime) {
return freezeAt(dateTime.getMillis());
}

@ -2,8 +2,6 @@ package org.tasks;
import android.content.Context;
import java.util.Date;
public class TestUtilities {
private static boolean mockitoInitialized;

@ -5,11 +5,9 @@ import android.test.AndroidTestCase;
import org.tasks.Snippet;
import org.tasks.time.DateTime;
import java.util.Date;
import java.util.TimeZone;
import static org.tasks.Freeze.freezeAt;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateUtc;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
@ -23,10 +21,6 @@ public class DateTimeUtilsTest extends AndroidTestCase {
}});
}
public void testCreateNewDate() {
assertEquals(new Date(114, 0, 1), newDate(2014, 1, 1));
}
public void testCreateNewUtcDate() {
DateTime utc = now.toUTC();
DateTime actual = newDateUtc(utc.getYear(), utc.getMonthOfYear(), utc.getDayOfMonth(), utc.getHourOfDay(), utc.getMinuteOfHour(), utc.getSecondOfMinute());

@ -20,6 +20,7 @@ import java.io.IOException;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDateTime;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class BackupServiceTests extends DatabaseTestCase {
@ -102,7 +103,7 @@ public class BackupServiceTests extends DatabaseTestCase {
// make one really old
File[] files = temporaryDirectory.listFiles();
files[4].setLastModified(System.currentTimeMillis() - 20000);
files[4].setLastModified(currentTimeMillis() - 20000);
// assert files created
assertEquals(11, files.length);

@ -8,17 +8,14 @@ package com.todoroo.andlib.utility;
import android.content.Context;
import android.text.format.DateFormat;
import org.tasks.time.DateTime;
import org.tasks.R;
import org.tasks.time.DateTime;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Locale;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class DateUtilities {
@ -177,15 +174,15 @@ public class DateUtilities {
/**
* @return weekday
*/
public static String getWeekday(Date date) {
return new SimpleDateFormat("EEEE").format(date);
public static String getWeekday(DateTime date) {
return date.toString("EEEE");
}
/**
* @return weekday
*/
public static String getWeekdayShort(Date date) {
return new SimpleDateFormat("EEE").format(date);
public static String getWeekdayShort(DateTime date) {
return date.toString("EEE");
}
public static String getDateStringWithTime(Context context, long timestamp) {
@ -216,7 +213,7 @@ public class DateUtilities {
}
if(today + abbreviationLimit >= input && today - abbreviationLimit <= input) {
return abbreviated ? DateUtilities.getWeekdayShort(newDate(date)) : DateUtilities.getWeekday(newDate(date));
return abbreviated ? DateUtilities.getWeekdayShort(newDateTime(date)) : DateUtilities.getWeekday(newDateTime(date));
}
return DateUtilities.getDateStringHideYear(newDateTime(date));

@ -18,13 +18,10 @@ import com.todoroo.andlib.data.Table;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.utility.DateUtilities;
import org.tasks.time.DateTime;
import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.time.DateTime;
import java.util.Date;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
/**
@ -364,15 +361,16 @@ public class Task extends RemoteModel {
return date;
}
Date hideUntil = newDate(date / 1000L * 1000L); // get rid of millis
DateTime hideUntil = newDateTime(date).withMillisOfSecond(0); // get rid of millis
if(setting != HIDE_UNTIL_SPECIFIC_DAY_TIME && setting != HIDE_UNTIL_DUE_TIME) {
hideUntil.setHours(0);
hideUntil.setMinutes(0);
hideUntil.setSeconds(0);
hideUntil = hideUntil
.withHourOfDay(0)
.withMinuteOfHour(0)
.withSecondOfMinute(0);
} else {
hideUntil.setSeconds(1);
hideUntil = hideUntil.withSecondOfMinute(1);
}
return hideUntil.getTime();
return hideUntil.getMillis();
}
/**

@ -13,8 +13,6 @@ import org.slf4j.LoggerFactory;
import java.util.Date;
import java.util.TimeZone;
import static org.tasks.date.DateTimeUtils.newDate;
public class GtasksApiUtilities {
private static final Logger log = LoggerFactory.getLogger(GtasksApiUtilities.class);
@ -23,7 +21,7 @@ public class GtasksApiUtilities {
if (time < 0) {
return null;
}
return new DateTime(newDate(time), TimeZone.getDefault());
return new DateTime(new Date(time), TimeZone.getDefault());
}
public static long gtasksCompletedTimeToUnixTime(DateTime gtasksCompletedTime) {
@ -43,7 +41,7 @@ public class GtasksApiUtilities {
if (time < 0) {
return null;
}
Date date = newDate(time / 1000 * 1000);
Date date = new Date(time / 1000 * 1000);
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
@ -58,8 +56,8 @@ public class GtasksApiUtilities {
}
try {
long utcTime = gtasksDueTime.getValue(); //DateTime.parseRfc3339(gtasksDueTime).value;
Date date = newDate(utcTime);
Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000);
Date date = new Date(utcTime);
Date returnDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);
return returnDate.getTime();
} catch (NumberFormatException e) {
log.error(e.getMessage(), e);

@ -40,16 +40,16 @@ import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
import org.tasks.sync.SyncExecutor;
import org.tasks.time.DateTime;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import javax.inject.Inject;
import javax.inject.Singleton;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
@Singleton
public class GtasksSyncV2Provider {
@ -297,13 +297,12 @@ public class GtasksSyncV2Provider {
private void mergeDates(Task remote, Task local) {
if(remote.hasDueDate() && local.hasDueTime()) {
Date newDate = newDate(remote.getDueDate());
Date oldDate = newDate(local.getDueDate());
newDate.setHours(oldDate.getHours());
newDate.setMinutes(oldDate.getMinutes());
newDate.setSeconds(oldDate.getSeconds());
long setDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME,
newDate.getTime());
DateTime oldDate = newDateTime(local.getDueDate());
DateTime newDate = newDateTime(remote.getDueDate())
.withHourOfDay(oldDate.getHourOfDay())
.withMinuteOfHour(oldDate.getMinuteOfHour())
.withSecondOfMinute(oldDate.getSecondOfMinute());
long setDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, newDate.getMillis());
remote.setDueDate(setDate);
}
}

@ -33,22 +33,20 @@ import com.todoroo.astrid.ui.NumberPickerDialog;
import com.todoroo.astrid.ui.NumberPickerDialog.OnNumberPickedListener;
import com.todoroo.astrid.ui.PopupControlSet;
import org.tasks.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.MyDatePickerDialog;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.time.DateTime;
import java.text.DateFormatSymbols;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
/**
@ -206,11 +204,11 @@ public class RepeatControlSet extends PopupControlSet {
@Override
protected void readFromTaskOnInitialize() {
Date date;
DateTime date;
if(model.getDueDate() != 0) {
date = newDate(model.getDueDate());
date = newDateTime(model.getDueDate());
int dayOfWeek = date.getDay();
int dayOfWeek = date.getDayOfWeek();
for(int i = 0; i < 7; i++) {
daysOfWeek[i].setChecked(i == dayOfWeek);
}

@ -30,7 +30,6 @@ import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.time.DateTime;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@ -142,17 +141,16 @@ public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
List<WeekdayNum> byDay = rrule.getByDay();
long newDate = original.getMillis();
newDate += DateUtilities.ONE_WEEK * (rrule.getInterval() - 1);
Calendar date = Calendar.getInstance();
date.setTimeInMillis(newDate);
DateTime date = new DateTime(newDate);
Collections.sort(byDay, weekdayCompare);
WeekdayNum next = findNextWeekday(byDay, date);
do {
date.add(Calendar.DATE, 1);
} while (date.get(Calendar.DAY_OF_WEEK) != next.wday.javaDayNum);
date = date.plusDays(1);
} while (date.getDayOfWeek() != next.wday.javaDayNum);
long time = date.getTimeInMillis();
long time = date.getMillis();
if(hasDueTime) {
return Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, time);
} else {
@ -162,14 +160,12 @@ public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
private static long handleMonthlyRepeat(DateTime original, DateValue startDateAsDV, boolean hasDueTime, RRule rrule) {
if (original.isLastDayOfMonth()) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(original.getMillis());
int interval = rrule.getInterval();
cal.add(Calendar.MONTH, interval);
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
long time = cal.getTimeInMillis();
DateTime newDateTime = original.plusMonths(interval);
long time = newDateTime
.withDayOfMonth(newDateTime.getNumberOfDaysInMonth())
.getMillis();
if (hasDueTime) {
return Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, time);
} else {
@ -188,10 +184,10 @@ public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
};
private static WeekdayNum findNextWeekday(List<WeekdayNum> byDay, Calendar date) {
private static WeekdayNum findNextWeekday(List<WeekdayNum> byDay, DateTime date) {
WeekdayNum next = byDay.get(0);
for (WeekdayNum weekday : byDay) {
if (weekday.wday.javaDayNum > date.get(Calendar.DAY_OF_WEEK)) {
if (weekday.wday.javaDayNum > date.getDayOfWeek()) {
return weekday;
}
}
@ -240,7 +236,7 @@ public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
newDueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, date.getMillis());
} else {
newDueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY,
newDate(nextDate.year(), nextDate.month(), nextDate.day()).getTime());
newDate(nextDate.year(), nextDate.month(), nextDate.day()).getMillis());
}
return newDueDate;
}

@ -23,6 +23,8 @@ import com.todoroo.astrid.utility.Constants;
import org.tasks.R;
import org.tasks.notifications.NotificationManager;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class TimerPlugin {
/**
@ -77,7 +79,7 @@ public class TimerPlugin {
.setContentIntent(pendingIntent)
.setContentTitle(appName)
.setContentText(text)
.setWhen(System.currentTimeMillis())
.setWhen(currentTimeMillis())
.setSmallIcon(R.drawable.timers_notification)
.setAutoCancel(false)
.setOngoing(true)

@ -19,13 +19,10 @@ import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.tasks.time.DateTime;
import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.time.DateTime;
import java.util.Date;
import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
/**
@ -99,8 +96,8 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
if(specificDate > 0) {
HideUntilValue[] updated = new HideUntilValue[values.length + 1];
System.arraycopy(values, 0, updated, 1, values.length);
Date hideUntilAsDate = newDate(specificDate);
if(hideUntilAsDate.getHours() == 0 && hideUntilAsDate.getMinutes() == 0 && hideUntilAsDate.getSeconds() == 0) {
DateTime hideUntilAsDate = newDateTime(specificDate);
if(hideUntilAsDate.getHourOfDay() == 0 && hideUntilAsDate.getMinuteOfHour() == 0 && hideUntilAsDate.getSecondOfMinute() == 0) {
updated[0] = new HideUntilValue(DateUtilities.getDateString(newDateTime(specificDate)),
Task.HIDE_UNTIL_SPECIFIC_DAY, specificDate);
existingDate = specificDate;
@ -198,11 +195,11 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
public void readFromTask(Task task) {
long date = task.getHideUntil();
Date dueDay = newDate(task.getDueDate()/1000L*1000L);
dueDay.setHours(0);
dueDay.setMinutes(0);
dueDay.setSeconds(0);
DateTime dueDay = newDateTime(task.getDueDate())
.withHourOfDay(0)
.withMinuteOfHour(0)
.withSecondOfMinute(0)
.withMillisOfSecond(0);
// For the hide until due case, we need the time component
long dueTime = task.getDueDate()/1000L*1000L;
@ -210,16 +207,16 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
if(date == 0) {
selection = 0;
date = 0;
} else if(date == dueDay.getTime()) {
} else if(date == dueDay.getMillis()) {
selection = 1;
date = 0;
} else if (date == dueTime){
selection = 2;
date = 0;
} else if(date + DateUtilities.ONE_DAY == dueDay.getTime()) {
} else if(date + DateUtilities.ONE_DAY == dueDay.getMillis()) {
selection = 3;
date = 0;
} else if(date + DateUtilities.ONE_WEEK == dueDay.getTime()) {
} else if(date + DateUtilities.ONE_WEEK == dueDay.getMillis()) {
selection = 4;
date = 0;
}

@ -25,7 +25,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceOutputAssistant;
import org.tasks.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication;
@ -37,6 +36,7 @@ import org.tasks.receivers.CompleteTaskReceiver;
import org.tasks.reminders.MissedCallActivity;
import org.tasks.reminders.NotificationActivity;
import org.tasks.reminders.SnoozeActivity;
import org.tasks.time.DateTime;
import java.io.InputStream;
@ -90,7 +90,7 @@ public class Notifier {
.setTicker(title)
.setContentTitle(title)
.setContentText(context.getString(R.string.app_name))
.setWhen(System.currentTimeMillis())
.setWhen(currentTimeMillis())
.setContentIntent(PendingIntent.getActivity(context, missedCallDialog.hashCode(), missedCallDialog, PendingIntent.FLAG_UPDATE_CURRENT));
Bitmap contactImage = getContactImage(contactId);
@ -166,7 +166,7 @@ public class Notifier {
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid)
.setTicker(title)
.setWhen(System.currentTimeMillis())
.setWhen(currentTimeMillis())
.setContentTitle(title)
.setContentText(subtitle)
.setContentIntent(pendingIntent)
@ -246,7 +246,7 @@ public class Notifier {
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid)
.setTicker(taskTitle)
.setWhen(System.currentTimeMillis())
.setWhen(currentTimeMillis())
.setContentTitle(taskTitle)
.setContentText(text)
.setContentIntent(PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT));

@ -2,17 +2,12 @@ package org.tasks.date;
import org.tasks.time.DateTime;
import java.util.Date;
import java.util.TimeZone;
public class DateTimeUtils {
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 DateTime newDate(int year, int month, int day) {
return new DateTime(year, month, day, 0, 0, 0);
}
public static DateTime newDateUtc(int year, int month, int day, int hour, int minute, int second) {
@ -23,10 +18,6 @@ public class DateTimeUtils {
return new DateTime();
}
public static DateTime newDateTime(Date date) {
return newDateTime(date.getTime());
}
public static DateTime newDateTime(long timestamp) {
return new DateTime(timestamp);
}

@ -80,6 +80,10 @@ public class DateTime {
return getCalendar().get(Calendar.DATE);
}
public int getDayOfWeek() {
return getCalendar().get(Calendar.DAY_OF_WEEK);
}
public DateTime plusDays(int interval) {
return add(Calendar.DATE, interval);
}
@ -169,7 +173,7 @@ public class DateTime {
}
public DateTime minusMillis(int millis) {
return subtract(Calendar.MILLISECOND, millis);
return new DateTime(timestamp - millis, timeZone);
}
public DateTime minusDays(int days) {
@ -247,4 +251,12 @@ public class DateTime {
public String toString() {
return toString("yyyy-MM-dd HH:mm:ss.SSSZ");
}
public int getTimezoneOffset() {
return timeZone.getOffset(timestamp);
}
public DateTime plusMillis(int millis) {
return new DateTime(timestamp + millis, timeZone);
}
}

Loading…
Cancel
Save