Commit Graph

2186 Commits

Author SHA1 Message Date
Marc Blank
12b398fac3 Send sync start/finish callbacks in pairs
Bug: 3143544
Change-Id: Ifb8c3c4c12e32df6a7d058446a0279c26048e0f3
2010-11-03 11:18:07 -07:00
Andy Stadler
ba4e72a947 Cleanup various IMAP/POP manual account setup defaults
These defaults affect manual setup only.  There should be no changes
observed in automatic setup, and no changes observed in EAS setup.

* user $email instead of $user as default login
* guess "imap." or "pop3." for server name
* propagate the incoming server name to the outgoing server name, and
  replace "imap.", "pop3." or "pop." with "smtp."

Also, fixed a couple of leftover places where we were trimming
passwords (and should not be, since some people insist on having
spaces in their passwords.)

Bug: 2978634
Change-Id: I9b0e345aa9550b5e1cc29aaa22109f03da61af20
2010-11-03 09:31:45 -07:00
Makoto Onuki
7126e5ae53 Fix & clean up intent handling
- Make sure an account shortcut really opens the account by
  adding the FLAG_ACTIVITY_CLEAR_TOP flag to shortcuts

  * Shortcuts have to be re-created for this fix to take effect.

- Remove Welcome.createOpenCombinedInbox/OutboxIntent, which don't work
  with the new combined view.

  * createOpenCombinedInboxIntent() is not used already
  * createOpenCombinedOutboxIntent() is used, but is not final UI, so
    removing it is okay.

- Fix MessageListXL.actionOpenMailbox -- now it really uses the passed
  mailbox ID.

Bug 3144066

Change-Id: I2ee3f84c62a135351c10266c7ca6d5178c3a0ca2
2010-11-02 18:18:43 -07:00
Andrew Stadler
c50f912676 Inhibit "send" when user is a monkey.
While monkey is active, any clicks on "send" will be mapped to "save".
Drafts will pile up, but nothing will get out.

Bug: 2799956
Change-Id: I300d50001b43c8b61062143f9a0ac914aa2deaca
2010-11-02 16:14:19 -07:00
Andrew Stadler
ba0b1bbc8d Implement text zoom for Message View
* Add preference for default text size
* Move saveSettings logic into onPreferenceChange handler
* Per user tests, default setting is large (not "normal") for XL devices.
* Use setting in MessageView's WebView

TODO: Investigate zooming header (to/from/subject/etc) as well.

Bug: 2282390
Change-Id: If32ed3626244b046941a461f974b3dbdb535f592
2010-11-02 14:58:24 -07:00
Marc Blank
278cb8e3d5 Merge "Support EAS in providers.xml files" 2010-11-01 21:14:46 -07:00
Andrew Stadler
cd09545b87 Provide runtime switch for GL acceleration
* new checkbox in debug fragment
* saved value in prefs so it's sticky
* each Activity calls a helper to enable/disable per that flag

Change-Id: I1af1ae9f401bc746cc97da00dfb0e06407b79d46
2010-11-01 16:16:27 -07:00
Makoto Onuki
da0d12ca36 Merge "Add null check to investigate an NPE in restoreMessageWithId." 2010-11-01 15:40:26 -07:00
Makoto Onuki
d281726706 Add null check to investigate an NPE in restoreMessageWithId.
We're getting an NPE in restoreMessageWithId(EmailContent.java:670)
called from MessageFileViewFragment.openMessageSync().

However, there're only two things that can be null in this line,
context and context.getContentResolver(), and either one really
can't be null.  Add explicit null checks to investigate what's going
on.

Bug 3134403

Change-Id: I463b039b6afeda32729f7e6a93edfdb9abf12093
2010-11-01 15:29:11 -07:00
Marc Blank
26e01b4ad2 Merge "Delay appearance of "stop" button when loading attachments" 2010-11-01 14:02:01 -07:00
Marc Blank
fdc41d4ffc Delay appearance of "stop" button when loading attachments
Bug: 3082804
Change-Id: Ib8b0fcec36a7303b2094bd0e49645d11aa2ff2db
2010-11-01 13:48:53 -07:00
Makoto Onuki
bbe25adfc8 Fix crashes related to readParcelable
We need to pass the actual class loader.  Passing null makes it use
the boot class loader, which can't find our classes.

Bug 3073304

Change-Id: I1c72c1d352cfc0a730aba1d83eb048a8cfa95b67
2010-11-01 13:47:53 -07:00
Makoto Onuki
730cc6724a Add "Combined view".
- Don't show combined mailboxes with regular mailboxes in the mailbox list.
- Add "Combined view" to the account selector instead.
- "Combined view" has all the combined mailboxes and accounts.
- Renambed these combined boxes.  (e.g. "Combined inbox" -> "Inbox")
- Regular account view still has "Starred" mailbox, but it's actually
  "combined" and not per-account.
- Re-order special mailboxes per latest wireframe.

Bug 3138004

Change-Id: I4c5860c6774b10c55ba0ca599373e51105432cf8
2010-11-01 11:51:51 -07:00
Brad Fitzpatrick
f0ce3ea911 Merge "SharedPreferences commit -> apply" 2010-11-01 10:32:09 -07:00
Brad Fitzpatrick
bd29c30903 SharedPreferences commit -> apply
Change-Id: Icdca00268a8b5ea274c91366867172ee7e3841d4
2010-11-01 08:51:26 -07:00
Marc Blank
4afdd19e20 Support EAS in providers.xml files
Bug: 2962123

Change-Id: I661c52afcf36e337e29bb10fd878196a3b0147ae
2010-10-29 19:03:44 -07:00
Marc Blank
a7fbf44511 Merge "Harden AttachmentDownloadService" 2010-10-29 16:29:13 -07:00
Andrew Stadler
34e6205d44 Simplify setupSyncReportsLocked
* Remove three unneeded DB lookups
* Eliminate race condition that could cause NPE
* Remove protocol field from report, it wasn't needed (we already
  set the sync interval to -1 which has the same effect.)

Note, the problems were introduced unintentionally, due to the merged
result of three different CL's:
 I168b3db49bf422b33d05f25cfff1c7be15150c2b
 I74a3dae21d9ec16f9903bdf2a1c28092ae89cc50
 I53e935f8bf08e0bda6e2cd483229a6377ed39d74

Bug: 3139451
Change-Id: Iadbed267f88808aeace0a2f011e4acf79074af70
2010-10-29 11:38:28 -07:00
Marc Blank
b961c78ff4 Harden AttachmentDownloadService
* It's possible that endDownload will be called for a request
  that has been dequeued.
* Harden endDownload against this eventuality, so that we clean
  up properly without throwing exceptions

Bug: 3142618
Change-Id: If61136ed1ea972248fc5f9388beaaf84754f9931
2010-10-28 17:21:28 -07:00
Marc Blank
4f1480369c Ensure that finishBroadcast is called in broadcastCallbacks
* An unexpected (runtime) exception during a callback left the
  broadcast unfinished, leading to a fatal exception
* Ensure that we always call finishBroadcast()
* Catch RuntimeException in a broadcast call, so that other calls
  can be executed
* Addresses one of two issues in the referenced bug

