Commit Graph

802 Commits

Author SHA1 Message Date
Makoto Onuki
ec82f9d7c0 email unbundling: get rid of the write access to the CursorAdapter.mDataValid.
MessageListAdapter.doRequery() is supporsed to do the same thing as CursorAdapter.onContentChanged() does.  So the entire method body can be replaced with super.onContentChanged().
2009-12-21 15:30:42 -08:00
Marc Blank
320a065b6b am 719610ab: am 42e5dca4: Add sanity checks in SyncManager and EasSyncService
Merge commit '719610ab8faee6a0c0ed4ff748cd1eeec3459fa6'

* commit '719610ab8faee6a0c0ed4ff748cd1eeec3459fa6':
  Add sanity checks in SyncManager and EasSyncService
2009-12-18 16:50:58 -08:00
Makoto Onuki
03e9e2d886 Fix typo 2009-12-18 16:36:44 -08:00
Marc Blank
42e5dca4ef Add sanity checks in SyncManager and EasSyncService
* Prevent possible NPE's

Change-Id: I2b3c747609c6a87ec6060fd59006f2912dfcc591
2009-12-18 13:54:53 -08:00
Makoto Onuki
425fd30a9c Email unbundling: Use accessor for CursorAdapter.mCursor and ListActivity.getListView().
Also added a todo for ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS.
2009-12-18 13:26:04 -08:00
Android (Google) Code Review
99bfd7e9b7 Merge change Ibf071fa6
* changes:
  Unbundling email: Make Base64 hidden API free.
2009-12-17 10:25:05 -08:00
Makoto Onuki
bf071fa625 Unbundling email: Make Base64 hidden API free.
Seems like it's the simplest way to make it.
- Base64 no longer implements BinaryEncoder/Decoder.  Email app doesn't use them.
- Copied Decoder/EncoderException.  Email app doesn't catch them either.
2009-12-16 16:59:00 -08:00
Makoto Onuki
22a4e0ddbf Unbundling email: Stub out apache logging. (See b/2226160)
Let me know if you don't like the package name.
2009-12-16 16:44:10 -08:00
Android (Google) Code Review
ec3daeedb3 Merge change I783790b6 into eclair-mr2
* changes:
  Check null pointer in MessageList
2009-12-16 00:03:03 -08:00
satok
9151d86e68 Check null pointer in MessageList
BUG: 2299971
2009-12-16 16:26:20 +09:00
Marc Blank
4a7a50f6a6 Fix potential NPE in earlier CL
* Noted this problem in reviewing a newer CL
* Fix is to add a check in setupService

Change-Id: Ia4d71365f8036aac8bf531b835b184dabfbc06fa
2009-12-14 17:17:30 -08:00
Android (Google) Code Review
d2481f95f2 Merge change I768138b6 into eclair-mr2
* changes:
  Fix delay sending stuck mail after tapping "Send outgoing mail"
2009-12-11 15:49:28 -08:00
Android (Google) Code Review
4848aa2a1f Merge change I9a3d501a into eclair-mr2
* changes:
  Run MailboxAlarmReceiver's code in a background thread
2009-12-11 13:06:44 -08:00
Marc Blank
079589641a Run MailboxAlarmReceiver's code in a background thread
* Fixes 2313077
* Broadcast receivers are run in the UI thread, so we must ensure that
  any long-running code is executed in a background thread

Change-Id: I9a3d501a308445a84a1baa99fc6abb9feb56ff2d
2009-12-11 13:05:48 -08:00
Marc Blank
caf5644360 Fix delay sending stuck mail after tapping "Send outgoing mail"
* Fixes #2317429
* When "Send outgoing messages" is tapped in Outbox MessageList view,
  we clear the error state for all "stuck" messages
* We didn't, however, clear the error state of the Mailbox, which doesn't
  clear itself until the end of a pingLoop, which can be up to 30 minutes
* The fix is in two parts:
  * We clear the error state of the Outbox when a sync is requested by
    the UI
  * We don't set the error state of the mailbox for non-auth errors when
    sending, because we don't want to block OTHER messages from getting sent.

