History log of /packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c55e2c884743bf5dee7de8d0fda69db3510476fd 06-May-2011 Marc Blank <mblank@google.com> DO NOT MERGE: Fix serious DST issue with non-DST time zones

* When finding a match for an EAS time zone without DST, we were
checking the offset, but NOT the DST status; therefore, we could
match the wrong time zone (depending on the order of items in the
TZ database)
* All users with events set up in non-DST timezones would have their
events show up at the wrong time after a DST transition
* The fix is to first check against the default time zone, and use
that if it's a match; otherwise, to use the first time zone that
matches both offset and DST availability

Bug: 4337360
Change-Id: Ia26590972c1b0eab4640a3082881a28ee0a81622
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
efcde27bf74acdd82bb0aad0ad1fd0b767ca5f18 14-Oct-2010 Andy Stadler <stadler@android.com> Use original all-day flag when upsyncing exceptions DO NOT MERGE

Bug: 3087410
Backport of: I4bed0039758e98d4b85054876f192605eb00ee82

Change-Id: Ibc875d58c2f6c5317ce8e4fee97b96c2fd6b2ecf
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
3e065170f3374ecb78af2e68bcb28040b83fd928 22-May-2010 Marc Blank <mblank@google.com> Fix bugs related to TZ handling for all-day events

* In bug 2703075, all-day events from time zones at GMT or later
appear a day early; this is because the time was calculated from
the GMT date/time of the event rather than the local date/time of
the event; this CL correctly changes this to use local date/time
* In bug 2707966, device-edited all-day events disappear in Outlook
and OWA after upsync; this is due to the fact that we store all-day
events in UTC on device, whereas we need to upload all-day events
using the original (local) time zone. In this CL, we save away
the original time zone and use it on upsync
* In our decoding of Exchange time zone information, we default to
local time when we can't find a time zone that matches the bias
and DST information; we should really default to a time zone with
the same bias, if one exists; we do that in this CL.
* Add/modify unit tests

Bug: 2703075
Change-Id: Id80c481ecc0eae980b2e91dae7f105f924cfca28
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
8ba07285336c34a1fa454b23c9d4c95af020fa00 29-Apr-2010 Marc Blank <mblank@google.com> Use timezone in exception ics files

* Exchange seems to require time zone information in ics files containing
event exceptions, although this is NOT the case for iCalendar, and appears
not to conform to VCALENDAR specifications
* This causes exceptions to be placed on the wrong date or perhaps even
ignored, depending on the circumstance
* This CL simply adds time zone information to all exception ics files

Bug: 2640878
Change-Id: Ibc614eb7a2c45e9e782b10be979d9892bbfc0029
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
47d124e4a100eda81a1458f38b563e208d2c9d79 24-Apr-2010 Marc Blank <mblank@google.com> Fix upsync of DAILY rrule with UNTIL

* Make sure we send UNTIL with FREQ=DAILY as appropriate
* Also to help debug this in the future...
Add logging capability to utilities via SyncManager
Add public log methods so that CalendarUtilities can log properly
Change Log.d's to SyncManager.log in CalendarUtilities

Bug: 2623787
Change-Id: I3d651f00a3f7522e25c8d6e389469770c733953f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
8a19af3739aad25d26754e8a52e986cc38b41db6 22-Apr-2010 Marc Blank <mblank@google.com> Fix upload/download of attendee status

* It turns out that the UI uses selfAttendeeStatus and the attendee's status
from the Attendees table in confusing and undocumented ways
* selfAttendeeStatus is used in the UI, but only in certain cases. Generally speaking,
the Attendees table status is definitive. However, when the user sets his status
from the UI, this data is reflected in the event's selfAttendeeStatus, since for EAS,
the user is always the owner of his calendar
* On downsync, we'll put the user's busy status into the Attendees table
* On upsync, we'll send busy status based on the user's attendee status in the
Attendees table
* We'll use selfAttendeeStatus only to determine whether the user has manually changed
his status via the UI (as before)

Bug: 2615586
Change-Id: I3a82474cfd07cbf5aa595e5214807cb55005cefa
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
1880ad6a83120b89ed239858d27d3e63242160e6 22-Apr-2010 Marc Blank <mblank@google.com> Send correct busy status information in upsyncs to EAS

* Fix unit test that was failing

Bug: 2615382
Change-Id: I54c7bdd982d57528f55ce4f4c6804c9f532293fb
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
095eee41565900a2509256ffcbf6cd67a4c4e345 16-Apr-2010 Marc Blank <mblank@google.com> Set selfAttendeeStatus and busyStatus properly on downsync/upsync