Bug: 3142618
Change-Id: I77166bf927560681a2b189906cd687a6e3585223
2010-10-28 17:00:35 -07:00
Marc Blank
affe44f14c Merge "Revert "Fix strict mode violation in maybeStartExchangeServiceThread"" 2010-10-27 17:14:52 -07:00
Marc Blank
f74e2578aa Merge "Revert "Correct strict-mode fix CL"" 2010-10-27 17:14:40 -07:00
Marc Blank
13fe88f38d Revert "Fix strict mode violation in maybeStartExchangeServiceThread"
This reverts commit 0e1ffb033a.
2010-10-27 17:13:53 -07:00
Marc Blank
dac9c15266 Revert "Correct strict-mode fix CL"
This reverts commit 87a7f84580.
2010-10-27 17:12:49 -07:00
Andrew Stadler
4f71ade96e Remove BOOT_COMPLETED log.
Change-Id: I3eb06076ad61dab0f38e32e736e7dbbcf8dde065
2010-10-27 16:19:55 -07:00
Marc Blank
87a7f84580 Correct strict-mode fix CL
Change-Id: I233b77ec02d0b9519b4dba57458b1b5cf9a97561
2010-10-27 09:32:59 -07:00
Marc Blank
45b15734d8 Merge "Delete secured accounts if device admin is disabled" 2010-10-27 09:03:39 -07:00
Marc Blank
02d59d2194 Delete secured accounts if device admin is disabled
* Update unit test

Bug: 2817683
Change-Id: Ia7117c34e7bbba13ac4f2ff375d19b3ef94ef49c
2010-10-27 09:03:21 -07:00
Marc Blank
0e1ffb033a Fix strict mode violation in maybeStartExchangeServiceThread
Bug: 3133688
Change-Id: I94d0b6269c6ebffa54f4a0b29689004feccb01d6
2010-10-27 09:01:50 -07:00
Marc Blank
53e9f81822 Merge "Only callback with sync error if sync was a service request" 2010-10-27 09:00:16 -07:00
Marc Blank
eed42e83ab Cleanup for dump() in AttachmentDownloadService
Change-Id: Id875d3278953ecb3a98ab8b1d290f3883e974c4f
2010-10-27 08:59:13 -07:00
Marc Blank
4a66884b74 Merge "Use notifications for login failures" 2010-10-27 08:57:27 -07:00
Marc Blank
d3e4f3ca7e Use notifications for login failures
* For now, clicking on the notification takes the user to the
  Welcome activity, as we don't have final flows for the new
  account setup UI
* Need comment on strings; the problem is that notification
  text must be rather short if we're to use the standard
  notification display.  It looks like newer UI will allow
  3 lines instead of 2, however.
* Tested w/ IMAP, POP3, EAS, and SMTP

Bug: 2322253
Change-Id: I7ed6fa5599179870cbcdb14af062e956eff37ec5
2010-10-27 08:56:37 -07:00
Dmitri Plotnikov
b07a6fcf33 Merge "Disable picker/shortcuts for Exchange GAL" 2010-10-26 16:47:32 -07:00
Makoto Onuki
ffd258d873 Fix the class name in the log.
Change-Id: Ie672f2e65b28dc742cce561d13aa3016d8bbb1f1
2010-10-26 13:45:52 -07:00
Marc Blank
ad5c2ac04b Only callback with sync error if sync was a service request
* EasSyncService was using the callback for all syncs, including
  those running in the background.  We really only want to report
  back when syncs initiated by Controller fail...

Bug: 2239661
Change-Id: I7c4aceb74fe94ca38f5bdbbabe5dda62ccac60ec
2010-10-26 13:11:12 -07:00
Dmitri Plotnikov
e9cea32218 Disable picker/shortcuts for Exchange GAL
Bug: 3130733

Change-Id: Ib2f324fde3471b76e95ee98aad518fc38c27b9fb
2010-10-25 15:24:56 -07:00
Makoto Onuki
5b072f9129 Merge "Don't use sendMailCallback() -- don't track outbox status" 2010-10-25 13:19:37 -07:00
Makoto Onuki
965e9953b6 Merge "Fix NoSuchMethodError in test" 2010-10-25 13:14:30 -07:00
Makoto Onuki
4c49d7a302 Merge "Fix reply/forward on EAS" 2010-10-25 13:14:18 -07:00
Marc Blank
023285796b Merge "Add dump of AttachmentDownloadService" 2010-10-25 12:49:36 -07:00
Marc Blank
da0bdb7cec Don't upsync empty contact tags
* EAS 12.0/12.1 don't mind these, but EAS 2.5 objects in some cases
  (title and prefix, certainly)  and the upsync fails
* The error case occurs because the ContentValues provided by
  ContactsProvider actually has a value; the value, however, is an
  empty string
* Prevent this by checking for empty values before serializing

Bug: 2607778
Change-Id: I853ce711024a414f53861720000cc87a7349d660
2010-10-25 12:46:57 -07:00
Marc Blank
a162668f23 Add dump of AttachmentDownloadService
* Will be helpful for debugging our new background service

Change-Id: Ia865c7c6cb418bd1a1f3d593421b98664c041e07
2010-10-22 16:57:05 -07:00
Makoto Onuki
0e00160074 Fix NoSuchMethodError in test
I should have been used the one without default in the main code,
which uses the other one (with a default), so both can safely be used
in tests.

Bug 3107191

Change-Id: I2011d96f6824a1a6e99e81f5c8e60c966a444d92
2010-10-22 16:16:53 -07:00
Makoto Onuki
be1aa37dc5 Don't use sendMailCallback() -- don't track outbox status
There're differences between how SMTP and EAS use this callback.
We should eventually unify the behavior, but till then let's not
use sendMailCallback().

Bug 3116377

Change-Id: Ic5ecf16251c11ab2bd2e16e29bd417f1ece67f14
2010-10-22 15:45:51 -07:00
Makoto Onuki
a76c9cdcc7 Fix reply/forward on EAS
When removing the original, need to clear FLAG_TYPE_REPLY and FLAG_TYPE_FORWARD
flags too.

Bug 3125167

Change-Id: I64be98bc10b5e1a0b9242c1c528ed96bb0a24fc1
2010-10-22 14:43:21 -07:00
Jean-Baptiste Queru
9a9c725174 Merge a059c4a1 from gingerbread-plus-aosp
Change-Id: I955120aff44d69bcd6fde165ac7ac974acbd3c78
2010-10-22 05:55:38 -07:00
Marc Blank
2a08ef0d28 Don't allow MailService to schedule EAS accounts
Bug: 3120208
Change-Id: I53e935f8bf08e0bda6e2cd483229a6377ed39d74
2010-10-21 16:49:41 -07:00
Marc Blank
4a546f5f6e DO NOT MERGE: Backport AttachmentProvider security fix
* Apps trying to open attachments using AttachmentProvider were
  seeing SecurityExceptions due to the fact that internal calls
  from AttachmentProvider to EmailProvider didn't have their
  calling identity saved/restored.
* Updated provider calls so that these calls use the Email
  process' identity.
* Backport of Ifb71ad834530c6232728e1aad31439991f8ed379, fixing
  2908737

Bug: 3121146
Change-Id: Ifa3a0ca8d3e34733c937d7f8c60f068984e1f4f2
2010-10-21 15:39:36 -07:00
Marc Blank
ca065c3927 Merge "Respect the RESPONSE_REQUESTED tag in meeting invite mail" 2010-10-21 08:14:44 -07:00
Makoto Onuki
a44c0349fa Merge "Don't move drafts to trash" 2010-10-20 17:37:42 -07:00
Makoto Onuki
6a2265eff2 Add checkbox to include original text or not.
Added the "Include text" checkbox according to the latest mock.

Before:
- We removed original message when the user pressed X.

Now:
- We save the original message all the way till the draft is sent.
- The "Include text" check state is saved in the db.  (to Message.mFlags)

Bug 3072414

Change-Id: Ie7bcca23bb6a02d676700027b0b6cb94b6627236
2010-10-20 14:21:17 -07:00
Marc Blank
8d70372e0a Merge "Don't duplicate attachments when saving drafts" 2010-10-20 13:20:40 -07:00
Marc Blank
e14aa7dacb Merge "Add account name to temporary sync error UI to help debugging" 2010-10-20 13:05:05 -07:00
Marc Blank
3bdba62f58 Don't duplicate attachments when saving drafts
Bug: 3070196
Change-Id: Ic9dffe57cdc81615e07b1c593fc71085e1281718
2010-10-20 13:03:33 -07:00
Marc Blank
deb51f824e Add account name to temporary sync error UI to help debugging
* At this point, there are a lot of toasts shown that relate to
  sync failures (e.g. "Unable to connect to server").  To help
  find where they're coming from, add the display name of the
  account
