diff options
author | Michael Chan <mchan@android.com> | 2010-07-13 17:56:09 -0700 |
---|---|---|
committer | Michael Chan <mchan@android.com> | 2010-07-13 18:31:48 -0700 |
commit | 9e89dca0902d13fe27fd2680cc15cbb470e40288 (patch) | |
tree | 7b140b0d210ce6e6c94e2a862c60f4ca5c5be738 /src | |
parent | 25251192d80159d4cf0934f3ac5c84cb0b8b7365 (diff) | |
download | android_packages_apps_Calendar-9e89dca0902d13fe27fd2680cc15cbb470e40288.tar.gz android_packages_apps_Calendar-9e89dca0902d13fe27fd2680cc15cbb470e40288.tar.bz2 android_packages_apps_Calendar-9e89dca0902d13fe27fd2680cc15cbb470e40288.zip |
Added create/edit/view/delete event and open settings and manage calendars to controller
Change-Id: Id9755206e130ee4ebb4a086a9fa3c74d0473a2fe
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/calendar/AgendaListView.java | 15 | ||||
-rw-r--r-- | src/com/android/calendar/AlertActivity.java | 22 | ||||
-rw-r--r-- | src/com/android/calendar/CalendarController.java | 98 | ||||
-rw-r--r-- | src/com/android/calendar/CalendarView.java | 91 | ||||
-rw-r--r-- | src/com/android/calendar/EventInfoActivity.java | 15 | ||||
-rw-r--r-- | src/com/android/calendar/MenuHelper.java | 90 | ||||
-rw-r--r-- | src/com/android/calendar/MonthView.java | 36 |
7 files changed, 198 insertions, 169 deletions
diff --git a/src/com/android/calendar/AgendaListView.java b/src/com/android/calendar/AgendaListView.java index e6f68741..b9e9ea7a 100644 --- a/src/com/android/calendar/AgendaListView.java +++ b/src/com/android/calendar/AgendaListView.java @@ -18,13 +18,9 @@ package com.android.calendar; import com.android.calendar.AgendaAdapter.ViewHolder; import com.android.calendar.AgendaWindowAdapter.EventInfo; +import com.android.calendar.CalendarController.EventType; -import android.content.ContentUris; -import android.content.Intent; import android.graphics.Rect; -import android.net.Uri; -import android.provider.Calendar; -import android.provider.Calendar.Events; import android.text.format.Time; import android.util.Log; import android.view.View; @@ -40,12 +36,10 @@ public class AgendaListView extends ListView implements OnItemClickListener { private AgendaWindowAdapter mWindowAdapter; - private AgendaActivity mAgendaActivity; private DeleteEventHelper mDeleteEventHelper; public AgendaListView(AgendaActivity agendaActivity) { super(agendaActivity, null); - mAgendaActivity = agendaActivity; setOnItemClickListener(this); setChoiceMode(ListView.CHOICE_MODE_SINGLE); @@ -67,11 +61,8 @@ public class AgendaListView extends ListView implements OnItemClickListener { // Switch to the EventInfo view EventInfo event = mWindowAdapter.getEventByPosition(position); if (event != null) { - Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, event.id); - Intent intent = new Intent(Intent.ACTION_VIEW, uri); - intent.putExtra(Calendar.EVENT_BEGIN_TIME, event.begin); - intent.putExtra(Calendar.EVENT_END_TIME, event.end); - mAgendaActivity.startActivity(intent); + AllInOneActivity.mController.sendEventRelatedEvent(this, EventType.VIEW_EVENT, + event.id, event.begin, event.end, 0, 0); } } } diff --git a/src/com/android/calendar/AlertActivity.java b/src/com/android/calendar/AlertActivity.java index 7732c331..9cfc9d09 100644 --- a/src/com/android/calendar/AlertActivity.java +++ b/src/com/android/calendar/AlertActivity.java @@ -16,24 +16,19 @@ package com.android.calendar; -import static android.provider.Calendar.EVENT_BEGIN_TIME; -import static android.provider.Calendar.EVENT_END_TIME; +import com.android.calendar.CalendarController.EventType; import android.app.Activity; import android.app.AlarmManager; import android.app.NotificationManager; import android.content.ContentResolver; -import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; -import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.os.Handler; import android.provider.Calendar.CalendarAlerts; import android.provider.Calendar.CalendarAlertsColumns; -import android.provider.Calendar.Events; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; @@ -178,20 +173,15 @@ public class AlertActivity extends Activity { AlertActivity alertActivity = AlertActivity.this; Cursor cursor = alertActivity.getItemForView(view); + // Mark this alarm as DISMISSED + dismissAlarm(cursor.getLong(INDEX_ROW_ID)); + long id = cursor.getInt(AlertActivity.INDEX_EVENT_ID); long startMillis = cursor.getLong(AlertActivity.INDEX_BEGIN); long endMillis = cursor.getLong(AlertActivity.INDEX_END); + AllInOneActivity.mController.sendEventRelatedEvent(alertActivity, EventType.VIEW_EVENT, + id, startMillis, endMillis, 0, 0); - Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, id); - Intent intent = new Intent(Intent.ACTION_VIEW, uri); - intent.setClass(alertActivity, EventInfoActivity.class); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - - // Mark this alarm as DISMISSED - dismissAlarm(cursor.getLong(INDEX_ROW_ID)); - - startActivity(intent); alertActivity.finish(); } }; diff --git a/src/com/android/calendar/CalendarController.java b/src/com/android/calendar/CalendarController.java index 07dcf39b..ea6fc04a 100644 --- a/src/com/android/calendar/CalendarController.java +++ b/src/com/android/calendar/CalendarController.java @@ -16,8 +16,15 @@ package com.android.calendar; +import static android.provider.Calendar.EVENT_BEGIN_TIME; +import static android.provider.Calendar.EVENT_END_TIME; + import android.app.ActionBar; import android.app.Activity; +import android.content.ContentUris; +import android.content.Intent; +import android.net.Uri; +import android.provider.Calendar.Events; import android.text.format.DateUtils; import android.text.format.Time; import android.util.Log; @@ -51,7 +58,7 @@ public class CalendarController { * One of the event types that are sent to or from the controller */ public interface EventType { - final long NEW_EVENT = 1L; + final long CREATE_EVENT = 1L; final long VIEW_EVENT = 1L << 1; final long EDIT_EVENT = 1L << 2; final long DELETE_EVENT = 1L << 3; @@ -129,13 +136,20 @@ public class CalendarController { * @param sender object of the caller * @param eventType one of {@link EventType} * @param eventId event id + * @param start start time + * @param end end time * @param x x coordinate in the activity space * @param y y coordinate in the activity space */ - public void sendEventRelatedEvent(Object sender, long eventType, long eventId, int x, int y) { + public void sendEventRelatedEvent(Object sender, long eventType, long eventId, long startMillis, + long endMillis, int x, int y) { EventInfo info = new EventInfo(); info.eventType = eventType; info.id = eventId; + info.startTime = new Time(); + info.startTime.set(startMillis); + info.endTime = new Time(); + info.endTime.set(endMillis); info.x = x; info.y = y; this.sendEvent(sender, info); @@ -174,12 +188,33 @@ public class CalendarController { return; } + // Create/View/Edit/Delete Event, Calendars, and Settings + long endTime = (event.endTime == null) ? -1 : event.endTime.toMillis(false); + if (event.eventType == EventType.CREATE_EVENT) { + launchCreateEvent(event.startTime.toMillis(false), endTime); + return; + } else if (event.eventType == EventType.VIEW_EVENT) { + launchViewEvent(event.id, event.startTime.toMillis(false), endTime); + return; + } else if (event.eventType == EventType.EDIT_EVENT) { + launchEditEvent(event.id, event.startTime.toMillis(false), endTime); + return; + } else if (event.eventType == EventType.DELETE_EVENT) { + launchDeleteEvent(event.id, event.startTime.toMillis(false), endTime); + return; + } else if (event.eventType == EventType.LAUNCH_MANAGE_CALENDARS) { + launchManageCalendars(); + return; + } else if (event.eventType == EventType.LAUNCH_SETTINGS) { + launchSettings(); + return; + } + // TODO Move to ActionBar? setTitleInActionBar(event); // Dispatch to view(s) for (EventHandler view : views) { -// Log.d(TAG, "eventInfo = " + view); if (view != null) { boolean supportedEvent = (view.getSupportedEventTypes() & event.eventType) != 0; if (supportedEvent) { @@ -212,8 +247,7 @@ public class CalendarController { if (event.endTime != null && !event.startTime.equals(event.endTime)) { end = event.endTime.toMillis(false /* use isDst */); } - String msg = DateUtils.formatDateRange(mActivity, start, end, DateUtils.FORMAT_SHOW_DATE - | DateUtils.FORMAT_ABBREV_MONTH); + String msg = DateUtils.formatDateRange(mActivity, start, end, DateUtils.FORMAT_SHOW_DATE); ActionBar ab = mActivity.getActionBar(); if (ab != null) { @@ -229,7 +263,7 @@ public class CalendarController { tmp = "Select time/event"; } else if ((eventInfo.eventType & EventType.GO_TO) != 0) { tmp = "Go to time/event"; - } else if ((eventInfo.eventType & EventType.NEW_EVENT) != 0) { + } else if ((eventInfo.eventType & EventType.CREATE_EVENT) != 0) { tmp = "New event"; } else if ((eventInfo.eventType & EventType.VIEW_EVENT) != 0) { tmp = "View event"; @@ -257,4 +291,56 @@ public class CalendarController { builder.append(eventInfo.y); return builder.toString(); } + + private void launchManageCalendars() { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setClass(mActivity, SelectCalendarsActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP); + mActivity.startActivity(intent); + } + + private void launchSettings() { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setClassName(mActivity, CalendarPreferenceActivity.class.getName()); + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP); + mActivity.startActivity(intent); + } + + private void launchCreateEvent(long startMillis, long endMillis) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setClassName(mActivity, EditEventActivity.class.getName()); + intent.putExtra(EVENT_BEGIN_TIME, startMillis); + intent.putExtra(EVENT_END_TIME, endMillis); + mActivity.startActivity(intent); + } + + private void launchViewEvent(long eventId, long startMillis, long endMillis) { + Intent intent = new Intent(Intent.ACTION_VIEW); + Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId); + intent.setData(eventUri); + intent.setClassName(mActivity, EventInfoActivity.class.getName()); + intent.putExtra(EVENT_BEGIN_TIME, startMillis); + intent.putExtra(EVENT_END_TIME, endMillis); + mActivity.startActivity(intent); + } + + private void launchEditEvent(long eventId, long startMillis, long endMillis) { + Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, eventId); + Intent intent = new Intent(Intent.ACTION_EDIT, uri); + intent.putExtra(EVENT_BEGIN_TIME, startMillis); + intent.putExtra(EVENT_END_TIME, endMillis); + intent.setClass(mActivity, EditEventActivity.class); + mActivity.startActivity(intent); + } + + private void launchDeleteEvent(long eventId, long startMillis, long endMillis) { + launchDeleteEventAndFinish(null, eventId, startMillis, endMillis, -1); + } + + private void launchDeleteEventAndFinish(Activity parentActivity, long eventId, long startMillis, + long endMillis, int deleteWhich) { + DeleteEventHelper deleteEventHelper = new DeleteEventHelper(mActivity, parentActivity, + parentActivity != null /* exit when done */); + deleteEventHelper.delete(startMillis, endMillis, eventId, deleteWhich); + } } diff --git a/src/com/android/calendar/CalendarView.java b/src/com/android/calendar/CalendarView.java index 79276344..df8fb37a 100644 --- a/src/com/android/calendar/CalendarView.java +++ b/src/com/android/calendar/CalendarView.java @@ -16,16 +16,12 @@ package com.android.calendar; -import static android.provider.Calendar.EVENT_BEGIN_TIME; -import static android.provider.Calendar.EVENT_END_TIME; - import com.android.calendar.CalendarController.EventType; import com.android.calendar.CalendarController.ViewType; import android.content.ContentResolver; import android.content.ContentUris; import android.content.Context; -import android.content.Intent; import android.content.res.Resources; import android.content.res.TypedArray; import android.database.Cursor; @@ -889,36 +885,20 @@ public class CalendarView extends View // Switch to the EditEvent view long startMillis = getSelectedTimeInMillis(); long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClassName(mContext, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, + startMillis, endMillis, 0, 0); } else { // Switch to the EventInfo view - Intent intent = new Intent(Intent.ACTION_VIEW); - Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, - selectedEvent.id); - intent.setData(eventUri); - intent.setClassName(mContext, EventInfoActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, selectedEvent.startMillis); - intent.putExtra(EVENT_END_TIME, selectedEvent.endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.VIEW_EVENT, selectedEvent.id, + selectedEvent.startMillis, selectedEvent.endMillis, 0, 0); } } else { // This was a touch selection. If the touch selected a single // unambiguous event, then view that event. Otherwise go to // Day/Agenda view. if (mSelectedEvents.size() == 1) { - // Switch to the EventInfo view - Intent intent = new Intent(Intent.ACTION_VIEW); - Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, - selectedEvent.id); - intent.setData(eventUri); - intent.setClassName(mContext, EventInfoActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, selectedEvent.startMillis); - intent.putExtra(EVENT_END_TIME, selectedEvent.endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.VIEW_EVENT, selectedEvent.id, + selectedEvent.startMillis, selectedEvent.endMillis, 0, 0); } } } else { @@ -929,20 +909,12 @@ public class CalendarView extends View // Switch to the EditEvent view long startMillis = getSelectedTimeInMillis(); long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClassName(mContext, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - mContext.startActivity(intent); + + mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, startMillis, + endMillis, 0, 0); } else { - // Switch to the EventInfo view - Intent intent = new Intent(Intent.ACTION_VIEW); - Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, selectedEvent.id); - intent.setData(eventUri); - intent.setClassName(mContext, EventInfoActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, selectedEvent.startMillis); - intent.putExtra(EVENT_END_TIME, selectedEvent.endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.VIEW_EVENT, selectedEvent.id, + selectedEvent.startMillis, selectedEvent.endMillis, 0, 0); } } } @@ -2895,49 +2867,35 @@ public class CalendarView extends View switch (item.getItemId()) { case MenuHelper.MENU_EVENT_VIEW: { if (mSelectedEvent != null) { - long id = mSelectedEvent.id; - Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, id); - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(eventUri); - intent.setClassName(mContext, EventInfoActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, mSelectedEvent.startMillis); - intent.putExtra(EVENT_END_TIME, mSelectedEvent.endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.VIEW_EVENT, + mSelectedEvent.id, mSelectedEvent.startMillis, + mSelectedEvent.endMillis, 0, 0); } break; } case MenuHelper.MENU_EVENT_EDIT: { if (mSelectedEvent != null) { - long id = mSelectedEvent.id; - Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, id); - Intent intent = new Intent(Intent.ACTION_EDIT); - intent.setData(eventUri); - intent.setClassName(mContext, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, mSelectedEvent.startMillis); - intent.putExtra(EVENT_END_TIME, mSelectedEvent.endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.EDIT_EVENT, + mSelectedEvent.id, mSelectedEvent.startMillis, + mSelectedEvent.endMillis, 0, 0); } break; } case MenuHelper.MENU_DAY: { - long startMillis = getSelectedTimeInMillis(); - Utils.startActivity(mContext, DayActivity.class.getName(), startMillis); + mController.sendEvent(this, EventType.SELECT, getSelectedTime(), null, -1, + ViewType.DAY); break; } case MenuHelper.MENU_AGENDA: { - long startMillis = getSelectedTimeInMillis(); - Utils.startActivity(mContext, AgendaActivity.class.getName(), startMillis); + mController.sendEvent(this, EventType.SELECT, getSelectedTime(), null, -1, + ViewType.AGENDA); break; } case MenuHelper.MENU_EVENT_CREATE: { long startMillis = getSelectedTimeInMillis(); long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClassName(mContext, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - intent.putExtra(EditEventHelper.EVENT_ALL_DAY, mSelectionAllDay); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, + startMillis, endMillis, 0, 0); break; } case MenuHelper.MENU_EVENT_DELETE: { @@ -2946,7 +2904,8 @@ public class CalendarView extends View long begin = selectedEvent.startMillis; long end = selectedEvent.endMillis; long id = selectedEvent.id; - mDeleteEventHelper.delete(begin, end, id, -1); + mController.sendEventRelatedEvent(this, EventType.DELETE_EVENT, id, begin, + end, 0, 0); } break; } diff --git a/src/com/android/calendar/EventInfoActivity.java b/src/com/android/calendar/EventInfoActivity.java index 98d9a07b..8e68639f 100644 --- a/src/com/android/calendar/EventInfoActivity.java +++ b/src/com/android/calendar/EventInfoActivity.java @@ -20,6 +20,8 @@ import static android.provider.Calendar.EVENT_BEGIN_TIME; import static android.provider.Calendar.EVENT_END_TIME; import static android.provider.Calendar.AttendeesColumns.ATTENDEE_STATUS; +import com.android.calendar.CalendarController.EventType; + import android.content.ActivityNotFoundException; import android.content.AsyncQueryHandler; import android.content.ContentProviderOperation; @@ -38,19 +40,18 @@ import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; import android.pim.EventRecurrence; -import android.provider.Calendar; +import android.provider.ContactsContract; import android.provider.Calendar.Attendees; import android.provider.Calendar.Calendars; import android.provider.Calendar.Events; import android.provider.Calendar.Reminders; -import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds; -import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Intents; import android.provider.ContactsContract.Presence; import android.provider.ContactsContract.QuickContact; +import android.provider.ContactsContract.CommonDataKinds.Email; import android.text.TextUtils; import android.text.format.DateFormat; import android.text.format.DateUtils; @@ -802,12 +803,8 @@ public class EventInfoActivity extends AbstractCalendarActivity implements View. } private void doEdit() { - Uri uri = ContentUris.withAppendedId(Events.CONTENT_URI, mEventId); - Intent intent = new Intent(Intent.ACTION_EDIT, uri); - intent.putExtra(Calendar.EVENT_BEGIN_TIME, mStartMillis); - intent.putExtra(Calendar.EVENT_END_TIME, mEndMillis); - intent.setClass(EventInfoActivity.this, EditEventActivity.class); - startActivity(intent); + AllInOneActivity.mController.sendEventRelatedEvent(this, EventType.EDIT_EVENT, mEventId, + mStartMillis, mEndMillis, 0, 0); finish(); } diff --git a/src/com/android/calendar/MenuHelper.java b/src/com/android/calendar/MenuHelper.java index b6bf83d2..1c000600 100644 --- a/src/com/android/calendar/MenuHelper.java +++ b/src/com/android/calendar/MenuHelper.java @@ -16,11 +16,12 @@ package com.android.calendar; -import static android.provider.Calendar.EVENT_BEGIN_TIME; -import static android.provider.Calendar.EVENT_END_TIME; +import com.android.calendar.CalendarController.EventType; +import com.android.calendar.CalendarController.ViewType; + import android.app.Activity; -import android.content.Intent; import android.text.format.DateUtils; +import android.text.format.Time; import android.view.Menu; import android.view.MenuItem; @@ -116,8 +117,8 @@ public class MenuHelper { item.setIcon(android.R.drawable.ic_menu_add); item.setAlphabeticShortcut('n'); - item = menu.add(MENU_GROUP_SELECT_CALENDARS, MENU_SELECT_CALENDARS, - 0, R.string.menu_select_calendars); + item = menu.add(MENU_GROUP_SELECT_CALENDARS, MENU_SELECT_CALENDARS, 0, + R.string.menu_select_calendars); item.setIcon(android.R.drawable.ic_menu_manage); item = menu.add(MENU_GROUP_PREFERENCES, MENU_PREFERENCES, 0, R.string.menu_preferences); @@ -128,42 +129,51 @@ public class MenuHelper { } public static boolean onOptionsItemSelected(Activity activity, MenuItem item, Navigator nav) { + Time t; switch (item.getItemId()) { - case MENU_SELECT_CALENDARS: { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClass(activity, SelectCalendarsActivity.class); - activity.startActivity(intent); - return true; - } - case MENU_GOTO_TODAY: - nav.goToToday(); - return true; - case MENU_PREFERENCES: - Utils.startActivity(activity, CalendarPreferenceActivity.class.getName(), nav.getSelectedTime()); - return true; - case MENU_AGENDA: - Utils.startActivity(activity, AgendaActivity.class.getName(), nav.getSelectedTime()); - return true; - case MENU_DAY: - Utils.startActivity(activity, DayActivity.class.getName(), nav.getSelectedTime()); - return true; - case MENU_WEEK: - Utils.startActivity(activity, WeekActivity.class.getName(), nav.getSelectedTime()); - return true; - case MENU_MONTH: - Utils.startActivity(activity, MonthActivity.class.getName(), nav.getSelectedTime()); - return true; - case MENU_EVENT_CREATE: { - long startMillis = nav.getSelectedTime(); - long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; - Intent intent = new Intent(Intent.ACTION_EDIT); - intent.setClassName(activity, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - intent.putExtra(EditEventHelper.EVENT_ALL_DAY, nav.getAllDay()); - activity.startActivity(intent); - return true; - } + case MENU_SELECT_CALENDARS: + AllInOneActivity.mController.sendEvent(activity, EventType.LAUNCH_MANAGE_CALENDARS, + null, null, 0, 0); + return true; + case MENU_GOTO_TODAY: + nav.goToToday(); + return true; + case MENU_PREFERENCES: + AllInOneActivity.mController.sendEvent(activity, EventType.LAUNCH_SETTINGS, null, + null, 0, 0); + return true; + case MENU_AGENDA: + // FRAG_TODO switch all to time or long? + t = new Time(); + t.set(nav.getSelectedTime()); + AllInOneActivity.mController.sendEvent(activity, EventType.SELECT, t, null, -1, + ViewType.AGENDA); + return true; + case MENU_DAY: + t = new Time(); + t.set(nav.getSelectedTime()); + AllInOneActivity.mController.sendEvent(activity, EventType.SELECT, t, null, -1, + ViewType.DAY); + return true; + case MENU_WEEK: + t = new Time(); + t.set(nav.getSelectedTime()); + AllInOneActivity.mController.sendEvent(activity, EventType.SELECT, t, null, -1, + ViewType.WEEK); + return true; + case MENU_MONTH: + t = new Time(); + t.set(nav.getSelectedTime()); + AllInOneActivity.mController.sendEvent(activity, EventType.SELECT, t, null, -1, + ViewType.MONTH); + return true; + case MENU_EVENT_CREATE: { + long startMillis = nav.getSelectedTime(); + long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; + AllInOneActivity.mController.sendEventRelatedEvent(activity, + EventType.CREATE_EVENT, -1, startMillis, endMillis, 0, 0); + return true; + } } return false; } diff --git a/src/com/android/calendar/MonthView.java b/src/com/android/calendar/MonthView.java index 12f060f7..1ede096a 100644 --- a/src/com/android/calendar/MonthView.java +++ b/src/com/android/calendar/MonthView.java @@ -16,24 +16,20 @@ package com.android.calendar; -import static android.provider.Calendar.EVENT_BEGIN_TIME; -import static android.provider.Calendar.EVENT_END_TIME; - import com.android.calendar.CalendarController.EventType; import com.android.calendar.CalendarController.ViewType; import android.content.Context; -import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; -import android.graphics.Paint.Style; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.Paint.Style; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.SystemClock; @@ -41,7 +37,6 @@ import android.text.format.DateUtils; import android.text.format.Time; import android.util.SparseArray; import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; import android.view.GestureDetector; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -49,6 +44,7 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; +import android.view.ContextMenu.ContextMenuInfo; import android.widget.PopupWindow; import java.util.ArrayList; @@ -412,24 +408,20 @@ public class MonthView extends View implements View.OnCreateContextMenuListener, public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case MenuHelper.MENU_DAY: { - long startMillis = getSelectedTimeInMillis(); - Utils.startActivity(mContext, DayActivity.class.getName(), startMillis); + mController.sendEvent(mContext, EventType.SELECT, MonthView.this + .getSelectedTime(), null, -1, ViewType.DAY); break; } case MenuHelper.MENU_AGENDA: { - long startMillis = getSelectedTimeInMillis(); - Utils.startActivity(mContext, AgendaActivity.class.getName(), - startMillis); + mController.sendEvent(mContext, EventType.SELECT, MonthView.this + .getSelectedTime(), null, -1, ViewType.AGENDA); break; } case MenuHelper.MENU_EVENT_CREATE: { long startMillis = getSelectedTimeInMillis(); long endMillis = startMillis + DateUtils.HOUR_IN_MILLIS; - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setClassName(mContext, EditEventActivity.class.getName()); - intent.putExtra(EVENT_BEGIN_TIME, startMillis); - intent.putExtra(EVENT_END_TIME, endMillis); - mContext.startActivity(intent); + mController.sendEventRelatedEvent(mContext, EventType.CREATE_EVENT, -1, + startMillis, endMillis, 0, 0); break; } default: { @@ -954,7 +946,7 @@ public class MonthView extends View implements View.OnCreateContextMenuListener, invalidate(); } - public long getSelectedTimeInMillis() { + public Time getSelectedTime() { Time time = mTempTime; time.set(mViewCalendar); @@ -966,7 +958,11 @@ public class MonthView extends View implements View.OnCreateContextMenuListener, time.second = mSavedTime.second; time.minute = mSavedTime.minute; time.hour = mSavedTime.hour; - return time.normalize(true); + return time; + } + + public long getSelectedTimeInMillis() { + return getSelectedTime().normalize(true); } public Time getTime() { @@ -1078,8 +1074,8 @@ public class MonthView extends View implements View.OnCreateContextMenuListener, switch (keyCode) { case KeyEvent.KEYCODE_ENTER: - long millis = getSelectedTimeInMillis(); - Utils.startActivity(getContext(), mDetailedView, millis); + mController.sendEvent(mContext, EventType.SELECT, MonthView.this + .getSelectedTime(), null, -1, ViewType.DAY); return true; case KeyEvent.KEYCODE_DPAD_UP: if (mCursor.up()) { |