Change-Id: I768138b6f31eb696811aa94f621b6fa758ec1a5e
2009-12-11 10:07:17 -08:00
Android (Google) Code Review
9b83870a09 Merge change I3b505448 into eclair-mr2
* changes:
  Use correct EAS protocol version in Outbox (fixes #2319892)
2009-12-11 09:28:36 -08:00
Android (Google) Code Review
e312c12b74 Merge change I356b8bfa into eclair-mr2
* changes:
  Deal with mismatch between our accounts and AccountManager accounts
2009-12-11 09:05:16 -08:00
Marc Blank
423680653a Deal with mismatch between our accounts and AccountManager accounts
* Addresses #2226426
* Recognize the case in which there is no EmailProvider Account corresponding
  to an AccountManager account (the case being addressed is that of the
  EmailProvider database being deleted due to corruption
* In this case, delete the AccountManager account so that the two are in
  sync
* Refactor and add unit test for account reconciliation

Change-Id: I356b8bfaa0846f85223cc15994b750df207a63ea
2009-12-11 09:04:26 -08:00
Marc Blank
ec2d0e41b7 Use correct EAS protocol version in Outbox (fixes #2319892)
* We inadvertently failed to set the EAS version in EasOutboxService,
  so the default of 2.5 is used
* This works, but SmartReply/SmartForward were enhanced in 12.0 and we
  aren't taking advantage of those changes
* The fix is to set the version using common code

Change-Id: I3b505448003f340681deeb8fb22e61e9dd8d10a0
2009-12-10 14:11:23 -08:00
Android (Google) Code Review
3c1334ae1f Merge change I915b13a6 into eclair-mr2
* changes:
  Fix MessageListUnitTests
2009-12-09 17:44:48 -08:00
Fred Quintana
052eefe406 changed to use the new EntityIterator interface 2009-12-09 10:30:58 -08:00
Android (Google) Code Review
7a4b1c72f6 Merge change I146f63ab into eclair-mr2
* changes:
  Don't delete referenced messages from the Exchange server
2009-12-07 21:31:42 -08:00
Marc Blank
c29e435eb3 Don't delete referenced messages from the Exchange server
* Addresses #2287439 incompletely
* The most likely reason for a reply/forward to get stuck in the Outbox
  is that the referenced message has been deleted from the client, with
  the deletion occuring BEFORE the message gets sent (currently, the two
  are completely independent)
* This change causes deletes NOT to be sent to the server if the message
  to be deleted is referenced by an outgoing message

Change-Id: I146f63ab345c07e684790e1d7d1fc08870468bbf
2009-12-07 21:30:59 -08:00
Marc Blank
0e1595c177 Handle unexpected deletion of EmailProvider database
* Addresses #2226426
* If the user deletes Email data, or if data corruption causes
  EmailProvider.db to be deleted, we will be in an inconsistent
  state with any existing Exchange accounts, since the AccountManager
  will still know about them, contacts (and eventually calendar) items will
  continue to exist, etc.
* Run an integrity check when the provider is created, deleting any
  orphaned EmailProvider.db or EmailProviderBody.db
* Catch SQLiteException's in the Provider and do an integrity check
  if any is caught

Change-Id: I47d523b90a6b8f71ba8e13fba4b04846b3da1b1d
2009-12-07 21:12:57 -08:00
satok
3d00377b35 Fix MessageListUnitTests
This is supperement of change,33265

* Move custom cursor to inner static class
* Change public to /* package */
* Move PROJECTION to a package
2009-12-08 13:36:32 +09:00
Android (Google) Code Review
ecfc9e92e5 Merge change Icba56688 into eclair-mr2
* changes:
  Ensure that service calls run outside the UI thread (#2235734)
2009-12-07 19:00:02 -08:00
Android (Google) Code Review
3af9f4cbf3 Merge change I9bec1244 into eclair-mr2
* changes:
  Fix #2300147 (mistakenly reporting connection error)
2009-12-07 10:19:23 -08:00
Vasu Nori
b720ed3183 revert previously submitted CL 34143.
turns out the change I submitted before is not required at all. I mistakenly
assumed sqlite wouldn't be able to handle it. but tested it with the latest
version of sqlite 3.6.20. the old style triggers work fine.
2009-12-03 18:32:58 -08:00
Marc Blank
d3da948c31 Fix #2300147 (mistakenly reporting connection error)
* When a mailbox sync is stopped intentionally (for example, if account
  settings change), we report a connection error by mistake
* Handle this case properly, reporting "success" (i.e. no error state)
* Remove obsolete comment

Change-Id: I9bec1244267cd2240c369b9b7f905948381a0f91
2009-12-03 09:58:56 -08:00
Marc Blank
3379c51569 Ensure that service calls run outside the UI thread (#2235734)
Change-Id: Icba566884f3b994c8a4ccc4b8658c40b133a3509
2009-12-02 15:01:06 -08:00
Android (Google) Code Review
98796942ea Merge change I8e09bde5 into eclair-mr2
* changes:
  change BEFORE triggers to AFTER triggers - to make them work with sqlite 3.6.20 and beyond
2009-12-02 14:42:46 -08:00
satok
4cb25d93a2 Save the state of checkboxes when orientation is changed
BUG: 2239516

* Add tests for save/restore Instance State
2009-12-01 15:41:10 +09:00
Vasu Nori
8e09bde568 change BEFORE triggers to AFTER triggers - to make them work with sqlite 3.6.20 and beyond 2009-11-25 15:38:42 -08:00
Marc Blank
6ba40085d7 am 863e6c40: Handle "send outgoing messages" properly for combined Outbox
Merge commit '863e6c40202fe804d92a263809da74ec1e904e66' into eclair-mr2

* commit '863e6c40202fe804d92a263809da74ec1e904e66':
  Handle "send outgoing messages" properly for combined Outbox
2009-11-20 09:56:03 -08:00
Marc Blank
863e6c4020 Handle "send outgoing messages" properly for combined Outbox
* The "send outgoing messages" button doesn't work in the combined
  inbox (the case wasn't handled)
* Add code to loop through accounts, calling the Controller for each
  in this case
* Fixes (partially or completely) #2274389

Change-Id: I94e984247d43f93a4d6546b8c10f6ce149b091be
2009-11-20 09:46:35 -08:00
Marc Blank
bdb28c1644 Fix #2267475 (NPE when changing incoming settings for EAS)
* When settings are changed, we loop through the sync error map,
  clearing mailboxes in the changed account that are in an error
  state.
* It's possible that there are mailboxes referenced in the map that
  no longer exist.  When trying to retrieve them from the provider,
  null is returned, but we're not checking for this case, and an
  NPE results.
* The fix is simply to check for null, and clear the error map for
  the mailboxId that references a deleted mailbox

Change-Id: I8c1c847090026fa1c53b09bbe6b12d864bce4df1
2009-11-19 09:01:06 -08:00
Android (Google) Code Review
6b93f61eea Merge change Ib35bb866 into eclair-mr2
* changes:
  Don't allow "trash" to be synced (Fixes #2116463)
2009-11-19 08:57:39 -08:00
Marc Blank
6daaf76459 Don't allow "trash" to be synced (Fixes #2116463)
Change-Id: Ib35bb86641b473194fea32b55db328a44de1c67b
2009-11-18 17:20:44 -08:00
Dan Egnor
2da2e4632d Change android.text.util.Regex to com.android.common.Patterns 2009-11-18 12:11:55 -08:00
Elliott Hughes
b1487a2030 DO NOT MERGE: Back-port 2249953 fix (for email unbundling).
Original check-in comment:
Move the org.kxml2.wap.Wbxml class into the EAS code, the only user.

Dr No approval: danfuzz
2009-11-16 13:26:18 -08:00
Marc Blank
83b67e6198 Fix #2251837; better response w/ security req'd. DO NOT MERGE
* Currently, we validate EAS accounts using a command that will
  succeed even if we do not support required security policies.
* This causes a confusing "invalid username or password" error
  when trying to sync with a validated account in the case that
  there are, in fact, required policies
* The fix is to send a sync command after validating the user name
  and password; a 403 error indicates the requirement for
  security policies.
* When we see the 403 error, we put up a message that is appropriate
  to the situation.

Change-Id: I74e132cb81f021cbb697cc9ee146405bf3ebc0ba
2009-11-11 14:40:35 -08:00
Marc Blank
29935abb1c Fix #2251837; better response when provisioning is required.
* Currently, we validate EAS accounts using a command that will
  succeed even if we do not support required security policies.
* This causes a confusing "invalid username or password" error
  when trying to sync with a validated account in the case that
  there are, in fact, required policies
* The fix is to send a sync command after validating the user name
  and password; a 403 error indicates the requirement for
  security policies.
* When we see the 403 error, we put up a message that is appropriate
  to the situation.

Change-Id: Ic40820253dca1f357297b2355ad987bc39d0775f
2009-11-10 16:29:10 -08:00
Marc Blank
151ebde5d1 Allow sync data via the chunked transfer encoding DO NOT MERGE
* Fixes #2216885
* The bug is that the sync adapters weren't set up to handle chunked
  encoding, primarily because 1) I hadn't seen any servers use it, and
  2) when we changed from HttpUrlConnection to HttpClient, support for
  chunked wasn't added (HttpUrlConnection didn't support it)
* The fix for xml data is trivial, since the Content-Length returned in
  the chunked case (-1) was being disallowed, but works perfectly well
  with HttpClient.
* The fix for attachments is less trivial, but still straightforward.
* With this change, we are no longer dependent on receiving content-length,
  which is highly desirable

Change-Id: I8d46790e41eaeee2887c8a207006c5d6786498ed
2009-11-04 18:11:24 -08:00
Marc Blank
038be0fc4d am c5ec3d0b: Merge change I2eee4ddc into eclair
Merge commit 'c5ec3d0bce03de10c4bb1bc5cf013494c6d62947' into eclair-mr2

* commit 'c5ec3d0bce03de10c4bb1bc5cf013494c6d62947':
  Improved fix for #2189704 (sync loss)
2009-11-04 14:53:35 -08:00
Android (Google) Code Review
c5ec3d0bce Merge change I2eee4ddc into eclair
* changes:
  Improved fix for #2189704 (sync loss)
2009-11-04 17:45:11 -05:00
Marc Blank
d676ab6a98 Improved fix for #2189704 (sync loss)
* The prior fix prevented looping in the case that a new sync key wasn't
  received.
* Unfortunately, the prior fix tested for the looping condition (moreAvailable)
  before it would have been set.
* The correct fix is to detect the looping condition after both the sync key
  and the moreAvailable flag are guaranteed to have been set

Change-Id: I2eee4ddc123fb2a5ce4ef3bd4e7d0614fcfbdf36
2009-11-03 18:11:02 -08:00
Marc Blank
ccd29c33ed Allow sync data to arrive via the chunked transfer encoding.
* Fixes #2216885
* The bug is that the sync adapters weren't set up to handle chunked
  encoding, primarily because 1) I hadn't seen any servers use it, and
  2) when we changed from HttpUrlConnection to HttpClient, support for
  chunked wasn't added (HttpUrlConnection didn't support it)
