History log of /packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e23e45c747d03032e2e81e40bb3a8bf5a87ba47c 25-Sep-2014 Martin Hibdon <mhibdon@google.com> Correctly set IS_PRIMARY in CalendarUtilities

b/16847896
There is a preexisting bug here, which is that, as far as I
can tell, changes to an existing calendar will not actually
be propagated to the calendar app. Only new calendars are
correctly updated. I don't know if any exchange servers actually
implement this, but the protocol allows it.
That can be fixed in a separate CL.
Bug filed: b/17647582

Change-Id: I9de7099a660e4eae9cefa7157848634767985e5d
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
bb0141b49e7eff978fa445249dc888461ea581e3 03-Jun-2014 Martin Hibdon <mhibdon@google.com> Delete obsolete code

ExchangeService was only being used for GalSearch. That
code has been moved EasService.
Other services, EasAccountService, EasOutboxService, and
EasSyncService are no longer used and have been removed,
along with a bunch of other unused helper classes.

Change-Id: I25c7e53896125818cfd6d3e3bf630ff671f142d1
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
275e73703e09a1211ae6aa6fc2a43226e1fcdeed 13-May-2014 Martin Hibdon <mhibdon@google.com> Make sendMeetingResponse and Autodiscover an EasOperation

Change-Id: I8b5b17f0875d6cbd963344d711cc1f28d8d0a770
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
20a434b03d719d53b82e2628759210670f1e51a9 12-May-2014 Jay Shrauner <shrauner@google.com> Fix NPE from null email address

Check attendee email to ensure it's non-null before adding to the event.

Bug:14817988
Change-Id: I28cfd69c396955f44c4dfdc3f52c66ca40709399
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
01b48a475cd833c5317b73d0666eba705b79e590 02-May-2014 Jay Shrauner <shrauner@google.com> Merge "Fix crash on unset recurrence type" into ub-mail-master
a53b7d0cefc73c63ac83708dfc4b554bdf01b1b6 02-May-2014 Jay Shrauner <shrauner@google.com> Fix NPE when DTSTART is missing

Fix NPE in buildMessageTextFromEntityValues() when DTSTART is missing
from ContentValues.

Bug:14491832
Change-Id: I0cfe37ed1cc4d39a320c3faef0391fca78b61cda
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
0c49fe537fed155ecf0df57065255a738f69e193 02-May-2014 Jay Shrauner <shrauner@google.com> Fix crash on unset recurrence type

Recurring event rule parser uses -1 for an unset recurrence type. Check
for invalid recurrence type to prevent crash.

Bug:14490734
Change-Id: I68de74d16cd4489d4235a9a3aea9c8ed0c4429dc
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
04e4cdadbe23670fd99d21ffb88af40ef77d69ae 02-May-2014 Jay Shrauner <shrauner@google.com> Fix NPE when ORIGINAL_INSTANCE_TIME not present

Fix so sets isException flag same as CalendarSyncParser using presence
or ORIGINAL_INSTANCE_TIME field, not ORIGINAL_SYNC_ID. This then guards
the pair of getAsLong(ORIGINAL_INSTANCE_TIME) calls that were wrapped in
if (isException) checks.

Bug:14489048
Change-Id: Iddfb70fccedb1cd3eeec4d8a8b61c0cfba3a58a5
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
185060cbeb39dc4539fbc0c72a865d8ec8d12979 01-May-2014 Jay Shrauner <shrauner@google.com> Fix null cursor NPEs

Check for null cursors from content resolver before calling
newEntityIterator, since they will cause it to crash.

Bug:14464486
Change-Id: I7e95b1485f458b79643487c1d6d7e9aca9224025
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
2f369a47e14916a34f49c79c0a246a2e3ac3072f 30-Apr-2014 Jay Shrauner <shrauner@google.com> Date parser utility helpers throw parse exceptions

Update to reflect API change to parseDateTimeToMillis and
parseEmailDateTimeToMillis, which now throw ParseExceptions on
malformed date strings.