* Set selfAttendeeStatus on download from busy status
* Set busyStatus on upload from selfAttendeeStatus

Bug: 2587076

Change-Id: I34eaa0d3861bcec0cbfd51761b31965e44f5162b
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
7e30b2e22f597b3e4b902c333a8dafc8a21e8b86 15-Apr-2010 Marc Blank <mblank@google.com> Properly decode a uid from the globalObjId in invites

* Meeting invitations in EAS include a globalObjId. It turns out
that this id is EITHER the actual uid (if Exchange created it)
or a wrapper for the actual uid (if some other client created it)
* To find out which case we're dealing with, we have to look at
the base64 decoded string for the magic "vCal-Uid" substring
* If it's there, we pull the real uid out of the decoded string
* Otherwise, we build a hex strong from the decoded bytes
* Write unit test for this process

Bug: 2598201
Change-Id: I1cc40af6d1e45be44c19465eb8a4c31851ec8157
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
0005eba750a10b9b3eda9f8cfb75bdc65c80a919 13-Apr-2010 Marc Blank <mblank@google.com> Fix cancellation messages for deleted attendee

* We weren't sending a proper ics file for the deleted attendee, and
this caused Exchange to send a message to the wrong people (the
referenced bug)
* Split out code that adds attendees to outgoing mail
* Changed the optional last argument to createMessageForX to be a specified
attendee, i.e. the only addressee to be used for the message

Bug: 2548465
Change-Id: I629fcfaffe621408ea460d42c9c7c283929f7e79
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
6a4eae5f4104599cddfea67705cc4d594ee7d47f 10-Apr-2010 Marc Blank <mblank@google.com> Fix upload of multi-day all day events

* We were assuming a single day for all-day events
* Use the actual end date
* Make sure we send date/time back to server in local TZ
* Also fixes #2500863

Bug: 2578776
Change-Id: I58767a574248935b9840ce93e634a24e54abe62f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
802459f4d8f5d5c0cfce1c72fc36528cb3899122 02-Apr-2010 Marc Blank <mblank@google.com> Don't show "Where: " in invite text if there's no location

Bug: 2563275
Change-Id: I2e978bc46b2ef292d749138500b53d61aefc4672
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
78021cbbf8154898ce4e68d8c2d2871568cda5e3 01-Apr-2010 Marc Blank <mblank@google.com> Don't add "Invitation: " to meeting invitations

* Turns out that most other clients omit this.
* This has the pleasing effect of fixing the referenced bug
* Update unit tests

Bug: 2561821
Change-Id: I39f7db7e05be590373cd5f3d9b23c7ee21bde4f7
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
cf274512ed722cd039e21ab05ce172052740116f 01-Apr-2010 Marc Blank <mblank@google.com> Fix conversion of UNTIL date in RRULEs to EAS calendar dates

* Because we were sending these in the wrong format, upsynced changes
were failing, with the result that both the original event and
the "new" event (from the UNTIL date forward) remained in the calendar
* Fix is to send the proper format; unit test updated to reflect the
change
* Also, we only send the date of an UNTIL, rather than the to-the-minute
time; it turns out that EAS expects to see only a day for UNTIL.

Bug: 2561818
Change-Id: Ic4eacbe96c713d58c637386ceab2cf22ebe3c2d4
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
1c48450c02ea33e498e17a1bfc9f95576d3027b6 01-Apr-2010 Marc Blank <mblank@google.com> Fix the VCALENDAR we send with all day events

* We need to send date only (without time) in the VCALENDAR file for
all-day events
* Add unit test for this case

Bug: 2561789
Change-Id: I33a43c7a248059c97482ca147a23af083744118a
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
700b373007da10b456e1f9cb0fde2a021fdee84c 01-Apr-2010 Marc Blank <mblank@google.com> Send CANCEL method with meeting cancellations

* We should be sending CANCEL as the method with cancellations
* Fix this and update unit test

Bug: 2527606
Change-Id: I2b982e4bfd1dbc57660cf578702edf49584d2957
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
6cec1104fe8863fce2ee86ff5145076e6c436a00 29-Mar-2010 Doug Zongker <dougz@android.com> relocate android.util.base64.* -> android.util.*

b/2553469 - API REVIEW: android.util.base64

Change-Id: I5394427a8e2c94b87ca45a533e417f7088a69f8f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
a6e1f8d4562ed437d67378935c8be6cbfe9b86f9 26-Mar-2010 Marc Blank <mblank@google.com> Add message text for invitation replies

