Commit Graph

2007 Commits

Author SHA1 Message Date
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