• Home
  • History
  • Annotate
  • only in /packages/apps/Email/tests/src/com/android/email/activity/
History log of /packages/apps/Email/tests/src/com/android/email/activity/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
03cd72805dab0379ed255d151f1c17cc60655fc3 25-Apr-2012 Marc Blank <mblank@google.com> Revert to old Email app

* These are the last sources in the ICS-MR1 tree

Change-Id: Ida4651bddd92a06a518d00f3e1f275ab3a80c8ae
ailboxFinderTest.java
4f813fb12937de74d3ccec730b8de0c9de7a87e0 14-Feb-2012 Marc Blank <mblank@google.com> Convert POP3 to service

* Remove MessagingController and (almost all of) MailService

Change-Id: I8953b58b237de6a71fda770f1727bd94081fec55
ailboxFinderTest.java
41495761db2d22377a2db2f0cc98a78bdff7daa6 21-Oct-2011 Ben Komalo <benkomalo@google.com> Delete stale test.

This test has been disabled for over a year. I call it unnecessary and a
burdern at this point.

Bug: 2938323
Change-Id: I98bd67a0ed3bb1b880a5e7b6bcf8c90b8cf2de46
etup/AccountSetupNamesTests.java
513486cfb5d446f098b1c97d16932e51e316d1a7 13-Oct-2011 Ben Komalo <benkomalo@google.com> Fix per account starred mailboxes.

We always switched to combined view when we tapped "Starred" in a
mailbox list. This was confusing since tapping to show the mailbox list
will take you to the mailbox list for the combined view, even if there's
only one account on the device! Other confusing things happened like
showing coloured account chips, even if there's only one account.

This fixes it so that we pass the account ID when building the
selection. Lots of wiring to make it happen, but very little change
overall.

Bug: 5388326
Change-Id: I1fe52f211cceca0c1b26581e200f3c7adcd0734a
essageOrderManagerTest.java
1b65e834c3d3281de9e0eb74e04def6ded8baa14 15-Sep-2011 Marc Blank <mblank@google.com> Allow multiple wildcards in providers.xml; add hotmail domains

* Change handling of the providers.xml file to allow asterisk
as a placeholder for an individual domain name part
(the previous behavior was a very greedy wildcard)
* Add hotmail aliases using the new scheme
* Update unit tests

Bug: 5318329
Change-Id: I73a0dfcb956830b18c5460a1b3ddfc58459d08c9
etup/AccountSettingsUtilsTests.java
32bed4bb8e23d7322ab338773d135845f392d3cf 24-Aug-2011 Ben Komalo <benkomalo@google.com> Fix unit tests.

- make attachment download service injectable
- fix assertions for account manager account checks
- update message compose ID's so they're consistent on tablet/phone

Bug: 5198343
Change-Id: I9976f5b9e5590dd61fb0a62937d3f9203fefe236
essageComposeTests.java
0e6a521747970d5427f10c25cdc070d2341dc93a 08-Aug-2011 Ben Komalo <benkomalo@google.com> Move IntentUtils to emailcommon.

This is needed so Exchange can fire up Email activities.
No change other than the move.

Bug: 5122497
Change-Id: I6ee3f61654745fafd444314ecf75eb8ae6bbd01d
ntentUtilitiesTests.java
0932da35f5696f99cbba9abf8d98818576b784fb 18-Jul-2011 Ben Komalo <benkomalo@google.com> Filter out inbox from recent mailboxes

Bug: 5039553
Change-Id: I9b58e9331028250f9bc3027429d2a6ec418186d6
ecentMailboxManagerTest.java
0796b8aa61d6782a425e68cd77763ea1e701e592 15-Jul-2011 Ben Komalo <benkomalo@google.com> Don't save empty drafts.

Note: all unicode sending unit tests are broken due to chip issues. I've
filed a separate bug on that.

Bug: 5012204
Change-Id: I17392f65e5bd8349780b79d9cbe10492d8e7a7d9
essageComposeTests.java
d6ad9b8c0315e7718d1713cec1a81b5a82d768ac 14-Jul-2011 Ben Komalo <benkomalo@google.com> Fixup recent mailboxes.

The default recent list should be pre-populated and fall off the list as
normal. The previous implementation showed a default list if there were
no touched mailboxes, but then the default list disappeared as soon as
there was one touched.

Bug: 5020673
Change-Id: Ifad607a9d36feff837ab42d039ce9209f223f345
ecentMailboxManagerTest.java
cf7cd933dba6845b365c4bed28ae53580fefbef0 11-Jul-2011 Ben Komalo <benkomalo@google.com> Filter out Search mailbox from recents.

Bug: 5015109
Change-Id: I4e4982bbedc388529eb2f3a9c06ecac47a0a85f0
ecentMailboxManagerTest.java
2ac164f609faea134b8fa1d6c0ebc90ccda91166 01-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 4982804 / nested fragment transaction

Post MessageOrderManager callbacks instead of calling them directly
to break the loop.

Change-Id: I033121f7bdbadf6edd7a0fab87b960b737da820e
essageOrderManagerTest.java
a6212c88e0fb5906cb4065c775c1f4c0b83b7ca4 30-Jun-2011 Makoto Onuki <omakoto@google.com> Fix bug 4978035 Precondition failure: Not combined mailbox

Also added test.