* UX folks: Please consider what this UI should be

Change-Id: Id9b76cd22178727bedaf67ad0b7450edff99a791
2010-10-19 15:45:03 -07:00
Marc Blank
a8bb34fd62 Respect the RESPONSE_REQUESTED tag in meeting invite mail
Bug: 2639037
Change-Id: I4bd73f23ba270fa0ead72971b5a79d9db678a8dd
2010-10-19 14:23:54 -07:00
Makoto Onuki
77aabd9519 Don't move drafts to trash
Now deleted drafts are really deleted, rather than getting moved to trash.

Also rewrote the test to avoid creating AsyncTasks on the test thread.
In this case it seems to be running fine, but I've had problems doing this
before.

Bug 3099179

Change-Id: Ice5298bf94312ce764d90aa35c5a6c5262ec5b42
2010-10-19 13:54:05 -07:00
Marc Blank
eb49659423 Prevent MailService from spamming AccountManager during reconcile
* When any Account is modified, MailService gets a content notification and
  runs reconciliation in an AsyncTask.  Reconciliation ends up calling the
  AccountManager, which also runs asynchronously.  The net effect is that,
  especially during unit tests, where we create/destroy accounts rapidly,
  these calls can "back up", ending in a situation in which the worker pool
  for AsyncTask is filled, with a resulting RejectedExecutionException
* We fix this by preventing more than one request for reconciliation to
  be queued at a time
* Added a unit test that thrashes the notification handler

Bug: 2937628
Change-Id: Iaf25806efb46831f31704604360df091752d9525
2010-10-18 14:07:47 -07:00
Makoto Onuki
7fdd88e37c Merge "Put the dest mailbox name in the "message moved" toast" 2010-10-14 15:36:37 -07:00
Makoto Onuki
ee7205d100 Put the dest mailbox name in the "message moved" toast
Also removed obsolete todo

Bug 3075984

Change-Id: I10ce9df29c4913c328d2a962151d4a9f2e6e1408
2010-10-14 15:14:46 -07:00
Makoto Onuki
b0ffb3e39a Merge "Don't use negative IDs with ListView" 2010-10-14 14:45:23 -07:00
Makoto Onuki
9b5001a34c Don't use negative IDs with ListView
ListView uses the _id column for some operations, including
onSave/RestoreInstanceState, and if the column contains negative values
they don't work as expected.  The same assumption seems to be in other places
as well, so let's just avoid using negative IDs.

With this CL we now use two different IDs, one for ListView, which will
never be negative, and the other for us, the actual mailbox ID.

Bug 3049315

Change-Id: I263b4895212b5f8bb80c98acaf5c4eccd0bfef55
2010-10-14 14:42:46 -07:00
Makoto Onuki
a5fcefd179 Merge "Fix potential crash in MessageViewFragment.openMessageSync" 2010-10-14 10:55:45 -07:00
Andy Stadler
214c6c6c81 Fix remote wipe with mobile sync server
* It appears as if our running multiple sync threads can confuse the
  mobile sync server during a remote wipe (the server expects the next
  client response to be an acknowledgment, whereas it might well be
  a command or response from a different thread)
* To avoid this, we first put the account on security hold and then
  shut down all other sync threads for the account
* After this, we send the acknowledgment and the remote wipe proceeds
  normally.
* NOTE: It's possible that, due to the vagaries of multithreaded
  operation, one of the other syncing threads could still send a non-
  acknowledgment response to the server before our provisioning thread
  gets a chance to send its acknowledgment.  However, since the other
  syncing threads will terminate (and not restart, because of the hold),
  the provision/remote wipe/ack sequence will work on the subsequent
  attempt

Bug: 2844888
Backport From: Ib4ffbbc67b681e69176b6c1d5515fa80c7d1e121

Change-Id: Ie9e944bd39f331c2ddc0f0ba303a3d5684f6f033
2010-10-13 15:39:27 -07:00
Andy Stadler
efcde27bf7 Use original all-day flag when upsyncing exceptions DO NOT MERGE
Bug: 3087410
Backport of: I4bed0039758e98d4b85054876f192605eb00ee82

Change-Id: Ibc875d58c2f6c5317ce8e4fee97b96c2fd6b2ecf
2010-10-13 15:05:38 -07:00
Andy Stadler
9c2baaabd2 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
2010-10-13 15:02:38 -07:00
Marc Blank
9ce8f4d2a3 Use original all-day flag when upsyncing exceptions
Bug: 3087410
Change-Id: I4bed0039758e98d4b85054876f192605eb00ee82
2010-10-13 14:10:36 -07:00
Makoto Onuki
09eb977c06 Fix potential crash in MessageViewFragment.openMessageSync
The problem is that ths method is called in a worker thread, so
there's nothing to prevent it from running just after/at the same
time as clearContent() (which sets -1 to mMessageIdToOpen).
If it does, it passes -1 to restoreMessageWithId() and crashes.

Also removed a half-obsolete comment which is a bit too obvious for its length.

Bug 3077387

Change-Id: I736d696046e6d8964a16c80515544c582aca3943
2010-10-12 16:38:40 -07:00
Makoto Onuki
9c293eb65a Show "No messages" when there's no items on message list
Show this when there's no messages, and no "Load more messages" footer.
i.e. Only Outbox, Drafts, and exchange mailboxes can show "No messages".

Also removed an obsolete comment.

Bug 2363624

Change-Id: If483d33cfacb186d0fe54b4f4382333a332be84c
2010-10-12 10:36:17 -07:00
Marc Blank
92f30bedf2 Merge "Fix remote wipe with mobile sync server" 2010-10-11 11:15:12 -07:00
Marc Blank
3afa93c054 Fix remote wipe with mobile sync server
* It appears as if our running multiple sync threads can confuse the
  mobile sync server during a remote wipe (the server expects the next
  client response to be an acknowledgment, whereas it might well be
  a command or response from a different thread)
* To avoid this, we first put the account on security hold and then
  shut down all other sync threads for the account
* After this, we send the acknowledgment and the remote wipe proceeds
  normally.
* NOTE: It's possible that, due to the vagaries of multithreaded
  operation, one of the other syncing threads could still send a non-
  acknowledgment response to the server before our provisioning thread
  gets a chance to send its acknowledgment.  However, since the other
  syncing threads will terminate (and not restart, because of the hold),
  the provision/remote wipe/ack sequence will work on the subsequent
  attempt

Bug: 2844888
Change-Id: Ib4ffbbc67b681e69176b6c1d5515fa80c7d1e121
2010-10-10 16:40:12 -07:00
Daisuke Miyakawa
43f2321d10 Modify code style.
Change-Id: I40eeb738ca2dcc7f21ddbc603b03debde5ac27d3
2010-10-10 15:17:52 -07:00
Daisuke Miyakawa
c8af3175df Merge "Use AccountAuthenticatorResponse properly." 2010-10-10 15:12:48 -07:00
Marc Blank
a0692b16e1 Fix upsync of exceptions in EAS 2.5 (Exchange 2003)
* 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
Change-Id: I163f156675f65c494a59d5233b2b6e23b3f1d6a0
2010-10-08 16:32:20 -07:00
Marc Blank
30c99e0dc3 Merge "Make sure updatePolicies is always called during provisioning" 2010-10-08 16:27:21 -07:00
Daisuke Miyakawa
9dac94975f Use AccountAuthenticatorResponse properly.
Current implementation ignores callbacks coming from
AccountManager, which should be called everytime
when this Activity finishes its job.

