Commit Graph

2126 Commits

Author SHA1 Message Date
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
Makoto Onuki
090489b395 Merge "DO NOT MERGE: Fix flaky tests" into gingerbread 2010-09-20 16:43:48 -07:00
Andy Stadler
be2ef97220 DO NOT MERGE Send local IP address with EHLO instead of "localhost".
Bug 1515345

Backport of: I181c9f0d79fbdf62f7df77f72a1ec9653797b6dd

Change-Id: If9da2d9f717814bff6a3aa7e6f1a0a44a49f34d6
2010-09-20 16:21:32 -07:00
Andy Stadler
d711bab919 DO NOT MERGE Fix debug logging controls
* Assign "enable exchange parser logging" from Eas.PARSER_LOG instead
  of from EAS.USER_LOG.
* Reorder setup to assign listeners last;  This avoids unnecessary calls
  to Email.updateLoggingFlags() during setup.

Note:  The bug exists as far back as eclair, but the fix will need to be
made in a different file in earlier versions (pre DebugFragment)

Bug: 3003813
Backport from: I5d8f66747a86139dd593ac16ea421ab1e33b8795

Change-Id: Ifd427d697347894d0f584ae04142434c30724e92
2010-09-20 16:03:31 -07:00
Makoto Onuki
a780e12db2 DO NOT MERGE: Relax MIME date parser.
Make the date parser accept invalid dates like
"Thu, 10 Dec 09 15:08:08 GMT-0700" which was observed in an email from eBay.

Per RFC, timezone must be either obs-zone (e.g. "GMT") or +/- with 4 digits.
The GMT+/-digits format is not permitted.

Bug 2367124

Backport of I59968274160aeadea70223208b463ee692660056

Change-Id: I3c80eee28d1dcf4c0c211f773a50de0f0839e4ad
2010-09-20 15:50:52 -07:00
Makoto Onuki
a8a68b827d DO NOT MERGE: Fix flaky tests
Follow up to I3bf7d340.  Make sure temp directory is set before running tests.

Turned out Application.onCreate doesn't seem to be guaranteed to be run
before unit tests.

Without this, some tests may fail saying: "TempDirectory not set.
Application hasn't started??", if onCreate runs too late.

Backport of Ic5aee939a2c21f9579a643d0729dd0e9ba81022e

Change-Id: I7526e3205fc78a5eb79f0786b831c4f642cbda70
2010-09-20 15:50:49 -07:00
Makoto Onuki
e4cfdfd059 DO NOT MERGE: Simplify MessageRetrievalListener.
Main motivation: not to make the new IMAP parser too complecated.

- Removed messageRetrieved.
Motivation:
- It's not easy to call messageRetrieved() at the proper timing
from the new IMAP parser, and this method wasn't used anyway.

- Renamed messageFinished to messageRetrieved.
And removed the "number" and "ofTotal" arguments.
Motivation:
- They weren't used.  Also there was inconsistency about
what to pass as "numebr".  (i.e. 0-based or 1-based?)  There was
even a bug that caused passing a wrong number.

Backport of If92dbfe681b78a0eea8125188ede63a8f00dcf49

Change-Id: Icdea45e0a9ac567b1cdfb44e975e60bb11815472
2010-09-20 14:07:13 -07:00
Makoto Onuki
7040017624 DO NOT MERGE: Add static method to get temp dir in Email.
I need to be able to get the temp dir from anywhere without Context
for the new IMAP parser.

Backport of I3bf7d34059399a8253c0760ebc392804ea434412

Change-Id: Idf7f8dffe9d6dd040d1b2311d053d4fc292ba18e
2010-09-20 14:06:50 -07:00
Makoto Onuki
550aa6163f DO NOT MERGE: Clean up member variables.
- Fix misnomered fields.  (e.g. static mMember -> static sMember)
- Reduce visibility.  (e.g. mark as private)
- Mark final / static if possible.

Note it's on master.

There's a lot more cleanup oppotunities in the activities, but they're going
to go through a major overhaul, so I didn't bother.

Backport of b3f7dd0169

Change-Id: Ic33f9518f23805716e2aec0ab42edb92107e066c
2010-09-20 14:03:29 -07:00
Marc Blank
316447925e am 75cfe25d: Increase EmailServiceProxy timeout for validation attempts
Merge commit '75cfe25d3b97f83d8711260a5ed9bd82fa3cc7da' into gingerbread

* commit '75cfe25d3b97f83d8711260a5ed9bd82fa3cc7da':
  Increase EmailServiceProxy timeout for validation attempts
2010-09-20 12:52:17 -07:00
Marc Blank
2e7a84ff26 DO NOT MERGE: Fix error upsyncing exceptions to all-day events
* Backport of I471e487ec1f7ce11cccdde86f8d8bd8435edd27d (master)

Bug: 2893712
Change-Id: Iaada0969f77a8e41a66426f58ca2886529d3fd8f
2010-09-20 12:04:20 -07:00
Marc Blank
90f1198f67 Merge "DO NOT MERGE: Fix repeating notifications for synced messages" into gingerbread 2010-09-20 12:03:50 -07:00
Marc Blank
a6f694635f DO NOT MERGE: Fix repeating notifications for synced messages
* Existing code reloads long POP/IMAP messages at every sync
* If the server is POP3, or the IMAP message is unread, this
  will lead to redundant notifications of new message arrival
* The fix avoids repeated message reload
* Backport of I8dc22966282655c8645362d672a083a1c37f554c (master)

Bug: 2892705
Change-Id: I1ce7de0dc25abc8ace544849dc3d437fcd1459f0
2010-09-20 11:37:39 -07:00
Marc Blank
4e03d94ccc DO NOT MERGE: Set HAS_ATTENDEE_DATA to 0 for exceptions
Bug: 2891708
Change-Id: I4eb26a6fe7be13dda34ba39a766a03c901276b73
2010-09-20 11:12:29 -07:00
Marc Blank
75cfe25d3b Increase EmailServiceProxy timeout for validation attempts
* Use 90 seconds (instead of 45 seconds)