(For some reason the message count doesn't get set properly on tests...
I'll investigate it when I get around to it...)

Change-Id: I83f3b6f2079da06b2d4973419d2296e6492de1d3
ccountSelectorAdapterAccountsLoaderTest.java
ccountSelectorAdapterTest.java
0b8e04c84def3a06ef45126b48efc485fa0a7628 29-Jun-2011 Marc Blank <mblank@google.com> More Store cleanup

Change-Id: I8f542175b4468c7a320322a57bfdaf19a7320165
etup/AccountSettingsTests.java
etup/AccountSetupOptionsTests.java
50d934360d51392ac2aa6f11de4d6e1446cf78c9 29-Jun-2011 Makoto Onuki <omakoto@google.com> Fix the "onPostExecute executed even when cancelled" issue

Renamed onPostExecute to onSuccess and made sure it won't called
if a task is cancelled in time.

Also removed isCancelled(). To implement it right we should make sure
that onPostExecute() isn't finished when setting mCancelled, but it's a bit
of a pain to implement right, and we don't really have to use it.

Change-Id: I3a0baf504506ffc4952a5553f7098a8415842fa3
indParentMailboxTaskTest.java
6b256f1fa10b858ae2bea827b65c8608592e4ba3 29-Jun-2011 Ben Komalo <benkomalo@google.com> Wire through results count in search header.

Change-Id: I817236d9c3294acb25b62724cc8c99d47df7f354
essagesAdapterTests.java
37c8a70d644ffc91a880f67a80a8558b4c53d5c3 28-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce a SearchCursorLoader

This loader will abstract away the waiting for the controller to cleanup
the existing contents of the search mailbox

After some additional, to-be-done plumbing, I'd like
Controller.searchMessages to return some results info (like # of results
at the least) so that the SearchCursor returned can relay that
information to the client (which can then do a lot more interesting
things at that point).

Change-Id: Ifcba0ddf7170c56dac9f3b44128988a5aa4ca887
essagesAdapterTests.java
4689cb7100a8b1cfa188499a9910912d15b3dad3 27-Jun-2011 Makoto Onuki <omakoto@google.com> New account spinner

- Don't use the action bar spinner.
Instead use a custom view to show the current account.
(It's not a spinner; now we show the dropdown list by ourselves,
which gives us more detailed control.)

- Also show the current mailbox name/unread count with the account name.

- Removed the mailbox info loader in ABC.
Instead, now the AccountSelectorAdapter loader loads the current
account/mailbox name, and the unread count as extras.

- Now ABC.Callback.onMailboxSelected passed an account ID as well
as a mailbox ID.

- There's new code paths that can cause the "fragment transaction in
onLoadFinished" exception. We need to fix this properly, but
for now we just use commitAllowingStateLoss().

Bug 4948352

Change-Id: I73bb8b7530f8328ca1c86382ac0a54086ad061d7
ccountSelectorAdapterAccountsLoaderTest.java
80d3875d306c60da83e547c573427627911f8a99 23-Jun-2011 Makoto Onuki <omakoto@google.com> Action bar: Use laoder to get current mailbox info

Before this CL, we had this crazy plumbing from MailboxListFragment
to ActionBarController to update the current mailbox name/message count.

This wouldn't work on 1-pane, so now ABC just gets the current mailbox id
from UIC and loads the name/count with its own loader.

Also...
- Fixed bug 4904450 and bug 4460470: Now we consistently use FolderProperties
to get proler display names and message counts.

- Renamed some confusing names in AccountSelectorAdapter

Change-Id: Ic7bea6da6d2859006fb8f9263024c7d5e62b1e7f
ccountSelectorAdapterAccountsLoaderTest.java
f1d9367909005883021a4aa48197fcf73d1c0a64 22-Jun-2011 Jorge Lugo <jlugo@google.com> Merge "Fix behavior if replying to own sent message"
0404a331ad14f3473be5905f73956626896b05c8 22-Jun-2011 Marc Blank <mblank@google.com> Merge "Improve EmailContent caching..."
6e418aa41a17136be0dddb816d843428a0a1e722 19-Jun-2011 Marc Blank <mblank@google.com> Improve EmailContent caching...

* Guarantee that up to 16 Account (with HostAuths), and Policy rows
are always cached. Also, 6 commonly used Mailboxes per Account
(Inbox, Outbox, Drafts, Sent, Trash, and Search)
* Precache these rows when EmailProvider starts up
* Ensure that newly added, precachable rows are cached when created
* Clean up some inefficient/wrong caching code
* Fix a commonly called method in NotificationManager in which we
load a single Mailbox row using selection vs withAppendedId
* Confirm that we don't read from the database in typical use and
heavy message loading
* Add a special URI for finding mailbox by type (using the cache)
* Add special-case code for EmailContent.count(Account.CONTENT_URI)
which is used in a number of places (including on the UI thread)
and whose value is easily determined
* Add a special URI to get the default account id
* Confirm that all unit tests work

The goal here is to be able to load all Account, HostAuth, Policy,
and Mailbox objects (by id) without worrying about disk access.
There will still be a single disk read for uncommon Mailbox reads,
but this should be considered acceptable.

Change-Id: Ibc9aa7acc73185e360b0b6f3053b90a985e97210
TODO: Unit tests
ailboxFinderTest.java
essageComposeTests.java
ecentMailboxManagerTest.java
67be1d5f6b413221ac8e261c7697865d9aa12892 21-Jun-2011 Jorge Lugo <jlugo@google.com> Fix behavior if replying to own sent message

If the address of the account is in the reply-to: field (or from: field
when reply-to: is empty), now populates the To: field with the same To:
field on reply.

Bug: 3504182
Change-Id: I17d7fe4be002b302decb8f0dae95f33d452b7adc
essageComposeTests.java
95ad0f0e93d290b2c630a49a254e61f10b2783c8 21-Jun-2011 Makoto Onuki <omakoto@google.com> Wait for initial sync in Welcome.

Change-Id: I5052e8a3e3af5565184c391200b9ab63dff4b50b
elcomeTests.java
ce4cce05b2ee5ea2d9629c189a79f7f30778f534 21-Jun-2011 Makoto Onuki <omakoto@google.com> Fix failing tests

Fixed activity tests and and activity.setup tests.

Bug 4762098
Bug 4766087
Bug 4590590

Change-Id: Ifbd49f38c59854c65b6c48a1b03ca8153bfa558b
ccountSelectorAdapterAccountsLoaderTest.java
ecentMailboxManagerTest.java
369905c95d8b069205f30726edc54122e6bc388f 21-Jun-2011 Makoto Onuki <omakoto@google.com> Fix crashing tests

Some of the tests are still failing, but at least now we can go through till
the end.

- Fixed NPE in WelcomeTests (caused by the mock context not returning a proper
layout inflator.)
- Removed the rainy day test from MessageFileViewTest.
(Not setting a proper intent will result in the argument check in
MessageFileViewFragment)
- Removed unnecessary null check in EmailProvider.getDatabase()

Bug 4766072

Change-Id: I48b92cc91d0417cd9980c131fda8f63a9a6eb990
essageFileViewTest.java
f5418f1f93b02e7fab9f15eb201800b65510998e 14-Jun-2011 Marc Blank <mblank@google.com> Move Account into its own top-level class

Change-Id: Ide7c991b7d4d418dbe17164421425bf898ba64ee
ccountSelectorAdapterAccountsLoaderTest.java
indParentMailboxTaskTest.java
ailboxFinderTest.java
ailboxFragmentAdapterTest.java
essageComposeTests.java
essageListTests.java
essagesAdapterTests.java
elcomeTests.java
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
85e4c101b014857fe40f87c3837b82564cfc5b6c 08-Jun-2011 Marc Blank <mblank@google.com> Remove storeUri's except during auto-setup

* Remove per-store limitations
* Use constants for VISIBLE_WINDOW, rather than having the
potential for differences between Stores

Change-Id: Idd5e0874bba6e3390e4f093bcb03f4b1bb399c11
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOutgoingTests.java
313586c8eb4e23ceec068b82f3dc0be1c8a7045f 07-Jun-2011 Ben Komalo <benkomalo@google.com> Introduce client cert alias for HostAuth.

Some email servers require client certificates to be presented to
establish an SSL connection. While this certificate will be maintained
by the system key store, we need to store the "alias" of the certificate
stored in that system store.

Wiring up to use the actual alias will be done in future CL's. It is
currently unused.

Change-Id: I8d1290151342daea9ceb0df8a4088405b44faa81
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
1b404f4fff39977e4f8edc9258c1bd1075da11c6 07-Jun-2011 Todd Kennedy <toddke@google.com> Collapse MailboxAdapter & MailboxFragmentAdapter

MFA was the only subclass of MA and the abstraction no longer made sense.
Collapse the two into a single adapter class.

Change-Id: I32c6f027bc37f3da08626f743c3f494e5f48c3f0
ailboxFragmentAdapterTest.java
cb530b4e9139a8049cf639c28613630e9a9dbc48 07-Jun-2011 Makoto Onuki <omakoto@google.com> Merge "Use the CursorWithExtras pattern for the message list."
e3924188409b631c9ed53cf0b8f1fb455c3ef67d 07-Jun-2011 Todd Kennedy <toddke@google.com> Add recent mailboxes to the account spinner

The ability to change mailboxes using the spinner is currently only implemented
for the two-pane UI. one-pane implementation will come in a future CL.

Change-Id: If72e9d9d607508553c918f5523e748e8a481ff84
ccountSelectorAdapterAccountsLoaderTest.java
41878c2813d9948af5d333e2bf4d063c538d3c19 03-Jun-2011 Makoto Onuki <omakoto@google.com> Use the CursorWithExtras pattern for the message list.

This will make the message list a lot snappier.

We were using two different loaders for the message list; one is to load
the meta information and the other to load the actual message list.

Unify them using the CursorWithExtras pattern.

Change-Id: I02957bbca1b1fb74ca6eca14ad2535dfdbf03a5a
essagesAdapterTests.java
3a1e874a9cedf1a579c44d9342937777c8f21d18 06-Jun-2011 Todd Kennedy <toddke@google.com> Fix filtered query

we need to return 5, post filtered, results. previously, we were returning
5, pre filtered, results. Also add a test to catch this condition.

Change-Id: Id25f4bf79081c42a2012e0e51b36142120c83b20
ecentMailboxManagerTest.java
f04c832f23b14aa26bf584eb9a82f9bc06279524 04-Jun-2011 Todd Kennedy <toddke@google.com> Add ability to track mailbox recency

Change-Id: I1bcc7928ea7065a5daa262b7cea7ee3e21981675
ecentMailboxManagerTest.java
15842c522ec50584fcf04e1ffa47025bfef01715 03-Jun-2011 Jorge Lugo <jlugo@google.com> Fixed reply-all bug

Upon hitting reply all, all email addresses except that of the source message sender
go in the CC: field. Previously they all went in the TO: field. Updated 3 tests
in MessageComposeTests.java (testReplyAllAddresses1(), testReplyAllAddresses2(), and
testReplyAllAddresses3()) to reflect this new behavior.

Bug: 4534058
Change-Id: I852daebdd8843a45f685eecc67f757c87925bb6c
essageComposeTests.java
844bf745044b4564f42a68f8b7d40105c4def294 01-Jun-2011 Makoto Onuki <omakoto@google.com> MailboxListFragment: In-place nested mailbox navigation

Now we reuse the same instance of the fragment for nested mailbox
navigation. (Don't use fragment transaction)

"CursorWithExtras" now only has the child count, so I removed the
bundle version and added a concrete class to MailboxFragmentAdapter.

With this CL the nested mailbox navigation on 1-pane should work, but
not back navigation. (Back press event isn't connected to the
fragment yet.)

Change-Id: I2c23651d9c8edb5fe062c68bbb9b462c8949ded4
indParentMailboxTaskTest.java
b535e436f37fda4a18a939ab3afc134f9967ec8a 20-May-2011 Ben Komalo <benkomalo@google.com> Merge "Move HostAuth to top level class."
12b82d9374947c9268217f45befe8a74bd9b60d7 20-May-2011 Ben Komalo <benkomalo@google.com> Move HostAuth to top level class.

No other changes made.

Change-Id: I1c6497c98abc0f99443ea42d8aed6295b263c123
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
d531dc3058c52b1e3ee2ee53eb8d63d6177d9f91 19-May-2011 Makoto Onuki <omakoto@google.com> Fix opening Starred mailbox.

We need to pass around the account ID with onMailboxSelected too.
(It's kinda sad it wouldn't have happened if we had par-account starred
mailbox.)

Also made sure MailboxListItem.mMailboxId now really contains only a mailbox
ID. Before this chage, we stored an account ID to this for an account row
on the combined mailbox.

Bug 4452811

Change-Id: I732fd8eb18f787f4a700a45a40768f96e3bb8751
ailboxFragmentAdapterTest.java
ailboxesAdapterTest.java
2ed7a86949b2b2a95017525145ad421b9e5d0e38 17-May-2011 Makoto Onuki <omakoto@google.com> Support pre-HC style account shortcuts

Account shortcuts used to point at MessageList directly with a
content://com.android.email.provider/account/ACCOUNT-UUID URI.

Hook these intents and open Welcome instead.

On Eclair and before, we stored an account-ID directly as an extra,
but this style is no longer supported.

Bug 4208879

Change-Id: I9fecb0723743377a6d7c7e84626e8613f2356492
essageListTests.java
4c4e4c3515c3e3300e03f90e02a0c520dc2dff32 13-May-2011 Makoto Onuki <omakoto@google.com> Clean up the method to build message list selection.

- Moved the method to EmailCommon.
- Use *_SELECTION for magic mailboxes
(meaning we now use subqueries for magic mailbox selections, rather than
building the mailbox ID list by ourselves)

Change-Id: I3ebf6af62fd912fea6faea0f75e05fc61c87af3b
essageOrderManagerTest.java
53ea83ebf91f820692e8fa8e781f5cc982dd94db 14-May-2011 Ben Komalo <benkomalo@google.com> Move Mailbox to top level class.

No other changes made.

Change-Id: I3d8f3c521dc0d902be313b25252b4b6a4a96e7ee
ailboxFinderTest.java
ailboxesAdapterTest.java
2866284a6d4ee4b368fcaf412c540b21d457e065 13-May-2011 Ben Komalo <benkomalo@google.com> Rename AccountSettingsXL -> AccountSettings

This activity already supports phone and tablet mode.
Only renames in this change - no other change.

Change-Id: Ieca17137af45e3860812091f69cd4d9b55ddf3ec
etup/AccountSettingsTests.java
etup/AccountSettingsXLTests.java
94331c96d9397ec451ae3a0a9f825cc4aca2b9d1 11-May-2011 Makoto Onuki <omakoto@google.com> Remove phone activities and implement one-pane

The primary purpose of this CL is to remove phone activities, so the
one pane implementation is very much temporary and primitive, but it
should offer minimal operations.

Change-Id: If57f81db7c605c95664d49044a5cc082beda59c0
ccountsAdapterTest.java
essageFileViewTest.java
essageViewTest.java
5b7e4349175918f3e407e50991de70bbbd5a618b 03-May-2011 Ben Komalo <benkomalo@google.com> Support switching between reply/replyall/forward

This introduces tab navigation on large screens with action bar (a
dropdown for the phone view is yet to be implemented, though the
internals are ready for it).

This requires the side effect that restoring a draft
reply/replyall/forward will attempt to also load the source message in
full for additional information. If that load fails for whatever reason,
the draft just remains a "compose" as it used to before.

Bug: 3117253
Change-Id: I9cff5ed4a5e9abd1338b6dbde28ceb3e4dc2b761
essageComposeTests.java
8d042850fb4257ca879f4d0c60e366b92a4c8422 06-May-2011 Ben Komalo <benkomalo@google.com> Re-work the way MessageCompose handles attachments

Now attachments are actually stored in an explicit list, instead of
being inferred from the state of the UI. This makes it possible to
switch states and restore attachments, and test.

Change-Id: I8c5f80f17f8c9e78d880ac4a1ac6ae22c2ec0579
essageComposeTests.java
c6beaaea590564860b7a61c30c4091dbc66959d1 05-May-2011 Ben Komalo <benkomalo@google.com> Update MessageComposetests with latest refactors

Change-Id: I7ab1275f4f4a803588619952f55fd81520036526
essageComposeTests.java
8112732376d4cc033ee515a6531852ef42266929 28-Apr-2011 Makoto Onuki <omakoto@google.com> Move more UI stuff from activity to the UI controller

- Now all the UI stuff is owned by the UI controller
- Except temporary UI (exchange search and per-mailbox-settings)
- Except error banner
This should be moved too eventually, but I consider it as a low-priority.
I'll leave it as-is for the time being.
- Moved RefreshTask too. The spec for refresh has dependency to the UI.
(i.e. implicit refresh of the mailbox list may not be necessary for
the phone.)

Also renamed the main activity to EmailActivity.

Change-Id: I00585856bdacf69aa4e104178a5cf7352ff6d592
essageListXLRefreshTaskTest.java
IControllerTwoPaneRefreshTaskTest.java
22208771b7b39c5d131372ba6bc45ab23cc22232 23-Apr-2011 Todd Kennedy <toddke@google.com> Add hierarchical folders to IMAP

We now create folder hierarcies for IMAP. This also includes a nifty SQL
statement that will get your existing database into shape.

Change-Id: If07a0632e9b250cf0c33c3e16bfba5816beab94c
ailboxFinderTest.java
0fb68c8f0c7fdfd2571291c7b1d3fefab23fa73e 12-Apr-2011 Ben Komalo <benkomalo@google.com> Add signature when starting from external intents.

Also update some of the tests.

Bug: 3122070
Change-Id: Ia0e4620f54279dc53ca1c4484fec6508c411b418
essageComposeTests.java
3659fdf5afe1704d4ba86384f147d52136efeb95 05-Apr-2011 Todd Kennedy <toddke@google.com> Don't use hidden API

AndroidTestCase#getTestContext() is decorated with @hide. Instead, use
InstrumentationTestCase#getContext(). This gives us the same functionality
[i.e. the ability to load a test-only XML resource] without using a hidden
API.

Change-Id: I866234e227d975bac62c12e6a2e8efe90de0261c
etup/AccountSettingsUtilsTests.java
0b6cb1c3307b10929fca7dc09125a128fc330a19 04-Apr-2011 Makoto Onuki <omakoto@google.com> Store UUIDs in account shortcuts, rather than IDs.

Bug 4192836

Change-Id: I1d6349ed3ad70867f113b9a9f7eb8717b88b24c1
ntentUtilitiesTests.java
elcomeTests.java
74bf57cfafde4095ee67985255cfaa8b1453115e 31-Mar-2011 Todd Kennedy <toddke@google.com> Create separate adapters for mailbox lists

There are currently two places where we use a mailbox list -- in the main
view and in the "move to" dialog. We've replaced the single, modally
configured adapter with two specialized subclasses.

Change-Id: I5dfd5ccd435fefbab4b7647c2bd7a14818f73bf3
ailboxesAdapterTest.java
5e4f1c38724927d7d41713e9e9ff073041d92d73 29-Mar-2011 Todd Kennedy <toddke@google.com> Allow globals in the providers.xml

There are two ways globals can be specified. There can be only one global
character ['*'] and/or multiple wildcard characters ['?']. The global
will match zero or more characters. The wildcard will match any character.

bug 4090086

Change-Id: I07e3edebd1fe989094c68cf047ce5bc9fb91aba0
etup/AccountSettingsUtilsTests.java
44f45f4221f5cd681ac3e9596cedb4f0536a1751 31-Mar-2011 Makoto Onuki <omakoto@google.com> Merge "Don't use findViewById (part 1 -- account setup)"
2fbb3db5d86210d03175ce77ff08c989a96c5864 28-Mar-2011 Makoto Onuki <omakoto@google.com> Don't use findViewById (part 1 -- account setup)

Added two new functions:
- UiUtilities.getView()
is a fail-fast version of findViewById(). Crashes when there's no view
- setVisibilitySafe()
same as View.setVisibility, but doesn't crash even if a view doesn't exist

Let's try to avoid the use of findViewById(), and instead use getView(), *right
after* the layout is inflated, so that we'll always fail-fast if a layout
doesn't have a required view. (Rather than getting a NPE only when the view
is really accessed, which can be in a code path which is rarely executed--e.g.
only when there's a protocol error.)

Let's only use findViewById() only when we're sure no all the variants of a
layout have the view in question and leave a comment to make it clear it's on
purpose.

(UiUtilities has been moved from com.android.email to
com.android.email.activity)

Change-Id: I36e0bab65a989f5d34cf636f13e1eaee084547af
iUtilitiesTests.java
08534762bdded437a7fa0e5e422d311c414e0621 29-Mar-2011 Todd Kennedy <toddke@google.com> Allow globals in the providers.xml

We now allow a single global character ['*'] to be specified somewhere in
the domain attribute. Additionally, we will replace the string "$domain"
with the matched domain in all attributes -- user name, password and URIs.

bug 4090086

Change-Id: I46a637ed364c1a079e1230fa22393a1bac059b1f
etup/AccountSettingsUtilsTests.java
308ce9284793b597797994dfb1fb25155cbe0b20 22-Mar-2011 Makoto Onuki <omakoto@google.com> Better fix for the PendingIntent issue.

Refactor the changes introduced in Ib02842bb.

- Now Welcome and AccountSettingsXL accept intents with URLs of the following
style, and get IDs from query params, rather than extras.

Welcome:
content://ui.email.android.com/view/mailbox?ACCOUNT_ID=1&MAILBOX_ID=2&MESSAGE_ID=3

AccountSettingsXL:
content://ui.email.android.com/settings?ACCOUNT_ID=1

- Now the "new message" and "login failed" notifications use these new style
intents, so the system wouldn't merge PendingIntents for different accounts.

Also:
- Moved all notification creation logic to NotificationController.
(Except the one in CalendarSyncEnabler; which is used only to support
upgrading from pre-froyo and I don't think it's worth refactoring.)

- Note the "password expired/expiring" and "security needed" notifications
aren't changed; they still use extras to store account IDs. This is okay
because these notifications are not per-account.

Bug 4065269

Change-Id: I70737438d2e7c45fd7488a5b0a7105c8568e02f7
ntentUtilitiesTests.java
etup/AccountSettingsXLTests.java
d72f7bdf114a21db6aac66a7e83d6b002c8e8ed5 21-Mar-2011 Makoto Onuki <omakoto@google.com> Improve EmailAsyncTask

Added 6 methods:
- execute{Parallel,Serial}
- cancelPreviousAndExecute{Parallel,Serial}
- runAsyncParallel{Parallel,Serial} (replacement for Utility.runAsync)

Bug 4083415

Change-Id: I5ca33000e52fc5265ccc84a6e5acb0d3359d0eb4
essageListXLRefreshTaskTest.java
fe68c0e7c2672e09076038b36ad24f095633d313 17-Feb-2011 Todd Kennedy <toddke@google.com> Use HostAuth to determine settings changes

There were two TODO's from a prior CL where deprecated HostAuth methods
were removed.

1. Do not use a generated URI to determine if account settings have changed.
Instead, use the HostAuth structure for this purpose.
2. The account key in the HostAuth structure has been deprecated. Remove as
much of it as possible (until the schema of the host auth database changes,
we must still refer to it when adding rows).

In the process, HostAuth tests were broken out into a separate unit test
file.

Change-Id: I4075da09af168f734db7b20a9ef63d4178ac2064
etup/AccountSetupExchangeTests.java
040ddf60cfef4aaecf4bfe1f897fce3248d777a4 04-Feb-2011 Todd Kennedy <toddke@google.com> Resolve build warnings; part 5

Remove dependence upon URIs for creating the host auth structure

Change-Id: I92dee36fa329a8976b76bbd4991ed3469c6475f2
etup/AccountSettingsXLTests.java
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
31d9acbf0623872f9d4a2b3210b5970854b654c7 12-Feb-2011 Marc Blank <mblank@google.com> Email split, part huit: Refactor constants, clean emailcommon

* There are three pieces to this CL (sorry):
1) Move and/or rename some constants into emailcommon
2) Move Utility to emailcommon, moving the few UI
related utilities back into Email (FolderProperties
and UiUtilities)
3) Remove all references to resources from emailcommon
* The three pieces relate in that, between them, they allow
the emailcommon static library to compile cleanly