Bug:14279251
Change-Id: I74e015b81079b127ddba15f34c8b7e555099bd1e
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e89ec9216167fa7246ae268f2b2062e0a93621bf 23-Jan-2014 James Lemieux <jplemieux@google.com> Eliminate redundant methods in Address class

THIS DOES NOT CHANGE ANY EXISTING FUNCTIONALITY.

Address.pack() has been removed and all calls replaced with its synonym Address.toHeader().
Address.unpack() has been renamed to Address.fromHeader() to follow the new naming convention.

In days of yore, pack() and toHeader() used to do different things. Now they are identical and
thus one is superfluous. We have standardized on toHeader() and fromHeader().

Change-Id: I233a139da7aa03602b76f931b03cdd0e8414d242
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
1bbcf25030104af1631ae74b3e1c3033e09ea4ed 06-Nov-2013 Alon Albert <aalbert@google.com> Parse NOT_RESPONDED Properly

Active Sync NOT_RESPONDED means Attendees.ATTENDEE_STATUS_INVITED, not
Attendees.ATTENDEE_STATUS_NONE.

Bug: 11451673
Change-Id: I92d1a34abc3d780d01eeaffe58a7829ca5f3980a
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
d9cfcc6c265974e9bcff93fc4541b402afdfa116 07-Oct-2013 Alon Albert <aalbert@google.com> BYMONTHDAY is Default Monthly Rule

If BYMONTHDAY & BYDAY are both missing, assume BYMONTHDAY based
on DTSTART.

Bug: 11113950
Change-Id: Ide2d3f891ed1d489054388706db19788f049f4fc
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
110837ebff288a75f9bda067c38e2c46797d99b5 27-Sep-2013 Alon Albert <aalbert@google.com> Unify Log Tags

Use a single log tag

Change-Id: I6f08c1eb6e84971cc21497ca14bf60860f75bab4
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
1424b228e105b1c5c8b54eb0f401a549161f8f5f 24-Sep-2013 Alon Albert <aalbert@google.com> Support Multiple Calendars

Bug: 10893901
Change-Id: I7c704b4b841266353673ad6aa3e1091a31661e63
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
56d35257ef1493e849522c3c2828d904e4c5531f 26-Jun-2013 Scott Kennedy <skennedy@google.com> Clean up a bunch of warnings

Bug: 9565838
Change-Id: Ieb65ab41c1e320647a1a17b835371c5eb8e342db
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
b31070f7484eeeb15c4bce89dbc61388d05d0bfc 11-Jun-2013 Yu Ping Hu <yph@google.com> Fix upsync for calendars.

Change-Id: If3d48a942c145b6e3e2c08c17264a54b1805de16
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
942b7d73f2f5b3d6c651e39463e615fe6902a910 06-Jun-2013 Scott Kennedy <skennedy@google.com> Unify LogTag

There is now only one LogTag class. The static initializer of
GmailApplication (existing), EmailApplication (new), and
Exchange (existing) will now set the log tag to "Gmail" and "Email",
respectively. Up until that code is run, it will be "UnifiedEmail".

"setprop log.tag.Gmail VERBOSE" (or .Email, .Exchange) will trigger
all logs to be printed as long as they go through LogUtils,
regardless of what tag is used by that individual log. This lets us
still turn on logging everywhere in one command, but also lets us use
more descriptive tags (like the class name).

And since we no longer have three com.android.mail.utils.LogTag
classes, builds will be much easier.

Also, we now use LogUtils everywhere.

Change-Id: Ib565414fae51d0c3367370db9717aece45f7eb36
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
6e66ab513197793c34f5dcda159043da39224ff9 29-May-2013 Yu Ping Hu <yph@google.com> Initial fix for Contacts and Calendar.

This comes in a few parts:
- We can't use the same SyncAdapter service for all
sync types, so for now this forwards syncs to the
Contacts and Calendar services to the Email service.
This should get cleaned up later.
- Refactor EasSyncHandler to cover all the common code for
syncing Exchange collections and adjust
EasMailboxSyncHandler to match this change.
- Implement EasSyncHandler subclasses for Contacts and
Calendar.

