summaryrefslogtreecommitdiffstats
path: root/src/com/android/calendar/agenda/AgendaListView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calendar/agenda/AgendaListView.java')
-rw-r--r--src/com/android/calendar/agenda/AgendaListView.java43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/com/android/calendar/agenda/AgendaListView.java b/src/com/android/calendar/agenda/AgendaListView.java
index 6cfc7e5b..f3270e66 100644
--- a/src/com/android/calendar/agenda/AgendaListView.java
+++ b/src/com/android/calendar/agenda/AgendaListView.java
@@ -20,6 +20,8 @@ import com.android.calendar.CalendarController;
import com.android.calendar.CalendarController.EventType;
import com.android.calendar.DeleteEventHelper;
import com.android.calendar.R;
+import com.android.calendar.CalendarUtils.ShareEventListener;
+import com.android.calendar.CalendarUtils.Triple;
import com.android.calendar.Utils;
import com.android.calendar.agenda.AgendaAdapter.ViewHolder;
import com.android.calendar.agenda.AgendaWindowAdapter.DayAdapterInfo;
@@ -51,6 +53,9 @@ public class AgendaListView extends ListView implements OnItemClickListener {
private Time mTime;
private boolean mShowEventDetailsWithAgenda;
private Handler mHandler = null;
+ private boolean mLaunchedInShareMode;
+ private boolean mShouldSelectSingleEvent;
+ private ShareEventListener mShareEventListener;
private final Runnable mTZUpdater = new Runnable() {
@Override
@@ -86,6 +91,12 @@ public class AgendaListView extends ListView implements OnItemClickListener {
initView(context);
}
+ // "share mode" is off by default
+ public void launchInShareMode(boolean inShareMode, boolean selectSingleEvent) {
+ mLaunchedInShareMode = true;
+ mShouldSelectSingleEvent = selectSingleEvent;
+ }
+
private void initView(Context context) {
mContext = context;
mTimeZone = Utils.getTimeZone(context, mTZUpdater);
@@ -108,6 +119,10 @@ public class AgendaListView extends ListView implements OnItemClickListener {
mHandler = new Handler();
}
+ public void setShareEventListener(ShareEventListener listener) {
+ mShareEventListener = listener;
+ }
+
// Sets a thread to run every EVENT_UPDATE_TIME in order to update the list
// with grayed out past events
private void setPastEventsUpdater() {
@@ -197,10 +212,30 @@ public class AgendaListView extends ListView implements OnItemClickListener {
endTime = Utils.convertAlldayLocalToUTC(mTime, endTime, mTimeZone);
}
mTime.set(startTime);
- CalendarController controller = CalendarController.getInstance(mContext);
- controller.sendEventRelatedEventWithExtra(this, EventType.VIEW_EVENT, item.id,
- startTime, endTime, 0, 0, CalendarController.EventInfo.buildViewExtraLong(
- Attendees.ATTENDEE_STATUS_NONE, item.allDay), holderStartTime);
+
+ // divert click action to either a ShareEventListener or the Controller
+ if (mShareEventListener != null && mLaunchedInShareMode) {
+ long viewId = ((ViewHolder) holder).instanceId;
+
+ if (mWindowAdapter.isEventInShareList(viewId)) {
+ Triple<Long, Long, Long> eventinfo =
+ new Triple<Long, Long, Long>(item.id, item.begin, item.end);
+ if (mShouldSelectSingleEvent) mShareEventListener.onResetShareList();
+ mShareEventListener.onEventShared(eventinfo);
+
+ } else {
+ // submit event removal
+ mShareEventListener.onEventRemoval(item.id);
+ }
+
+ } else {
+ CalendarController controller = CalendarController.getInstance(mContext);
+ controller.sendEventRelatedEventWithExtra(this, EventType.VIEW_EVENT, item.id,
+ startTime, endTime, 0, 0,
+ CalendarController.EventInfo.buildViewExtraLong(
+ Attendees.ATTENDEE_STATUS_NONE, item.allDay),
+ holderStartTime);
+ }
}
}
}