Bug: 3442973

Change-Id: Ic5e3abaa2a1b36999e0b6653c6c2134ea1bd544f
ailboxesAdapterTest.java
essageComposeTests.java
essageOrderManagerTest.java
a7bc0319a75184ad706bb35c049af107ac3688e6 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part six: EmailContent

* Moved EmailContent to emailcommon

Change-Id: Ib3db1bfcfe74554c0e5afd3cfce6d72f26e9aeb9
ccountSelectorAdapterAccountsLoaderTest.java
ccountsAdapterTest.java
ailboxFinderTest.java
ailboxesAdapterTest.java
essageComposeTests.java
essageFileViewTest.java
essageOrderManagerTest.java
etup/AccountSettingsXLTests.java
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
2193962ca2b3157e79f731736afa2a0c972e778a 10-Feb-2011 Marc Blank <mblank@google.com> Email split, part quatre: Move along, nothing to see here

* No code was harmed, er, changed in the making of this CL
* All that's happened is that code that is needed by both Email and
Exchange have been moved into emailcommon
* This required import changes to many files, which explains the
length of the CL

Change-Id: I4e12455ba057a4a8054fdbd0b578c73afa411c8a
ailboxFinderTest.java
essageComposeTests.java
34e487594da7c63e1e6a98bdf2f13f423d18848e 09-Feb-2011 Todd Kennedy <toddke@google.com> Remove unused import for Log class