* Updated unit test to make sure there's message text

Bug: 2548714
Change-Id: I70e05b72539ff9ba7d582a51421e5345aa6151e4
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
54585c95116e02be6940861d81033c5c02017514 27-Mar-2010 Marc Blank <mblank@google.com> Fix sending of cancellations to uninvited guests

* Had to add an optional argument to the email creator for this case,
since there may not be any remaining addressees to send to (if the
only guest was uninvited)
* The optional argument forces the creation of a message, even if there
are no addressees

Bug: 2548465
Change-Id: I88784f49ce7afedce331fc756c5ecef4e73a07bc
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
82b2453b97c69d3cab169a7c00e4c410006ee068 24-Mar-2010 Marc Blank <mblank@google.com> Clean up EAS -> TimeZone determination code

* Use one minute before/after for transition checking, instead of the
sloppier early version
* Add tests for additional known time zones
* Change most methods in CalendarUtilities to package private (for use
with unit tests)
* Clean up a little bad formatting

Change-Id: I9e5be5e1c859f2294adf06874459f7db15fb8c22
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
d5822018fb0f5f994bc76af716e6b8c97adb60e8 21-Mar-2010 Marc Blank <mblank@google.com> Clean up VCALENDAR/TIME_ZONE_INFORMATION code

* Fix the transition times so that they occur at the hour
* Remove an unused variable
* Fix a reference to Calendar.HOUR that should have been
Calendar.HOUR_OF_DAY
* Confirm that unit tests work properly

Change-Id: I3eaf31d160e97b5f3ba59c83878359085aea960d
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
39ea302126b6d205ae561a9c3f568b75aa6a202a 19-Mar-2010 Marc Blank <mblank@google.com> Send appropriate ics message for cancellations

* We were sending cancellations with a request for reply, which is
incorrect
* Send the correct dats in the ics attachment
* Update unit test to reflect this

Bug: 2527606
Change-Id: I4cea0bb8f1c29a3cad8d09fd6a4750f7ab067229
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
92ef20a5c3cc4d040b81661bd21c0f7f79bc5a10 18-Mar-2010 Marc Blank <mblank@google.com> Send cancellation mail to removed attendees

* We now keep track of attendees in the Event's extended properties
* When a message is updated, we compare current attendees with the
original list, and send cancellations to those who have been removed

Bug: 25623726
Change-Id: I7b3df99e62fb3d4a1482bd6d4612647f5bdb756a
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
0ed690bfb4fdfa86cb6f75c19e24b8ff39a1756c 16-Mar-2010 Marc Blank <mblank@google.com> Send meeting invite mail as multipart/alternative

* Turns out that Exchange 2003 requires the ics attachment to be in a
multipart/alternative, rather than a multipart/mixed MIME message
* Exchange 2007 accepts both types
* Therefore, we change our output for this particular situation, i.e.
a single attachment that is an ics file, to multipart/alternative
* Rename FLAG_SUPPRESS_CONTENT_DISPOSITION to FLAG_ICS_ALTERNATIVE_PART
and make this flag do double duty - 1) suppress the Content-Disposition
header (also required by Exchange) and 2) send the message as
multipart/alternative
* Add unit tests for Rfc822Output to check that mime parts are composed
properly

Bug: 2516394
Change-Id: I60e26f57b8ecaf01d0340e7828533334e0e7d45a
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
88a94bca1922615564e70a27bb6ae72bca487c75 16-Mar-2010 Makoto Onuki <omakoto@google.com> Exchange calendar: fixes for the ICS writer.

- Now SimpleIcsWriter does the UTF-8 conversion, and folds lines according
to the number of bytes in UTF-8.
- It now escapes special chars in TEXT values. You can safely put , ; \ or
line breaks. in summary, location, and description.
- Quotes all CN. (leftover from Ibb8f155a)
- Replace "s in CN with 's (rather than removing them)

Bug 2508283
Bug 2515768

Change-Id: Ibdced53ee32bba950608d63f507b11b24eaad7b0
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
bf916efe955e07aba2a5bce9eecae325f84d4934 16-Mar-2010 Marc Blank <mblank@google.com> Improve message text for invites w/ recurrences

* Add the (recurring) text when the invite is for a recurring
meeting
* Add a test for message text creation

Bug: 2515474
Change-Id: Ifefbc2ba1ac444175180cb7a58f4ec554d9674a3
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
befa974de8b74877b2f1ea97e672d3eb2067a6d9 15-Mar-2010 Marc Blank <mblank@google.com> Fix utility that retrieves tokens from RRULEs