Bug: 3069222
Change-Id: Iea03cf94bdfe8da184e415bf7e759ddeb46ecdd9
2010-10-08 16:16:43 -07:00
Makoto Onuki
6993130a7c Auto-refresh mailbox list
Refresh mailbox list when changing the account, if it's been more than
5 minutes since the last refresh.

Change-Id: I5b1400bb881197e117b8863f850c368c2d1ccbc6
2010-10-08 15:29:38 -07:00
Makoto Onuki
241f18f237 Fix when to clear notification
I was assuming MailService.resetNewMessageCount cleared notification,
but it didn't.

Doing it in Activity.onResume is clearly wrong because we don't always
have an account ID there.  If we don't, we're passing -1, which clears
all notifications for all accounts.

We're now calling resetNewMessageCount() in MessageListFragment,
when we refresh the list, so we can remove it from onResume() for the Phone
UI as well.

Bug 3074056

Change-Id: Ib0bb2fbb0309a0784fb3a525927102f423e930df
2010-10-08 13:51:23 -07:00
Marc Blank
0215d739d5 Make sure updatePolicies is always called during provisioning
Bug: 3055269
Change-Id: Ia266de108847923c01b5e0838a249aa9ee8f2d85
2010-10-08 12:56:14 -07:00
Marc Blank
f8630bfb82 Merge "Fix issue w/ duplicated messages after move (to trash/folder)" 2010-10-07 17:12:50 -07:00
Marc Blank
5151ca5341 Merge "Handle "Sync Email" properly from AccountSettingsFragment" 2010-10-07 16:05:26 -07:00
Marc Blank
47087049f0 Fix issue w/ duplicated messages after move (to trash/folder)
Bug: 2994014
Change-Id: Ia223447f799ebd6490da2dc5caf1d1270b446a44
2010-10-07 16:04:17 -07:00
Makoto Onuki
4b0d4f9f4d Fix "+ -1 more" in notification.
Need to reset lastUnseenMessageCount with unseenMessageCount.

Bug 3069406

Change-Id: I867dfaeb2d39cfd3511f956d60d2187031291780
2010-10-07 15:14:40 -07:00
Marc Blank
cae8626fb9 Handle "Sync Email" properly from AccountSettingsFragment
Bug: 3055326
Change-Id: I7ecc7eda975f0ec03d3d81ed042842eab2c94d4e
2010-10-07 15:04:20 -07:00
Marc Blank
998e3f5eca Merge "Fix MailService unit test" 2010-10-07 14:35:15 -07:00
Marc Blank
fe6e3eae2a Fix MailService unit test
Bug: 2844726
Change-Id: I168b3db49bf422b33d05f25cfff1c7be15150c2b
2010-10-07 14:34:50 -07:00
Marc Blank
07dc502e26 am d04ef0fd: am 5c5f3a0d: Fix issue w/ race condition leading to log spam
Merge commit 'd04ef0fd19e06d6ee2afb39f571b720a28478936'

* commit 'd04ef0fd19e06d6ee2afb39f571b720a28478936':
  Fix issue w/ race condition leading to log spam
2010-10-07 12:21:37 -07:00
Makoto Onuki
60c6dc4711 Sparse message list item layout for XL
- Tested on N1 as well
- Also fixes bug 2546662 -- show both invitation & attachment icons

Change-Id: Ic2f42370be32a0beb43f9018cefdce86028e8189
2010-10-07 10:17:58 -07:00
Makoto Onuki
de936b83ac Fix race condition regarding message reload.
The method to start ReloadMessageTask() when detecting content
changed events is delay-called, so need to make sure the fragment
is still in the valid state.

Bug 3069896

Change-Id: I1991d902e8044b4f8ca3ffd7d3e2e66005f1e960
2010-10-06 17:48:48 -07:00
Makoto Onuki
bb5fd95e75 Merge "Introduce tabs to view message, attachment and invite separately" 2010-10-06 11:55:41 -07:00
Makoto Onuki
f54e08eaee Introduce tabs to view message, attachment and invite separately
Added "tabs" to the message view according to the latset mock.
This removes the necessity of putting a WebView inside a ScrollView,
which caused the infinitely-growing email bug (issue 6882).

Right now the tabs are actually just Buttons.  Complete visual refresh
should follow it.

http://code.google.com/p/android/issues/detail?id=6882
Bug 2349275

Change-Id: I897a3a32e0dd7a90d637ac5ea1d47e5e65a1eabe
2010-10-05 16:53:59 -07:00
Makoto Onuki
feb8869c4f Remove unused method Utility.getIconIds()
And redirected the related tests to getIcon().

Bug 2894555

Change-Id: I1d90f01e7476ca79bddd644e123ad979d6ebe987
2010-10-05 16:15:38 -07:00
Marc Blank
5c5f3a0dbc Fix issue w/ race condition leading to log spam
Bug: 3064901
Change-Id: I115fa6878ae9b4464b3f0b9cace1f200e2e5f47c
2010-10-05 12:52:35 -07:00
Makoto Onuki
d058f8abcd Auto-refresh message view
Now MessageViewFragment detects changes made to the current message,
and update the UI.
(Although it doesn't really know if the message is really changed, or just
something else was changed in the DB.  It updates the header regardless.)

Change-Id: I35627c7aff129723b83605fc84521da907078571
2010-10-05 11:11:31 -07:00
Makoto Onuki
591e8fa0c9 Merge "Fix "move to" dialog style" 2010-10-05 11:06:00 -07:00
Makoto Onuki
7bfa32dbc5 Merge "Move reply/forward buttons to header" 2010-10-05 11:05:51 -07:00
Makoto Onuki
01b7e67f78 Move reply/forward buttons to header
Moved the buttons to the header.  All other buttons below the message view
go away, so I just hid the old buttons.

Also now we stop trying to hide these buttons when entering contextual mode,
which fixes bug 3044284: Message view buttons get disabled when closing
quick contact

Assets were temporarily copied from gmail.

Change-Id: Ib178c6221dfab02832a10d0c0441044e4969fb70
2010-10-05 11:04:10 -07:00
Makoto Onuki
573e0c5ffd Merge "Extract the throttling part from ThrottlingCursorLoader" 2010-10-05 10:26:14 -07:00
Andy Stadler
d7876681a8 Reorganize startup/shutdown code in SyncManager DO NOT MERGE
* Move all thread-related startup code into run()
* Move all thread-related shutdown code into new method shutdown()
* Add appropriate synchronization during startup/shutdown
* Add thread names to worker threads

Bug: 2790929
Bug: 2645835

Backport of: Idbd35892cea3de5fbd365102a62103b2f0bdf6c9
Backport of: Ib12a70222ac3fd9e65bec3834c0aae061858776c

Change-Id: Idfd1c9ac7fbe8ce6859b1933ab6d287e3cb0d2e9
2010-10-04 15:50:41 -07:00
Makoto Onuki
085f7eb121 Extract the throttling part from ThrottlingCursorLoader
Extracted into the Throttle class as I'll need this logic elsewhere.

Bonus: Now it has tests.

Change-Id: Ie9a5933f8e5015dda6985ba76814f1f945266178
2010-10-01 17:46:59 -07:00
Makoto Onuki
56034cab20 Fix "move to" dialog style
- Pass the correct context to the adapter to make the text visible.
- MailboxesAdapter itself now has two modes (normal mode for MailboxList,
  and "move to" mode), and use different views for them.

Change-Id: I2bd8a7d3a99d7fa3a047e653a77ec958e37e563b
2010-10-01 11:40:09 -07:00
Makoto Onuki
1a0b0092e0 Add "Clear WebView cache" button to debug preference
Change-Id: I317b57cb06b071f9574077b58998aafcb5e0dff8
2010-09-30 15:41:40 -07:00
Marc Blank
14a5d8d947 Provide better information w/ 500 error in EAS validation
* HTTP error 500 occurs with Exchange 2003 when the user tries to
  authenticate with wrong credentials; we report this as "Cannot
  connect to server", which is wrong