Change-Id: I5edb48c11bde8d0785dd6e1857a04949ea122a46
essageOrderManagerTest.java
bddc4e87ef57b2d05e9d0e2bc8dc3e4c8427ae27 08-Feb-2011 Todd Kennedy <toddke@google.com> Fix mailbox adapter & message order manager unit tests

* the new mailbox queries will only catch message that are
"loaded"; by default, messages were created "unloaded", so,
the query was returning 0 results

* extra parens were removed from the query string; the text
needed to be updated to not check for the extra parens

bug 3428077

Change-Id: Iea5867e741b9673985ca020aa3a8425c061324bf
ailboxesAdapterTest.java
essageOrderManagerTest.java
7c1fa2c16195098453b3f3bd9c44a1f7a058e356 01-Feb-2011 Makoto Onuki <omakoto@google.com> Unit test for change Ieec04881 (make sure CC is visible)

Change-Id: Ic6ffbddf80dcbfe39e55d9b579316767a0ff1180
essageComposeTests.java
d0ee1e404db67a238d7017fb77757a0ffb2a4a1b 26-Jan-2011 Makoto Onuki <omakoto@google.com> Fix bug where mailbox list won't update in combined view

The problem was that CombinedMailboxesLoader used the cursor returned by
super.loadInBackground() (which contains accounts), to build a matrix
cursor (which contains special mailboxes and accounts and will be returned),
and *it closed the first cursor* after building the matrix cursor.

However, because this first cursor is the one that CursorLoader sets an
observer, it shouldn't be closed until the returned matix cursor closes.
In other words the two cursors should have the same lifecycle.

Fixed it by using ClosingMatrixCursor that used by AccountsLoader, which
is doing a similar thing, but properly.

Bug 3387730

Change-Id: I554ade001dc25afa869eefb4dcf9887495e6753e
ailboxesAdapterTest.java
7093746dd5017b1dacb726eb7b083922de15612e 21-Jan-2011 Makoto Onuki <omakoto@google.com> Don't modify content URI to non-email providers

The "?limit=" param is only supported by EmailProvider, so don't add
it to other URIs.

Doing so causes a permission error when opening an EML attachment on gmail,
because we're granted the permission only to the passed URI, but not to
the URI with the "?limit=" param.

Bug 3371630

Change-Id: I88fff88a7e48e5bc958124eedec3e592978a40c7
ontactStatusLoaderTest.java
946239e8a0e01c628fae61894d3d48248b74cefc 18-Jan-2011 Andy Stadler <stadler@google.com> Add per-account preference for bkgnd attachments

* Add flag to Account record
* Add checkbox to Account Settings (IMAP & EAS)
* Add checkbox to Account Setup (IMAP & EAS)
* Add flag to backup/restore logic
* Update Account & AccountSetupOptions unit tests

Bug: 3360873
Change-Id: I0c407776ede4110f33716644f6f027938f21130a
etup/AccountSetupOptionsTests.java
d072f9905d8572f454be1f2ea5d7ba173d2b57d1 13-Jan-2011 Makoto Onuki <omakoto@google.com> Don't show trashed messages in Starred mailbox

Also show the *total* starred message count (excluding trashed starred)
in the mailbox list, not *per-account* starred count.

Bug 3346872
Bug 2149412

Change-Id: I2274f215f994b62280ac6138982b927cec22c677
ailboxesAdapterTest.java
2959a7e073c87e2fa5fab42ec543b352a91cf187 23-Dec-2010 Andy Stadler <stadler@google.com> Fix ANRs from Email.setServicesEnabled()

* Create sync & async versions
* Rename all callsites so sync is very apparent
* Fix callsites appropriately
* Clean up interaction between reconciler and setServicesEnabled

Bug: 3133770
Bug: 3134677
Change-Id: Iefbc7814d9aa390baea6345e450e2a4768bf0a9a
essageComposeTests.java
c849936a36424645af73dc307b19778a89d6ee84 13-Dec-2010 Makoto Onuki <omakoto@google.com> Fix unit tests

- Now ProviderContextSetupHelper.getProviderContext() invalidates DB cache

* MailboxAccountLoaderTestCase
- Save hostauth properly
- (ProviderContextSetupHelper invalidates cache before each test)

Bug 3280911

* SmtpSenderUnitTests
- Use ProviderContextSetupHelper to create isolated context,
which now also invalidates DB cache

Bug 3280913

* MailboxFinderTest
- When kicking Controller.Result methods directly from tests,
call the raw callback, rather than the one wrapped with
ControllerResultUiThreadWrapper, to make it synchronous.

Bug 3280898

* MessageViewTest
- Disable testOpenMessage()
This test doesn't work because it sets up test data in an isolated
context but the activity/fragment don't see them because they
use the real context.
I have no idea why it worked before... Maybe because there were
accounts/mailbox/message with the same ID in the DB by chance.

Bug 3280905

Change-Id: I6beb08c58fff102e90bebd2c35f70820268b9e62
essageViewTest.java
3a4b9e140e6649062117f32d850951bd928f0fd7 08-Dec-2010 Andy Stadler <stadler@android.com> Fix failing tests in AccountSetupExchange

A recent change was short-circuiting the logic that loads
the UI from the account. This fix simply resets the flag
so the test can reload the UI multiple times as it tests things.

Change-Id: I7cc53e2766b78172e5a7b05088e94fdec99ae0d6
etup/AccountSetupExchangeTests.java
d1ee5b8fa5fe92df1ded5953a9e3f001b38a1ac7 30-Nov-2010 Makoto Onuki <omakoto@google.com> EML viewer: Set title, and show arrow next to the app icon

- Set "Viewing FILENAME" as title.
- Home icon now has "back" arrow. Closes the activity when clicked.

Bug 3221312

Change-Id: I689499e10704d3c5d206df4aa12e21db9687c4c5
ccountSelectorAdapterAccountsLoaderTest.java
ailboxFinderTest.java
essageFileViewTest.java
essageViewTest.java
08e1f2f782140f454a8ffda65424da1270096d8a 24-Nov-2010 Makoto Onuki <omakoto@google.com> Don't show account dropdown when there's only 1 account.

Bug 3225851

Change-Id: I7b411f8047e3b26cfe53f17c46c3e2611fb8ae9d
ccountSelectorAdapterAccountsLoaderTest.java
931ca67a1f1baa0c1fd115124e35183c7786fc63 09-Nov-2010 Makoto Onuki <omakoto@google.com> New message view command layout

UI Changes:
- "Move", "Delete" and "Mark as unread" became action bar commands.
- The message view bottom panel now only has "newer" and "older" buttons,
with the current position in the message list. (shown as POS of TOTAL)
- The buttom panel is now shown only on portrait

Non UI changes
- MessageOrderManager now keeps track of the current cursor position
as well as the total message count.

- Fixed the "move_action" string, which was wrongly marked as non-translatable.

Bug 3169454

Change-Id: I599543f9e11000a4ee283d31fbd407b2ab53ac44
essageOrderManagerTest.java
ba4e72a9474bcbe33a8001a1964a02cb41ea08bb 03-Nov-2010 Andy Stadler <stadler@android.com> Cleanup various IMAP/POP manual account setup defaults

These defaults affect manual setup only. There should be no changes
observed in automatic setup, and no changes observed in EAS setup.

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

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

Bug: 2978634
Change-Id: I9b0e345aa9550b5e1cc29aaa22109f03da61af20
etup/AccountSettingsUtilsTests.java
730cc6724ae0fde63d6f11615338d2e01aef7e4b 26-Oct-2010 Makoto Onuki <omakoto@google.com> Add "Combined view".

- Don't show combined mailboxes with regular mailboxes in the mailbox list.
- Add "Combined view" to the account selector instead.
- "Combined view" has all the combined mailboxes and accounts.
- Renambed these combined boxes. (e.g. "Combined inbox" -> "Inbox")
- Regular account view still has "Starred" mailbox, but it's actually
"combined" and not per-account.
- Re-order special mailboxes per latest wireframe.

Bug 3138004