This is only a first pass -- for example, upsync is
still not yet implemented.

Change-Id: I722b540830b292bac4c79bf8426d8eec62112d9d
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
976e98bfc2dd7f782fc92cc4242f9dcebc2b6858 14-Sep-2012 mindyp <mindyp@google.com> Lib has been renamed to calendar2; fix build

Change-Id: I2110489c6316b3cc639e5bf9aa6cc991aa2e298b
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
bcc7188e6244176cd8b3915af50e5c0034307ba4 07-Sep-2012 Marc Blank <mblank@google.com> Try to use names from time zone strings if all else fails...

Change-Id: Ie417a6b27c731f24f0d8ccf5275df9c2fad37efd
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e3668322ce61d0cd8488e0c8fcdc8d067bfb769e 04-Aug-2012 Marc Blank <mblank@google.com> Fix calendar availability

Bug: 6933598
Change-Id: Id481982de9bdc07dbc06722b69e788372ebf1c57
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e6c2456aa6c00ef78c6d1d1621511d7ef8507f83 28-Jun-2012 Marc Blank <mblank@google.com> DO NOT MERGE: Move exchange2 files up a level

* Goodbye, exchange1

Change-Id: Id2fc093cd43a55815047ab091b6a49c3d1138888
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
d2e4d4675d04e78591ebd38fd084fc2cdbe144a0 25-Apr-2012 Marc Blank <mblank@google.com> Create exchange2; restore ICS sources to exchange

Change-Id: I076ad6c1e24ed071fe2d2867ca0fe3fbaff5a95f
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
ed28839df0b5ca783d2a2918cdc882cf17fe0d25 17-Mar-2012 Alon Albert <aalbert@google.com> Use Duration class from common

Change-Id: Ic04f6551cc7a71868e625a5197678559e00442bd
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
0982eb32a8a3adfa34aa829d4dc04c4e26850145 06-Mar-2012 Marc Blank <mblank@google.com> Send correct date for all-day event invitations

Bug: 5999924
Change-Id: I18c6d17178266bffc7150edff8b2a5cb6db8f24a
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
2c7d44b182654120a98921cbc864be2d135c8fda 17-Nov-2011 Marc Blank <mblank@google.com> Attempt to better handle screwy MSFT time zone information

* Exchange appears to send time zond data that doesn't really match
any time zone in our database; in these cases, we have been
returning a random one with the same bias (base offset w/o DST)
* In this CL, we try to do better by giving the time zone information
a bit more slack when the regular determination fails (we allow
the hour of change to be up to 4 hours different from expected,
rather than one minute). This is certainly better, though I do
not have an explanation from MSFT about the reason for the
erroneous data.
* Updated unit tests to confirm that we don't break any existing
code and do, in fact, handle the case reported below as a P1/S1
bug.

Bug: 5605219
Change-Id: I8c17a687404204aff4feb1c3009adde279110cab
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
937af5abcbc1268f22a3058b00835c74ba20f116 27-Oct-2011 RoboErik <epastern@google.com> update default calendar values for new columns

Change-Id: I3d98754c2b6e8fc80bb313abe9f0b9aea11ac797
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f9d3d43800dcb522a7c492e96d490eca9f120e43 14-Sep-2011 Marc Blank <mblank@google.com> Show "no response" for all new calendar events in EAS < 14

* Continue to infer a response from busy status for updated events
* Note that there is NO way to be certain of an attendee's response
in earlier versions of EAS
* Also, fix an obsolete comment in CalendarUtilities

Bug: 5314268
Change-Id: Ibb23bd68851d991c7a389f81ce9de341a8b8d6cb
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f00404a18d7894ed3fba913a356a20812504dbf2 25-Aug-2011 Marc Blank <mblank@google.com> Add all-day information to invitation text

* Added two new strings
* Use four combinations depending on allday and recurring state

Bug: 5205440
Change-Id: Ieab7d6ba41fc1d0d6e74e377146b057e240d32fc
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
89bee1e3d03b439f4084bc9962bb3cbffd0b878a 25-Aug-2011 Marc Blank <mblank@google.com> Fix longstanding problem with all-day events VCALENDAR attachment

