summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-09-27 20:02:11 -0400
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-09-27 20:02:11 -0400
commit2a5232ddf4c073b8cdaac7884624d0f6f207ef9e (patch)
treec83f5a56ee87c77a6b92bad6ae2a101c4f1b3118
parent670889f7e328330909c99f36b35e7a84e2927511 (diff)
parent8dcdafdcedb5f4854313ee3b44db69688bff6c3f (diff)
downloadCalendar-2a5232ddf4c073b8cdaac7884624d0f6f207ef9e.tar.gz
Merge change 27334 into eclair
* changes: make EventInfoActivity handle hasAttendeeData.
-rw-r--r--src/com/android/calendar/EventInfoActivity.java42
1 files changed, 26 insertions, 16 deletions
diff --git a/src/com/android/calendar/EventInfoActivity.java b/src/com/android/calendar/EventInfoActivity.java
index 1ca84824..f61f91ee 100644
--- a/src/com/android/calendar/EventInfoActivity.java
+++ b/src/com/android/calendar/EventInfoActivity.java
@@ -112,10 +112,11 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
Events.HAS_ALARM, // 10
Events.ACCESS_LEVEL, // 11
Events.COLOR, // 12
- Events.GUESTS_CAN_MODIFY, // 13
+ Events.HAS_ATTENDEE_DATA, // 13
+ Events.GUESTS_CAN_MODIFY, // 14
// TODO Events.GUESTS_CAN_INVITE_OTHERS has not been implemented in calendar provider
- Events.GUESTS_CAN_INVITE_OTHERS, // 14
- Events.ORGANIZER, // 15
+ Events.GUESTS_CAN_INVITE_OTHERS, // 15
+ Events.ORGANIZER, // 16
};
private static final int EVENT_INDEX_ID = 0;
private static final int EVENT_INDEX_TITLE = 1;
@@ -129,9 +130,10 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
private static final int EVENT_INDEX_HAS_ALARM = 10;
private static final int EVENT_INDEX_ACCESS_LEVEL = 11;
private static final int EVENT_INDEX_COLOR = 12;
- private static final int EVENT_INDEX_GUESTS_CAN_MODIFY = 13;
- private static final int EVENT_INDEX_CAN_INVITE_OTHERS = 14;
- private static final int EVENT_INDEX_ORGANIZER = 15;
+ private static final int EVENT_INDEX_HAS_ATTENDEE_DATA = 13;
+ private static final int EVENT_INDEX_GUESTS_CAN_MODIFY = 14;
+ private static final int EVENT_INDEX_CAN_INVITE_OTHERS = 15;
+ private static final int EVENT_INDEX_ORGANIZER = 16;
private static final String[] ATTENDEES_PROJECTION = new String[] {
Attendees._ID, // 0
@@ -200,6 +202,8 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
private long mStartMillis;
private long mEndMillis;
+ private boolean mHasAttendeeData;
+ private boolean mIsOrganizer;
private long mCalendarOwnerAttendeeId = -1;
private String mCalendarOwnerAccount;
private boolean mCanModifyCalendar;
@@ -327,6 +331,9 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
mCalendarsCursor.moveToFirst();
mCalendarOwnerAccount = mCalendarsCursor.getString(CALENDARS_INDEX_OWNER_ACCOUNT);
}
+ String eventOrganizer = mEventCursor.getString(EVENT_INDEX_ORGANIZER);
+ mIsOrganizer = mCalendarOwnerAccount.equals(eventOrganizer);
+ mHasAttendeeData = mEventCursor.getInt(EVENT_INDEX_HAS_ATTENDEE_DATA) != 0;
updateView();
@@ -336,15 +343,14 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
mAttendeesCursor = managedQuery(uri, ATTENDEES_PROJECTION, where, ATTENDEES_SORT_ORDER);
initAttendeesCursor();
- String eventOrganizer = mEventCursor.getString(EVENT_INDEX_ORGANIZER);
mOrganizer = eventOrganizer;
mCanModifyCalendar =
mEventCursor.getInt(EVENT_INDEX_ACCESS_LEVEL) >= Calendars.CONTRIBUTOR_ACCESS;
mIsBusyFreeCalendar =
mEventCursor.getInt(EVENT_INDEX_ACCESS_LEVEL) == Calendars.FREEBUSY_ACCESS;
+
mCanModifyEvent = mCanModifyCalendar
- && (mCalendarOwnerAccount.equals(eventOrganizer)
- || mEventCursor.getInt(EVENT_INDEX_GUESTS_CAN_MODIFY) != 0);
+ && (mIsOrganizer || (mEventCursor.getInt(EVENT_INDEX_GUESTS_CAN_MODIFY) != 0));
// Initialize the reminder values array.
Resources r = getResources();
@@ -422,7 +428,7 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
private void updateTitle() {
Resources res = getResources();
- if (mCanModifyCalendar && mNumOfAttendees > 1) {
+ if (mCanModifyCalendar && !mIsOrganizer) {
setTitle(res.getString(R.string.event_info_title_invite));
} else {
setTitle(res.getString(R.string.event_info_title));
@@ -505,7 +511,10 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
updateAttendees();
}
}
- if (mNumOfAttendees > 1) {
+ // only show the organizer if we're not the organizer and if
+ // we have attendee data (might have been removed by the server
+ // for events with a lot of attendees).
+ if (!mIsOrganizer && mHasAttendeeData) {
mOrganizerContainer.setVisibility(View.VISIBLE);
mOrganizerView.setText(mOrganizer);
} else {
@@ -534,11 +543,9 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
try {
cr.applyBatch(Calendars.CONTENT_URI.getAuthority(), ops);
} catch (RemoteException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Log.w(TAG, "Ignoring exception: ", e);
} catch (OperationApplicationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Log.w(TAG, "Ignoring exception: ", e);
}
changed |= saveResponse(cr);
@@ -1000,7 +1007,10 @@ public class EventInfoActivity extends Activity implements View.OnClickListener,
}
void updateResponse() {
- if (!mCanModifyCalendar || mNumOfAttendees <= 1) {
+ // you can only accept/reject/etc. a meeting if:
+ // a) you can edit the event's containing calendar
+ // b) you're not the organizer and only attendee
+ if (!mCanModifyCalendar || (mIsOrganizer && mNumOfAttendees <= 1)) {
setVisibilityCommon(R.id.response_container, View.GONE);
return;
}