Skip to content

Commit 4169e03

Browse files
author
Lionel Mamane
committed
protect against convertAlldayUtcToLocal trashing its recycle argument
when it looks like the caller does not expect it
1 parent 983b9a9 commit 4169e03

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

app/src/main/java/com/android/calendar/AllInOneActivity.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,10 +1365,13 @@ public void handleEvent(EventInfo event) {
13651365
if (event.startTime != null && event.endTime != null) {
13661366
// Event is all day , adjust the goto time to local time
13671367
if (event.isAllDay()) {
1368-
Utils.convertAlldayUtcToLocal(
1369-
event.startTime, event.startTime.toMillis(), mTimeZone);
1370-
Utils.convertAlldayUtcToLocal(
1371-
event.endTime, event.endTime.toMillis(), mTimeZone);
1368+
final Time t = new Time();
1369+
event.startTime.set(
1370+
Utils.convertAlldayUtcToLocal(
1371+
t, event.startTime.toMillis(), mTimeZone));
1372+
event.endTime.set(
1373+
Utils.convertAlldayUtcToLocal(
1374+
t, event.endTime.toMillis(), mTimeZone));
13721375
}
13731376
mController.sendEvent(this, EventType.GO_TO, event.startTime, event.endTime,
13741377
event.selectedTime, event.id, ViewType.AGENDA,

app/src/main/java/com/android/calendar/agenda/AgendaByDayAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,9 @@ public void calculateDays(DayAdapterInfo dayAdapterInfo) {
306306
long instanceId = cursor.getLong(AgendaWindowAdapter.INDEX_INSTANCE_ID);
307307
boolean allDay = cursor.getInt(AgendaWindowAdapter.INDEX_ALL_DAY) != 0;
308308
if (allDay) {
309-
startTime = Utils.convertAlldayUtcToLocal(tempTime, startTime, mTimeZone);
310-
endTime = Utils.convertAlldayUtcToLocal(tempTime, endTime, mTimeZone);
309+
final Time recycle = new Time();
310+
startTime = Utils.convertAlldayUtcToLocal(recycle, startTime, mTimeZone);
311+
endTime = Utils.convertAlldayUtcToLocal(recycle, endTime, mTimeZone);
311312
}
312313
// Skip over the days outside of the adapter's range
313314
startDay = Math.max(startDay, dayAdapterInfo.start);

app/src/main/java/com/android/calendar/alerts/AlarmScheduler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ private static void queryNextReminderAndSchedule(Cursor instancesCursor, Context
206206
long localStartTime;
207207
if (allday) {
208208
// Adjust allday to local time.
209-
localStartTime = Utils.convertAlldayUtcToLocal(timeObj, begin,
209+
localStartTime = Utils.convertAlldayUtcToLocal(null, begin,
210210
Utils.getCurrentTimezone());
211211
} else {
212212
localStartTime = begin;

0 commit comments

Comments
 (0)