* Another hard-to-find, but dumb, mistake
* Fix unit test

Bug: 3334965
Change-Id: I5b18add38780bb476e29d9ae2a28247feebe21e5
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
a6fe383f5aaecdcdf83f33e0e74d15fcd7db5c01 05-Aug-2011 Marc Blank <mblank@google.com> Fix & clean up some logging statements

* There were some wrong uses of Eas.DEBUG (should have been
Eas.USER_LOG)
* There were a couple of unnecessary logging statements

Change-Id: Idffb477dac0b90da66d89742097ecccd335761dc
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
80a8e57ce2dc2695ed6f35599d326090e4ad9fae 04-Aug-2011 RoboErik <epastern@google.com> b/5117661 set allowedReminders for new calendars

Change-Id: Ifd32cfbc75c0885693fc830c65a0c3feba99e249
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
65d022dc43e4461e86fd7bc143591f542b07428b 02-Aug-2011 Marc Blank <mblank@google.com> Use responseType for attendee status (EAS 14+)

* Related to the bug referenced below, but more work to be done
for EAS 12 and 2.5

Bug: 5077200

Change-Id: I8542be674f903782fbccbcb263c7e5198f0dcbd8
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f352bc9f29cacc61b195069e48d5c8b868660694 27-May-2011 Marc Blank <mblank@google.com> Review recurrence code and fix issues

* Turns out there were a couple of unusual cases that we weren't
handling correctly, including the referenced bug
* Reworked some of the code, and added test cases for these
unusual cases.

Bug: 4452794

Change-Id: I02734aefd895bccb8fb2bdcecc3539b1cb06adfd
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
60df2ad267f1ad7aed45b583adcd1a5bb2a006b0 27-Jul-2011 Marc Blank <mblank@google.com> Handle UNTIL properly in RRULE

* We weren't handling UNTIL properly in cases when the until date
in GMT was on a different day than in the local time zone
* Rewrite this code to take into account the local time zone

Bug: 5057748
Change-Id: I3543671d434fcd672a3151a57877ba15c2195029
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
693ed7fdd5a7ec7af87d105b76267c78a8acc3db 14-Jun-2011 RoboErik <epastern@google.com> Rename Calendar.java to CalendarContract.java

Change-Id: I814ba00e8b71003c3ca99126c73069c55fa6df6a
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
7372782488977df778a33d990401ce9e397f646b 14-Jun-2011 Marc Blank <mblank@google.com> Support move of Account to its own top-level class

Change-Id: Ibf427ddcfb0566354ea169997c56a67de1897c0b
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
04c880a6b5ad041f172d4b1eeecc06d6a06e4141 09-Jun-2011 RoboErik <epastern@google.com> Updates for Calendar db v 305

See https://android-git.corp.google.com/g/#change,114332 for more
details.

Change-Id: Id22c802a4d276122f38b3fd7da803ee5054540fe
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
4d8774462ace9a45154b2df418b9f2fe7a9c685d 14-May-2011 Ben Komalo <benkomalo@google.com> Move Mailbox to top level class.

No other changes made.
Depends on E-mail change.

Change-Id: I549fb2cb7e942f1885ec40a6619dc491f63c0de2
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
9e86eb14c6e1f7d7730f8ca6953fdfd95fe2b143 06-May-2011 RoboErik <epastern@google.com> Update to Calendars table for db v300

See change I515b3e0a for db ugrade details.

Change-Id: I15c22f05dca11f45c3cb27392f1f53a0ffa2f0c1
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
4868e0f09b58104741a5593f6097589ac62c6ce3 06-May-2011 Marc Blank <mblank@google.com> Add more time zone parsing tests

* Add test for Hawaii time (no DST)
* Test use of default time zone when parsing

Change-Id: I6a96eca2a491e9651e65618f59c94a57b5b25f53
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
6989716b639d274a98141674556ac9402be32ebe 29-Apr-2011 RoboErik <roboerik@android.com> Update to support sync only restrictions in provider

