From 8286d2f75e9c808f022c8c6b7431f50e7f60372f Mon Sep 17 00:00:00 2001 From: Sara Ting Date: Thu, 13 Sep 2012 12:17:01 -0700 Subject: Fix default calendar used when creating/editing event for the first time. Bug:7148804 Change-Id: I99bfd9008eb0ec7697d2b6a6136cd2e203c19d96 --- src/com/android/calendar/event/EditEventHelper.java | 2 ++ src/com/android/calendar/event/EditEventView.java | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/com/android/calendar/event/EditEventHelper.java b/src/com/android/calendar/event/EditEventHelper.java index 371ba274..98549658 100644 --- a/src/com/android/calendar/event/EditEventHelper.java +++ b/src/com/android/calendar/event/EditEventHelper.java @@ -169,6 +169,7 @@ public class EditEventHelper { Calendars.ALLOWED_REMINDERS, // 8 Calendars.ALLOWED_ATTENDEE_TYPES, // 9 Calendars.ALLOWED_AVAILABILITY, // 10 + Calendars.ACCOUNT_NAME, // 11 }; static final int CALENDARS_INDEX_ID = 0; static final int CALENDARS_INDEX_DISPLAY_NAME = 1; @@ -181,6 +182,7 @@ public class EditEventHelper { static final int CALENDARS_INDEX_ALLOWED_REMINDERS = 8; static final int CALENDARS_INDEX_ALLOWED_ATTENDEE_TYPES = 9; static final int CALENDARS_INDEX_ALLOWED_AVAILABILITY = 10; + static final int CALENDARS_INDEX_ACCOUNT_NAME = 11; static final String CALENDARS_WHERE_WRITEABLE_VISIBLE = Calendars.CALENDAR_ACCESS_LEVEL + ">=" + Calendars.CAL_ACCESS_CONTRIBUTOR + " AND " + Calendars.VISIBLE + "=1"; diff --git a/src/com/android/calendar/event/EditEventView.java b/src/com/android/calendar/event/EditEventView.java index 57d56b14..c6f49542 100644 --- a/src/com/android/calendar/event/EditEventView.java +++ b/src/com/android/calendar/event/EditEventView.java @@ -1415,14 +1415,21 @@ public class EditEventView implements View.OnClickListener, DialogInterface.OnCa String defaultCalendar = Utils.getSharedPreference( mActivity, GeneralPreferences.KEY_DEFAULT_CALENDAR, (String) null); - if (defaultCalendar == null) { - return 0; - } int calendarsOwnerColumn = calendarsCursor.getColumnIndexOrThrow(Calendars.OWNER_ACCOUNT); + int accountNameIndex = calendarsCursor.getColumnIndexOrThrow(Calendars.ACCOUNT_NAME); int position = 0; calendarsCursor.moveToPosition(-1); while (calendarsCursor.moveToNext()) { - if (defaultCalendar.equals(calendarsCursor.getString(calendarsOwnerColumn))) { + String calendarOwner = calendarsCursor.getString(calendarsOwnerColumn); + if (defaultCalendar == null) { + // There is no stored default upon the first time running. Use a primary + // calendar in this case. + if (calendarOwner != null && + calendarOwner.equals(calendarsCursor.getString(accountNameIndex))) { + return position; + } + } else if (defaultCalendar.equals(calendarOwner)) { + // Found the default calendar. return position; } position++; -- cgit v1.2.3