* The utility wasn't handling commas properly, causing the referenced
bug
* Fixed the utility and updated the relevant test case

Bug: 2515488
Change-Id: Id229e50fcaaed1a0142db301eedaaba9209bed13
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
fc3fc5d26c1f0196d43974c4dcb27efba0b72174 15-Mar-2010 Makoto Onuki <omakoto@google.com> ICS Writer: Quote common name.

Quote common name (CN) in ATTENDEE per RFC 5545.

Bug 2510783

Change-Id: Ibb8f155a43cbe43886b903472489563242cb6771
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
20225d57609d6a5e482c088fdad60c29212d31a0 12-Mar-2010 Makoto Onuki <omakoto@google.com> Explicitly send ICS files in UTF-8.

- In memory attachments are now stored as byte[], not String.
We can store any type of contents now.
- Added blob content_bytes to the Attachment table.
The content field is now deprecated and not used.
- Explicitly convert ICS files to UTF-8.

- Added Utility.to/fromUtf8().

Bug 2509287
Change-Id: I3785a365a9a34039ec12ba82bd857dcdbc4de92d
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
82e51e06312c76f37900c7b1718af863caeff9af 10-Mar-2010 Marc Blank <mblank@google.com> Send email related to event exceptions

* We weren't sending out appropriate emails for exceptions and other
event updates
* Write exception specific ics file code in CalendarUtilities (in
the existing ics file creator)
* Send appropriate Update: subject for updated events/exceptions
* Compose simple message text consisting of:
When: <time>
Where: <location>
* Prepend message text for exceptions to indicate that the message
relates to a particular instance of the event:
This event has been canceled for: <date>
The details of this event have been changed for: <date>
* New strings were added in CL#44141
* Updated CalendarUtilities tests

Bug: 2501270
Change-Id: I920de8120bc56d5bd565cbde26ff4807be41579f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
ea341235826d0d2d1c764bb2344d1e90fa3bb633 12-Mar-2010 Marc Blank <mblank@google.com> Make ORGANIZER_CAN_RESPOND column 0 for Exchange Calendars

* This will prevent the UI from showing attendee status for the
event organizer

Bug: 2507842
Change-Id: If217b10ba9c19812d8f49e72fdae236fb0f4b9f1
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
989552c10744e2d7f8fca1bdb2baef5273a8a0b9 02-Mar-2010 Mihai Preda <preda@google.com> Move parseDateTimeToMillis() to com.android.email.Utility.
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
4577f71f76c94dc9fcb06efd2656970925dd3f6a 27-Feb-2010 Marc Blank <mblank@google.com> Refine meeting invitation emails; include VTIMEZONE

* VTIMEZONE blocks must be sent in our ics files for meeting
invitations that are recurring, as the originator's time zone
is critical in making attendee's calendars accurate
* Created a utility to convert TimeZone to VTIMEZONE data; the
utility successfully generates data (including recurrence rules)
for the entire tzinfo database (the source of TimeZone).
* Updated our ics files to include VTIMEZONE when appropriate and
send DTSTART/DTEND in local time in that case
* Wrote some unit tests, but more are needed

Change-Id: Iccbdd00cd3b2be2da058b344ebacd17ed6fb0e3d
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
29c38d2c84273851282ae3c799f5bf1845202065 26-Feb-2010 Marc Blank <mblank@google.com> Send cancellation email when user-created event is deleted

Bug: 2465496
Change-Id: I49bf9951e816a4500b7622cbca84fb75edfdb76c
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
ec2f181b2ce3b01a2a1c50c8a86078de992fd389 02-Mar-2010 Marc Blank <mblank@google.com> Fix build break (Calendar field changed name)

Change-Id: I9532c459f3cf624fa88269370fa36d191481e500
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
89be77eaea65211fea0ca32efd538318c7e049b3 23-Feb-2010 Marc Blank <mblank@google.com> Send replies to exchange meeting requests

* When the user selects accept/decline/tentative in MessageView, we now send
an email to the organizer, with an iCalendar attachment indicating the reply
* Added a unit test for the reply case, but more tests to be added to handle
other circumstances

Change-Id: Iff799d88a92b6546735bf4965b22febf3a82b56f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
1f4b1b3bd179bb24a477d6701058af74010c926c 23-Feb-2010 Marc Blank <mblank@google.com> Fix bugs in SimpleIcsWriter