* Error 500 is supposed to mean "internal server error", but since
  we know that an authentication error can cause this, we now put
  up a better error message

Bug: 2933381
Change-Id: I9319a5ed6fbf4c92739f305b42b6b1cad7036a4b
2010-09-30 11:47:20 -07:00
Marc Blank
624081f373 Merge "Fix build break." 2010-09-30 11:21:22 -07:00
Marc Blank
b21db41b1f Fix build break.
Change-Id: Ica28b1e234e2c6966408efc7151ea517a18aa72f
2010-09-30 11:20:36 -07:00
Makoto Onuki
61eec98d39 Switch to static fragments
- Now we declare all fragments in the layouts.
- Added clearContent() to MessageList/MessageView to keep them calm when not
  used.  (e.g. MessageView.clearContent() will be called when closing message
  view and going back to the mailbox list+message list screen.)

- Some of the processes have moved from onStop to onPause.
- Now that we don't use the fragment transaction, the "restored fragments"
  has been removed, and the separation between selectXxx() methods and
  updateXxx() methods are gone.

Bug 3045555
Bug 3041502

Change-Id: I958897a8a38bccea1dfed7cfcd900e6dd52d2eed
2010-09-30 11:03:33 -07:00
Marc Blank
beb3a06fd7 Merge "Allow Serializer logging via isLoggable" 2010-09-30 10:39:34 -07:00
Marc Blank
05530d4c33 Allow Serializer logging via isLoggable
Change-Id: Ie6c0257a3fa854d7abc92a82b690884ce2a4cb4c
2010-09-30 10:39:01 -07:00
Makoto Onuki
4e400caab4 Merge "Switch to tablet style notification" 2010-09-29 18:35:47 -07:00
Makoto Onuki
899c5b8661 Switch to tablet style notification
- Now we show separate notification for each account
- New notification has sender photo, sender name, and subject
  of the latest email
- Added the NotificationController class, which is intended to manage
  all notifications besides "new message" eventually.

The framework doesn't seem to be 100% ready, and it's not clear how to
add the 3rd line in the expanded notification at this point.  Need to
revisit it later to verify UI details.

Change-Id: I40193ee372cb6b2b7245c1588890f238b2469699
2010-09-29 18:35:17 -07:00
Makoto Onuki
62c9df806e Two bug fixes related to preserving list scroll position
* When changing account/mailbox, reset scroll position.
Applied same change as I4b368f51 to MailboxListFragment.

Also fixed a bug introduced in the same CL.
When CursorLoader detects content changed events and reloads itself,
only onLoadFinished() gets called, and in this case we should keep the scroll
position.  This means mMailboxChanging should be cleared once data is loaded
for the next content changed reload.

Bug 3015916

* Don't try to make the selection visible when reloading the list for content
changed events.

We should make the selection visible only when account/mailbox is explicitly
selected.  We can use the same mXxxChanging flags for this.

Bug 3036317

Change-Id: I93e3653da6816f491c1e99c9ef6d6b947be4de37
2010-09-29 18:28:34 -07:00
Makoto Onuki
8818a658a1 Three pane layout
Implement basic behavior of the new layout.  Supports collapsing/expanding
message list on portrait.

TODO Collapsing the middle pane should cancel the selection mode on
     message list
TODO Implement animation
TODO On STATE_PORTRAIT_MIDDLE_EXPANDED state, right pane should be pushed out,
     rather than squished.

Change-Id: I0306516845de3a1f05a102864c3dc4aba809a49a
2010-09-29 13:38:32 -07:00
Marc Blank
cd2e98d000 Merge "Use LIMIT parameter in getFirstRowX calls" 2010-09-29 12:53:01 -07:00
Makoto Onuki
2711c16a46 Merge "Don't use QuickContactBadge.assignContactFromEmail" 2010-09-29 12:46:59 -07:00
Makoto Onuki
6740c7b5ac Merge "Don't restore list view state when changing mailbox." 2010-09-29 12:46:53 -07:00
Makoto Onuki
bc9253fb9a Merge "Rely on the fact that display name won't be empty" 2010-09-29 12:46:43 -07:00
Marc Blank
07597e547b Use LIMIT parameter in getFirstRowX calls
* Also, rename the LIMIT parameter to be consistent with naming
  conventions

Bug: 3046494

Change-Id: Iafc7f7d76f45bc7988e5d63783359082756b7ffa
2010-09-29 12:27:42 -07:00
Andy Stadler
d22651ccd1 am 060b1df0: am a9bc41f5: Show server name instead of account name
Merge commit '060b1df06954be1d72a659b0f00e30b8057484e0'

* commit '060b1df06954be1d72a659b0f00e30b8057484e0':
  Show server name instead of account name
2010-09-28 23:14:27 -07:00
Marc Blank
1d2c88738d Merge "Add Uri for Message queries that include a LIMIT" 2010-09-28 22:14:50 -07:00
Andy Stadler
a9bc41f5ec Show server name instead of account name
The format string "The server %s requires that you allow it to remotely
control some security features of your phone." was being displayed with
the account name instead of the server name.

Bug: 3011124
Change-Id: I1aadb5790297777831dd69f04ea89641240b7b87
2010-09-28 20:15:54 -07:00
Makoto Onuki
e33a317db0 Expand hit-area for checkbox and star on message list
Bug 2561779

Change-Id: I4b71d48c9440e0f3c308fbe8ff16ada04b9df54e
2010-09-28 16:56:53 -07:00
Makoto Onuki
ddfae933da Don't use QuickContactBadge.assignContactFromEmail
* assignContactFromEmail("") was causing the following exception on logcat.
"java.lang.IllegalArgumentException: URI: content://com.android.contacts/data/emails/lookup/,"

* This method is to set the contact to open when the badge is tapped,
  but we trigger quick contact by ourselves, so don't have to do call this.

Bug 3013527

Change-Id: I16e1573bd82ffe5c39d30b69361354010f508f91
2010-09-28 16:32:18 -07:00
Makoto Onuki
dc33d50a24 Don't restore list view state when changing mailbox.
Bug 3015916

Change-Id: I4b368f511a94ec83723b571d1cfca1b3d39e4d04
2010-09-28 15:23:39 -07:00
Makoto Onuki
c3b3b7a0a3 Rely on the fact that display name won't be empty
Change-Id: Ifd17daac472c1d439ddc4bd8e6811bb13a9018fa
2010-09-28 11:29:59 -07:00
Marc Blank
0efe738e05 Add Uri for Message queries that include a LIMIT
* Use a query parameter (e.g. ?limit=2); LIMIT works with any
  query

Change-Id: Idd106ab4b61aec237ac9676a201e797c4f65f15b
2010-09-28 10:58:36 -07:00
Marc Blank
f25236b61e Merge "Remove obsolete EAS logging" 2010-09-27 16:39:38 -07:00
Marc Blank
82c944ef3a Remove obsolete EAS logging
Change-Id: I549957c92aa05f98581441c1a7631f87040c5078
2010-09-27 16:38:28 -07:00
Andy Stadler
e242578a49 Make WebViews clickable DO NOT MERGE
* Makes the side-scrollable again
* Required after making them non-long-clickable

Requires companion change in WebView, to allow touch events while
clickable or long clickable (it had been requiring both)

Bug: 3036477
Change-Id: I4cae46d047f825d2aab08d254287855b187e9207
2010-09-27 15:54:37 -07:00
Andy Stadler
ac916da48e Improve handling of content-disposition DO NOT MERGE
* Check array returned by split("=")
* Add unit tests for this case
* Also add unit tests for quoting removal

