Commit Graph

2329 Commits

Author SHA1 Message Date
Marc Blank
79976209d7 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
2010-04-01 17:07:02 -07:00
Marc Blank
78021cbbf8 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
2010-04-01 14:42:10 -07:00
Marc Blank
82701d7725 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
2010-04-01 12:24:24 -07:00
Marc Blank
cf274512ed 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
2010-04-01 10:13:00 -07:00
Marc Blank
1c48450c02 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
2010-04-01 10:10:41 -07:00
Marc Blank
1b3166e84a Merge "Allow upsync of photo/note deletion for Exchange contacts" into froyo 2010-04-01 10:06:27 -07:00
Marc Blank
53031a59a6 Allow upsync of photo/note deletion for Exchange contacts
* Always send up something when upsyncing photo and note
  fields
* This allows the client to delete the data, as these fields
  are NOT deleted if skipped in an upsync (unlike other
  fields)

Bug: 2558998
Change-Id: I9c874432108eedd84a351918f818c32e6e579dd7
2010-04-01 10:05:01 -07:00
Marc Blank
700b373007 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
2010-03-31 17:44:23 -07:00
Marc Blank
3fc61de54f Make serializer logging respect user's debug setting
* We now check that the user has verbose debug logging on
  before spamming with serializer logging

Bug: 2561834
Change-Id: I5eda2ca5f16cde728b0febaa990d66fc99bb93a0
2010-03-31 14:41:13 -07:00
Marc Blank
a3235209b0 Move comment to correct spot
Change-Id: Iaa76f2b014dca3651e0d62122e5d0df533c6bc73
2010-03-31 11:47:24 -07:00
Marc Blank
3ae84b247d Fix race condition in Exchange account creation
* Now that observer code has been moved to worker threads, the order
  in which various pieces of account creation are executed has become
  indeterminate
* Because of this, our EasAccountsUpdatedListener could use a stale
  list of EmailProvider accounts when performing reconciliation with
  the AccountManager's list of accounts
* The fix is to ensure that EasAccountsUpdatedListener's worker thread
  causes the cached EmailProvider account list to be updated before
  calling the reconciliation method

Bug: 2558317
Change-Id: Ia94a8301845cf6c06f8efecd408eb237474f781a
2010-03-31 11:16:41 -07:00
Fred Quintana
1a66cf0056 some changes due to an API review
- make EntityIterator extend Iterator and thus not throw a
   RemoteException, instead converting it into a RuntimeException.
 - rename ActiveSyncInfo to SyncInfo
 - change getActiveSync to getCurrentSync
 - remove the accessors in SyncInfo and instead make the final
   fields publicly accessible

Change-Id: Id1a47bba27042de4c21451a91cc43fa70eb68ec6
http://b/issue?id=2553539
http://b/issue?id=2553541
2010-03-30 17:29:33 -07:00
Mike LeBeau
38e52ccc72 Fix build breakage caused by mblank in 47050.
Change-Id: Ic67fbc611c707a6ff4de558ca15e848f25b92728
2010-03-30 15:29:51 -07:00
Marc Blank
13e497dd40 Fix NPE in ImapStore.create
Bug: 2557382
Change-Id: Ia2135e332162b0ae9d0ab85fbcc532ead089e815
2010-03-30 12:43:28 -07:00
Kenny Root
101ff2fc2e Merge "Import revised translations" into froyo 2010-03-30 09:30:19 -07:00
Kenny Root
baa6c11661 Import revised translations
Change-Id: Ibc8a57ac6ac2269fef2d1fa1ce401147fa498423
2010-03-30 09:16:12 -07:00
Marc Blank
a05114524a Merge "Changes to connectivity locking and sync holds" into froyo 2010-03-29 21:04:08 -07:00
Adam Powell
4e1c6d3c36 Remove overscroll
Change-Id: Ie0dc5c4d58a9e970b47aa7bcc33586d5f690adeb
2010-03-29 16:46:19 -07:00
Doug Zongker
6cec1104fe relocate android.util.base64.* -> android.util.*
b/2553469 - API REVIEW: android.util.base64

Change-Id: I5394427a8e2c94b87ca45a533e417f7088a69f8f
2010-03-29 13:23:39 -07:00
Marc Blank
d40af6c074 Changes to connectivity locking and sync holds
* Clean up some code related to connectivity locks and sync holds
* Add logging related to sync holds after we re-establish connectivity

Bug: 2551482

Change-Id: I1b1f03cc1428e25be90c5e60555adf9ab1bf3ab9
2010-03-29 12:53:44 -07:00
Marc Blank
31edb63c24 Merge "Add message text for invitation replies" into froyo 2010-03-29 12:08:14 -07:00
Marc Blank
a6e1f8d456 Add message text for invitation replies
* Updated unit test to make sure there's message text

Bug: 2548714
Change-Id: I70e05b72539ff9ba7d582a51421e5345aa6151e4
2010-03-29 12:07:09 -07:00
Marc Blank
e675d99cc2 Merge "Handle case of typed data with a null type" into froyo 2010-03-29 11:54:54 -07:00
Marc Blank
02a63da3c6 Merge "Fix sending of cancellations to uninvited guests" into froyo 2010-03-28 13:56:04 -07:00
Marc Blank
54585c9511 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
2010-03-28 13:54:33 -07:00
Marc Blank
a3ce319ed0 Merge "Check for dirty events in specified account before syncing" into froyo 2010-03-28 13:35:37 -07:00
Marc Blank
7fcb505913 Harden SyncManager against NPE's
* Fix a few cases in which we don't check that a mailbox still exists
  before acting