* Guilty of failing to run the unit tests
* Fix the (obvious) issues

Change-Id: If12e02facce768ca2d410320bea68a2ca2c116c6
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
18d7222359ac54a5fa788b4a8bb8d58ee16f152b 21-Feb-2010 Marc Blank <mblank@google.com> Send meeting invitations for new/updated Exchange events

* Wrote utility to create an ics file (iCalendar) based on a
CalendarProvider Event. This is a good first pass, but we need
to consider whether to include alarms, etc.
* Use aforementioned utility and new convenience method to send
meeting invitations to attendees of newly created meetings (events)
when they are uploaded to the server via the CalendarSyncAdapter
* Overall, attempted to modify existing provider and rfc822 output
code as little as possible. Rfc822Output is actually very limited
in its capabilities and should be made more robust in future

Change-Id: Ie20b9137df56dc414de6737d05fa40ec9cdf47e0
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
8068c99945661c7a32d3ae45e3a630d165fa2e3f 20-Feb-2010 Makoto Onuki <omakoto@google.com> Don't use hidden APIs

- The entire android.pim package is hidden.
Use java.text.ParseException instead of android.pim.DateException.

- TelephonyManager.getDefault() is hidden.
Use Context.getSystemService() instead.

- Use newly added Base64 in the framework.

Bug 2226160
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
d3fba0a2d7e943d432cc593fe6602223fa4ae834 19-Feb-2010 Marc Blank <mblank@google.com> Fix #2451630 (No calendar after upgrading Eclair->Froyo)

* Initialization of CalendarProvider Calendar was being done at
account creation time, but Eclair accounts won't have had this
done.
* Move Calendar creation code into CalendarSyncAdapter where it
will be created before the first sync.

Bug: 2451630
Change-Id: I74c669d99f4c8aae4c5847f5cb9b0ca7f44929e2
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
4006e5fc224d097450fd66a321901b6636f7d9c4 16-Feb-2010 Marc Blank <mblank@google.com> Add meetingInfo column to Message; use for meeting invites

* Added a meetingInfo column to the Message database
* When a meeting invite is received, the start time is stored here
in ms from start of epoch. Note that this field is defined to be
a String, for extensibility
* Update ProviderTests

Change-Id: If44892d27ccc5ebdc1f8667befafb8b8a27a2cf4
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
cf7581c51c39aad1e8e955bfde62335871a7fd29 15-Feb-2010 Marc Blank <mblank@google.com> Add support for UNTIL in recurrences

Change-Id: I983e1bcb209e794b462ec43efaccefe95bf9bd9d
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
6f3013b78708321879728c28db044ab233cb2016 03-Feb-2010 Marc Blank <mblank@google.com> Build proper TimeZoneInformation strings for upsync; fix bugs

* Create full TZI strings for upload of events (previously, we
omitted DST information)
* Add documentation to some unit tests
* Put in correct logic for determining if upload needed
* Fix problem w/ parsing empty tags

Change-Id: I268ce8a2db30b3cfdf0e44f6a78befd6bd933243
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
a8259394596eda7aed2b9edfdb30ff03c34acb66 02-Feb-2010 Marc Blank <mblank@google.com> Handle upsync of multiple BYDAY values; add some unit tests

Change-Id: If3be28df41ed88cb83edca2f6ea6ca1f734f506f
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
dc6930c0b36950d420c8da0e70164c5c4e083fbe 29-Jan-2010 Marc Blank <mblank@google.com> Additional work on new Event upload to EAS server

* Added support for reminders and recurrences
* Note that Duration class is copied from CalendarProvider with only
formatting changes

Change-Id: Icf399df422f813ba8e7880646bfbc96a2156a204
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java
f3fcb8929e3690bc092aec0d4d643b346f079acd 29-Oct-2009 Marc Blank <mblank@google.com> Implement Exchange calendar sync support

What should be working:
* Events sync down from server and appear in calendar
* Recurrences and exceptions appear in calendar
* Changed events on server should be reflected in calendar
* Deletions on server should be reflected in calendar
* Push of new/changed/deleted events should work
* Changes on device are NOT synced back to server
* New, single events on device are synced back to server
(no time zone, attendee, or recurrence support)
* Checkbox for syncing calendar added to setup flow
* System sync glue in manifest, etc.
* Bugs are to be expected
* A few unit tests; needs more

Change-Id: I7ca262eaba562ccb9d1af5b0cd948c6bac30e5dd
/packages/apps/Email/src/com/android/exchange/utility/CalendarUtilities.java