Bug: 3040796
Backport from: I170f3cd483fe35186194edeb0c3142fb0e2e9b75

Change-Id: I32ccbdbc7264a95a9cd279218cae390e65e82eeb
2010-09-27 15:16:24 -07:00
Andrew Stadler
bbac024785 Merge "Improve handling of content-disposition" 2010-09-27 15:10:19 -07:00
Andrew Stadler
87fcd03a1b Improve handling of content-disposition
* Check array returned by split("=")
* Add unit tests for this case
* Also add unit tests for quoting removal

Bug: 3040796
Change-Id: I170f3cd483fe35186194edeb0c3142fb0e2e9b75
2010-09-27 15:09:35 -07:00
Andy Stadler
02a0edb60d Allow spaces in passwords DO NOT MERGE
* Separate/identical fixes for incoming, outgoing, exchange
* Unit tests
* Some protocols will fail anyway (e.g. POP3)

Bug: 2981433
Backport from: I82984e5912fc7fcb88e747815d0fe33cb36605e7

Change-Id: I49d5c13137e4f78b6fa0f9ce288c1a78ff028f88
2010-09-27 13:31:04 -07:00
Makoto Onuki
e96c09c55b Merge "Adding StopWatch class to measure elapsed time" 2010-09-27 11:53:54 -07:00
Makoto Onuki
7687f05f7b Adding StopWatch class to measure elapsed time
Change-Id: I0f38e89ffc030ba5105af50b147d783d71bd5f8f
2010-09-27 11:53:12 -07:00
Andrew Stadler
fb4333b3a5 Allow spaces in passwords
* Separate/identical fixes for incoming, outgoing, exchange
* Unit tests
* Some protocols will fail anyway (e.g. POP3)