Change-Id: I4c5860c6774b10c55ba0ca599373e51105432cf8
ailboxesAdapterTest.java
e9919377ee02958da4f2d2dde3b65c93505b4343 18-Oct-2010 Makoto Onuki <omakoto@google.com> Skip testCommaInserting if screen is off or locked.

sendKey() doesn't work if the screen is off or locked.

We could probably use a WakeLock and KeyguardLock to force the
screen to be on, but that'd require adding unnecessary permissions
to the email app. (not the test apk)

Bug 1737038

Change-Id: Ic036dc4d12770e82bc5de1133d6dd34cd8465f30
essageComposeTests.java
9b5001a34c82ea59b57a790fc221eec3af89e254 13-Oct-2010 Makoto Onuki <omakoto@google.com> Don't use negative IDs with ListView

ListView uses the _id column for some operations, including
onSave/RestoreInstanceState, and if the column contains negative values
they don't work as expected. The same assumption seems to be in other places
as well, so let's just avoid using negative IDs.

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

Bug 3049315

Change-Id: I263b4895212b5f8bb80c98acaf5c4eccd0bfef55
ailboxesAdapterTest.java
02a750dd6478689612d2c49a552c229919bd9553 08-Oct-2010 Makoto Onuki <omakoto@google.com> Fix tests

Bug 3077014
Bug 2992255

Change-Id: I1e8127327158b0821177d0744a60132f89dccdd8
ontactStatusLoaderTest.java
essageOrderManagerTest.java
fb4333b3a5051b08d3a255000bb1b8331e2a1d43 25-Sep-2010 Andrew Stadler <stadler@android.com> 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
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOutgoingTests.java
b1ea9c3c12d8d9da5c1e49a8752076ce60861e9f 07-Sep-2010 Makoto Onuki <omakoto@google.com> 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
ontactStatusLoaderTest.java
resenceUpdaterTest.java
4c3a8ede019f8683a7d15defd995790c4b5ebdac 09-Sep-2010 Andrew Stadler <stadler@android.com> Quick fixes for account setup unit tests

Some of these broke in 8bcb572ccfdac6974c111fe6dfc753a5e0d4e7ca
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
etup/AccountSettingsXLTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupOutgoingTests.java
9c65c146f3d8e60f35f46c815d4121749ad13abd 02-Sep-2010 Andrew Stadler <stadler@android.com> 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
etup/AccountSettingsTests.java
etup/AccountSettingsXLTests.java
e357f5879187124c7af5c2ece5d7d3e4f60f07d2 27-Aug-2010 Makoto Onuki <omakoto@google.com> 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
essageListXLRefreshTaskTest.java
086aac2386a575a0e2c78b1fa8dd8ea13825ae2b 27-Aug-2010 Makoto Onuki <omakoto@google.com> 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
ailboxFinderTest.java
c184f36c2df16431693d7709e28ded593efc3da7 24-Aug-2010 Marc Blank <mblank@google.com> Revert "Convert Controller to a full service"

This reverts commit 0e6d972641c19467d6b26351ce14a3f44c9fd6f4.

Change-Id: I005fc34152396806468edef919a3620961ddb4fe
ailboxFinderTest.java
1abbc55a4590d6572fb17ed94ba7d824065be531 23-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Temporarily disabling crashing test."
d1a05e1cc32e31494af7a62e0395631bef3e1107 21-Aug-2010 Makoto Onuki <omakoto@google.com> Fix occasional fails of MailboxFinderTest.

Some of the tests run code on the UI thread but check the result
on the test thread, without synchronization, which is wrong.

Mark the fields volatile to fix it.

Change-Id: I917493f10fc9a15da57cfbc1e65e8d8e2cffd850
ailboxFinderTest.java
88527082383c5147fba34b074a208199dd303dd6 21-Aug-2010 Makoto Onuki <omakoto@google.com> Temporarily disabling crashing test.

The problem is that this test creates a partial account which will be
used by the activity, but the account is picked up by MailService too
(which is probably not intentional), which crashes because the account
is not properly constructed. (empty address)

Bug 2938323

Change-Id: Ie9ba19ebf72431d086014c1dc191a0c71769dea4
etup/AccountSetupNamesTests.java
0e6d972641c19467d6b26351ce14a3f44c9fd6f4 20-Aug-2010 Marc Blank <mblank@google.com> Convert Controller to a full service

Change-Id: I2078fd047ff46f85936c8bf798a5edd3678bb5b4
ailboxFinderTest.java
2866a0a8d72d78a5fbf73f1fb3473deed985c759 14-Aug-2010 Makoto Onuki <omakoto@google.com> Merge "Properly unregister mock controllers"
4be3bc1ec8a52308ee1998f0a31d7e491e06b3c1 14-Aug-2010 Makoto Onuki <omakoto@google.com> Properly unregister mock controllers

Some tests create mock controllers. They register themselves to
MessagingController when instantiated, but never unregister.

Added a cleanup method, and call it for each instance.

(I was hoping it would spped up unit tests, but it didn't. Still
it's a nice thing to do.)

Change-Id: Ia90f0380aef388d22f7cfcf6e9203e05444b3285
ailboxFinderTest.java
187d0334849cfd922f0df05e57d77224f2f70378 12-Aug-2010 Makoto Onuki <omakoto@google.com> Reworking MessageListFragment.

- Now MessageListFragment uses loaders to load data.

- Now that we use Loader's auto-requery with throttling,
removed the throttling timer from MessagesAdapter.

- Simplified footer mode. (now only "no footer" or "load more")

- Removed saving/restoring list state code.
These method don't really look like working, or at least
not always working. Now that UI's lifecycle is changing,
we'd better redo it from scratch.

- Removed MessageListUnitTests.
It only has tests for onSaveInstanceState/restore of the fragment,
which I virtually disabled.

And minor clean-ups
- Moved the code to save/restore selected state from the fragment
to Adapter.

Bug 2911766
Bug 2897500

Change-Id: I16c7aefecc5409c57fc5fc8c59b5c80d9b7fc164
essageListUnitTests.java
641ae4535828028a19bf7989c75d71caf75ec2dd 12-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize Exchange setup

Change-Id: Ib331d9a7f7be7acbfe355d6a03d9ae07af0cc627
etup/AccountSetupExchangeTests.java
71cc035c55079bf89283d0acd4ff2712f75a82e1 09-Aug-2010 Andrew Stadler <stadler@android.com> Fragmentize AccountSettings

This is phase 1, which simply replaces the phone UX with a fragment-based
equivalent. A subsequent CL will convert it to a large-format multi-pane
version.

Also fix a latent bug in the signatures of the Incoming & Outgoing
settings, both in the reflection code and in the proguard flags.

Change-Id: I86e857af8b9573c0d6070bb21053ce65bb7fe8a0
etup/AccountSettingsTests.java
94506fdaf651363adaf60650d9a2301fdb76724d 04-Aug-2010 Makoto Onuki <omakoto@google.com> Small fixes/clean-ups.

- Fixed account selector default account look-up
- Renamed MessageListFragment.onRestoreInstanceState
to loadState.
(Activity.onRestoreInstanceState is called after onStart,
but this one is called in onCreate, so it wasn't a good
idea to use the same name.)
- Changed mailbox cursur requery timeout to 3 seconds
- Added some TODOs.

Change-Id: Ia2242cd9f74936d24756b800eacd126958eed330
essageListUnitTests.java
b6c1ad0f013319101b32c9c3831920ec39554169 31-Jul-2010 Makoto Onuki <omakoto@google.com> Rename MessageViewFragment2

Change-Id: I28e23c0ff18211db999396c5ba1ad9ef898d4515
essageViewTest.java
206d4e842d287a7a4e6bedf4963fb7f0f58e113f 30-Jul-2010 Makoto Onuki <omakoto@google.com> Split up MessageViewFragment like we did to MessageView.

Break MessageViewFragment up into two fragments, MessageViewFragment, which
is used to show regular messages, and MessageFileViewFragment, which shows
EML messages. (And their base class, MessageViewFragmentBase.)

MessageViewFragmentBase's javadoc has a class diagram.

MessageViewFragment is actually named MessageViewFragment2 at this point
so that GIT correctly finds out the rename from MessageViewFragment to
MessageViewFragmentBase. I'll rename it back in a following CL.

Also added very basic unit tests for MessageView and MessageFileView.
At this point, they just make sure the activities really open and show
messages without exceptions.

I feel like the current naming schema for the activities/fragments is
kinda confusing. Let me know if you come up with better names.

Change-Id: Iff948f4b68cfdb7c1e68f225927b0ce58d34766b
essageFileViewTest.java
essageViewTest.java
b8f31d5490eba7f307ee578426020bff2ee528ec 30-Jul-2010 Makoto Onuki <omakoto@google.com> Helper to create isolated context for provider tests.

The logic came from ProviderTestCase2, but it can be used with other
kind of test cases, such as InstrumentationTestCase.

Extracted from an existing class. We'll need it for new activity tests.

Change-Id: I5741f01d4749fd397704cef330082470f6051bcf
ailboxFinderTest.java
ec15f2356e47d621584cc3fc84c9c02557e0a0df 28-Jul-2010 Makoto Onuki <omakoto@google.com> Extract the mailbox lookup logic into an independent class

This new class MailboxFinder is responsible for looking for a mailbox
by an account id and a mailbox type.

If a mailbox is not found on the first try, it'll tell Controller
to refresh the mailbox list, and try again later.

This will be used by MessageListXL.

Change-Id: I4adc3db025fb271c254aa2b58b3b753281dc7398
ailboxFinderTest.java
e6cc662abc0b5fffe223cda5e980b4f05a4e91dd 08-Jul-2010 Marc Blank <mblank@google.com> Use AccountManager for POP/IMAP; refactor setup classes

There are two major, interrelated parts to this CL:

1) Clean up the activities to reduce the use of Intents to pass
information between activities; instead, we use a common
SetupData structure that automatically saved/restored as necessary
during the setup flow. A fair amount of code and inconsistent
use of Bundle extras has been eliminated in the process.