* The fix for xml data is trivial, since the Content-Length returned in
  the chunked case (-1) was being disallowed, but works perfectly well
  with HttpClient.
* The fix for attachments is less trivial, but still straightforward.
* With this change, we are no longer dependent on receiving content-length,
  which is highly desirable

Change-Id: Ie3bd6af0cf68f3afa190711d96b1dbd2e6341f79
2009-11-01 13:48:31 -08:00
Marc Blank
e7965e975f am 1e1d7cb1: Merge change Ie2804ddc into eclair
Merge commit '1e1d7cb189e7ea7164d1335539d68d3d3ca8c0e5' into eclair-mr2

* commit '1e1d7cb189e7ea7164d1335539d68d3d3ca8c0e5':
  Fix #2225869 (Regression in attachment loading / Exchange 2003)
2009-10-30 14:33:58 -07:00
Android (Google) Code Review
1e1d7cb189 Merge change Ie2804ddc into eclair
* changes:
  Fix #2225869 (Regression in attachment loading / Exchange 2003)
2009-10-30 17:26:46 -04:00
Android (Google) Code Review
68942b93a4 Merge change I9733dc5d into eclair
* changes:
  Fix folder deletion; support folder rename (#2118439) DO NOT MERGE
2009-10-30 13:54:55 -04:00