From 6a7003d1b9bf20f4c6e001d054b1ab556ddec4a4 Mon Sep 17 00:00:00 2001 From: RoboErik Date: Thu, 4 Aug 2011 16:23:20 -0700 Subject: [PATCH] Remove attendees list in edit event (chips only) Also fixes b/5118490 which was the cancel button being gone. Change-Id: Idab96876601627e48dddaa3ef4756f11ac9c5dfb --- CleanSpec.mk | 1 + res/layout-xlarge/edit_event_2.xml | 49 ++---- res/layout/edit_event_2.xml | 34 ----- .../calendar/event/EditEventFragment.java | 2 + .../android/calendar/event/EditEventView.java | 142 +++--------------- 5 files changed, 31 insertions(+), 197 deletions(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index b84e1b65e..b921e7165 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -43,6 +43,7 @@ #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) +$(call add-clean-step, rm -rf $(OUT_DIR)/out/target/common/obj/APPS/Calendar_intermediates) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST diff --git a/res/layout-xlarge/edit_event_2.xml b/res/layout-xlarge/edit_event_2.xml index 0bdac2e7d..4c64db237 100644 --- a/res/layout-xlarge/edit_event_2.xml +++ b/res/layout-xlarge/edit_event_2.xml @@ -76,47 +76,16 @@ android:id="@+id/add_attendees_row"> - - - - - - - - - - - - - - - - + diff --git a/res/layout/edit_event_2.xml b/res/layout/edit_event_2.xml index 69302f9f5..6837aea84 100644 --- a/res/layout/edit_event_2.xml +++ b/res/layout/edit_event_2.xml @@ -97,12 +97,6 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - - - - - - - - - - 0) { - final int size = mAttendeesView.getChildCount(); - mModel.mAttendeesList.clear(); - for (int i = 0; i < size; i++) { - final Attendee attendee = mAttendeesView.getItem(i); - if (attendee == null || mAttendeesView.isMarkAsRemoved(i)) { - continue; - } - mModel.addAttendee(attendee); - } + if (mAttendeesList != null && !TextUtils.isEmpty(mAttendeesList.getText())) { + mEmailValidator.setRemoveInvalid(true); + mAttendeesList.performValidation(); + mModel.addAttendees(mAttendeesList.getText().toString(), mEmailValidator); } // If this was a new event we need to fill in the Calendar information @@ -847,17 +820,18 @@ public EditEventView(Activity activity, View view, EditDoneRunnable done) { mRemindersGroup = view.findViewById(R.id.reminders_row); mResponseGroup = view.findViewById(R.id.response_row); mOrganizerGroup = view.findViewById(R.id.organizer_row); - mAttendeesGroup = view.findViewById(R.id.attendees_row); mAttendeesPane = view.findViewById(R.id.attendees_group); mLocationGroup = view.findViewById(R.id.where_row); mDescriptionGroup = view.findViewById(R.id.description_row); mStartHomeGroup = view.findViewById(R.id.from_row_home_tz); mEndHomeGroup = view.findViewById(R.id.to_row_home_tz); + mAttendeesList = (MultiAutoCompleteTextView) view.findViewById(R.id.attendees); mTitleTextView.setTag(mTitleTextView.getBackground()); mLocationTextView.setTag(mLocationTextView.getBackground()); mDescriptionTextView.setTag(mDescriptionTextView.getBackground()); mRepeatsSpinner.setTag(mRepeatsSpinner.getBackground()); + mAttendeesList.setTag(mAttendeesList.getBackground()); mOriginalPadding[0] = mLocationTextView.getPaddingLeft(); mOriginalPadding[1] = mLocationTextView.getPaddingTop(); mOriginalPadding[2] = mLocationTextView.getPaddingRight(); @@ -865,6 +839,7 @@ public EditEventView(Activity activity, View view, EditDoneRunnable done) { mEditViewList.add(mTitleTextView); mEditViewList.add(mLocationTextView); mEditViewList.add(mDescriptionTextView); + mEditViewList.add(mAttendeesList); mViewOnlyList.add(view.findViewById(R.id.when_row)); mViewOnlyList.add(view.findViewById(R.id.timezone_textview_row)); @@ -875,24 +850,18 @@ public EditEventView(Activity activity, View view, EditDoneRunnable done) { mEditOnlyList.add(view.findViewById(R.id.from_row)); mEditOnlyList.add(view.findViewById(R.id.to_row)); mEditOnlyList.add(view.findViewById(R.id.timezone_button_row)); - mEditOnlyList.add(view.findViewById(R.id.add_attendees_row)); mEditOnlyList.add(mStartHomeGroup); mEditOnlyList.add(mEndHomeGroup); mResponseRadioGroup = (RadioGroup) view.findViewById(R.id.response_value); mRemindersContainer = (LinearLayout) view.findViewById(R.id.reminder_items_container); - mAddAttendeesButton = (ImageButton) view.findViewById(R.id.add_attendee_button); - mAddAttendeesListener = new AddAttendeeClickListener(); - mAddAttendeesButton.setEnabled(false); - mAddAttendeesButton.setOnClickListener(mAddAttendeesListener); - - mAttendeesView = (AttendeesView)view.findViewById(R.id.attendee_list); - mTimezone = Utils.getTimeZone(activity, null); mStartTime = new Time(mTimezone); mEndTime = new Time(mTimezone); mTimezoneAdapter = new TimezoneAdapter(mActivity, mTimezone); + mEmailValidator = new Rfc822Validator(null); + initMultiAutoCompleteTextView((RecipientEditTextView) mAttendeesList); mColorChip = view.findViewById(R.id.color_chip); @@ -1028,26 +997,7 @@ public void setModel(CalendarEventModel model) { // If the user is allowed to change the attendees set up the view and // validator if (!model.mHasAttendeeData) { - mView.findViewById(R.id.attendees_group).setVisibility(View.GONE); - } else if (!canModifyEvent) { - // Hide views used for adding attendees - View v = mView.findViewById(R.id.add_attendees_label); - if (v != null) { - v.setVisibility(View.GONE); - } - mView.findViewById(R.id.add_attendees_group).setVisibility(View.GONE); - mAddAttendeesButton.setVisibility(View.GONE); - } else { - String domain = DEFAULT_DOMAIN; - if (!TextUtils.isEmpty(model.mOwnerAccount)) { - String ownerDomain = EditEventHelper.extractDomain(model.mOwnerAccount); - if (!TextUtils.isEmpty(ownerDomain)) { - domain = ownerDomain; - } - } - mEmailValidator = new Rfc822Validator(domain); - mAttendeesList = initMultiAutoCompleteTextView(R.id.attendees); - mAttendeesList.addTextChangedListener(this); + mAttendeesGroup.setVisibility(View.GONE); } mAllDayCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @@ -1261,23 +1211,6 @@ public void setCalendarsCursor(Cursor cursor, boolean userVisible) { int colorColumn = cursor.getColumnIndexOrThrow(Calendars.CALENDAR_COLOR); mColorChip.setBackgroundColor(Utils.getDisplayColorFromColor(cursor.getInt(colorColumn))); - - // Find user domain and set it to the validator. - // TODO: we may want to update this validator if the user actually picks - // a different calendar. maybe not. depends on what we want for the - // user experience. this may change when we add support for multiple - // accounts, anyway. - if (mModel != null && mModel.mHasAttendeeData - && cursor.moveToPosition(defaultCalendarPosition)) { - String ownEmail = cursor.getString(EditEventHelper.CALENDARS_INDEX_OWNER_ACCOUNT); - if (ownEmail != null) { - String domain = EditEventHelper.extractDomain(ownEmail); - if (domain != null) { - mEmailValidator = new Rfc822Validator(domain); - mAttendeesList.setValidator(mEmailValidator); - } - } - } if (mSaveAfterQueryComplete) { mLoadingCalendarsDialog.cancel(); if (prepareForSave() && fillModelFromUI()) { @@ -1332,12 +1265,6 @@ private void setViewStates(int mode) { } else { mRemindersGroup.setVisibility(View.GONE); } - setAttendeesEditable(false); - if (mAttendeesView.getChildCount() == 0) { - mAttendeesPane.setVisibility(View.GONE); - } else { - mAttendeesPane.setVisibility(View.VISIBLE); - } if (mAllDayCheckBox.isChecked()) { mView.findViewById(R.id.timezone_textview_row).setVisibility(View.GONE); } @@ -1374,7 +1301,6 @@ private void setViewStates(int mode) { mRepeatsSpinner.setEnabled(false); } mRemindersGroup.setVisibility(View.VISIBLE); - setAttendeesEditable(true); mAttendeesPane.setVisibility(View.VISIBLE); mLocationGroup.setVisibility(View.VISIBLE); @@ -1382,24 +1308,6 @@ private void setViewStates(int mode) { } } - /** - * Shows or hides the Guests view and sets the buttons for removing - * attendees based on the value passed in. - * - * @param editable View.GONE or View.VISIBLE - */ - protected void setAttendeesEditable(boolean editable) { - int attCount = mAttendeesView.getChildCount(); - if (attCount > 0) { - mResponseGroup.setVisibility(View.VISIBLE); - mAttendeesGroup.setVisibility(View.VISIBLE); - } else { - mResponseGroup.setVisibility(View.GONE); - mAttendeesGroup.setVisibility(View.GONE); - } - mAttendeesView.setEnabled(editable); - } - public void setModification(int modifyWhich) { mModification = modifyWhich; updateView(); @@ -1432,8 +1340,13 @@ private int findDefaultCalendarPosition(Cursor calendarsCursor) { } private void updateAttendees(HashMap attendeesList) { - mAttendeesView.setRfc822Validator(mEmailValidator); - mAttendeesView.addAttendees(attendeesList); + if (attendeesList == null || attendeesList.isEmpty()) { + return; + } + mAttendeesList.setText(null); + for (Attendee attendee : attendeesList.values()) { + mAttendeesList.append(attendee.mEmail); + } } private void updateRemindersVisibility(int numReminders) { @@ -1468,8 +1381,7 @@ private void addReminder() { } // From com.google.android.gm.ComposeActivity - private MultiAutoCompleteTextView initMultiAutoCompleteTextView(int res) { - RecipientEditTextView list = (RecipientEditTextView) mView.findViewById(res); + private MultiAutoCompleteTextView initMultiAutoCompleteTextView(RecipientEditTextView list) { if (ChipsUtil.supportsChipsUi()) { mAddressAdapter = new RecipientAdapter(mActivity); list.setAdapter((BaseRecipientAdapter) mAddressAdapter); @@ -1566,22 +1478,6 @@ private void setTimezone(int i) { mTimezoneAdapter.setCurrentTimezone(mTimezone); } - // TextWatcher interface - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - } - - // TextWatcher interface - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - } - - // TextWatcher interface - @Override - public void afterTextChanged(Editable s) { - mAddAttendeesButton.setEnabled(s.length() > 0); - } - /** * @param isChecked */