* Create SetupData structure, setters/getters, and initialization
methods to simplify the preservation of state during setup flow
* Remove all state/flow extras from Intents; Intents now only
specify the Activity to be started, which should greatly simplify
the transition to Fragments.
* Remove all state/flow fields from Activities
* Modify existing setup activity unit tests and confirm tests pass

2) Create AccountManager accounts for POP/IMAP email accounts to
provide consistency in user experience. Also, internal flows are
now identical as between account types.

* Move account reconciliation from SyncManager to MailService, so
that reconciliation is consistent between email and exchange
accounts; move unit tests as appropriate
* Add a "Sync Email" setting for POP/IMAP/EAS
* Change MailService to respect the "Sync Email" setting in
Settings -> Accounts & sync
* Create PopImapSyncAdapterService to handle manual POP/IMAP sync as
requested by SyncManager; add EmailSyncAdapterService to perform
the same function for EAS
* Use new PopImapAuthenticatorService to add AccountManager accounts
for POP/IMAP accounts; setup appropriate stanzas in AndroidManifest
and add related xml files
* Update AccountSettings to use SetupData

Miscellaneous other changes:

* Only allow valid port numbers in incoming/outgoing setup

Bug: 1712475

Change-Id: Ibdac52fb2c5578b86bf3992ddb1acd10f162391a
etup/AccountSetupAccountTypeTests.java
etup/AccountSetupAccountTypeUnitTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
a0b88dc1c893164ff021bc291b35fc3a3bcb7931 15-Jul-2010 Makoto Onuki <omakoto@google.com> Merge "Adding more test to MessageOrderManager"
638c67f4dbad4055b1d89834ca2e140f55a06d66 15-Jul-2010 Makoto Onuki <omakoto@google.com> Adding more test to MessageOrderManager

Added a case where all the message in the message list is removed.

Change-Id: Iedc2dbdf391978bd67d3bcdc260590d98cc9ef7d
essageOrderManagerTest.java
ec29471c7349a9e0b688b90b75e405f8da71540f 05-Jul-2010 Marc Blank <mblank@google.com> 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

Bug: 2734321
Change-Id: I6be8383fe5f217a4bda8e669cb69f439bc8e96b6
essageComposeInstrumentationTests.java
essageComposeTests.java
de0a1c33c9507e96d554ca645d42d07f1241157e 01-Jul-2010 Makoto Onuki <omakoto@google.com> Extract MessageListTask and make it self-contained.

Introducing MessageOrderManager which maintains a message list for
MessageView. It's used to tell if there is newer/older messages
in a mailbox, and the id of them.

Also, slightly related to this, moved mWaitForLoadMessageId to
ControllerResults where it should belong.

Change-Id: I84e32180c7e84a317f2204bb10ad7245ec022dca
essageOrderManagerTest.java
e60d3648fdead20a1624eb8766086980666a20c6 07-Jul-2010 Makoto Onuki <omakoto@google.com> Extract presence check logic into its own class.

Change-Id: I12e449ce7f1d10ed4737581e35367eae84a7f29e
resenceUpdaterTest.java
7f247d1cd316789d2fcab2d1e41fb8af4d7243f8 13-Jul-2010 Makoto Onuki <omakoto@google.com> Disable MessageViewTests

- These tests will probably not make sense with the upcoming UI change.
- Moved testAttachmentWritePermissions to UtilityUnitTests.
It's a test for createUniqueFile, which is now owned by Utility.
- Removed Long.MIN_VALUE hack from MessageView.
New tests should have something better.

Change-Id: I9a09e5e8080a165b010607d1fa3112bcaaab4f90
essageViewTests.java
44b5242edd938450f5e7bc5569852fa5f793da41 30-Jun-2010 Makoto Onuki <omakoto@google.com> Cleaning up MessageView

- Removed dead code/dead comment.
- Moved static utility methods to Utility.
- Renamed some methods.
- Changed the timing to call super methods.

Also:
- Internationalized formatSize()
- Added unit tests for createUniqueFile() and formatSize()
- createUniqueFile now uses File.createNewFile() instead of exists().

Change-Id: Ibc30e15b029ed5088954bd6fc9032e25dddf176e
essageViewTests.java
e4ecb500916591bb5bf1f6fa0cc2e85cc186cb7d 19-Jun-2010 Andrew Stadler <stadler@android.com> Convert AccountFolderList to use a Fragment

* Introduce AccountFolderListFragment and its layout
* Extract all list-related UI into it
* Fix leaking cursor in AccountsAdapter and add unit test

Change-Id: Ica566847d97927b736f515d434c6691c82343290
ccountsAdapterTest.java
601187db42a34b638cc911758b3735bba5d51ada 11-Jun-2010 Makoto Onuki <omakoto@google.com> Introducing MessageListFragment.

- Extracted MessageListFragment out of the MessageList activity.
- This is basically pure extraction, with the following conceptual change.
- Now the MessageList activity doesn't know the mailbox id or
the account id. If it needs these ids, it needs to ask the fragment.
- MessageListFragment.LoadMessagesTask tries to determine the account ID
if it's unknown.

Most code in MessageListFragment is directly copied from MessageList
with minimal changes (e.g. pass mActivity instead of 'this' as a Context).
There's a few cleaning up oppotunities. I'll work on them later in a separate
CL.

Change-Id: Ie004cc49b429f2cd8f9de73df5abb94f3054ea0a
essageListUnitTests.java
851f3219e2bbcfb9c02c439d84d0885d890ded8d 09-Jun-2010 Makoto Onuki <omakoto@google.com> Renaming MessageListAdapter to MessagesAdapter

in line with MailboxesAdapter.

Change-Id: I4ed387db2f5ce1f9bad282521c62eeec0c697db4
essageListUnitTests.java
0a892ae04f0557367a751e1b130e260feccc3c52 02-Jun-2010 Makoto Onuki <omakoto@google.com> Extract MessageListAdapter.

Change-Id: I0e441b7fff925c7703ab88ab54240c5b42d045c4
essageListUnitTests.java
f3c285d4a30dfd1ab6b8f1963f6ae8d936447d35 28-May-2010 Andrew Stadler <stadler@android.com> Refactor AccountsAdapter into its own class.

* Extract AccountAdapter from AccountFolderList
* Use callback instead of hardcoded launch of MailboxList
* Unit tests

Change-Id: Icafce1ef73a99fb61985c649620440656f9b51a3
ccountsAdapterTest.java
0a8030562a5235591a5f5364bf5e6855ffa62861 17-May-2010 Makoto Onuki <omakoto@google.com> 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.

Change-Id: Ic5aee939a2c21f9579a643d0729dd0e9ba81022e
essageViewTests.java
9c9e757917b51cb87c1880b8e8ae14bfed5d84f9 14-May-2010 Makoto Onuki <omakoto@google.com> 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.

Change-Id: I3bf7d34059399a8253c0760ebc392804ea434412
essageViewTests.java
a942858f0dc26158430a93f5dfd2d91f07471d11 26-Mar-2010 Makoto Onuki <omakoto@google.com> Properly handle old style (<= 1.6) account shortcuts.

A desktop shortcut to an account created on donut or before points at
com.android.email/.activity.FolderMessageList, which we've already removed.

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

Bug 2535335

Change-Id: Ie5ffa158882633a4929c4c47a3d9625fd1626863
olderMessageListUnitTests.java
20c067c67c23e81a282cf89440055d4506e37476 20-Mar-2010 Makoto Onuki <omakoto@google.com> Show a calendar invitation icon on message list.

Bug 2522928

Change-Id: Ib29c7ee187cb0d864849b83693906b0a3b490734
essageListUnitTests.java
f3f15c12c93377a30682d0abe6fda88098d9c761 09-Mar-2010 Makoto Onuki <omakoto@google.com> Fix AccountSetupExchangeTests.testLoadFields()

This test has been failing since I60974b85, which is obviously correct,
so I modified the test.

Bug 2488770

Change-Id: I5a2eea19d9f3c3647b7c88a1e0db9297727b8e66
etup/AccountSetupExchangeTests.java
5b46171b83d6a92d6cc84db24fb8815d4f8aa50c 20-Feb-2010 Marc Blank <mblank@google.com> Fix #2443881 (Don't display User name field for EAS account)

* Make the field and label GONE for EAS accounts
* Enable the "Done" button at all times for EAS accounts
* Add test case for this, and clean up bad formatting in tests

Bug: 2443881
Change-Id: Ic80b001e443fa37b7cfeb810b1f31edf22b065b9
etup/AccountSetupNamesTests.java
83457b0235b8a13e2d885d5b7550784ad470bb9c 12-Feb-2010 Makoto Onuki <omakoto@google.com> Preparing for renaming package.

- Made tests use the new package-name-free constructor of ActivityInstrumentationTestCase2.

Bug 2226160
essageComposeInstrumentationTests.java
essageListUnitTests.java
essageViewTests.java
etup/AccountSettingsTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
2a41aa538fe682b1f5dc1dff1ebe3a81c6644193 04-Feb-2010 satok <satok@google.com> Add Signature to Email Composer

Bug: 1323618

- Add signature to the message
- Set selection just after the message
- Add tests for signature
essageComposeInstrumentationTests.java
91237e9dcb0a948f17488b464edabcea0f259d31 03-Feb-2010 Makoto Onuki <omakoto@google.com> Adding script for building Email app without exchange.

remove-exchange-support.sh makes it possible to build the email app without
exchange support.

This script:
- removes all packages under com.android.exchange.
- removes all lines surrounded by EXCHANGE-REMOVE-SECTION-START and
EXCHANGE-REMOVE-SECTION-END

And the resulting source should still build and run fine.