TODO: Some sort of warning (master only - won't backport that)
Bug: 2981433

Change-Id: I82984e5912fc7fcb88e747815d0fe33cb36605e7
2010-09-27 10:04:03 -07:00
Makoto Onuki
d25d87c7ba Fix NPE with use of getFirstRowXxx
Make sure not to cast null into a primitive type.
(i.e. If null isn't expected as a return value, make sure to set a non-null
default value.)

Bug 3032143

Change-Id: I9a344d765c75a66f529ad8d99b00b2b919139f9c
2010-09-24 16:59:51 -07:00
Makoto Onuki
1f61263136 Merge "Refactor for new notification UI" 2010-09-24 16:59:25 -07:00
Marc Blank
224442906b Merge "Handle EAS type 1 folders (user-created)" 2010-09-24 16:54:57 -07:00
Makoto Onuki
08346b67b8 Refactor for new notification UI
- Move the notifiaction code into a bg thread.
  We need to access db to fetch the latest message
- Extracted ContactStatusLoader.load to synchronously load contact
  pictures.

Change-Id: I282ffb706ea8e14558bf29880a0fb952868b27e5
2010-09-24 16:22:47 -07:00
Makoto Onuki
0824439785 Workaround for ListView bug related to smoothScrollToPosition
Hopefully it'll soon be fixed in the framework, but it's blocking what
I want to do now.

Bug 3028455

Change-Id: I43ed059b7766a3bfc29166464bd449d905b207e4
2010-09-24 13:05:55 -07:00
Marc Blank
23f8d3be7d Handle EAS type 1 folders (user-created)
* If a type 1 folder has an mail folder as a parent (at any level),
  it is also a mail folder (and therefore, we should have it in our
  folder list)
* Before rejecting type 1 folders, look for parents and accept those
  that are mail folders
* Add unit test to verify logic

Bug: 2978410
Change-Id: I44cda1d1c1fd7f3976af53a1672736201cc995ff
2010-09-24 12:46:08 -07:00
Makoto Onuki
4209ea36b0 Make ThrottlingCursorLoader smarter
Now the class initially uses smaller timeout, and expand it when detecting
multiple changes in a short period.

This CL makes the UI look more responsive especially on the message list +
message view mode.  e.g. Starring on the message view will quickly be
reflected to the message list.

Bug 3024799
Bug 3027832

Change-Id: Ie2d44c3769d43e3fd0f54ee526556eb3bad5e288
2010-09-22 18:01:01 -07:00
Makoto Onuki
2dbb510657 Hide bottom buttons when message list enters selection mode
Hide the command buttons at the bottom of the message view when the message
list enters the selection mode.

Change-Id: Id825bb5183673e9def055b6480fa180beab51178
2010-09-22 18:00:21 -07:00
Makoto Onuki
c8fb75035f Implement latest selection mode behavior
On the message list,
- Longpress toggles selection.
- Tap opens message

Now it should be in line with gmail.

Change-Id: I1ce441a13fd9b41e3d7d10c2f2e4d43e580db708
2010-09-22 16:51:30 -07:00
Makoto Onuki
e069246d48 Make sure callback is still registered when calling wrappee
This caused callback methods getting run after onDestroy() problem.

Bug 2799534
Bug 3011802

Change-Id: Id505e328bbff096a9f7474c033443ff6663a5fdf
2010-09-22 15:39:02 -07:00
Makoto Onuki
58843f0dc3 Highlight selected message on message list
Also make sure the highlighted mailbox is always visible on the mailbox list.

MessageListFragment now just uses the default background color, which means
it no longer changes background color for unread messages or checked messages.
This should be re-implemented if necessary with the newer wireframe.

Change-Id: I9bfbe9f0711ea4ab56be27778b00298d3033123b
2010-09-22 14:44:23 -07:00
Marc Blank
793c6639ec am 9b5c615c: am deed4505: Merge "Increase EAS command timeout from 20 to 30 seconds" into gingerbread
Merge commit '9b5c615ceea0270878a5b89fc0a063eeb9ffdd3e'

* commit '9b5c615ceea0270878a5b89fc0a063eeb9ffdd3e':
  Increase EAS command timeout from 20 to 30 seconds
2010-09-22 14:41:29 -07:00
Andrew Stadler
0813c7051f resolved conflicts for merge of 0d9ed341 to master
Change-Id: I198f760ef1734cf4a64c875236a2352859dc1a72
2010-09-22 14:37:44 -07:00
Makoto Onuki
b4dacf2acf Don't show only special mailboxes on mailbox list
When a new account has just been set up and the app is still loading
mailboxes, keep the mailbox list empty and let ListFragment show
the progress icon, rather than showing "Combined Inbox" "All Starred" etc
without acutal inboxes, which looks like it's broken.

Change-Id: Ia3de4377b701f0033c5dc92f8b6b14651d4d8e1e
2010-09-22 14:03:06 -07:00
Marc Blank
deed4505e9 Merge "Increase EAS command timeout from 20 to 30 seconds" into gingerbread 2010-09-22 13:39:46 -07:00
Andy Stadler
ed824a07ae DO NOT MERGE Harden thumbnail creation
* Catch some errors earlier;  Log all errors.

Bug: 2905324
Backport from master: Icdf4ec881f404787a0621e606d7e611d5e50aab1

Change-Id: I817a770da2d158984476cfa2b10a5de6bc0b43f8
2010-09-22 13:24:46 -07:00
Andy Stadler
16657c9c20 Merge "Fix test failures" into gingerbread 2010-09-22 13:18:52 -07:00
Makoto Onuki
250ca15b88 Show MessageList with MessageView, rather than MailboxList
In message view mode, show MessageListFragment on the left pane.

TODO: Highlight opened message on message list
TODO: If the opened message is moved/deleted/starred/etc, update
message view
TODO: Collapsible left pane on portrait

Change-Id: I9b26f7291648da0e08bc526b79305ab65ce4d926
2010-09-22 13:13:59 -07:00
Makoto Onuki
353b75b04b Fix NPE -- check isCancelled in onPostExecute
Bug 3024665

Change-Id: I97c122a6c66a7d4245187961cb90ea874d0e305d
2010-09-22 13:12:13 -07:00
Makoto Onuki
1ef511dafd Merge "Ignore and log OOM during bitmap creation" 2010-09-22 13:10:22 -07:00
Marc Blank
65a10186a5 Increase EAS command timeout from 20 to 30 seconds
Bug: 3027271
Change-Id: Ic58fea147d179ffd18f28a8ce5d290a1b37302ce
2010-09-22 12:45:48 -07:00
Andy Stadler
6278dcdeaf Fix test failures
Methods were used by tests only and being stripped by PG.

Bug: 2894378
Change-Id: Ieb1dd0daa8bd380c66a7b1e6151c5e5b22cbe38c
2010-09-22 12:06:41 -07:00
Andy Stadler
ebba88e4f4 Merge "DO NOT MERGE disallow longpress in WebView" into gingerbread 2010-09-22 11:07:34 -07:00
Andrew Stadler
625451ed25 Harden thumbnail creation
* Catch some errors earlier;  Log all errors.

Bug: 2905324
Change-Id: Icdf4ec881f404787a0621e606d7e611d5e50aab1
2010-09-22 09:22:15 -07:00
Marc Blank
d46952e7b0 DO NOT MERGE: Test validity of port numbers in account setup
Bug: 1712475
Change-Id: Iced4875379a804b5072e4df0af25db7bf9473131
2010-09-21 17:46:15 -07:00
Makoto Onuki
d7f886c5c8 Ignore and log OOM during bitmap creation
Change-Id: I00ca40d98e425eb267b601cc9049af6ecfd2883d
2010-09-21 17:09:01 -07:00
Marc Blank
ccfc1c29c2 Merge "DO NOT MERGE: Don't disable account box if sync freq -> "Never"" into gingerbread 2010-09-21 15:54:01 -07:00
Makoto Onuki
4580c3136d Rename misnomered constant
Change-Id: I8d1024a85ad02ba7ce7ecf22f719cab34bf70307
2010-09-21 15:48:43 -07:00
Marc Blank
6f207f5df2 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
2010-09-21 15:30:57 -07:00
Marc Blank
77259fab1b DO NOT MERGE: Don't disable account box if sync freq -> "Never"
Bug: 2905667
Change-Id: Iec214b0fed093ff39dc70d5d821577bcf15f00ed
2010-09-21 15:25:27 -07:00
Andy Stadler
70880a7f29 DO NOT MERGE disallow longpress in WebView
* This gets very confused by the new text copy logic
* Downside is that copy from received message does not work at all
  (it didn't work anyway).
* Will fix in next release by redesigning MessageView layout and no
  longer wrapping in ScrollView

Bug: 2998892
Change-Id: Icd1219f3c45fd4da9259499e9c8a31ed0d3c4c30
2010-09-21 15:04:27 -07:00
Makoto Onuki
263ef7ddd4 Small change to MessageViewFragment
resetView() shouldn't kick LoadMessageTask(). (it's not what its name implies)
Added a TODO.

Change-Id: I0523696f3883a905d9732626824efda598bf10ed
2010-09-21 11:25:53 -07:00
Makoto Onuki
0e89a9a640 Merge "Use the default theme for selected mailbox." 2010-09-21 11:24:56 -07:00
Makoto Onuki
c6299fc078 Merge "DO NOT MERGE: Fix ANR in one time initializer and unify BroadccastReceivers." into gingerbread 2010-09-21 10:49:02 -07:00
Makoto Onuki
9523ecf27e DO NOT MERGE: Fix ANR in one time initializer and unify BroadccastReceivers.
- Merged all three BroadcastReceivers into one.
(Changed class name because old ones may have been disabled.)

- Use IntentService to perform the tasks in a worker thread.

Note the new receiver will never be disabled.  We always need to start
exchange.SyncManager.

Bug 2722155
Bug 2416929

Backport of I8241880fc1ee38d85dcdca7e1d46fc2f6b2d375b

Change-Id: I9835cf86846d842e6f2d23014bc0912c3b888a05
2010-09-21 10:48:17 -07:00
Makoto Onuki
b3eefca0e1 DO NOT MERGE: Fix NPE in Controller and MessagingController.
Bug 2553401
Bug 2186777
Bug 2721133
Bug 2684365
Bug 2530534

Backport of I5185d9196deab5ba3a9866e2de2a9be04a04ca03

Change-Id: I192267d7d48d377fe1fc083797cb199f8e94c0c4
2010-09-21 10:47:04 -07:00
Makoto Onuki
0be6c7c5cf Merge "DO NOT MERGE: Fix handling IOException in ImapStore" into gingerbread 2010-09-21 10:24:48 -07:00
Makoto Onuki
32517753ea Merge "DO NOT MERGE: Handle multiple IMAP SEARCH results." into gingerbread 2010-09-21 10:24:44 -07:00
Makoto Onuki
75c6a611aa Merge "DO NOT MERGE: Test for interaction between ImapStore and vendor policy." into gingerbread 2010-09-21 10:24:40 -07:00
Makoto Onuki
7fbdc44c58 Merge "DO NOT MERGE: Extract MockVendorPolicy, add standard mechanism to inject it." into gingerbread 2010-09-21 10:24:36 -07:00
Makoto Onuki
2ef9710e02 Merge "DO NOT MERGE: Implement destroy() for all ImapElement classes." into gingerbread 2010-09-21 10:24:31 -07:00
Makoto Onuki
56d04724fe Merge "DO NOT MERGE: Always destroy ImapResponses." into gingerbread 2010-09-21 10:24:28 -07:00
Makoto Onuki
8c02a81722 Merge "DO NOT MERGE: Add TODOs to ImapStore." into gingerbread 2010-09-21 10:24:24 -07:00
Makoto Onuki
415b27fbd3 Merge "DO NOT MERGE: Follow-up to the new IMAP parser." into gingerbread 2010-09-21 10:24:18 -07:00
Marc Blank
005db01c74 Merge "Restore sync window to PIM syncs" 2010-09-21 09:50:58 -07:00
Marc Blank
66bcd34f45 Use MimeUtility to parse EAS 2.5 MIME data
* Functionality is effectively unchanged, but we reuse existing
  code rather than custom code created for this purpose
* Fix bug related to setting mFlagLoaded after loading a plain
  text body

Change-Id: Iaaf647c0560827f318c8b7a00fb18a6570783c99
2010-09-21 09:23:25 -07:00
Marc Blank
685901b03b Restore sync window to PIM syncs
* The code to enforce a sync window (limit to the number of items
  synced per request) was inadvertently removed in an earlier
  CL; restore it here

Bug: 3018568
Change-Id: Ib2377b36999b92d0bcef1b159416f46016137100
2010-09-20 19:41:52 -07:00
Marc Blank
ef70c9872b Merge "DO NOT MERGE: Send intro text with SmartForward" into gingerbread 2010-09-20 19:18:58 -07:00
Marc Blank
9afbf947de DO NOT MERGE: Send intro text with SmartForward
* We need to include the intro text (--Original Message--, etc.) to
  SmartForwards, and somehow this got in a past updat
* Add unit test for forwarding
* Fix unit test for reply so that it works localized

Backport of I8d92f00d37a434840ec3eb237f3901cd5dc7ad09

Bug: 2477988
Bug: 2685784
Change-Id: I2b6654413a8eb5ca900f958f49ec9eee5161a365
2010-09-20 18:51:32 -07:00
Marc Blank
6512458784 DO NOT MERGE: Make sure signature is added to reply/forward
* Add this to processSourceMessage in the reply/forward cases
* Add unit tests for reply and forward case

Backport of I6be8383fe5f217a4bda8e669cb69f439bc8e96b6

Bug: 2734321
Change-Id: Ia59e8c4e2f9663f2a10cff066eddeff80bc06cef
2010-09-20 18:48:07 -07:00
Makoto Onuki
f255081a85 DO NOT MERGE: Fix handling IOException in ImapStore
- mConnection.destroyResponses() should be protected with
if (mConnection != null).
When we get an IOException, we close the connection and null it out in
ioExceptionHandler().  So mConnection can be null at any point after
where ioExceptionHandler() first appears.

- ioExceptionHandler should close its parent ImapFolder only if the argument
connection is mConnection.
Methods like exists() may pass an ImapConnection which is not mConnection
to ioExceptionHandler.  In which case we don't have to close the ImapFolder.

Bug 2898211

Backport of I8f9f45d91f596bb8da1a1575593e652d66deb643

Change-Id: I070458b5535540aba69ad7eee88bd2af8ad5f7b1
2010-09-20 16:45:48 -07:00
Makoto Onuki
29f0638f4d DO NOT MERGE: Handle multiple IMAP SEARCH results.
Apparently IMAP servers may return multiple SEARCH responses for a
single SEARCH command, and we need to handle all of them.

Before the IMAP rework there was 3 methods that issued the SEARCH command.
Two of them ware doing it right, but the other wasn't, which was what
I copied from, unfortunately!

In case you're wondering, originally the test for this method was done through
upper methods, e.g. getMessage().

Bug 2911647

Backport of Ia50072944d5b01c1e59541c3a966067b13910cc4

Change-Id: Iab5d3fa21e403f2e1043990112154fbb72322b02
2010-09-20 16:45:48 -07:00
Makoto Onuki
8aa79ba695 DO NOT MERGE: Test for interaction between ImapStore and vendor policy.
Backport of I092b3a0f2f40d9aa19f2f61066362099c8b3f50b

Change-Id: I492f975e66d67aae62024804a294e796f23d2aad
2010-09-20 16:45:48 -07:00
Makoto Onuki
618f1d8ac5 DO NOT MERGE: Extract MockVendorPolicy, add standard mechanism to inject it.
One thing that bothers me regarding the new ImapStore is that there is no
tests to verify if the way how getImapId() uses a vendor policy hasn't changed.
This part is hard to test with a real vendor policy, and it can easily be
overlooked even if it's broken.

This CL offers ImapStoreUnitTests a way to test the interaction between
getImapId() and a vendor policy.

Also fixed a bug in VendorPolicyLoaderTest where it assumed the test apk
package name is "com.android.email.tests", but it may actually be
"com.google.android.email.tests" now.  (Broken since the test makefile
used inherit-package.)

Backport of I8feb616ea28cb5cae5b4fba57e363771014ac599

Change-Id: I59536bc9a0e5c09c23eab21cdfb2f8283ef01a42
2010-09-20 16:45:48 -07:00
Makoto Onuki
ee6d0d47f5 DO NOT MERGE: Implement destroy() for all ImapElement classes.
- This is to make sure we're not touching any ImapResponse that's
already been destroyed.

- I didn't add "is it already destroyed?" check to them
(except for ImapTempFileLiteral), because it can be costly.
Just let NPE be thrown.

Backport of Idc7b88c4844727922841cbad8a106bf781181d45

Change-Id: I9932e78a49784e4218e939a12ebcb9a497c4eb57
2010-09-20 16:45:48 -07:00
Makoto Onuki
6275e8b144 DO NOT MERGE: Always destroy ImapResponses.
Unfortunately it's hard to write tests for this change, but at least
all tests pass with Idc7b88c4.

Backport of If0335a848dfcc23aecea22c21b2cce73dac7ff6f

Change-Id: I6cb3525bc3c67bbf2fb101488bf95edbead5d299
2010-09-20 16:45:48 -07:00
Makoto Onuki
565f58b9aa DO NOT MERGE: Add TODOs to ImapStore.
Backport of I5a9f246eb81cfca6008f82e8c2ffff8b7f28ba1d

Change-Id: I1422e8ae35e2ba560d1227669b9f720b937033a7
2010-09-20 16:45:48 -07:00
Makoto Onuki
57ab324a11 DO NOT MERGE: Follow-up to the new IMAP parser.
- Replace string literals in ImapStore with constants.
- Simplifies ImapStore.en/decodeFolderName
- Mix cases in the test data to test for case-insensitivity

Backport of I88424357227bcf78528df5e6a1c4ba45d54cc65b

Change-Id: I254fe82324f6ff530e40ca0cff7073f670cf9aa3
2010-09-20 16:45:48 -07:00
Makoto Onuki
ff0712cb1e DO NOT MERGE: New IMAP parser to fix long-lasting problems.
- Almost completely re-wrote ImapResponseParser layer
- We no longer use simple ArrayList and String to represent
imap response.  We have classes for that.  (Type safe!)
These classes are also NPE-free.
(which isn't necessarily a good thing, though)
- A lot of clean-ups and fixes in ImapStore.
- More tests for ImapStore.

Now ImapResponseParser moved to com.android.email.mail.store.imap.parser,
but inside, it's 99% new code.

This CL introduces many new classes, but most of them are small classes
to represent the IMAP response.

Problems that this CL fixes includes:
- Special characters in OK response
- Handling BYE response
- Case sensitivity
- ClassCast/ArrayIndexOutOfBound/NumberFormatException
- Handling NIL/literals at any position

Bug 2480227
Bug 2244049
Bug 2138981
Bug 1351896
Bug 2591435
Bug 2173061
Bug 2370627
Bug 2524881
Bug 2525902
Bug 2538076

Backport of I7116f57fba079b8a5ef8d5439a9b3d9a9af8e6ed

Change-Id: I38b6da7b82110181dc78a2c63c6837c57afa81ae
2010-09-20 16:45:48 -07:00
Makoto Onuki
80202a9599 DO NOT MERGE: Clean up ImapStore and related classes.
- Introduce Fetchable
- Made static some methods/nested classes in ImapStore
- Removed ImapBodyPart
- Fixed lien breaks

Backport of Iec1aff2771faa28717753d6e2d9db96d940233a9

Change-Id: Ia97257c40a6edbe0abc4937068e9cd20e6c558d8
2010-09-20 16:45:47 -07:00
Makoto Onuki
286eafcf5f DO NOT MERGE: More tests for IMAP, clean up, and a few bug fixes.
- A few new tests in ImapStoreUnitTests.
- Added TODOs to ImapStoreUnitTests (for mainly NO response handling)
- Renamed ImapStore.releaseConnection to poolConnection.
- Fixed a bug in getConnection where it'd return a closed connection.
- Now getConnection() hanles BYE response for NOOP correctly and treat the
connection as closed.

Backport of I48e5b89049338f7d4f1ac77cd7ac7243945a9575

Change-Id: I529c6667a1e60c67285b7050b2b1e4b67eccc104
2010-09-20 16:45:47 -07:00
Makoto Onuki
cd0b60e97a DO NOT MERGE: More test for ImapStore/ImapFolder.
- Also, fixed a potential crash in getMessages().
It could happen when a client is gettign a message list while
another client is removing messages.

Backport of I04b1de6bc384cffb7a5286bcec0a349a3d62a623

Change-Id: I227ecbf5bd68c999ba0ab8cd50ef798ef4ef35e4
2010-09-20 16:45:47 -07:00
Makoto Onuki
a599ee773d DO NOT MERGE: Tests for IMAP FETCH
Adding regression test for the new IMAP parser.

Backport of Iac7f5c022e44ca5f06f735e145af15cc459eb61f

Change-Id: Ic84172b6793a9837c2fc4a894fee141da3d19f1d
2010-09-20 16:45:47 -07:00
Makoto Onuki
18d331898f Merge "DO NOT MERGE: Relax MIME date parser." into gingerbread 2010-09-20 16:44:06 -07:00