Bug: 3008626
Change-Id: I31258a5fbcca1f489c8bf6fb2ed8f3dcad5d2e26
2010-09-20 10:34:30 -07:00
Makoto Onuki
0af92c0c39 Use the default theme for selected mailbox.
The latest framework change made it very easy to do this.
We no longer need to implement Checkable by ourselves.

Change-Id: I9264b157b6600659597ca8d525a4288d7bb9c470
2010-09-17 15:05:32 -07:00
Makoto Onuki
0435a0775e Let MessageViewFragment own bottom buttons.
Create a custom view containing the bottons below MVF
(delete, move, reply, etc) and let MVF own this.

These buttons used to be owned by the XL activity itself, because
the UI for these commands will most likely be totally different
from the tablet UI, so the fragment having them looked wrong.

However, this made it harder to make changes suggested by the latest
mock, such as "put reply/forward in the message header".
I think the buttons are semantically part of the message view anyway,
so the fragment owning UI for these commands is probably the way to go.
(And let's worry about the phone UI later.)

Reason for the use of a custom view is that it will make it easier
to make non-trivial UI changes, e.g. "combine reply, reply-all and
forward and make it dropdown."

Also removed obsolete TODOs from MessageListXL.

Change-Id: Ibf93f4c70fe07bdbbe33d2adb6bbd2b96812830d
2010-09-17 14:23:56 -07:00
Makoto Onuki
2039cba065 Merge "Make "load more" work" 2010-09-16 09:56:10 -07:00
Makoto Onuki
8a79d2ab4f Merge "Show account names (nickname) on action bar" 2010-09-16 09:55:58 -07:00
Marc Blank
517c4f39b7 HTML support for EAS 2.5 email
* Load MIME data for these messages and parse, looking for a body either
  in HTML or plain text or both
* If the MIME data had been trunctated and we can't find text, mark the
  message as partially loaded and load the body text as we did before
  (i.e. get the plain text body); this should be a rare case

TODO: Consider what is testable in the new EmailSyncAdapter code

Change-Id: I00a3066a373a0596431335593de356a4dda7f036
2010-09-15 20:20:15 -07:00
Marc Blank
626e2180be Merge "Remove GAL lookup dependency on running ExchangeService" 2010-09-15 18:25:33 -07:00
Marc Blank
74444e73c2 Remove GAL lookup dependency on running ExchangeService
Change-Id: I4ff4017bcbb29862e07fde63e2ac01e3552ccd83
2010-09-15 17:57:03 -07:00
Makoto Onuki
130c7bdec1 Fix "Sent outgoing messages"
sendPendingMessages() takes account IDs.  Don't pass mailbox IDs.

Bug 2985577

Change-Id: Id4abce6de67f55809aad9d4bd2aa6419b4530e3a
2010-09-15 16:49:36 -07:00
Makoto Onuki
0d21aa395a Make "load more" work
Wasn't implemented...

Bug 3004954

Change-Id: Id44bcf936fab2965b032bbc5621045825aab5292
2010-09-15 16:28:35 -07:00
Makoto Onuki
a209096420 Show account names (nickname) on action bar
if available, instead of email addresses.
Also make sure the change to the display name will be reflected to
the UI.

Bug 2149083
Bug 3002398

Change-Id: I4aa4ffcec3a81688b3fb11182aacd546c310f117
2010-09-15 16:20:01 -07:00
Andrew Stadler
0b24baa130 Merge "Fix debug logging controls" 2010-09-15 11:07:21 -07:00
Andrew Stadler
e36b6ff4fa Fix debug logging controls
* Assign "enable exchange parser logging" from Eas.PARSER_LOG instead
  of from EAS.USER_LOG.
* Reorder setup to assign listeners last;  This avoids unnecessary calls
  to Email.updateLoggingFlags() during setup.

Note:  The bug exists as far back as eclair, but the fix will need to be
made in a different file in earlier versions (pre DebugFragment)

Bug: 3003813
Change-Id: I5d8f66747a86139dd593ac16ea421ab1e33b8795
2010-09-15 11:06:03 -07:00
Makoto Onuki
d701ff131f Merge "Fix potential NPE" 2010-09-15 10:56:09 -07:00
Makoto Onuki
261d6c3f0c Notify only account cursors when resetting new msg count
- Resetting the new message count is now correctly done on a BG thread.
- Added special content provider URI to reset the count.
  (/resetNewMessageCount)
- This URI only supports update, which will notify only account
  cursors.
- Fixed a problem that an insert with MAILBOX_ID/MESSAGE_ID/ACCOUNT_ID
  triggers two notifications.

- This CL changes how we use notification URIs, but unfortunately
  no tests for this part.  It turned out MockContentResolver doesn't
  support the notification mechanism, which made it very hard
  to write tests.

Bug 2911646

Change-Id: I35b30a7e6bf2d57510486c7ed19b9f263d8c9b58
2010-09-15 10:53:17 -07:00
Makoto Onuki
1ed2c7a15d Fix potential NPE
Happened to find this.

Change-Id: I0b71d80a421adad196d8cd113001f2f9fe5a9445
2010-09-14 17:26:13 -07:00
Makoto Onuki
cc91619b6a Kick syncMailboxStatus callback when syncing Trash/Drafts
Drafts/Trash are not syncable on EAS, but let's kick the callbacks
as the UI is expecting them.

Bug 2989403

Change-Id: I4feac1f0e5471995c14260be6d12329659385e23
2010-09-14 10:43:14 -07:00
Dianne Hackborn
a2cc46c810 Fix issue #2967969: Crash rotating screen on "delete account" dialog
Update settings to use to PreferenceActivity APIs to retain its
current state across instances.  Removes
inheritance of Header (to work well with new framework impl that
retains these across instances), avoid resetting the current header
after a state change (we want to keep showing whatever the user
last viewed), put the dialog on the back stack (so it will get
removed if the back stack is cleared).

Change-Id: Ie35b1c0eb9b06277165f2b9cadb0e2999bb8af47
2010-09-13 18:25:00 -07:00
Makoto Onuki
40b2d92851 Make sure "refresh" button animation refrects actual state
When selecting a different mailbox, start/stop the refresh button animation
as necessary.

Bug 2997302

Change-Id: If29d7ec37348d527698685503b7b4fbf0ed0c35f
2010-09-13 16:51:09 -07:00
Makoto Onuki
52930bfda3 Merge "Enable "auto-refresh" for EAS accounts as well." 2010-09-13 16:38:58 -07:00
Makoto Onuki
fe7dd2df56 Enable "auto-refresh" for EAS accounts as well.
bug 2990997

Change-Id: Ia8481c806ee6f2e8d9308dacee67c982e1caaa69
2010-09-13 16:16:28 -07:00
Makoto Onuki
599cc11e9e Merge "Use the auto-advance setting after move." 2010-09-13 15:29:58 -07:00
Andrew Stadler
5b2424bf6f Cleanup of Account setup flows
* Remove AccountSetupCheckSettings and related resources
* Remove all handling of EDIT flow in setup activities

Change-Id: I7b87d87978533b52b9c974d006920749389418d8
2010-09-13 14:39:36 -07:00
Makoto Onuki
00d5cf97c6 Use the auto-advance setting after move.
Change-Id: I835211589897410be7003a276a3278d43d940c38
2010-09-13 14:27:13 -07:00
Andrew Stadler
2731aef45c Convert exchange setup to use checker fragment
* AccountCheckSettingsFragment now supports AutoDiscover
* Clean up callbacks for account check & autodiscover errors
* AccountSetupExchange now supports rotation
* Remove dead code in SetupData & AccountSetupBasics

TODO next CL: Remove all edit flows from setup activities
TODO next CL: Remove old CheckSettings activity

Change-Id: I3c9884856ca6e70226374fdb28400bfb3588387e
2010-09-13 14:04:45 -07:00
Makoto Onuki
d4aac1e847 Always show Combined Inbox
Even if unread count == 0.

Bug 2992923

Change-Id: I2c2bd9781630e7664a7bd4b6fcb5012e9ebe2dc6
2010-09-13 10:59:35 -07:00
Makoto Onuki
ff110a30ca Merge "EmailProvider related clean up" 2010-09-13 10:33:45 -07:00
Marc Blank
11d37a7fa9 Check file name before allowing attachment save
Bug: 2992710
Change-Id: I56893366226168669788b78b53bfd3f996dd96cd
2010-09-11 15:34:28 -07:00
Andrew Stadler
fd14496c49 Convert setup to use checker fragment
* Activities modified to use new check-settings fragment:
  * AccountSetupBasics (auto-setup for imap/pop)
  * AccountSetupIncoming
  * AccountSetupOutgoing

Next CL: Same work for exchange, and terminate old CheckSettings activity.

Change-Id: If5c5bfe331161b2429f7d7a4bd13290932f03c47
2010-09-10 15:51:37 -07:00
Makoto Onuki
7bcf1882bc EmailProvider related clean up
- Removed unused URI definitions.
- Added SuppressWarnings to CONTENT_URI's in EmailContent

Change-Id: Id1e746ef5ab86dd76dc1b7dd38a5a00d052bddab
2010-09-10 15:26:48 -07:00
Makoto Onuki
ad0c1253c7 Merge "Fix tests broken by I2bf5de4e (Clean-ups for EmailProvider)" 2010-09-10 15:04:40 -07:00
Makoto Onuki
07fc10ae22 Merge "Implement "auto-advance" on two-pane" 2010-09-10 14:45:46 -07:00
Makoto Onuki
8f78d57a1f Implement "auto-advance" on two-pane
- Two-pane now respects the auto-advance setting.
- Added another TODO for one-pane.
- Removed unused method.

Change-Id: If2cfb8cc1de04c48cd2f6075bc01bef830425662
2010-09-10 14:40:37 -07:00
Makoto Onuki
5b0c2c7f34 Fix tests broken by I2bf5de4e (Clean-ups for EmailProvider)
My previous CL broke some tests.
- make sure to set 0 to unreadCount when adding a new row
- when updating messageCount in the tests, directly manipulate
  the DB.  (the provider no longer allows this)

Change-Id: Ib569349707007badf4f23600fbca37110c78fa6d
2010-09-10 14:37:01 -07:00
Marc Blank
9e9113b9b8 Fix MessageList formatting bug when subject is empty
Change-Id: Ia2ab247935a4882a308fb393f5484bfe3ea10d86
2010-09-10 14:21:52 -07:00
Makoto Onuki
f678a8e67a Clean-ups for EmailProvider
- Don't allow manual modification of unreadCount/messageCount
  (We used to check only unreadCount in update().)
- Do the integrity check at the very first in update().
  I think the old place was really problematic because we opened
  the database in a few lines above and kept it in a local variable.

Change-Id: I2bf5de4e4e45b40c11b951dd2255f8193c26f1aa
2010-09-10 13:27:12 -07:00
Makoto Onuki
7183724276 Don't check flagLoaded for outbox message list
We found a case where messages in outbox have flagLoaded=FLAG_LOADED_UNLOADED,
where it should be FLAG_LOADED_COMPLETE.  Haven't found the root problem, but
remove the flagLoaded test to mitigate the problem.

Also moved the buildMailboxIdSelection call to a worker thread.
(this method issues some queries.)

Bug 2984285

Change-Id: I2a5be300fb3da703698512262cc38bea75d0f7ba
2010-09-10 11:12:46 -07:00
Marc Blank
6d51b7eb63 Properly report EAS protocol version failures
Bug: 2528554
Change-Id: I9ac2520528ebe23dc0d465aee65ab470f8f429a7
2010-09-10 08:33:40 -07:00
Makoto Onuki
0f52e546ef Implement General Preferences
- Removed the place holder setting
- Added "auto-advance" setting, which has "newer",
  "older" (original behavior, default) and "message list"
- Strings were copied from Gmail

This CL has preference change only (i.e. the setting isn't used yet).
The actual implementation will come later.

Change-Id: I9f90a723c67e066fdc536a73490101817a127933
2010-09-09 17:02:02 -07:00
Makoto Onuki
6a461a9d46 Merge "Launch AccountSecurity if the account is on security hold." 2010-09-09 17:01:35 -07:00
Makoto Onuki
4c5aaaecef Merge "Add quick contact badge to MessageView." 2010-09-09 16:55:08 -07:00
Andrew Stadler
c7fd6f2a93 Merge "Cosmetic cleanup of exchange setup" 2010-09-09 16:08:26 -07:00
Andrew Stadler
c164444784 Cosmetic cleanup of exchange setup
* Remove nonfunctioning Next button
* Enable Next button on name screen

Bug: 2988925
Change-Id: I9de7d8dc5b6f48b6c11676b7eef478495afcc889
2010-09-09 15:49:21 -07:00
Makoto Onuki
2012ceff64 Launch AccountSecurity if the account is on security hold.
Change-Id: Icac5de3259c66cac87e2a36d95d53a4f63ea94f1
2010-09-09 14:13:47 -07:00
Makoto Onuki
b1ea9c3c12 Add quick contact badge to MessageView.
- Added "quick contact badge" to MessageView
- Removed PresenceUpdater, and added new implementation based
  on Loader, which is much simpler.
- Changed some text color, so they're visible now.

Bug 2988625

Change-Id: I688a3217178ee8fd0b7245c0ab36a633687ea525
2010-09-09 13:57:31 -07:00
Makoto Onuki
27e35d47af Merge "Add a flag to check the current thread on db accesses" 2010-09-09 11:24:41 -07:00
Makoto Onuki
76a73d104d Merge "Cleanups for unbundling" 2010-09-09 11:24:29 -07:00
Makoto Onuki
697f98aea5 Cleanups for unbundling
* android.security is hidden.  Use java.security.MessageDigest instead.
* Remove android-common from makefile (we no longer use it)
* Add LOCAL_SDK_VERSION to makefile and comment it out

Change-Id: I7f9a021387d5c4e47ade1adb0bb75bec82ba0dd8
2010-09-09 10:46:52 -07:00
Andrew Stadler
4c3a8ede01 Quick fixes for account setup unit tests
Some of these broke in 8bcb572ccf
which changed the [Next] button to an ActionBar menu item.

However, the entirety of AccountSettingsXLTests needed to be disabled
because the PreferenceActivity is very different on phone or XL sized
devices, and the tests infrastructure will need to be refactored to deal
with that (on another day.)

Change-Id: I9adbfc9b8da6179e4c4e82d29bb872ee05619a41
2010-09-09 09:28:38 -07:00
Andrew Stadler
db746428ef Merge "Convert setup to actionbars, and holo theme" 2010-09-08 23:50:23 -07:00
Andrew Stadler
8bcb572ccf Convert setup to actionbars, and holo theme
* All setup activities given UI makeover:
  * Remove legacy themes from manifest - exposes default holo theme
  * Remove bottom row button(s)
  * Replace with action bar button(s)
* No change to workflow or activity/fragment organization

Change-Id: I07ce11a0a2b4b767b5ac111d466e68400fe0f30b
2010-09-08 23:27:05 -07:00
Makoto Onuki
d36d911fac Add a flag to check the current thread on db accesses
Added Email.DEBUG_THREAD_CHECK.  If true, EmailProvider warns if certain
methods are called on the UI thread.

Change-Id: I6db9e45f2e449a31850c223fc9eec0fb9a575cb1
2010-09-08 18:19:36 -07:00
Marc Blank
a4843fa29f Merge "Fix problems with repeating notifications for synced messages" 2010-09-08 17:20:08 -07:00
Makoto Onuki
ffee97985c Merge "Show total message count for Outbox/Sent" 2010-09-08 16:15:43 -07:00
Makoto Onuki
8761564d1f Remove EML files at proper timing
Remove EML files only when the last MessageFileViewFragment instance is
destroying.

Bug 2881349

Change-Id: Ie050eb113c799aefaf63d0ac7f678208c2ee0924
2010-09-08 16:14:24 -07:00
Makoto Onuki
a262f908ae Show total message count for Outbox/Sent
Instead of unread count.

Change-Id: I90fe96093bc31f26e4cacacf6adfb0a3cf009d04
2010-09-08 16:09:11 -07:00
Marc Blank
e302d06258 Fix problems with repeating notifications for synced messages
* Existing code reloads long POP/IMAP messages at every sync
* If the server is POP3, or the IMAP message is unread, this
  will lead to redundant notifications of new message arrival
* The fix avoids repeated message reload

Bug: 2892705
Change-Id: I8dc22966282655c8645362d672a083a1c37f554c
2010-09-08 15:43:36 -07:00
Makoto Onuki
27c6547968 Remove obsolete TODOs
They're all obsolete.
(Fix is already in, change in a different place made it obsolete, etc.)

Change-Id: I04452a973c86d39aca8e89f8883dcf1d7e480dee
2010-09-08 12:14:24 -07:00
Andrew Stadler
16fea1419e Merge "CheckSettings as a true fragment" 2010-09-07 22:24:07 -07:00
Andrew Stadler
55110ca1ad CheckSettings as a true fragment
* Create new retained fragment + asynctask as the worker
* Stateless dialog fragments for everything else (progress & errors)
* Used for account settings, incoming & outgoing, only so far

TODO: Support for account setup workflow
TODO: Support for autodiscover workflow
TODO: Remove old checker activity when complete

Change-Id: I1fdafa1a51c53b934e59ea4af7d3e0ac24a3da17
2010-09-07 22:20:51 -07:00
Adam Powell
940c45df8e Updated for upcoming ActionBar API changes.
The extra overloads for setStandardNavigationMode are going away to
simplify the API. setTitle/setSubtitle should be used to change title
content in standard nav mode.

Change-Id: I29baa1ea5572a01ed9bc1d99f5c8a6e35dd02a1a
2010-09-07 18:15:13 -07:00
Makoto Onuki
ddc8dea2bd Fix upgrade problem in I84a2cbe1
I84a2cbe1 didn't upgrade the deleted/updated tables.

Bug 2980891

Change-Id: Ifb0800bab58978352f2239f99186d0503e0dd899
2010-09-07 13:27:49 -07:00
Marc Blank
fa2386cb11 Don't disable account mailbox when sync freq -> "Never"
Bug: 2905667

Change-Id: I7052281a186534597702fa137a2ecfe8b1280575
2010-09-03 23:31:27 -07:00
Marc Blank
e7b9e4ab94 Add snippets to messages
* Add 'snippet' column in Message table and handle upgrades to the
  new schema
* Generate a snippet from either HTML or plain-text message body,
  removing tags, extraneous whitespace, and other superfluous text
  along the way.  Store the snippet in the Message table
* Clean up MessagesAdapter to use the pre-existing list projection
  and constants
* Write unit tests for snippet creation
* The UI in this CL is always single-line, ellipsized

TODO: Handle two-line subject if portrait and XL

Change-Id: I84a2cbe10957975942edad6eb1255a726924a78a
2010-09-03 23:23:19 -07:00
Makoto Onuki
767f9fe2eb Implement batch move.
* UI is still temporary
* In this version, we check if the selected messages can be moved *after*
  you click "Move", rather than disabling the button beforehand.

Change-Id: Ief2864d2a513001847844963b2b0cb6b714e8667
2010-09-03 15:39:04 -07:00
Andrew Stadler
7c4ba5847a Merge "Use real fragments for incoming/outgoing/exchange settings" 2010-09-03 14:33:45 -07:00
Andrew Stadler
1a5e1e1593 Use real fragments for incoming/outgoing/exchange settings
* From account settings, switch to incoming/outgoing/eas fragments
* Show "Next" button in actionbar (may be dup'd in single-pane view)
* Common base class for in/out/eas fragments
* Depends on PreferenceActivity.startPreferenceFragment(), new API
* If the user clicks an account header while editing server settings,
  present a dialog before discarding the changes that haven't been
  checked yet.
* Confirm working (if a bit ungainly in appearance) on phone screen

Change-Id: I03591b9a8ffd11fe26fc6f58a5698740e61d0090
2010-09-03 14:30:21 -07:00
Makoto Onuki
f66a729cc4 Merge "MailboxList: Show the rotating icon when there's no mailbox" 2010-09-03 10:47:01 -07:00
Makoto Onuki
93db1852be MailboxList: Show the rotating icon when there's no mailbox
If the cursor is empty, hide the list and let the framework show
the rotating icon.  (Don't set an empty cursor, which makes the list just
blank.)

We do this for only MailboxList because we know we'll get mailboxes
soon enough.  We can't do this on MessageList because there may be really
no messages even if we wait.

Bug 2927973

Change-Id: Ic0346d2d90d03489072eb95a123281f60cda44dd
2010-09-03 10:46:46 -07:00
Makoto Onuki
646b5e062e Disable forward/reply for trashed messages.
* Now the message shown/gone callbacks are called directly by
  MessageViewFragment, rather than MessageListXLFragmentManager.

* The buttons are enabled/disabled per messages, so it even works
  properly when you move around in All Starred. (if you ever star
  trashed messages.)

* Fixed one-pane as well.

Bug 2968810

Change-Id: Ie6de1dc7ea0bd18c40c091a6685629c26ffb7110
2010-09-03 10:42:15 -07:00
Marc Blank
213c52dd64 Fix issues with handling FREQ=YEARLY in RRULEs
* Turns out that we weren't handling one of the cases for YEARLY
  RRULE; that in which the date is specified as a day of week plus
  week of month
* Also, we weren't always sending the INTERVAL properly in a few
  cases
* Fix these issues and add a unit test that confirms the fixes
* Also removed an unused argument in recurrenceParser in
  CalendarSyncAdapter

Bug: 2718948

Change-Id: If9146d484218e7d6bd9f5c2305d0e6a216aeed49
2010-09-02 18:17:42 -07:00
Marc Blank
28ca167a89 Enforce a limit on GAL lookup responses
Change-Id: Id353758c1221d2f1097566e7becc8baacf7984d9
2010-09-02 11:20:42 -07:00
Marc Blank
aee3f053fb Remove old ExchangeProvider (legacy GAL support)
Change-Id: I10b5a2ffd429610b2851d0ee63bef20cbc0e0ef8
2010-09-02 10:59:29 -07:00
Makoto Onuki
b8efc2d048 Make sure MessageView series don't use mMailboxKey
Because "move" and "delete" are asynchronous operations, Message.mMailboxKey
can change any time.  We can't use stored values.

(Fortunately it was used at only one place, and this was actually unused.)

Change-Id: Idc1300a00122fe0e6372b0374cddc98aa54a47fc
2010-09-02 10:53:47 -07:00
Andrew Stadler
bf2a53ef5e Merge "Direct access to edit specific account settings" 2010-09-01 21:20:41 -07:00
Andrew Stadler
9c65c146f3 Direct access to edit specific account settings
* Finish implementation of AccountSettingsXL.actionSettings()
* Point account manager entry point at it now
* Remove old AccountSettings activity
* Move AccountSettingsTests over to AccountSettingsXLTests and minor
  cleanups so it works in fragmentized activity.

Change-Id: I5f979a3a9a29dcbbe5a63833b184e6c0313652d5
2010-09-01 21:17:53 -07:00
Makoto Onuki
a25aa613f7 Open MessageComponse when draft in All Starred is selected
Also removed a silly unnecessary code in Mailbox.isRefreshable.

Bug 2968445

Change-Id: I75187e5abf1c3e67c8b9ead38c7f749fc8b6cfb0
2010-09-01 18:27:12 -07:00
Makoto Onuki
975b5c71ab Merge "Remove some debug code from MessageListXL." 2010-09-01 18:18:12 -07:00
Makoto Onuki
b076aaa459 Merge ""Move to" multiple messages" 2010-09-01 15:20:35 -07:00
Makoto Onuki
11aea1efe4 "Move to" multiple messages
Now Controller.moveMessage supports moving multiple messages.

Change-Id: I5d9715cd94e55cf14254b4d4d731524be9d014a8
2010-09-01 15:18:06 -07:00
Makoto Onuki
ed035c20a1 Remove some debug code from MessageListXL.
Change-Id: I26e373d2e570c49a812ffbee98095f9e84599335
2010-09-01 14:48:12 -07:00
Andrew Stadler
b387560384 Move Add Account button to new Footer position
Change-Id: I662f6cbfd8db80f4b383e6204afcf460764f4d4c
2010-09-01 14:24:32 -07:00
Marc Blank
62f9c4d280 Temporary UI for "move to folder"
* Many TODOs left in code.
* Only supports moving 1 message. (from message view)

Change-Id: Ibdec3163382345a7096c2cba51f448d69a9720af
2010-09-01 11:40:44 -07:00
Dmitri Plotnikov
163e431a7f Merge "Removing notification that is no longer needed" 2010-09-01 11:22:43 -07:00
Makoto Onuki
528cfcef8f Merge "Fix NPE in autoRefreshStaleMailbox" 2010-09-01 11:19:48 -07:00
Makoto Onuki
3d78423281 Fix NPE in autoRefreshStaleMailbox
There was a silly logic error...

Bug 2967814

Change-Id: Ie92799be5a3d685cd9eb6a454457868ad0bbfffd
2010-09-01 10:59:41 -07:00
Dmitri Plotnikov
2941c88fce Removing notification that is no longer needed
Now that CP2 rescans all providers whenever an
account is added.

Change-Id: I274a0ec7983f0b0c16edda2f426ec7e7de595473
2010-09-01 10:22:11 -07:00
Marc Blank
68da2805c0 Merge "Fix error upsyncing exceptions to all-day events" 2010-08-31 17:31:39 -07:00
Makoto Onuki
cadd46e3fb Preserve scroll position of message/mailbox list
* Preserve the scroll position in the following transitions
  MessageList -> MessageView -> [back] -> MessageList
  MessageList -> MessageView -> [screen rotation] -> [back] -> MessageList
  two-pane -> compose -> [discard, etc] -> two-pane
  two-pane -> switch to other app, and switch back -> two-pane

* Don't always refresh on onResume.  Do it only when requested.
  This supresses unnecessary refresh when coming back from other full-screen
  activities, e.g. MessageCompose.

* Also updated the comments on the back handling.

Bug 2769052

Change-Id: Id83dc3e778c35860d634c68ecac0c7a07cc4057e
2010-08-31 17:21:24 -07:00
Makoto Onuki
daec902cae Merge "Fully implement "refresh" action bar button" 2010-08-31 17:20:48 -07:00
Makoto Onuki
e357f58791 Fully implement "refresh" action bar button
* Now it'll refresh mailbox list (left pane) as well.
(With the minimal interval of 30 seconds)

* Always refresh inbox.
(also with the minimal interval of 10 seconds)

* Also make sure the "auto-refresh" won't refresh
non-refreshable mailboxes. (drafts, etc)

Bug 2929889
Bug 2930018

Change-Id: I09452d40aad6008a721cfbc3f491617224d7048f
2010-08-31 16:49:12 -07:00
Marc Blank
70047f73d3 Merge "Change EAS User-Agent to a constant String" 2010-08-31 16:31:11 -07:00
Marc Blank
3faa14693c Fix error upsyncing exceptions to all-day events
Bug: 2893712
Change-Id: I471e487ec1f7ce11cccdde86f8d8bd8435edd27d
2010-08-31 16:29:05 -07:00
Andrew Stadler
57f125a01b Move debug settings from own activity to setting fragment
* Add DebugFragment and incorporate it into AccountSettingsXL
* Tap "Email preferences" 10 times in a row to enable debug settings.
  (Or type D E B U G works as well.)
* Point broadcast receiver (*#*#EMAIL#*#*) to AccountSettingsXL
* Remove old debug launchers in AccountFolderList
* Remove old Debug activity

Change-Id: Ib289c42878a07c23f815654ce4570c1399aa49de
2010-08-31 11:11:54 -07:00
Makoto Onuki
086aac2386 MailboxFinder should ignore callback for non-target account
There were two cases where MailboxFinder responded to updateMailboxListCallback
when it shoulnd't.
- Callbacks for non-target accounts
- Callbacks arrived after the operation is finished

Make sure these callbacks are properly ignored.
Also, make sure startLookup() can't be called more than once.

Change-Id: I823c11ab5f96df4eb84594c08d3325d12319f708
2010-08-31 10:20:02 -07:00
Marc Blank
03e3449c6b Change EAS User-Agent to a constant String
Change-Id: Ie1efcbc1666bd9bc759aca8134eba21cb9e2467b
2010-08-31 10:10:11 -07:00
Marc Blank
3e376afcb3 Merge "Fix another inconsistent set of PolicySet values" 2010-08-31 10:08:48 -07:00
Marc Blank
61911d4ff7 Fix another inconsistent set of PolicySet values
* EAS can send both "simple password" and a non-zero number of
  required complex characters; we're supposed to ignore the
  complex character requirement in this case
* Force complex characters to zero if password is "simple"
* Update constructor test to check the fix

Bug: 2903349
Change-Id: I3d42bd3c8f3667d8f3027da9e91e0dd18722d9bf
2010-08-30 20:18:16 -07:00
Makoto Onuki
01a5da7208 Update the list immediately after batch edit.
Batch edit (toggle star, toggle un/read) used to work like this:
- Update DB
- Cursors get content change event
- But the list won't update immediately, because ThrottlingCursorLoader
  postpones refresh.
- The list will update a few seconds later.

It wasn't really a good UX, so refresh the list right after the db change.

Change-Id: If483b305cf448ec4c73e65498044fd52cc144773
2010-08-30 15:02:04 -07:00
Dmitri Plotnikov
9d74207039 Integration with Directory API for autocomplete
The UI changes a bit - there is no separator
between the local contacts and directories.
Will bring the separator back if asked, but
most likely simply as a thick line.

Change-Id: Idfc990deff41b30d63bd8289731694e3d9a00fb6
2010-08-27 14:02:06 -07:00
Makoto Onuki
4772322cc9 Merge "Revive checkboxes to select messages on MessageList" 2010-08-27 13:42:03 -07:00
Makoto Onuki
bdf84d57e6 Revive checkboxes to select messages on MessageList
It's basically a partial revert of I3cb6c45c, with some clean-ups.

Also removed mHandler, which was unused.

Bug 2949762

Change-Id: Ib4e673c5829b99ba45fec449bffb62df84555a01
2010-08-27 13:39:06 -07:00
Marc Blank
ea0eedf2ce Add Android OS version to EAS User-Agent; update EAS version
Bug: 2953691

Change-Id: I2b2b16c7cb8950a644306b2aa25bcc53ab0c2731
2010-08-27 13:07:49 -07:00
Marc Blank
273de8cc08 Merge "Rename SyncManager to ExchangeService" 2010-08-27 13:02:19 -07:00
Marc Blank
64b64cca01 Rename SyncManager to ExchangeService
* Updated comments and checked for 100-columns

Change-Id: I4ab5aaa9425714f8e035e1952db3fec63d498ae1
2010-08-27 12:15:56 -07:00
Andrew Stadler
9e71be599e am 99df4d53: am b47d1a8a: am 126c9216: Block oversize attachments from being sent
Merge commit '99df4d53b620fae871fd45aaf9b8f110cb4d4288'

* commit '99df4d53b620fae871fd45aaf9b8f110cb4d4288':
  Block oversize attachments from being sent
2010-08-27 12:15:15 -07:00
Marc Blank
85cf69d371 Fix "move to folder" for both IMAP and EAS
* We were zero'ing the server id BEFORE the move, rather than
  afterward; this is fixed in the current CL

Change-Id: I4a5f2b2de5794a110a8f657c80dfeac4955b5909
2010-08-26 15:42:15 -07:00
Andrew Stadler
b47d1a8a1a am 126c9216: Block oversize attachments from being sent
Merge commit '126c9216b13d915b24a057b5b50bb8ea9826ba7e' into gingerbread

* commit '126c9216b13d915b24a057b5b50bb8ea9826ba7e':
  Block oversize attachments from being sent
2010-08-26 15:24:16 -07:00
Makoto Onuki
bd3e7777c5 Fix broken breakage introduced in I2a7fec0d
This file was left unchanged somehow...

Change-Id: I1b441731c71b63401c8b756e8e591c3018c07e35
2010-08-26 13:36:58 -07:00
Marc Blank
ac1b23b944 Merge "EAS implementation of "move to folder"" 2010-08-26 13:32:46 -07:00
Marc Blank
d694a20849 EAS implementation of "move to folder"
* Handle errors cases appropriately

Change-Id: I16060cc5c4fc648c299a2fa8f9f57d9aa5c37f56
2010-08-26 13:19:05 -07:00
Makoto Onuki
0be2d85bb8 Make notification open XL activity on tablet
* Now notification kicks Welcome, which knows which
  activity to use.
* Extracted cancelNewMessageNotification
* Also fixed 2909215.  There'll be only one XL activity on the app stack.

Bug 2945369
Bug 2909215

Change-Id: I2a7fec0d48a7618375cae55138ca51fefc70ff6e
2010-08-26 13:17:41 -07:00
Makoto Onuki
4829dfaf7f Merge "Brush up mailbox list." 2010-08-26 11:00:56 -07:00
Makoto Onuki
0f67e7af9c Brush up mailbox list.
- Don't show combined boxes when there's only one account.
- Show special mailboxes (e.g. drafts) right after inbox
  and before regular mailboxes.

Bug 2941270

Change-Id: I03ba356f5f2367f0478133acc1f2e35d182d359c
2010-08-26 10:54:52 -07:00
Makoto Onuki
866f9a0f83 Merge "Brush up account selector" 2010-08-26 10:53:07 -07:00
Makoto Onuki
4f4b736455 Merge "Switch to Light Holo theme, clean up menu options." 2010-08-26 10:52:23 -07:00
Marc Blank
b53b150105 IMAP implementation of "move to folder"
* Clean up Controller.deleteMessage to work with new EmailContent
  utility methods, and move out of the UI thread
* Add unit test for Controller.moveMessage

Change-Id: Ic49e2ecc7ef2252dd4d51f4c3b313b936fda78b6
2010-08-26 10:43:28 -07:00
Andrew Stadler
486761169d Merge "Finish delete account functionality" 2010-08-26 07:36:10 -07:00
Andrew Stadler
464d1f95b7 Finish delete account functionality
* Wire in delete account functionality
* Minor cleanups
* Update TODO list

Change-Id: Id9852eb833b0b4e4e8233620412e475815e537ef
2010-08-25 22:44:11 -07:00
Marc Blank
62d19789b7 Merge "Fix attachmentExists (recognize mContentBytes)" 2010-08-25 22:35:28 -07:00
Marc Blank
4dcb1c5fda Fix attachmentExists (recognize mContentBytes)
* Add unit test for attachmentExists

Bug: 2937856
Change-Id: I020f58740618c084676bbf1cdfad3795edb07688
2010-08-25 22:34:22 -07:00
Makoto Onuki
2f4e87c223 Switch to Light Holo theme, clean up menu options.
- Changed the default theme to Light.Holo
- MessageCompose now has ActionBar.
- Removed unnecessary MessageCompose menu items.

- Also removed "Add Account" menu from MessageListXL.
  (Use the + button on account settings)

- Fixed "calender response section invisible" bug.

Bug 2926517

Change-Id: Id27632ec82dad158f43b0903dbc2cb219188400d
2010-08-25 17:09:59 -07:00
Andrew Stadler
126c9216b1 Block oversize attachments from being sent
* Attachments that come in with a file:// URI do not support the complete
  set of OpenableColumns columns.  To handle this better:
  1. Obtain the openable values in two separate queries, in case one or
      the other is supported (but not both).
  2. If the size is not reported but it is a file:// URI, attempt to
     measure it directly.
  3. If the size cannot be obtained, do not upload the attachment

Bug: 2948965
Change-Id: Ic5160d39efd65eaca40ceba0dd93c3b035d2871e
2010-08-25 16:46:00 -07:00
Makoto Onuki
7ab6f25e54 Brush up account selector
* Use the standard resources for it

I've been putting this off because it's a UI issue and we don't know
the final look, but the current look is really hard to read.

* Also, don't use the dropdown, if there's only one account set up.

Bug 2883791
Bug 2950461

Change-Id: I0af2e98b2650fcbc83c8f7228505afa334bea209
2010-08-25 16:38:25 -07:00
Marc Blank
61bddf2519 Merge "Set HAS_ATTENDEE_DATA to 0 for exceptions" 2010-08-25 11:55:01 -07:00
Marc Blank
c2246b37ce Merge "Fix failing account backup/restore unit tests" 2010-08-25 11:08:07 -07:00
Marc Blank
5a53ad7286 Merge "Fix problem w/ forwarding already loaded attachments" 2010-08-25 11:07:32 -07:00
Marc Blank
1718115cd1 Set HAS_ATTENDEE_DATA to 0 for exceptions
Bug: 2891708
Change-Id: Ia38214dcb9d72e45c1e481bc93fc6521ea206d0f
2010-08-24 17:59:17 -07:00
Marc Blank
818214e31f Fix failing account backup/restore unit tests
* We can't run the AccountManager functionality of account backup
  and restore in the unit tests, because IsolatedContext doesn't
  mock the AccountManager; this leads to various NPE's when the
  test is run
* These problems started, by the way, when we added POP/IMAP
  account integration with AccountManager
* Since the AccountManager side of account backup/restore isn't
  tested, we'll skip that part of the process when running unit
  tests

Bug: 2873546

Change-Id: I94673913e66722ac70f3c49c51465122e98bf3d9
2010-08-24 17:50:55 -07:00
Makoto Onuki
c8502dd194 Highlight selected mailbox on mailbox list
* Use ListView's CHOICE_MODE_SINGLE mode to select list item.
* Added a view that implements Checkable to change background
  for selected item.

Change-Id: Id55999b3d024ad1852e2b8c6436cd22ef255cf95
2010-08-24 16:55:44 -07:00
Marc Blank
5fd986fca0 Fix problem w/ forwarding already loaded attachments
Bug: 2938562
Change-Id: I778623bf5ee56d25eab5a74d86e9f89206e7f348
2010-08-24 16:20:47 -07:00
Makoto Onuki
5247ab8cae Make isEasAccount always work.
isEasAccount now uses getProtocol(), so it works even if the hostauth
hasn't been restored yet.

Bug 2929896

Change-Id: Iee902c18ef59680d8a7d4622230489ec7946f38c
2010-08-24 14:27:10 -07:00
Marc Blank
bf37f67e6d Merge "Add utilities to retrieve Mailbox and Account from a message id" 2010-08-24 12:23:34 -07:00
Makoto Onuki
7fd307212f Restore list scroll position when necessary.
Bug 2769052.

Change-Id: I09b04311ad2a5bd0d41d37f78dddc500414323c1
2010-08-24 11:20:00 -07:00
Makoto Onuki
45f530ba55 Integrate Controller w/ AttachmentDownloadService
* Add ControllerService to Controller and call this from
  AttachmentDownloadService to handle attachment loading

(It's a redo of I3a6c2a40.  Submitting for mlbank, who had a trouble
with repo.)

Change-Id: I7c90761ec4e213d6dc331fc894c7b77e84ad43a6
2010-08-24 11:14:57 -07:00
Makoto Onuki
b913cd1fea Merge "Add shutdown() to providers." 2010-08-24 10:54:23 -07:00
Marc Blank
c184f36c2d Revert "Convert Controller to a full service"
This reverts commit 0e6d972641.

Change-Id: I005fc34152396806468edef919a3620961ddb4fe
2010-08-24 10:27:58 -07:00
Marc Blank
bca4e6e70b Add utilities to retrieve Mailbox and Account from a message id
Change-Id: Ice727f82b5c284617b831f19e2667078cd3da5dc
2010-08-24 09:24:21 -07:00
Marc Blank
2027b29d40 Change EAS request implementation to use LinkedBlockingQueue
* Make sure that requests added during sync() aren't missed

Change-Id: I20a7788f3695ef6a99642240230f0d004f034f44
2010-08-24 08:41:08 -07:00
Marc Blank
64dcd7700e Add moveMessage to the EmailService API
Change-Id: Ia10f4a75b4c1288ec52dda8b925b9aee442b8e4a
2010-08-23 21:59:14 -07:00
Makoto Onuki
6c36b4c613 Add shutdown() to providers.
They're needed for unit tests.
I was hoping this would solve some of the unit test issues, but it didn't look
like so.  But still they're nice to have.

Change-Id: Ibf6ae78055560d27aac5934d567a17084de99d84
2010-08-23 12:36:57 -07:00
Marc Blank
f19f9cf4d3 Simplify AttachmentDownloadService; add unit tests
* Changed our queue from a TreeMap to a TreeSet that uses an easily
  testable comparator
* Remove the ugly bit twiddling priority computation
* Test DownloadSet (the logic behind queue ordering, addition,
  removal, query, etc.)

Change-Id: Ia8427900b8f39a243a5407349775802d0a4fad4f
2010-08-23 11:42:40 -07:00
Makoto Onuki
567ed19f7b Follow up to I684ab2ed.
Catch RuntimeException so that it won't crash even with malformed URLs.

Change-Id: I58da906860ac30b5c9daf68bb672f19917ad0ece
2010-08-20 17:46:53 -07:00
Makoto Onuki
d755cdce13 Fix attaching from Gallery.
Fix the attachmentExists test, so that now it works with the content: URL.

Bug 2937846

Change-Id: I684ab2ed0e4fbe4784a165697084b868610bd274
2010-08-20 17:10:00 -07:00
Marc Blank
0e6d972641 Convert Controller to a full service
Change-Id: I2078fd047ff46f85936c8bf798a5edd3678bb5b4
2010-08-20 13:34:09 -07:00
Andrew Stadler
a14a24a5bc Add Add & Remove Account options to AccountSettingsXL
* Add account is a large (+) in the action bar
* Remove account is a new item at the bottom of the settings fragment
Note: Add account works, remove account just toasts for now.

Change-Id: I5b3b8ab8c7d328cb78d103c47b9eca866466f9df
2010-08-19 16:28:52 -07:00
Marc Blank
7894ee82b3 New attachment download support for Controller (IMAP/POP3)
* Supports download via AttachmentDownloadService

Change-Id: I66143a79b99dcdbd307524ba0b81227f09a00e4a
2010-08-19 15:44:44 -07:00