Bug: 2369784
etup/AccountSetupAccountTypeUnitTests.java
etup/AccountSetupExchangeTests.java
8bb0ee3b924f6b0e948733dacac3228f88bd50dc 03-Feb-2010 Andrew Stadler <stadler@android.com> Fix auto-discover / account verification logic

New behavior:
* There are two primary paths through this activity:
* Edit existing:
* Load existing values from account into fields
* When user clicks 'next':
* Confirm not a duplicate account
* Try new values (check settings)
* If new values are OK:
* Write new values (save to provider)
* finish() (pop to previous)
*
* Creating New:
* Try Auto-discover to get details from server
* If Auto-discover reports an authentication failure:
* finish() (pop to previous, to re-enter username & password)
* If Auto-discover succeeds:
* write server's account details into account
* Load values from account into fields
* Confirm not a duplicate account
* Try new values (check settings)
* If new values are OK:
* Write new values (save to provider)
* Proceed to options screen
* finish() (removes self from back stack)
* Added unit test for new loadFields method

Bug: 2412300
etup/AccountSetupExchangeTests.java
46199c65a357de63ae2899b90d5e0b70a1b7421f 27-Jan-2010 Marc Blank <mblank@google.com> Fix #2382368 (NPE in AccountSetupExchangeTests)

* AccountSetupExchange defaultly tries using EAS AutoDiscover, which isn't
appropriate in the unit test setting
* Add an Intent extra to disable AutoDiscover and use it in unit tests

Bug: 2382368
Change-Id: I3d4e8d7194b02da44ad583da0cf2fe60ffb19311
etup/AccountSetupExchangeTests.java
e2ddc55ed008bbcc77ddb22cc193a4e6eb946ff2 06-Jan-2010 Mihai Preda <preda@google.com> MessageView: fix rename next/prev in landscape.

Bug 2353633.
essageViewTests.java
3d00377b356631f555e3938bf63d7c5c292e505a 07-Dec-2009 satok <satok@google.com> Fix MessageListUnitTests

This is supperement of change,33265

* Move custom cursor to inner static class
* Change public to /* package */
* Move PROJECTION to a package
essageListUnitTests.java
4cb25d93a23d086b954c03cb72afb2cf0248f1c4 16-Nov-2009 satok <satok@google.com> Save the state of checkboxes when orientation is changed

BUG: 2239516

* Add tests for save/restore Instance State
essageListUnitTests.java
6bb7c7248af1057eaf6f672be03bc46c8d03472d 19-Oct-2009 Mihai Preda <preda@google.com> MessageView: disable reply&forward for Trash messages.

Bug 2170118
essageViewTests.java
ad4ec0590d3d38c9cca621eb12569b6b6766be02 21-Sep-2009 Andrew Stadler <stadler@android.com> Fix broken MessageView tests

I'm surprised these were working at all.
essageViewTests.java
f2dded3a2fba83dd3f0d14cce6abe467a4ab66eb 12-Sep-2009 Marc Blank <mblank@google.com> Reimplement reply/forward to use mTextReply/mHtmlReply

* Move creation of final reply/forward text (i.e. new text plus
the original) to Rfc822Output, where it belongs.
* Prepares the way for use of SmartForward/SmartReply in
Exchange and replying w/ multipart/alternative in SMTP
* Moved test from MessageCompose to new Rfc822OutputTests, and note
that new tests should be added (this is not a regression; there
were never enough tests here)

Change-Id: Ibefb842f47cc9223714856d99b8d4f55b55f49e3
essageComposeInstrumentationTests.java
cef2344e70b4ab90cbbb01aac00f248976d273df 06-Sep-2009 Marc Blank <mblank@google.com> Rework EAS account creation & ssl operation

* Fixes 2048663, 2025029, and 2100131
* Add "Trust Certificates" checkbox in EAS account creation
* Use custom ClientConnectionManager for HttpClient with registry
for plain, ssl, and tssl (trusted ssl) connection
* Use a ConnectionPool for HttpClient connections
* Remove "Domain" checkbox in EAS account creation
* Remove tests related to the "Domain" field
* TODO Write a test for valid usernames (requires a bit of research)
<name>, <email address>, <domain>/<name, and <domain>\<name> are all
valid, but there might be others