Change-Id: I38d7dca8405ac8710dde8c08ee16e1f4c7689fcb
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
5bb2c4930c27c5385ff1baf033d1f1a97d770d14 06-May-2011 Marc Blank <mblank@google.com> 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: I21d59673d2f3b0bb3e513976455071d5ea67d595
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
d1771c4473a98c032c95ff66fa816043e08976f1 03-May-2011 Todd Kennedy <toddke@google.com> Pass list of new message IDs after sync

After syncing new (added) messages, send a list of message IDs to the
mail service.

Change-Id: I14e59361586e8201d97678fd71b40206061ea7d6
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
443d4f9804a32030446e7a5af7afb3c6df53736f 20-Apr-2011 Andy McFadden <fadden@android.com> Calendar DB upgrade

Renamed some columns.

Change-Id: Ib4585220f6505babb7e48d8a2d76f65de1bffa53
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
c8e4352ea6cfa67f15140512e84af8ccede222d2 15-Feb-2011 Marc Blank <mblank@google.com> Separate Exchange application

* Clean up AndroidManifest, Android.mk, and proguard.flags
* Refactor to use emailcommon
* Remove Email app code/resources (note: this CL starts from the
single Email application)
* Update Exchange unit tests to use EmailProvider "live" and
clean up after itself
* All unit tests pass

Bug: 3442973
Change-Id: Iced00ae546dd4ddb9a66e297d3ac2dc2977e20eb
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e951b589c5134a1154ec3743d79236dee54a6519 09-Feb-2011 Marc Blank <mblank@google.com> Email split, part trois: AccountService

* Create AccountService.aidl and AccountServiceProxy in emailcommon
* Implement AccountService in email
* Use AccountServiceProxy in Exchange for account reconciliation,
notifications, etc.
* Move sync window constants into emailcommon
* Split attachment provider utilities and constants into emailcommon

Bug: 3442973
Change-Id: I89dce28b799b193243c07774dab65d830ae62775
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
0c6d45f08c28225951f32579e8dadab5853bf43a 22-Nov-2010 Makoto Onuki <omakoto@google.com> Show color chips for combined view.

Show color chips for account rows and message items on the combined view.

Moved hard-coded color values to resource.

Bug 3138001

Change-Id: Ib93fb9d6e9592ebd0c297f83c3dee2358a80508f
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
393208ab154d18a876842777781ab153d34a0281 13-Oct-2010 Marc Blank <mblank@google.com> Use original all-day flag when upsyncing exceptions

Bug: 3087410
Change-Id: I4bed0039758e98d4b85054876f192605eb00ee82
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f72b4bc0ea714067ae528e63c916f0237d2202e6 31-Aug-2010 Marc Blank <mblank@google.com> Fix issues with handling FREQ=YEARLY in RRULEs

* Turns out that we weren't handling one of the cases for YEARLY
RRULE; that in which the date is specified as a day of week plus
week of month
* Also, we weren't always sending the INTERVAL properly in a few
cases
* Fix these issues and add a unit test that confirms the fixes
* Also removed an unused argument in recurrenceParser in
CalendarSyncAdapter

Bug: 2718948

Change-Id: If9146d484218e7d6bd9f5c2305d0e6a216aeed49
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
385a0be662509754e687bcfa9813208b050bf951 27-Aug-2010 Marc Blank <mblank@google.com> Rename SyncManager to ExchangeService

* Updated comments and checked for 100-columns

Change-Id: I4ab5aaa9425714f8e035e1952db3fec63d498ae1
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
35f9057fd0a9aaeda677265bafd804fea0fed237 16-Jul-2010 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #2846543 Delete HIDDEN column from the "Calendars" table

- update Email app

Change-Id: I04145b802c8ace6bb6f25d2f1cb0fecb1bb22308
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
3baaee079e644467cf18c9b250ac30485f9c54e0 03-Jul-2010 Marc Blank <mblank@google.com> Fix broken test

