Merge remote-tracking branch 'stingerAJ/2011-7-25-patches'

pull/14/head
Tim Su 13 years ago
commit bbd943f0a8

@ -37,6 +37,42 @@ public class DateUtilities {
return date.getTime();
}
/**
* Add the specified amount of months to the given time.<br/>
* The day of month will stay the same.<br/>
*
* @param time the base-time (in milliseconds) to which the amount of months is added
* @param interval the amount of months to be added
* @return the calculated time in milliseconds
*/
public static final long addCalendarMonthsToUnixtime(long time, int interval) {
long result = 0;
Date date = new Date(time);
int month = date.getMonth();
int year = date.getYear();
int yearsToAdd = interval / 12;
int monthsToAdd = interval % 12;
year += yearsToAdd;
month += monthsToAdd;
// correct month overflow
if (month > Calendar.DECEMBER) {
month = month - Calendar.DECEMBER - 1;
year++;
}
// the day stays the same, thats the point
// it's especially important for birthday-reminders
date.setMonth(month);
date.setYear(year);
result = date.getTime();
return result;
}
/** Returns unixtime for current time */
public static final long now() {
return System.currentTimeMillis();
@ -58,6 +94,9 @@ public class DateUtilities {
/** Represents a single week */
public static long ONE_WEEK = 7 * ONE_DAY;
/** Represents a single minute */
public static long ONE_MINUTE = ONE_HOUR / 60;
/* ======================================================================
* =========================================================== formatters
* ====================================================================== */

@ -182,11 +182,17 @@ public class NotificationActivity extends TaskListActivity implements OnTimeSetL
case RepeatControlSet.INTERVAL_HOURS:
time += value * DateUtilities.ONE_HOUR;
break;
case RepeatControlSet.INTERVAL_MINUTES:
time += value * DateUtilities.ONE_MINUTE;
break;
case RepeatControlSet.INTERVAL_WEEKS:
time += value * 7 * DateUtilities.ONE_DAY;
break;
case RepeatControlSet.INTERVAL_MONTHS:
time += value * 30 * DateUtilities.ONE_DAY;
time = DateUtilities.addCalendarMonthsToUnixtime(time, 1);
break;
case RepeatControlSet.INTERVAL_YEARS:
time = DateUtilities.addCalendarMonthsToUnixtime(time, 12);
break;
}

@ -49,6 +49,8 @@ public class RepeatControlSet implements TaskEditControlSet {
public static final int INTERVAL_WEEKS = 1;
public static final int INTERVAL_MONTHS = 2;
public static final int INTERVAL_HOURS = 3;
public static final int INTERVAL_MINUTES = 4;
public static final int INTERVAL_YEARS = 5;
private static final int TYPE_DUE_DATE = 0;
private static final int TYPE_COMPLETION_DATE = 1;
@ -199,6 +201,12 @@ public class RepeatControlSet implements TaskEditControlSet {
case HOURLY:
interval.setSelection(INTERVAL_HOURS);
break;
case MINUTELY:
interval.setSelection(INTERVAL_MINUTES);
break;
case YEARLY:
interval.setSelection(INTERVAL_YEARS);
break;
default:
// an unhandled recurrence
exceptionService.reportError("repeat-unhandled-rule", //$NON-NLS-1$
@ -265,6 +273,13 @@ public class RepeatControlSet implements TaskEditControlSet {
break;
case INTERVAL_HOURS:
rrule.setFreq(Frequency.HOURLY);
break;
case INTERVAL_MINUTES:
rrule.setFreq(Frequency.MINUTELY);
break;
case INTERVAL_YEARS:
rrule.setFreq(Frequency.YEARLY);
break;
}
result = rrule.toIcal();

@ -80,6 +80,10 @@ public class RepeatDetailExposer extends BroadcastReceiver {
interval = r.getQuantityString(R.plurals.DUt_months, rrule.getInterval(),
rrule.getInterval());
break;
case YEARLY:
interval = r.getQuantityString(R.plurals.DUt_years, rrule.getInterval(),
rrule.getInterval());
break;
default:
// not designed to be used, only a fail-safe
interval = rrule.getInterval() + "-" + rrule.getFreq().name(); //$NON-NLS-1$

@ -97,6 +97,8 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
if(rrule.getFreq() == Frequency.HOURLY)
return handleHourlyRepeat(original, rrule);
else if(rrule.getFreq() == Frequency.MINUTELY)
return handleMinutelyRepeat(original, rrule);
else
return invokeRecurrence(rrule, original, startDateAsDV);
}
@ -199,4 +201,11 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
return newDueDate;
}
private static long handleMinutelyRepeat(Date startDate, RRule rrule) {
long newDueDate;
newDueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME,
startDate.getTime() + DateUtilities.ONE_MINUTE * rrule.getInterval());
return newDueDate;
}
}

@ -1750,11 +1750,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Interval de Repecitiò</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dia/es</item>
<item>Setmana/es</item>
<item>Mes/os</item>
<item>Hora/es</item>
<item>Minut/s</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1737,11 +1737,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Opakovací interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dnů</item>
<item>Týdnů</item>
<item>Měsíců</item>
<item>Hodin</item>
<item>Minut</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1733,11 +1733,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Repeat Interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dag(e)</item>
<item>Uge(r)</item>
<item>Måned(er)</item>
<item>Time(r)</item>
<item>Minut(er)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1730,11 +1730,13 @@ Achtung: diese Aufgaben sind unwiederbringlich verloren, wenn Sie kein Backup ge
<string name="repeat_interval_prompt">Wiederholungsintervall</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Tag(e)</item>
<item>Woche(n)</item>
<item>Monat(e)</item>
<item>Stunde(n)</item>
<item>Minute(n)</item>
<item>Jahr(e)</item>
</string-array>
<string-array name="repeat_type">

@ -1748,11 +1748,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Intervalo de repetición</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Día(s)</item>
<item>Semana(s)</item>
<item>Mes(es)</item>
<item>Hora(s)</item>
<item>Minuto(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1734,11 +1734,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Interval de répétition</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Jour(s)</item>
<item>Semaine(s)</item>
<item>Mois</item>
<item>Heure(s)</item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1763,11 +1763,13 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="repeat_interval_prompt">Repeat Interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>יום/ימים</item>
<item>שבוע/(ות)</item>
<item>חודש/ים</item>
<item>שעה/ות</item>
<item>דקה/דקות</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1734,11 +1734,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Intervallo di ripetizione</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Giorno(i)</item>
<item>Settimana(e)</item>
<item>Mese(i)</item>
<item>Ora(e)</item>
<item>Minuto(i)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1738,11 +1738,13 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="repeat_interval_prompt">繰り返し間隔</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>日毎</item>
<item>週毎</item>
<item>か月毎</item>
<item>時間毎</item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1745,11 +1745,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">반복 주기</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item></item>
<item></item>
<item></item>
<item></item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1741,11 +1741,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Gjentakelsesintervall</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dag(er)</item>
<item>Uke(r)</item>
<item>Måned(er)</item>
<item>Time(r)</item>
<item>Minutt(er)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1716,11 +1716,13 @@
<string name="repeat_interval_prompt">Herhaal interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dag(en)</item>
<item>Week/Weken</item>
<item>Maand(en)</item>
<item>Uur/Uren</item>
<item>Minuut/Minuten</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1745,11 +1745,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Odstęp powtarzania</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dzień/Dni</item>
<item>Tydzień/Tygodni(e)</item>
<item>Miesiąc/Miesiący(e)</item>
<item>Godzinę(y)/Godzin</item>
<item>Minuta/Minut</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1753,11 +1753,13 @@ Astrid might not let you know when your tasks are due.\n
<string name="repeat_interval_prompt">Repeat Interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dia(s)</item>
<item>Semana(s)</item>
<item>Mês(es)</item>
<item>Hora(s)</item>
<item>Minuto(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1734,11 +1734,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Интервал повтора</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>День(дней)</item>
<item>Неделя(ль)</item>
<item>Месяц(ев)</item>
<item>Час(ов)</item>
<item>минут(а)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1733,11 +1733,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">Upprepningsintervall</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Dag(ar)</item>
<item>Vecka (veckor)</item>
<item>Månad(er)</item>
<item>Timme (timmar)</item>
<item>Minut(er)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1761,11 +1761,13 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
<string name="repeat_interval_prompt">Repeat Interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>วัน</item>
<item>สัปดาห์</item>
<item>เดือน</item>
<item>ชั่วโมง</item>
<item>นาที</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1717,11 +1717,13 @@
<string name="repeat_interval_prompt">重复间隔</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item></item>
<item></item>
<item></item>
<item>小时</item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -1734,11 +1734,13 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<string name="repeat_interval_prompt">重複間隔</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item></item>
<item></item>
<item></item>
<item>小時</item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -20,11 +20,13 @@
<string name="repeat_interval_prompt">Repeat Interval</string>
<string-array name="repeat_interval">
<!-- repeat interval (days,weeks,months,hours) -->
<!-- repeat interval (days,weeks,months,hours,minutes,years) -->
<item>Day(s)</item>
<item>Week(s)</item>
<item>Month(s)</item>
<item>Hour(s)</item>
<item>Minute(s)</item>
<item>Year(s)</item>
</string-array>
<string-array name="repeat_type">

@ -75,9 +75,13 @@ public class ContactsAutoComplete extends AutoCompleteTextView {
// --- cursor stuff
private void setUpContacts() {
adapter = new ContactListAdapter((Activity) getContext(), null);
adapter.setCompleteSharedTags(completeTags);
setAdapter(adapter);
try {
adapter = new ContactListAdapter((Activity) getContext(), null);
adapter.setCompleteSharedTags(completeTags);
setAdapter(adapter);
} catch (VerifyError ve) {
adapter = null;
}
}
// --- getters and setters
@ -92,7 +96,8 @@ public class ContactsAutoComplete extends AutoCompleteTextView {
public void setCompleteSharedTags(boolean value) {
completeTags = value;
adapter.setCompleteSharedTags(value);
if (adapter != null)
adapter.setCompleteSharedTags(value);
}
public void setAllowMultiple(boolean allowMultiple) {

Loading…
Cancel
Save