Fix agenda view goto behavior

Bug: 6285812 Tapping on an all day events on Tablet Agenda view makes the view to change like crazy
Change-Id: I643106a23acff88b16da3b8f45ce8c908b70506c
diff --git a/src/com/android/calendar/AllInOneActivity.java b/src/com/android/calendar/AllInOneActivity.java
index e8646fa..776a8d2 100644
--- a/src/com/android/calendar/AllInOneActivity.java
+++ b/src/com/android/calendar/AllInOneActivity.java
@@ -16,6 +16,7 @@
 
 package com.android.calendar;
 
+import static android.provider.CalendarContract.EXTRA_EVENT_ALL_DAY;
 import static android.provider.CalendarContract.EXTRA_EVENT_BEGIN_TIME;
 import static android.provider.CalendarContract.EXTRA_EVENT_END_TIME;
 import static android.provider.CalendarContract.Attendees.ATTENDEE_STATUS;
@@ -53,6 +54,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.provider.CalendarContract;
+import android.provider.CalendarContract.Attendees;
 import android.provider.CalendarContract.Calendars;
 import android.provider.CalendarContract.Events;
 import android.text.TextUtils;
@@ -139,7 +141,8 @@
     private long mViewEventId = -1;
     private long mIntentEventStartMillis = -1;
     private long mIntentEventEndMillis = -1;
-    private int mIntentAttendeeResponse = CalendarController.ATTENDEE_NO_RESPONSE;
+    private int mIntentAttendeeResponse = Attendees.ATTENDEE_STATUS_NONE;
+    private boolean mIntentAllDay = false;
 
     // Action bar and Navigation bar (left side of Action bar)
     private ActionBar mActionBar;
@@ -448,7 +451,8 @@
                         mIntentEventStartMillis = intent.getLongExtra(EXTRA_EVENT_BEGIN_TIME, 0);
                         mIntentEventEndMillis = intent.getLongExtra(EXTRA_EVENT_END_TIME, 0);
                         mIntentAttendeeResponse = intent.getIntExtra(
-                                ATTENDEE_STATUS, CalendarController.ATTENDEE_NO_RESPONSE);
+                                ATTENDEE_STATUS, Attendees.ATTENDEE_STATUS_NONE);
+                        mIntentAllDay = intent.getBooleanExtra(EXTRA_EVENT_ALL_DAY, false);
                         timeMillis = mIntentEventStartMillis;
                     }
                 } catch (NumberFormatException e) {
@@ -570,10 +574,12 @@
             }
             mController.sendEventRelatedEventWithExtra(this, EventType.VIEW_EVENT, mViewEventId,
                     mIntentEventStartMillis, mIntentEventEndMillis, -1, -1,
-                    mIntentAttendeeResponse, selectedTime);
+                    EventInfo.buildViewExtraLong(mIntentAttendeeResponse,mIntentAllDay),
+                    selectedTime);
             mViewEventId = -1;
             mIntentEventStartMillis = -1;
             mIntentEventEndMillis = -1;
+            mIntentAllDay = false;
         }
         if (mMidnightUpdaterHandler == null) {
             mMidnightUpdaterHandler = new Handler();
@@ -1167,6 +1173,13 @@
 
             if (mCurrentView == ViewType.AGENDA && mShowEventDetailsWithAgenda) {
                 if (event.startTime != null && event.endTime != null) {
+                    // Event is all day , adjust the goto time to local time
+                    if (event.isAllDay()) {
+                        Utils.convertAlldayUtcToLocal(
+                                event.startTime, event.startTime.toMillis(false), mTimeZone);
+                        Utils.convertAlldayUtcToLocal(
+                                event.endTime, event.endTime.toMillis(false), mTimeZone);
+                    }
                     mController.sendEvent(this, EventType.GO_TO, event.startTime, event.endTime,
                             event.id, ViewType.AGENDA);
                 } else if (event.selectedTime != null) {
@@ -1180,6 +1193,7 @@
                     mController.sendEvent(this, EventType.GO_TO, event.selectedTime,
                             event.selectedTime, -1, ViewType.CURRENT);
                 }
+                int response = event.getResponse();
                 if ((mCurrentView == ViewType.AGENDA && mShowEventInfoFullScreenAgenda) ||
                         ((mCurrentView == ViewType.DAY || (mCurrentView == ViewType.WEEK) ||
                                 mCurrentView == ViewType.MONTH) && mShowEventInfoFullScreen)){
@@ -1192,13 +1206,13 @@
                             Intent.FLAG_ACTIVITY_SINGLE_TOP);
                     intent.putExtra(EXTRA_EVENT_BEGIN_TIME, event.startTime.toMillis(false));
                     intent.putExtra(EXTRA_EVENT_END_TIME, event.endTime.toMillis(false));
-                    intent.putExtra(EVENT_ATTENDEE_RESPONSE, (int)event.extraLong);
+                    intent.putExtra(EVENT_ATTENDEE_RESPONSE, response);
                     startActivity(intent);
                 } else {
                     // start event info as a dialog
                     EventInfoFragment fragment = new EventInfoFragment(this,
                             event.id, event.startTime.toMillis(false),
-                            event.endTime.toMillis(false), (int) event.extraLong, true,
+                            event.endTime.toMillis(false), response, true,
                             EventInfoFragment.DIALOG_WINDOW_STYLE);
                     fragment.setDialogParams(event.x, event.y, mActionBar.getHeight());
                     FragmentManager fm = getFragmentManager();