Bug: 2731958
Change-Id: I5b16e9d7e4db4eebe6dc9a9956b90dabb54edf4e
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
270a17e49669e0bfc7bd2a6303a684a7acd1266d 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
b4f78da94bcc3af7a872b5dc195d5243a948a3c7 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
88683d3ebf9720ee648220dd6884e200d5e87038 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
edcfd554728a27a7678306ea7432bd8676ec6990 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e51fedc3c055588a69da56d0b818ea12ed8f706f 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
dc27937dda50f991de9e12b98b80ee6aa3fe348e 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
b94d16528fc9c7f5dbb5c75c059f76cee2070c09 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
24cce3b10f1b3ed69de7c4d693e944cab05f8ad2 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
cfbbe6bf8cec39204a00d31ee4277b54b0262ba6 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
efae936b117c9e4f3056d52fdbfe4d3f261483e5 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
46e18bd76629be0835a5d5e6c839b6daac6cdfdc 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e3e9ef55a2afd2c121e1f214a8fa34fced3bac38 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
c1b63a27ed05bed70f74cf33fe08f8bd1f0d745f 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f58e3ba6e6e246a804e6908c831a43b46a61bc07 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
6137d3f2ce68db51926a5e33bf1f57e49bcf8a31 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
00702b7e577ff2b7b1ae3f6dceefc615ba9cba72 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
601273ad3ff202f50c17061bd2a8fe9492850802 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
79268e63dbda6ebc94d20e72e2bb1c245ee64678 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
10e1bb12c0e78b60c1302186a724e5617a2ba3bc 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
bf1de871b7ec63c93694ba022282e8789e69f201 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
332d08cc2fc37d9936a73e3a120125c60b0587d1 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
b4d217e5170ae397d741e95308d98e80d0c2f637 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
bc0c8c1523fc0bc42eb82dba6c2977492e441c03 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
9ca8918b82221dd441293973ffb84d565a52993a 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
b129a5f1b340ae6362397685c407099ceae8d9e9 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
302238ee714b518fc0423459064946357f988683 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
e54b75dc4f638e594e9b97e3b4ed8829fbc9b521 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
dafc866120dac68fabbddcc9943e3995894c5244 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
5a02f79c91df6df44f3c95742f61f2c25c464cc3 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
8e26c42accbaf72eff6694173496aba0e6aa37f6 02-Mar-2010 Mihai Preda <preda@google.com> Move parseDateTimeToMillis() to com.android.email.Utility.
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
820dbc5ff3497fdd98fdb1cc42c1d298f9c1f199 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
30d2d4ea74cfca9d27dfd495cebc8387b8f2454d 26-Feb-2010 Marc Blank <mblank@google.com> Send cancellation email when user-created event is deleted

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

Change-Id: I9532c459f3cf624fa88269370fa36d191481e500
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
5c6e14ab2f2e4c5dfc97cdeaedcc105159a9f29c 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
8d5c79fe3d792065b72edb6231d51e4301fd2bcc 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
c8dc8009bcbb9dbf781f0028f07b2bbca600aeeb 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
7e85a8d17b2b0c80bd04306db5a698ac3b91deaa 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
77110d3a646dd691d84abd0b1e083385c1418ac5 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
c10a3beef4f048292e6a4ceb31527c5123801517 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
21c3c670ff6b932a4ecbeda230bb160178bdd957 15-Feb-2010 Marc Blank <mblank@google.com> Add support for UNTIL in recurrences

Change-Id: I983e1bcb209e794b462ec43efaccefe95bf9bd9d
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
377230593dca7cb01483bfaf93959e5821f5f028 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
f35b67cef20189c12a1a387dedf200eb30089725 02-Feb-2010 Marc Blank <mblank@google.com> Handle upsync of multiple BYDAY values; add some unit tests

Change-Id: If3be28df41ed88cb83edca2f6ea6ca1f734f506f
/packages/apps/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
14045eac56b0aa394ce36f00b4f31dbe8bc1122d 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java
5862a85e17e81866ca82a9905577931947fbd44e 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/Exchange/src/com/android/exchange/utility/CalendarUtilities.java