@@ -145,6 +145,7 @@ public class EditEventView implements View.OnClickListener, DialogInterface.OnCa
145145 Spinner mCalendarsSpinner ;
146146 Button mRruleButton ;
147147 Spinner mAvailabilitySpinner ;
148+ Spinner mEventStatusSpinner ;
148149 Spinner mAccessLevelSpinner ;
149150 RadioGroup mResponseRadioGroup ;
150151 TextView mTitleTextView ;
@@ -208,6 +209,13 @@ public class EditEventView implements View.OnClickListener, DialogInterface.OnCa
208209 private boolean mAvailabilityExplicitlySet ;
209210 private boolean mAllDayChangingAvailability ;
210211 private int mAvailabilityCurrentlySelected ;
212+ /**
213+ * Contents of the "status" spinner. Labels indices match the three values constants
214+ * {@link Events#STATUS_TENTATIVE}, {@link Events#STATUS_CONFIRMED}, and
215+ * {@link Events#STATUS_CANCELED}.
216+ */
217+ private ArrayList <String > mEventStatusLabels ;
218+ private ArrayAdapter <String > mEventStatusAdapter ;
211219 private int mDefaultReminderMinutes ;
212220 private boolean mSaveAfterQueryComplete = false ;
213221 private TimeZonePickerUtils mTzPickerUtils ;
@@ -258,6 +266,7 @@ public void onClick(View v) {
258266 mAllDayCheckBox = (CheckBox ) view .findViewById (R .id .is_all_day );
259267 mRruleButton = (Button ) view .findViewById (R .id .rrule );
260268 mAvailabilitySpinner = (Spinner ) view .findViewById (R .id .availability );
269+ mEventStatusSpinner = (Spinner ) view .findViewById (R .id .event_status );
261270 mAccessLevelSpinner = (Spinner ) view .findViewById (R .id .visibility );
262271 mCalendarSelectorGroup = view .findViewById (R .id .calendar_selector_group );
263272 mCalendarSelectorWrapper = view .findViewById (R .id .calendar_selector_wrapper );
@@ -309,8 +318,7 @@ public void onItemSelected(AdapterView<?> parent,
309318 mAvailabilityCurrentlySelected = position ;
310319 }
311320
312- if (mAvailabilityCurrentlySelected != position &&
313- !mAllDayChangingAvailability ) {
321+ if (mAvailabilityCurrentlySelected != position && !mAllDayChangingAvailability ) {
314322 mAvailabilityExplicitlySet = true ;
315323 } else {
316324 mAvailabilityCurrentlySelected = position ;
@@ -339,6 +347,7 @@ public void onNothingSelected(AdapterView<?> arg0) {
339347 mViewOnlyList .add (view .findViewById (R .id .timezone_textview_row ));
340348
341349 mEditOnlyList .add (view .findViewById (R .id .all_day_row ));
350+ mEditOnlyList .add (view .findViewById (R .id .event_status_row ));
342351 mEditOnlyList .add (view .findViewById (R .id .availability_row ));
343352 mEditOnlyList .add (view .findViewById (R .id .visibility_row ));
344353 mEditOnlyList .add (view .findViewById (R .id .from_row ));
@@ -691,8 +700,8 @@ private boolean fillModelFromUI() {
691700 mModel .mTimezone = mTimezone ;
692701 mModel .mAccessLevel = mAccessLevelSpinner .getSelectedItemPosition ();
693702 // TODO set correct availability value
694- mModel .mAvailability = mAvailabilityValues .get (mAvailabilitySpinner
695- .getSelectedItemPosition () );
703+ mModel .mAvailability = mAvailabilityValues .get (mAvailabilitySpinner . getSelectedItemPosition ());
704+ mModel . mEventStatus = mEventStatusSpinner .getSelectedItemPosition ();
696705
697706 // rrrule
698707 // If we're making an exception we don't want it to be a repeating
@@ -735,6 +744,16 @@ private void prepareAvailability() {
735744 mAvailabilitySpinner .setAdapter (mAvailabilityAdapter );
736745 }
737746
747+ private void prepareEventStatus () {
748+ Resources r = mActivity .getResources ();
749+ mEventStatusLabels = loadStringArray (r , R .array .event_status );
750+ mEventStatusAdapter = new ArrayAdapter <String >(
751+ mActivity , android .R .layout .simple_spinner_item , mEventStatusLabels
752+ );
753+ mEventStatusAdapter .setDropDownViewResource (android .R .layout .simple_spinner_dropdown_item );
754+ mEventStatusSpinner .setAdapter (mEventStatusAdapter );
755+ }
756+
738757 /**
739758 * Prepares the reminder UI elements.
740759 * <p>
@@ -887,6 +906,7 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
887906
888907 prepareReminders ();
889908 prepareAvailability ();
909+ prepareEventStatus ();
890910 prepareAccess ();
891911
892912 View reminderAddButton = mView .findViewById (R .id .reminder_add );
@@ -933,6 +953,7 @@ public void onClick(View v) {
933953 if (availIndex != -1 ) {
934954 mAvailabilitySpinner .setSelection (availIndex );
935955 }
956+ mEventStatusSpinner .setSelection (model .mEventStatus );
936957 mAccessLevelSpinner .setSelection (model .mAccessLevel );
937958
938959 View responseLabel = mView .findViewById (R .id .response_label );
0 commit comments