Change-Id: I4a0338df5960bfd3d679a88aaf22d1c49f49992b
etup/AccountSetupExchangeTests.java
5b1ec907612642b1c92363e14c0d1aa296ae0c49 06-Sep-2009 Marc Blank <mblank@google.com> Fix more broken large Email tests (#2087413)

Change-Id: Iacff02d7bb025f6c4d6de9ca8dfa96c6cbb78d67
essageViewTests.java
b8d0c55a05b97e53957dfd6619ea97edeca989cf 04-Sep-2009 Marc Blank <mblank@google.com> Fix reply all behavior to prevent duplicates, etc.

* Also create a bogus account if none exists to prevent setup failure
* Fixes #2087413 (Email large tests failing with Unknown URI)
* Fixes #2097361 (Duplicate email address when replying...)

Change-Id: I9ca2ac5f98db43e9009c22421c69956440356e34
essageComposeInstrumentationTests.java
91a5cd517f1f30131305a299efae1449f9e4118c 02-Sep-2009 Andrew Stadler <stadler@android.com> Clean up handling of Exchange setup option

* Use concrete declarations, not the old sample code
* Remove unused "sample" code
* Create ExchangeSender.java
* Strip out the unused (old sample code) parts of ExchangeStore.java
* Unit test to make sure EAS is being offered
* Fix "account leak" in AccountSettingsTests

This was triggered by donut bug # 2092944 but the solution is
different because we support EAS here.
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeUnitTests.java
2ebf7d97ec23e6054ca18ce94b4ccaa445213883 31-Aug-2009 Marc Blank <mblank@google.com> Fix 2085862; add email address to test Account

Change-Id: I1980935207a96daa0b34bf78931e47b8374c84cc
etup/AccountSettingsTests.java
ea0fea2558f78ba54d9a8fbca6af466d9542d038 26-Aug-2009 Mihai Preda <preda@google.com> MessageCompose: bug 2080075 & 2077496.

- fix bug 2080075, reply to message without text body.
- workaround bug 2077496 by temporarilly disabling the address adapter.
- unit test for MessageCompose.buildBodyText()
- use precompiled regex
essageComposeInstrumentationTests.java
2917e895c7e7c33407a77c76232569d4bd4905cf 29-Jul-2009 Mihai Preda <preda@google.com> MessageCompose:
- set displayName for composed messages (from To:)
- set FLAG_LOADED
- do the save & send in an AsyncTask
- some clean-up
essageComposeInstrumentationTests.java
3e79032dd15b109a81ecb373f7efab39dea040a4 28-Jul-2009 Mihai Preda <preda@google.com> Fix MessageCompose tests.

BUG 2017612.
essageComposeInstrumentationTests.java
21ace307e07cb4c363c4183f4d62f4049f5d92fd 17-Jul-2009 Mihai Preda <preda@google.com> Clean-up in MessageCompose, using EmailContent.Message.

Difficulties:
re-enable EmailHtmlUtil.resolveInlineImage() and
MessageCompose.loadAttachments() that operate on MIME parts.
essageComposeInstrumentationTests.java
9e2c6bd5f21f2d19eef7ebfe30e6fdf94ede0857 23-Jul-2009 Andrew Stadler <stadler@android.com> Remove saveOrUpdate from EmailContent to prevent stale writes

* Numerous classes modified to deal with this change
* Fixes bugs 1993292 and 1994671
* Renamed various setter and getter methods to reflect the underlying
field names
* Renamed syncFrequency to syncInterval in Account and Mailbox
* Convenience method added to AccountSettings to save only user settings
* Calls to content.update(context, content.toContentValues()), which save
all fields, should be double-checked for correctness, making sure that
content has current data and will not conflict with other threads that
might modify that data
* Ran all unit tests to confirm proper function

NOTE: The logic to enforce single default account no longer works,
because that logic is in Account.save() and does not run via
Account.update(). I have patched out a small section of the relevant unit
test and will file a bug to come back for this fix.
olderMessageListUnitTests.java
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeUnitTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
54c1f2bf9a6574240b7c9af253f83a2b566442ab 22-Jul-2009 Andrew Stadler <stadler@android.com> Improvements to default account handling

* Remove all references to Account.mIsDefault, which was not the right
way to find the default account (it is lazy initialized)
* Change Account.getDefaultAccount to getDefaultAccountId, which is more
efficient and suitable in most uses.
* Wrote unit tests for provider default account handling

This should resolve bug 1983390 as well as a few other issues with default
account management.
essageComposeInstrumentationTests.java
essageViewTests.java
ded3c915d88a5ee2d143b75cbf5718dae92a2f1c 11-Jul-2009 Andrew Stadler <stadler@android.com> Add folders to AccountFolderList

* Scan folders and write into child cursors
* Clicking a folder takes you to MessageList
* Remove most links to FolderMessageList (nearly dead!)
* Repair 1-account startup behavior (takes you directly to inbox)
* Cleanup a few basic things like context menus & refresh

TODO: Magic mailbox section at the top
TODO: As always, better linkage to sync engine(s)
TODO: Menus, context menus, etc.
TODO: Proper handling of expandable list - accounts should stay open?
olderMessageListUnitTests.java
ed0e683d86d27aecb39347b1749b5c572594ba6c 20-Jun-2009 Mihai Preda <preda@google.com> Don't drop invalid addresses while editing & check that all addresses are valid before send.

BUG: 1542391
add unit tests.
essageComposeInstrumentationTests.java
6c5460886f83d098ccc8a3f04e46cf0035cc9962 18-Jun-2009 Mihai Preda <preda@google.com> am a4926736: Review Email tests annotations (small/medium/large) and change some annotations based on time.

Merge commit 'a492673609111fe8c41ae152d62547b267346502'

* commit 'a492673609111fe8c41ae152d62547b267346502':
Review Email tests annotations (small/medium/large) and change some annotations based on time.
a492673609111fe8c41ae152d62547b267346502 18-Jun-2009 Mihai Preda <preda@google.com> Review Email tests annotations (small/medium/large) and change some annotations based on time.

Fix an NPE appearing when running the test suite.

BUG: 1566281, 1910409.
essageComposeInstrumentationTests.java
essageViewTests.java
a290f503f14432163f74548a5e5d1dc5003ad049 15-Jun-2009 Marc Blank <mblank@google.com> Refactored EmailStore, EmailContent, EmailProvider

EmailStore goes away, replaced by EmailContent
All database activity is moved to EmailProvider
olderMessageListUnitTests.java
essageComposeInstrumentationTests.java
essageViewTests.java
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeUnitTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
d2b0efa2f591f883eaad3d9f8996bbacdcec5c34 09-Jun-2009 Andrew Stadler <stadler@android.com> Cleanup broken unit tests from previous submit. This now works:

What works:
* All unit tests
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes

What breaks (in approx order of planned fixes)
* Viewing messages
* Composing messages
* Some details of account editing
* Import of existing accounts
olderMessageListUnitTests.java
etup/AccountSettingsTests.java
etup/AccountSetupAccountTypeUnitTests.java
etup/AccountSetupExchangeTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOptionsTests.java
etup/AccountSetupOutgoingTests.java
c0033f24a26a08c47aa38d957f42cf63cfa3c345 09-Jun-2009 Andrew Stadler <stadler@android.com> Convert remainder of app to use provider-based accounts
What works:
* Unit tests, except for com.android.email.activity.setup.*
* Editing existing accounts
* Create new accounts
* Checking account settings against server
* Mail sync using accounts
* Viewing mailboxes

What breaks (in approx order of planned fixes)
* Unit tests in com.android.email.activity.setup.*
* Viewing messages
* Composing messages
* Some details of account editing
* Import of existing accounts
olderMessageListUnitTests.java
essageComposeInstrumentationTests.java
essageViewTests.java
etup/AccountSettingsTests.java
a9576bdad6d9711c9e790fdbad3cbb1ab5c5fb03 08-Jun-2009 Mihai Preda <preda@google.com> resolved conflicts for merge of 7403a547384df0c3cb2cb7539d018a3b2029401d to donut
7403a547384df0c3cb2cb7539d018a3b2029401d 08-Jun-2009 Mihai Preda <nobody@android.com> AI 149664: Move escapeChar from MessageView to EmailHtmlUtil.
Integrate CL 148437 from DocomoEmail.
BUG=1860250

Automated import of CL 149664
essageViewTests.java
a392e070bc9590986e57ef6a89bed34f7efc10d0 05-Jun-2009 Andrew Stadler <stadler@android.com> Add android.permission.WRITE_EXTERNAL_STORAGE
Add unit test to verify writeable to sdcard.

Fixed bug http://b/issue?id=1883487
essageViewTests.java
ca5089efb84fd3c60cf317de474f8e313b8119e5 04-Jun-2009 Mihai Preda <nobody@android.com> AI 149564: Escape special characters such as '<>&' in text/plain for display in WebView.
Integrate CL 144586,145919 from imode.
Remove the Emoji escaping/workaround for WebView.
Also integrate MimeHeader.java from CL 143064 from imode.
BUG=1785319,1860250

Automated import of CL 149564
essageViewTests.java
7436601fae756e8bc1f916560a1c2d1f8ce576fc 03-Jun-2009 Mihai Preda <nobody@android.com> AI 149523: Correctly display inline images in Reply and Forward messages.
Integrates CL 148436, 148515, 148833 from imode email.
BUG=1814789,1860250

Automated import of CL 149523
essageViewTests.java
5182d80674a1ef90586f52355a21a82e8265c10a 01-Jun-2009 Mihai Preda <nobody@android.com> AI 149442: Integrate CL#140625 (Fix attachment uri and content uri confusion) from imode to donut.
BUG=1598754,1860250

Automated import of CL 149442
essageViewTests.java
93116fe28ed366a4cc2285fba2019c0b4a316a31 07-May-2009 Andy Stadler <nobody@android.com> AI 148457: Allow exchange accounts to be set up without an empty domain
specification. This relaxes a rule that was incorrectly applied.
BUG=1740626

Automated import of CL 148457
etup/AccountSetupExchangeTests.java
e67a433c449bd798ab3a639e31435a6a34f92abf 07-May-2009 Andy Stadler <nobody@android.com> AI 148381: Fix broken tests
BUG=1776149

Automated import of CL 148381
etup/AccountSettingsTests.java
843125b98a8130069fb4cdca92029fed3e189e7b 05-May-2009 Andy Stadler <nobody@android.com> AI 148300: Reduce memory waste in getTextFromPart(), and improve error handling.
Fix NPE's in loadMessageForViewBodyAvailable().
BUG=1831272

Automated import of CL 148300
essageViewTests.java
067d0a87fa88436aa9fbbaf9767102c102d2a6ce 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148097: Fix bug in exchange account setup (actually it only affects
editing existing accounts). Added simple functional tests for
Activity UI.
BUG=1812798

Automated import of CL 148097
etup/AccountSetupExchangeTests.java
0cfffc5222f951475b249f7ed1c8ceefb34f6ffe 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148091: Manual merge CL 148078 which resolves bugs when you have non-ASCII
names in email address fields of MessageCompose.
BUG=1676657

Automated import of CL 148091
essageComposeInstrumentationTests.java
c05afb24bbb47be9b9c5224cfe9aa6a3a84b6870 30-Apr-2009 Andy Stadler <nobody@android.com> AI 148019: Add "accountInstanceLimit" to stores.xml so a given type of connection
(e.g. EAS) can limit itself to n (usually 1) accounts per device.
The UI for this is really simple - don't show the EAS button when the
limit is reached. More work would be required in
AccountSetupAccountType.java in order to do a more sophisticated UI
(e.g. show the button but pop a toast if the limit is reached.)
BUG=1740626

Automated import of CL 148019
etup/AccountSetupAccountTypeUnitTests.java
c6039f7d17eea53ea7aa59dfade42d9546440929 14-Apr-2009 Andy Stadler <> AI 146134: Add persistence API for remote stores & folders to use while
syncing. This provides a key-value store, per folder, that
can be used by network Stores to record persistent data such
as sync status, server keys, etc.
Note that, by definition, this only applies to remote folders
(e.g. IMAP, POP3). You'll see everywhere that LocalFolder is
passed null, and this is correct - LocalFolder *is* persistent
storage and does not need external help.
Note to reviewers: The core changes are Folder.java,
LocalStore.java, and LocalStoreUnitTests.java, so please give
them the bulk of your reviewer attention. The other files
are just following along with minor API changes. Of those,
the one worth close examination is MessagingController.java,
which is the only place in the system where remote Folders
are bonded with Local Folders and thus where this new API
comes into play.
Note to jham: Can you please take a look at
LocalStore.LocalFolder.setPersistentString() and recommend
better SQL foo than my primitive test-then-update-or-insert
logic, which is not transactional or threadsafe.
BUG=1786939

Automated import of CL 146134
essageViewTests.java
ea6fea9bb22368c10083d5dce52adae86e51a243 08-Apr-2009 Andy Stadler <> AI 144953: Provide UI for push mode accounts.
1. Generalize the code for the various spinners that control
account check frequency.
2. Provide an API for looking up store attributes (and refactor
existing instatiateStore logic to use it).
3. Cleanup the old code that was used to setup frequency spinners.
4. Hardwire Exchange accounts to default into push mode.
Notes to tester:
1. For each account type (POP, IMAP, EAS) we need to check that
auto & manual creation "do the right thing" for frequencies.
POP & IMAP should offer "none" or time intervals, while EAS
should offer "push", "none", or time intervals.
2. EAS accounts should default to "push", all others to "15 min"
3. Make sure that you can edit existing account settings and see
the right choices (only EAS should be offered push).
4. I couldn't write an automated test for the mail checker service,
please confirm that POP & IMAP accounts are checked at the right
intervals (or never, if set for "none".)
BUG=1776149

Automated import of CL 144953
etup/AccountSettingsTests.java
etup/AccountSetupOptionsTests.java
ae8ca3fbd1545c3a94011d7d70bcadac99e7779f 27-Mar-2009 Andy Stadler <> Automated import from //branches/donutburger/...@143018,143018
essageViewTests.java
3469902379242c723b871d1dcb09b02d0998d538 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
essageViewTests.java
fd09f8019aa079a3be5648179dc0e72886dd11c0 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
essageViewTests.java
96c5af40d639d629267794f4f0338a267ff94ce5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
olderMessageListUnitTests.java
essageComposeInstrumentationTests.java
essageViewTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOutgoingTests.java
8c2158a5ebb88e226c23b66ff95910158a2727df 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
olderMessageListUnitTests.java
essageComposeInstrumentationTests.java
essageViewTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOutgoingTests.java
1f5bbf66d14caf6c8e7fb594fd1203601f588e93 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
essageComposeInstrumentationTests.java
7a8703fda965e08ee255ef5f40f7e121ebf2f5e6 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
essageComposeInstrumentationTests.java
88a1d6f92da47dc816377ee8911db15927b9f62b 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
olderMessageListUnitTests.java
essageComposeInstrumentationTests.java
ff4eb775dfc72375053733d7b8a0b18c4f43dbbb 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
essageViewTests.java
f7ae27b973c7a93cd5fb8432940179f6b76a9548 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
essageComposeInstrumentationTests.java
687f9962d7095e18ef994cd0e64337f02ed1a5bd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
essageComposeInstrumentationTests.java
etup/AccountSetupIncomingTests.java
etup/AccountSetupNamesTests.java
etup/AccountSetupOutgoingTests.java