Skip to content

Commit 63a3219

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 68bb339 commit 63a3219

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
@@ -1363,10 +1363,13 @@ public void handleEvent(EventInfo event) {
13631363
if (event.startTime != null && event.endTime != null) {
13641364
// Event is all day , adjust the goto time to local time
13651365
if (event.isAllDay()) {
1366-
Utils.convertAlldayUtcToLocal(
1367-
event.startTime, event.startTime.toMillis(), mTimeZone);
1368-
Utils.convertAlldayUtcToLocal(
1369-
event.endTime, event.endTime.toMillis(), mTimeZone);
1366+
final Time t = new Time();
1367+
event.startTime.set(
1368+
Utils.convertAlldayUtcToLocal(
1369+
t, event.startTime.toMillis(), mTimeZone));
1370+
event.endTime.set(
1371+
Utils.convertAlldayUtcToLocal(
1372+
t, event.endTime.toMillis(), mTimeZone));
13701373
}
13711374
mController.sendEvent(this, EventType.GO_TO, event.startTime, event.endTime,
13721375
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)