8faae52c0d012b47171ae270f4af84c43cac45f7 |
|
26-Mar-2011 |
Andy Stadler <stadler@google.com> |
DO NOT MERGE - Clear cached CalendarObservers after Calendar wipe * This fix may resolve the bugs referenced below; the issue fixed could cause pandemonium after the server commands a wipe of calendar data and most likely explains these issues (via Occam's Razor) * Also backport a SQL fix to more reliably delete calendar data Bug: 4077499 Bug: 4064237 Backport from: I628fb14ea2c04150d4f27341751f0eab61ee33d1 Change-Id: I7667a11663d8720a92b9eba0748f60256a25edba
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
9c2baaabd2feff633db3ed1b782282667e541927 |
|
14-Oct-2010 |
Andy Stadler <stadler@android.com> |
Fix upsync of exceptions in EAS 2.5 (Exchange 2003) DO NOT MERGE * Apparently, Exchange 2003 doesn't like to see Visibility set in Exceptions * Apparently, Exchange 2003 likes to see Exception Deleted and ExceptionStartTime prior to other data * The word "apparently" is used above to indicate that these findings are not part of any specification, but have been determined empirically Bug: 2775885 Backport of: I163f156675f65c494a59d5233b2b6e23b3f1d6a0 Change-Id: I5d32dea5c3903147725b8df87a71e961a4d78c60
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
6f207f5df2a1b4190e5da243fd497dcf168899af |
|
02-Jul-2010 |
Marc Blank <mblank@google.com> |
DO NOT MERGE: Interpret "busy" on new events to mean "no response" * The meaning of a busy status of "Busy" is uncertain; it could mean "Accepted" or "Tentative", depending on whether the event was created via OWA/Outlook or EAS * We have interpreted it as "Accepted", which prevents the user from actually accepting the event (as a state change is required for us to send updates to the server/organizer) * This CL changes the behavior such that a newly arriving event with a "Busy" status is shown as "No response" in the Calendar, thereby allowing the user to pick from any of the three possible options. Bug: 2811859 Change-Id: I321f714e54e66ee8f40f5e2c00587b98bad71a63
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
2e7a84ff26cdfb0f37d6e0a24ed6b2c5a44989f4 |
|
01-Sep-2010 |
Marc Blank <mblank@google.com> |
DO NOT MERGE: Fix error upsyncing exceptions to all-day events * Backport of I471e487ec1f7ce11cccdde86f8d8bd8435edd27d (master) Bug: 2893712 Change-Id: Iaada0969f77a8e41a66426f58ca2886529d3fd8f
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
4e03d94cccc2e798a08162c270b39233f39be093 |
|
25-Aug-2010 |
Marc Blank <mblank@google.com> |
DO NOT MERGE: Set HAS_ATTENDEE_DATA to 0 for exceptions Bug: 2891708 Change-Id: I4eb26a6fe7be13dda34ba39a766a03c901276b73
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
043969163e8629a4d3b583b73dfa29c6e97989c0 |
|
29-Jun-2010 |
Marc Blank <mblank@google.com> |
Fix regression in Exchange calendar attendee response * During the fix of a previous late-Froyo issue, a change was made that appeared superficially correct, but was semantically incorrect. This changed the sense of the test for whether a reply email was required and caused the referenced bug. * The trivial fix is to replace the test with the (older) proper one Bug: 2764551 Change-Id: I7c72366252cf0607aee31ee0d76aca96a7d5fc2b
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
826c83a2310342217c1e58aeafdd397b75d40b72 |
|
10-Jun-2010 |
Marc Blank <mblank@google.com> |
Work around problem w/ large CalendarProvider2 transactions * We're seeing binder transaction failures when we try to send more than around 1500 CPO's to CalendarProvider2 in a batch (the limit is related to memory usage in binder transactions) * When an event has A attendees and E exceptions in an event, we currently must create A*E CPO's; this number can become very large and cause a binder failure * The result of a failure is looping behavior, resulting in failed sync and very much reduced battery life * The workaround here is to redact all non-organizer and non-user attendees from exceptions once we reach half of the maximum number of CPO's. This has been determined empirically and is set to 500 CPO's in this CL * We also reduce our sync "window" to 4 calendar/contact items per sync command to help limit the potential size of our batch * For later releases, we should reconsider this and see if something that is more of a "fix", rather than a workaround, can be implemented Bug: 2760514 Change-Id: I06ca1a1ae88c772342a9e46b5997c41678e95144
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
8c742a4c65e1ff2618e1005803edb65a42994fb6 |
|
27-May-2010 |
Marc Blank <mblank@google.com> |
Handle case of null organizerEmail in changed event * A recent change assumed that organizerEmail couldn't be null while an event was being added. However, there is an unusual case in which it CAN be null, and this CL handles that case * Regression caused by: SHA 7f448dcd470ac509a85368a84f5a55c346ae7e70 Bug: 2719254 Change-Id: Idb8fc79c898bcd2e53fcc8b3e42d0ba67ba762fa
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
b6a08f68d7c49835fffed0719e99c13b50fa525c |
|
26-May-2010 |
Marc Blank <mblank@google.com> |
Remember to store modified organizerEmail Bug: 2709816 Change-Id: Ib26536c127857fa8a1fdf805469872419931f21c
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
7f448dcd470ac509a85368a84f5a55c346ae7e70 |
|
25-May-2010 |
Marc Blank <mblank@google.com> |
Limit the number of attendees in a synced event * If there are over 50 attendees in an event, we only store the organizer as an attendee (the rest are redacted) and we set the hasAttendeeData flag to 0 * If the user is the organizer, we reset the owner of the event to a bogus address, which causes the UI to prevent edits to the event (we can't upload without losing all of the attendee information on the server). We also prevent the event from ever being uploaded (belt & suspenders) * If the user is an attendee, we allow changes to be uploaded (this would be attendee status and free/busy), but the list of attendees on the server is removed. * We also mark events with redacted attendees, even though we don't use that information currently. In a future version, however, we could use this to indicate the redacted state to the user. Bug: 2709816 Change-Id: I2b44af59c598cedf906af12bf9b4eaf7484b9d20
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
8752159c7d081e7ea4d870ae29de6e58da7d50be |
|
25-May-2010 |
Marc Blank <mblank@google.com> |
Fix critical typo in CalendarSyncAdapter * Used wrong name for column Bug: 2703075 Change-Id: I8107bd2df4fdc2ee79d126a657383b46317d0495
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
d1e00e8aa69ccad3de61ed638b70bf5a9e5bd937 |
|
08-May-2010 |
Marc Blank <mblank@google.com> |
Fix NPE resulting from attendees-only update from server * Code for updating attendees in CalendarProvider2 wasn't taking an attendees-only update into consideration * Fix code to allow for this, including proper updates for our selfAttendeeStatus and attendees ExtendedProperty values Bug: 2668682 Change-Id: I8c7deb971cd0b6846c09ee3cd603f6fc762a9407
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
85a63c3c2f2d00210e9f7957f3d217b7fd028dad |
|
07-May-2010 |
Marc Blank <mblank@google.com> |
Fix issues with exception downloads * It turns out that, in addition to other requirements of the CalendarProvider, there is another - that the ORIGINAL_INSTANCE_TIME also be set with hour, minute, and second as zero (in UTC) * Change setTimes() to properly modify ORIGINAL_INSTANCE_TIME * Also, there was a regression due to an incorrect validity test for events; this regression caused all exception downsyncs to fail * Changed isValidEventValues() to be correct for both exceptions and original events * Update tests for setTimes and isValidEventValues() * This CL also fixes 2658988 Bug: 2664229 Change-Id: I9c8aea08e606ff58e5be37ca81a2d86a181c46f6
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
33f07963eb432704e05544dbdfa209f3f8fb9e9b |
|
05-May-2010 |
Marc Blank <mblank@google.com> |
Add checks for Event validity before commit * Enforce CalendarProvider2's requirements for valid Events * Add unit tests for the new code * Backport of change I42ad7acb from master Bug: 2658149 Change-Id: I8151d035247a7dbb1fda3eae163b24ccfe055299
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
d2c773a80636cfc38ef0528d955c49309325b1d6 |
|
29-Apr-2010 |
Marc Blank <mblank@google.com> |
Fix issues with incorrect email replies to event organizer * We were previously storing the user's attendee status in the SYNC_ADAPTER_DATA column of the Event, but it turns out that this data isn't available in the Entity we retrieve when uploading changes to the server * The result is that we often thought the user's status had changed when in fact it had not; in these cases, we sent email to the organizer, often with the wrong information. * As of this CL, we store the user's attendee status in an ExtendedProperties row (these values are already exposed in event entities) * The logic otherwise remains the same; we now get correct data, however Bug: 2638762 Change-Id: Ibe8db90c16b4ca06203f77fd010aa26dde89a556
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
849ba0285c0f26b7ad18d35e9095586660a90757 |
|
17-Apr-2010 |
Marc Blank <mblank@google.com> |
Use METHOD_ALERT instead of METHOD_DEFAULT for reminders * Exchange has been using METHOD_DEFAULT for reminders, but it turns out that this doesn't work. * Changed to use METHOD_ALERT Bug: 2604156 Change-Id: Ia76bb2fc150202de9c49af9ab8caf86c9bda775f
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
a8f7b3e16e97ef8e6d9fb47ae9359f2db5676c94 |
|
16-Apr-2010 |
Marc Blank <mblank@google.com> |
Store all day events w/ UTC timezone * All day events are supposed to be stored w/ UTC as the time zone * We already zero out hour, minute, and day * Use DTEND for non-recurring and DURATION for recurring all day events Bug: 2440161 Change-Id: I31f2e5a355b721c06b4022b57ccc8a29b288a5d9
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
3fdaa329692b29c0083008bcbb5c5aa62ae7b9fd |
|
14-Apr-2010 |
Marc Blank <mblank@google.com> |
Only set ORIGINAL_INSTANCE_TIME in exceptions * We were setting this for all events, but apparently CalendarProvider does not approve, and generates warnings * Only set this for exceptions Bug: 2550631 Change-Id: I8a7152eb0d4233432b1a5b5664da964d5433fbae
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
627006a8e3e098f249a93efd2d575b0f0e504340 |
|
14-Apr-2010 |
Marc Blank <mblank@google.com> |
Fix issue with deleted recurrence * It turns out that this bug is due to a bad rebase/merge for a previous CL in which the changed code appears in its new form AND old form * Fixes change SHA c3aa31820003bd62a863dc28d699cebdbcead228 (CL 48406) * Don't say it. Bug: 2587775 Change-Id: I3f70a97e498db30345452b942909448049680fdf
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
de3022268982d1ef7e81ef563c6b3a87faa9b002 |
|
13-Apr-2010 |
Marc Blank <mblank@google.com> |
Always check serverId AND calendarId in queries * With multiple accounts, serverId's are not guaranteed to be unique (indeed, they rarely are) * There were two queries in CalendarSyncAdapter that checked only serverId and this has caused the referenced bug PLUS others that would have turned up later on * This is a critical fix Bug: 2589815 Change-Id: I49bc6cb5bb4708f4bf4ca60a891ff78f0b25e989
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
e3df9f95ea267c2a6d19386f45ba849a91905902 |
|
12-Apr-2010 |
Marc Blank <mblank@google.com> |
Sync description with exceptions * We weren't sending up the event description with exceptions, so changes to description were being lost on upload * Move the code uploading description so that it happens with exceptions as well as top-level events Bug: 2590020 Change-Id: Ifab556bed68671f3ee8cab02b657adbd8ba9c50c
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
c3aa31820003bd62a863dc28d699cebdbcead228 |
|
11-Apr-2010 |
Marc Blank <mblank@google.com> |
Send email to organizer if attendee deletes event/exception * There are two cases, event and exception and both are fixed in this CL Bug: 2587775 Change-Id: Id325c4877a77074ca6edd4d7fbeb54971d4cf984
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
c5c5bf7da79eeff0c79535ca816d48dc92ee3039 |
|
12-Apr-2010 |
Marc Blank <mblank@google.com> |
Always add changed exceptions to the upload list * We were adding deleted exceptions to the "deleted" list; this is bad, because the exception then gets deleted from the database after the sync. The symptom is that the deleted exception reappears on the calendar. Bug: 2587837 Change-Id: If497f82ba0b2b817d1cef6165ded23d19876528f
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
80bd83fd8550ed1b58c26241aab6830d66289b5e |
|
11-Apr-2010 |
Andrew Stadler <stadler@android.com> |
Upsync appropriate organizer name/email * We need to send name & email for Exchange 2007 * For Exchange 2003, only name & email if the event is new Bug: 2586661 Change-Id: Ia35c2c7a645a3d20b7031e9a43b8b5044a40f005
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
06699c0d911ad71d5964c68e182745f5c4144569 |
|
11-Apr-2010 |
Andrew Stadler <stadler@android.com> |
Send meeting status with all upsynced changes * Meeting status differentiates between appointments and meetings, which is important in Outlook and OWA * Fix older, completely incorrect code for upsyncing categories Bug: 2586071 Change-Id: I277252ef2c31e5b8ec7ceda69c229f5fd100ecdb
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
0cd9cbf08817b18b4221efa15388f5a144ebfab4 |
|
10-Apr-2010 |
Marc Blank <mblank@google.com> |
Add organizer to Attendees before handling exceptions * Exceptions take a copy of Attendees when they are created, but we weren't adding the organizer to Attendees before exceptions were parsed * Fix this by adding the organizer just before exception parsing * If there aren't any exceptions, we add the organizer as before Bug: 2585817 Change-Id: Ie894682977e38a55d975135c8fc2fd8f2d4b1365
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
1b2ed80da7a438a6900a22c00a2a0052de3df124 |
|
09-Apr-2010 |
Marc Blank <mblank@google.com> |
Handle exception deletion properly * First, make sure we catch the cases of DELETED=1 and eventStatus=cancelled * Second, only send email updates if the user is the organizer Bug: 2583054 Change-Id: I886efa0f28931dc815bc31d4d6adb3d700f83c6b
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
b6cbf52656f07308ee669a584b6757ca352a3889 |
|
09-Apr-2010 |
Marc Blank <mblank@google.com> |
Fix auto-send of invites when attendee status changes * Use AS_SYNC_ADAPTER flag when changing attendee information in downsyncs * Allow DTSTAMP to come before new attendee information in the case in which only attendees are changing * Add _SYNC_DATA of "0" for all newly synced events Bug: 2582513 Change-Id: Iacde0ddf3f2a99d108e00ef1991edfc34613f5c7
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
f1bbf0538028a0bf52ad64ae48a15af28a6a1d6d |
|
07-Apr-2010 |
Marc Blank <mblank@google.com> |
Send busy_status = 2 on all upsync's * Right now, we only send this for 2.5 (where it's required) * If we don't send this for 12.0 and later, the status will be set to "free", which is almost always going to be wrong * So always send busy status = 2 (we can't know differently, as we don't track free/busy) Bug: 2575611 Change-Id: I11d952b68ac0ef7a022b030037ce6408f72d4a90
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
79976209d74c50fb15646dbc9e87ec97269bdbd9 |
|
01-Apr-2010 |
Marc Blank <mblank@google.com> |
Synchronize getSyncKey/setSyncKey in Calendar and Contacts sync * When the sync state of Calendar/Contacts is changed, a number of observer calls are triggered. In addition, we might have a running sync. * The syncKey operations need to be synchronized, because we may otherwise inadvertently use stale data when syncing, which would cause symptoms as seen in the referenced bug Bug: 2561864 Change-Id: I03db58fe01c45778d271fad34d8d4940edefe8fe
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
82701d77250850939e64365b8c2a45e59e822cff |
|
01-Apr-2010 |
Marc Blank <mblank@google.com> |
Only send meeting emails after upsync is confirmed finished * We were queueing up emails during our upsync, but before the upsync was complete. If there were connection issues, we could pile up multiple copies of the same message, each of which would eventually get sent out * Fix is to simply queue up the outgoing mail and send it all after the sync operation is complete. Bug: 2515975 Change-Id: Ide3eb2deb6e959d0637d28efabd613efb3c6e209
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
4b4e00e4ce53a1c782e08f9819e394f34971565f |
|
26-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix #2548436 (Use EVENT_TIMEZONE rather than TIMEZONE) * Prior fix used the wrong column when adding time zone information to downloaded exceptions Bug: 2548436 Change-Id: Idc1001fd58d2fba51823624a15862fe439c9ff6a
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
41d17202f5fd4992f870e4596de2c564659e92c3 |
|
26-Mar-2010 |
Marc Blank <mblank@google.com> |
Make sure we only upload exceptions for the correct event * We weren't checking calendar id along with original event id when uploading (original event id isn't unique) * Fix the query selection to ensure finding the correct exception(s) Bug: 2545659 Change-Id: I276dd10e2be171bd9d4f3300cdc8843bb28f2781
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
249c6f77c11137de6fbd2c8106959d6a036f0d6a |
|
26-Mar-2010 |
Marc Blank <mblank@google.com> |
When syncing, put time zone into exception events Bug: 2545885 Change-Id: I41d504f16e9fc4776d2d8d7bbd2682b5940cf1d1
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
eba33f8b5a0cc4a28ae5a9d6632df475c4b0a794 |
|
25-Mar-2010 |
Marc Blank <mblank@google.com> |
Don't send bare line feeds to EAS 2.5 * EAS 2.5 doesn't like seeing bare LF's in Calendar location and description, and Events including them won't sync back to the server * Create a utility to replace bare LF's with CRLF and write unit test for the utility * Fix the bug by using this utility Bug: 2542220 Change-Id: I2c72d23f15e3a922ebe3585e063abe9fa9e2366f
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
e4cd885ec42d8f2f642b1b8c9b2740ca666b6075 |
|
19-Mar-2010 |
Marc Blank <mblank@google.com> |
Handle EAS versions better * Properly parse the server's supported versions * Choose the highest server version that we support * Fail with MessagingException if we don't support any server versions Bug: 2527408 Change-Id: I0a2822c8fab31a65c8fea9b78b4a8c23df1804a3
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
4655cee65a79aed2fb07dc77baee35a9607d2d99 |
|
18-Mar-2010 |
Marc Blank <mblank@google.com> |
Don't show attendee status for Exchange events * There are serious issues with showing consistent and accurate attendee status for Exchange 2007 events * Unless and until these can be resolved, it is better to simply not show the user the supposed attendee status (since it might well be wrong) * In this CL, I never set the attendee status; therefore, it will appear "unknown" and be shown simply as "Guest" when viewing the Event in the Calendar app. * Will create tracking bug for this, so that we can revisit for a later release. Bug: 2524410 Change-Id: I97fdd26750c68ff25bbb102547071c728e4124a9
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
0a6b977939dfa508b4f7348fc145644cd62e7fef |
|
16-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix dtend synced up to server Bug: 2511120 Change-Id: I9194da082f568d804f89d087475efcc11651b081
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
ee1ec2384fdd83a17487de2bcfbd9df3b3e4b995 |
|
15-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix NPE in exception parsing Bug: 2516099 Change-Id: I4d64c306f2c0421f0145dab11f10bfb174e46c0a
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
8c1613b4f7d942cb53744fc11006211033b81249 |
|
14-Mar-2010 |
Marc Blank <mblank@google.com> |
Only send one reminder time to Exchange server * Upsync fails if we try to send more than one reminder time * CalendarProvider allows an unlimited number of reminders * If there are reminders, send the largest number (i.e. the earliest reminder) Bug: 2513106 Change-Id: I90a2fb145446e403edeabc654f725cc88ef1656e
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
217cfba1f64bb1f86463804bcfeea6fca9ff2aef |
|
13-Mar-2010 |
Marc Blank <mblank@google.com> |
Delete Exceptions after deleting an Event * CalendarProvider does NOT delete exceptions for deleted Events because the server handles this; this isn't right for Exchange * Add a second delete operation to delete Exceptions * Remember to cancel this second deletion for invalid events Bug: 2512985 Change-Id: I848c8937945b3774251e517071c81a334a77f1a8
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
4b3c683014c92ff6e1c9acb96069dffa61e56a22 |
|
13-Mar-2010 |
Marc Blank <mblank@google.com> |
Improve handling of exception downsync * We needed to copy some more columns, and also copy reminders and attendees to the Exception * Also found a bug in which Description was referenced as a boolean rather than a String Bug: 2511405 Change-Id: I485b8d44a6090f8190e681838d2141551227d8f3
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
019a91e53dc2aa0c2b3d899e21d056f5920b6494 |
|
11-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix upload of all day events in Exchange calendar Bug: 2500863 Change-Id: I26f793aa4297103fa513d9cecf4b2b0ec0fa47a6
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
bd2473e818691883e96c9539afd34d8a64a700ce |
|
09-Mar-2010 |
Marc Blank <mblank@google.com> |
Only clear dirty flag if we're sure the events were uploaded * Add new/changed id's to a list, and only clear the dirty flag for list members * The implementation is analogous to how deleted items are handled Bug: 2492857 Change-Id: I3353100ab307a45a5ab684d402253eb589f22008
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
b5dce150680d17f93943a36cc6855b2d786afa90 |
|
09-Mar-2010 |
Marc Blank <mblank@google.com> |
Upload cancellation exceptions properly * This was an omission in the code that is now handled Bug: 2501136 Change-Id: Ib4615e04a1ef61cf07cd356eb3038da3e74a5470
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
b00a660c0af7b0385c409d0b33bd777e7c83c07e |
|
07-Mar-2010 |
Marc Blank <mblank@google.com> |
Partially fix #2455341 (Exception adding event w/o DTSTART) * Apparently, the Exchange server can send event changes that have incomplete data. This is not documented, and the result is very bad in that an exception is thrown by CP2, and the sync (and future syncs) is prevented from finishing * Wrote some defensive code to detect bad events and simply not add them * Open a new bug to track trying to determine why the Exchange server is sending this kind of data. Bug: 2455341 Change-Id: Ibcfd412382164351c96f368dc043f38c7b481154
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
54181220e2936163941cb3e219a64f0720acd467 |
|
06-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix #2492864 (Upsync failures in Exchange 2003) * Of all crazy things, Exchange 2003 doesn't like uploading the organizer's email/name in changes. This isn't documented anywhere. * Don't send up organizer name/email on changes. Bug: 2492864 Change-Id: I1f2aefb6f9020025578325c5c7b3cf869f17e27f
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
db9f3d2441d9210e8155f942ba240f9a15f88075 |
|
05-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix #2490068 (Exchange 2003 won't upload) * It turns out that Events don't store null for empty fields like location and description, but rather an empty string. * Exchange 2003 doesn't like seeing empty values, so check for this before uploading. Bug: 2490068 Change-Id: Ib208f9d6ec116a99adf798939dfbc4d4bdd15edf
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
989552c10744e2d7f8fca1bdb2baef5273a8a0b9 |
|
02-Mar-2010 |
Mihai Preda <preda@google.com> |
Move parseDateTimeToMillis() to com.android.email.Utility.
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
4476b2a1da49b94569ba7501327d2e9422308f38 |
|
02-Mar-2010 |
Marc Blank <mblank@google.com> |
Fix #2478711 * We needed to check that clientId wasn't null before sending it back to the server * Exceptions don't have a clientId Bug: 2478711 Change-Id: Ic0d42bb699605a7bb77535b050a4d03b4b6b8b09
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
f8b45d934b7e0acf82ba96b2c48c652d182fdb98 |
|
01-Mar-2010 |
Marc Blank <mblank@google.com> |
Stop calendar/contacts sync in progress when sync setting is turned off * Syncs in progress weren't checking the getSyncAutomatically setting in the account; therefore, a long sync would continue running even though the user unchecked the "Sync Calendar/Contacts" box in the settings * Make the adapters check the flag each time through its sync loop (which is currently 5 items); this should cause in-progress syncs to stop within a few seconds Bug: 2185319 Change-Id: Ie181f6de4219ecf27fff58ed59a277ae285622c5
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
4c6683f152426d60602573535164cd07d3456f45 |
|
26-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix # 2467153 (Handle change in attendee status from Calendar UI) * Fill in this missing piece of meeting related functionality. * We keep track of the last synced attendee status in the newly created syncAdapterData event column * When this changes, we (in addition to syncing up the change) send an email to the organizer (unless we're the organizer, of course) Bug: 2467153 Change-Id: I6332fb6d0839e33d4c54bd4358ee0f154bff6612
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
481ad6a3c5c46e6a25acf787ed1ab98423fbe136 |
|
25-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix some nasty bugs w/ Exchange calendar upsync * In #2469254, uploaded new events were rejected because the time zone was sent after dates; this doesn't matter to Exchange 2007, but it apparently does to Exchange 2003 * Also, I noticed that upsync was upsyncing all new events, regardless of whether the event belonged to the Calendar being synced! So this is fixed as well. Bug: 2469254 Change-Id: I651d591cf26e00b414f6da19897fddcdb840c97c
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
d4dc57972d5eadad0c9059caa668cd959960949a |
|
25-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix #2469569 (Broken EAS calendar downsync) * Category parsing switch statement was missing a break; Bug: 2469569 Change-Id: If815300a2ef3824f837f5fa41f55b9421cac8d9b
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
15036ca0624b2b396beb0ef44ed8a5899f1a1db0 |
|
20-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix #2457665 (Guests don't appear in Exchange events) * The "hasAttendeeData" column needs to be set to 1 for all Exchange events (the case in which the value would be zero doesn't pertain to Exchange events) * Also, move code for organizer attendee to the proper place Bug: 2457665 Change-Id: I3260f883135bb222ce475ccbabf5ba151ab7f557
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
476ee8f7900d55621017966a2d7396cc192af0f2 |
|
18-Feb-2010 |
Marc Blank <mblank@google.com> |
Make sure we always send an attendee name w/ email address * EAS requires an attendee name in addition to an address in upsynced Calendar items. Change-Id: I9384dcba6fd2fff8be960e18297ef7f641e0abe7
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
694257cb7e7a191b3314cb209b6c38a8a07583ef |
|
12-Feb-2010 |
Marc Blank <mblank@google.com> |
Handle calendar sync state changes by observing Calendars; cleanup * Use a content observer to detect changes in Calendars; we use this to determine whether or not sync has been turned off. If sync is turned off, all events will be deleted, so we need to reset the sync key * Make sure that all code working on Contacts also now works on Calendar (push, etc.) * Remove some old crufty logging and out-of-date comments * Addresses 2433061 Bug: 2433061 Change-Id: I6299168903fcce9bf820b72b5f6bb157d9169653
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
e81b2bfe5ee4f2aa1264433583a79475b1ed0ce9 |
|
08-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix bug w/ all day events (hr, min, sec need to be zero in DTSTART) * For some reason, the recurrence expansion system requires hr, min, and sec to be zero for DTSTART when allDay=1 * Force hr, min, and sec to zero for all day events Bug: 2427658 Change-Id: Ief6b5b571fa6bc6947bcbc9cda02ab2c04f27549
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
204b7a3bf4f043415e04960e38827b07163633a1 |
|
05-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix #2422815 (Exception in EAS calendar upsync) * Exception is due to the presence of values in ContentValues that are null (would normally expect those fields to be absent) * Fix all relevant cases that might produce an NPE in this case Bug: 2422815 Change-Id: I637a21307c2d518912edce093de90a06d94614e5
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
0bbe34bce5284bf20fb60b20fc6679c3f9b4749a |
|
05-Feb-2010 |
Marc Blank <mblank@google.com> |
Fix #2420732 (crash in Google Services Framework) * Exchange calendar sync created Event records for exceptions that didn't have a _sync_id * This caused google calendar sync to try to upload these Events as new, which caused an Exception to be thrown * Fixed EAS calendar sync adapter to generate a _sync_id for exceptions in the form <parentId>_<exception start time> Bug: 2420732 Change-Id: I46769175ca89ffa4cec4fe8b0c35ef2242536185
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
faed6178b1858f0e6df388a409d14fb3f94afefa |
|
02-Feb-2010 |
Makoto Onuki <omakoto@google.com> |
Move Eas.ACCOUNT_MANAGER_TYPE out of the package. Moved Eas.ACCOUNT_MANAGER_TYPE to Email.EXCHANGE_ACCOUNT_MANAGER_TYPE. This constant is not related to the exchange protocol, and referred in a lot of different places. Moving it out of the package will make it a lot simpler when removing exchange dependency.
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
31ac14aa511ddcd28746574a444b5f0660cc5fcf |
|
01-Feb-2010 |
Marc Blank <mblank@google.com> |
Remove default EAS Calendar parser logging Change-Id: Id05d9721b1f40242cb9f77ae21575bfef2d1b671
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
7a2776a5b4fe4413c676bbf3e8c5a21bc961fc5c |
|
01-Feb-2010 |
Marc Blank <mblank@google.com> |
Further work on Exchange calendar sync; exception upsync * Add code to upsync exceptions; debug same * Use AccountManager to handle sync keys (as w/ Contacts) * Add unit tests in next CL Change-Id: Ib8526d70de33ed7e551b9713a3bbf1ad80612948
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
d99dbf01fb99d6e028bbbf975fab721c5a0c2562 |
|
28-Jan-2010 |
Marc Blank <mblank@google.com> |
Fix problem with Event creation by EAS calendar sync * Turns out that DURATION is required by CalendarProvider, and DTEND has a different meaning than it does to EAS * Fix downsync to create proper recurring events Change-Id: Ibf85422de73579a93de89b2c27c13f96994bedc8
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.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/adapter/CalendarSyncAdapter.java
|
aa69a174774699d452233f8ffece021f9851011e |
|
24-Aug-2009 |
Marc Blank <mblank@google.com> |
Add initial support for uploading new Contacts to Exchange server * Refactor the sync adapters to separate out parsing from commit * Use ContactsProvider to save the SyncKey for contacts * Fixes #2072664 and #2072456 Change-Id: I1e85c498496e83d9523489636a75f366f7fbd106
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
1e7829fb650f73ec13c1efadf1bc220d4ab19956 |
|
08-Aug-2009 |
Marc Blank <mblank@google.com> |
Switch from HttpURLConnection to HttpClient
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|
f00dccd32125c727cc18d837b59c15c95f5d78bc |
|
31-Jul-2009 |
Marc Blank <mblank@google.com> |
Massive reworking of EAS serialization; much smaller and faster now * Remove all use of Strings in favor of the parser's static final int's * Strings remain in Tags for debugging output only * Renamed lots of classes to be more consistent * Centralized logging behavior in Eas class * Found and fixed some bugs in the process: - Account deletion wasn't removing HostAuth's correctly in the trigger - Adding a second EAS account was trashing the first one - Fixed looping sync behavior caused by Exchange 2003 bug
/packages/apps/Email/src/com/android/exchange/adapter/CalendarSyncAdapter.java
|