summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorMichael Chan <mchan@android.com>2010-07-13 17:56:09 -0700
committerMichael Chan <mchan@android.com>2010-07-13 18:31:48 -0700
commit9e89dca0902d13fe27fd2680cc15cbb470e40288 (patch)
tree7b140b0d210ce6e6c94e2a862c60f4ca5c5be738 /src/com/android
parent25251192d80159d4cf0934f3ac5c84cb0b8b7365 (diff)
downloadandroid_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/com/android')
-rw-r--r--src/com/android/calendar/AgendaListView.java15
-rw-r--r--src/com/android/calendar/AlertActivity.java22
-rw-r--r--src/com/android/calendar/CalendarController.java98
-rw-r--r--src/com/android/calendar/CalendarView.java91
-rw-r--r--src/com/android/calendar/EventInfoActivity.java15
-rw-r--r--src/com/android/calendar/MenuHelper.java90
-rw-r--r--src/com/android/calendar/MonthView.java36
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()) {