Bug: 2551196
Change-Id: Ie339d821630d84b30aa3a19898d42b784ec1a686
2010-03-28 12:18:03 -07:00
Marc Blank
229666e106 Check for dirty events in specified account before syncing
* We were starting a sync if there was a dirty event in ANY of
  our Exchange accounts
* Change to check for the specific account before syncing; this
  saves provider queries and service (i.e. thread) startups

Bug: 2550620
Change-Id: I83e953f1bade9fa269b777e96121a63664e8edc8
2010-03-27 10:59:55 -07:00
Marc Blank
729b5ca9ba Handle case of typed data with a null type
* There's an NPE if we downsync a contact containing a piece of
  typed data for which there is no type specified in the database
* Check for this and accept "no type" as a match

Bug: 2539843
Change-Id: I155b635a1f9850af9813681f502f3565c3cfcd4b
2010-03-26 17:50:50 -07:00
Marc Blank
d682138090 Merge "Synchronize access to our cached account list" into froyo 2010-03-26 16:09:10 -07:00
Marc Blank
bd841a779e Synchronize access to our cached account list
* The recent change that moves our account change handling out of the
  UI thread caused ConcurrentModificationException's during account
  creation
* We now synchronize all access to our cached account list to prevent
  this

Bug: 2546724
Change-Id: I92b2becedd36a335a81f7e3bd9617f2923e00e6c
2010-03-26 16:07:32 -07:00
Makoto Onuki
34cd4cadf3 Merge "Properly handle old style (<= 1.6) account shortcuts." into froyo 2010-03-26 14:59:44 -07:00
Marc Blank
4b4e00e4ce 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
2010-03-26 12:49:07 -07:00
Marc Blank
41d17202f5 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
2010-03-26 12:06:07 -07:00
Makoto Onuki
a942858f0d Properly handle old style (<= 1.6) account shortcuts.
A desktop shortcut to an account created on donut or before points at
com.android.email/.activity.FolderMessageList, which we've already removed.

- Added a dummy FolderMessageList to receive it and redirect to MessageList.
- Removed FolderMessageListUnitTests, which was left unremoved.

Bug 2535335

Change-Id: Ie5ffa158882633a4929c4c47a3d9625fd1626863
2010-03-26 11:02:18 -07:00
Marc Blank
e3bb5a8be4 Merge "When syncing, put time zone into exception events" 2010-03-25 20:43:16 -07:00
Marc Blank
802a7d69b5 Format cleanup for CalendarUtilities
Change-Id: I6633435cbe0ee55f58da76658d2ccb12f421e326
2010-03-25 17:43:24 -07:00
Marc Blank
82b2453b97 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
2010-03-25 17:26:30 -07:00
Marc Blank
249c6f77c1 When syncing, put time zone into exception events
Bug: 2545885
Change-Id: I41d504f16e9fc4776d2d8d7bbd2682b5940cf1d1
2010-03-25 17:23:01 -07:00
Marc Blank
812983a341 Merge "Don't send bare line feeds to EAS 2.5" 2010-03-25 17:22:25 -07:00
Marc Blank
eba33f8b5a 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
2010-03-25 17:16:46 -07:00
Marc Blank
a2bb14bd27 Run AccountObserver's onChange in a background thread
* AccountObservers do a fair amount of database access, and all of
  this should be done in a background thread, so we'll move it there

Bug: 2545753
Change-Id: I5a38677213a923d44eadade75ae32e151e9100da
2010-03-25 15:22:52 -07:00
Makoto Onuki
fe61f358ab Moved fromUtf8 from TestUtils to Utility.
And cleaned up SimpleIcsWriter.toString().

Change-Id: I383d91256c48be5263c695c8e8dd151d0e95d0a6
2010-03-24 12:07:32 -07:00
Marc Blank
e5be03d497 Move calendar observer code into background thread
* Calendar observer code does database access (sometimes quite a
  lot), so it shouldn't be run in the UI thread

Change-Id: Ib6ec5ac3105df6d3fc45004dc2b09be4e33a11ac
2010-03-23 11:57:08 -07:00
Makoto Onuki
95492af7a1 Merge "Show a calendar invitation icon on message list." 2010-03-23 10:50:37 -07:00
Makoto Onuki
79b006a08b Merge "Fix failing unit tests." 2010-03-22 15:56:10 -07:00
Makoto Onuki
0fdcac8028 Fix failing unit tests.
Bug 2534698
Bug 2534665

Change-Id: If07fc7113b517059bee937d019d464e9c1bc600f
2010-03-22 15:01:33 -07:00
Makoto Onuki
20c067c67c Show a calendar invitation icon on message list.
Bug 2522928

Change-Id: Ib29c7ee187cb0d864849b83693906b0a3b490734
2010-03-22 13:46:35 -07:00
Marc Blank
d5822018fb 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
2010-03-22 11:28:40 -07:00
Marc Blank
a0b4907ca5 Fix race condition that results in incomplete accounts
* Remove some very old code that updated the Account in the database
  when finishing an EAS FolderSync.  The old code saved away the entire
  Account structure using getContentValues(), which has long been recognized
  as dangerous, since the data being saved might be stale.
* In this case, we were clearing the INCOMPLETE flag in another thread, but
  FolderSync was saving away the old value (with INCOMPLETE set) along with
  all of the other columns.
* Ironically, the old code is entirely obsolete, so the solution is to
  simply remove the update call.

Bug: 2501574
Change-Id: I9eccbde40e05c83ec5f0ab1d3387289286acc5f3
2010-03-20 22:07:55 -07:00