Commit Graph

3222 Commits

Author SHA1 Message Date
Makoto Onuki
09a0e9b5dc Merge "Move restore account to EmailProvider." 2011-06-20 18:46:09 -07:00
Makoto Onuki
9dad9ad973 Move restore account to EmailProvider.
In order to reduce the UI initialization code, move
let EmailProvider restore accounts when it opens the DB.

Backup can be moved too, but I just leave it as a TODO.

Change-Id: Id5c1810904db6abaecbfecbaa8d2d53834ebf07b
2011-06-20 18:19:17 -07:00
Jorge Lugo
ae95fbf4d0 Merge "Added quick responses." 2011-06-20 15:10:06 -07:00
Ben Komalo
2441dd5cbb Merge "Cleanup and collapse some methods together." 2011-06-20 14:49:47 -07:00
Jorge Lugo
5a3888f35b Added quick responses.
Added "Insert quick response" button to MessageCompose's action bar. Clicking
it opens dialog with available quick responses. Selecting one of the responses
will insert it into message body at the current cursor location. Also added
menu in account preferences to create, edit, and delete quick responses.

Change-Id: I85f3f6b36801cf112ec9d7c31135a917456173d7
2011-06-20 13:31:50 -07:00
Jorge Lugo
d5fe048224 Improved saving of drafts when back key is pressed
In MessageCompose, pressing reply, reply all, or forward and then selecting
back without writing or modifying any part of the message will no longer
increase the draft count. Additionally, entering the compose window and
immediately rotating the screen before pressing the back key no longer
increases the draft count either.

Bug: 4584605
Bug: 4501806
Change-Id: I74db3f05d696b23fa7d0d64ae87e06fade4c57ee
2011-06-20 11:50:38 -07:00
Ben Komalo
a355a4abe2 Cleanup and collapse some methods together.
Change-Id: Ida38b63362c50052064d7a5342febfe9e4a9c89e
2011-06-20 11:30:24 -07:00
Ben Komalo
99401ebea7 Remove a layer of callback in inbox finder.
I'm changing it so that inbox finding happens at an earlier stage so
that the UIController.open() methods can be simpler. Specifically: I
want them to just always accept a mailbox, and not have to deal with an
intermediate state where it's still looking for a mailbox.

Change-Id: I1c5be783859a3bee7e46007e778de13eb1685cbe
2011-06-17 19:44:10 -07:00
Ben Komalo
facd131fad Merge "some brain dead typing shortening" 2011-06-17 19:42:06 -07:00
Ben Komalo
36f89da544 some brain dead typing shortening
Change-Id: I9342e8da52b412fd844b98ff76e61a9e4f9c5af7
2011-06-17 19:20:20 -07:00
Marc Blank
ed1dc9ee72 Support "Load More" for IMAP search
Change-Id: I47e5fd1fab421026ee52af72ba56338c69e9b467
2011-06-17 15:43:18 -07:00
Ben Komalo
ac11e3bb99 Some re-arrangements in UI for search.
This moves the logic for performing the search closer to where it will
actually happen (i.e. on Intent resolution). A lot of this is still
temporary code. I will follow up with some larger changes to extend the
UIController API so it doesn't have to do hacks internally.

Change-Id: I1eb84d26ee3dcbfa0b68dbd37dcb0a6180452962
2011-06-17 11:55:35 -07:00
Ben Komalo
f62fd3fd17 ensure that search mailboxes don't have parents
This causes issues in the mailbox list when trying to auto navigate to a
search mailbox

Change-Id: Ie4e43f20ec662a7c9304dd906ba5a58560cba9f5
2011-06-17 11:42:14 -07:00
Marc Blank
0b34643204 Merge "First implementation of IMAP search" 2011-06-16 20:27:16 -07:00
Marc Blank
627bc6ed57 First implementation of IMAP search
* Broke up synchronizeMailboxGeneric into three pieces; it's still
  horrible, but this at least stops my eyes from bleeding
* Remove unused method/tests from Folder interface

Change-Id: Ib4d979536be657137cf70ca535cf429d707be41b
2011-06-16 20:26:52 -07:00
Mindy Pereira
579d8d5da5 Merge "Integrate chips into Email." 2011-06-16 17:43:47 -07:00
Mindy Pereira
87763f0ae8 Integrate chips into Email.
Change-Id: Ice037a55a169037f725a667fad7714c7e9580b86
2011-06-16 17:41:04 -07:00
Ben Komalo
cb24e515b7 Add one more error state to certificate process
When the KeyStore fails to give us back a certificate for any reason (it
was removed from the keystore perhaps), propagate the error back up.

Change-Id: I4f0ef783c1665589cc8ccb43d95da43a297a3e9a
2011-06-16 16:14:03 -07:00
Ben Komalo
8401dba404 Merge "Handle upgrade from existing device admins" 2011-06-16 15:06:57 -07:00
Ben Komalo
aa0a355397 Handle upgrade from existing device admins
This ensures old admins that can't control the camera doesn't try to do
so

Bug: 4686257
Change-Id: Ia2bb8bf2ccf9fb3d1d45ce1ba0affd2ccc9822a9
2011-06-16 14:40:15 -07:00
Marc Blank
1579b7864a Merge "Fix Store caching" 2011-06-16 13:58:24 -07:00
Makoto Onuki
c16d060bda Merge "Switch to synchronous transaction." 2011-06-16 11:48:03 -07:00
Makoto Onuki
2a292e235c Switch to synchronous transaction.
Change-Id: I02639276e4cedd62d288433acb0dfaf34c7a4e76
2011-06-16 11:40:37 -07:00
Ben Komalo
f4dbbf1099 Indicate to the user when a cert error happens.
This introduces an exception which needs to be thrown from a KeyManager
when it tries to establish a connection with a server requesting a
certificate.

Change-Id: I06dfad7789ed5d320b630e7e4380e15da42a48df
2011-06-16 11:37:23 -07:00
Ben Komalo
d09cff0888 Make "don't allow camera" a supported policy.
This sends the bit to the DPM. Separate changes have been/will be made
to change the provision parser and support it in the DPM.

Bug: 4185316
Change-Id: I44872ceb095a28539b047a0641cc499c7186a9b3
2011-06-16 10:44:48 -07:00
Marc Blank
f65bdbdaf5 Fix Store caching
Bug: 4671090
Change-Id: I07413eb713c564f6dbcac45091357153cfe19a5d
2011-06-16 09:24:44 -07:00
Ben Komalo
b40bdb17df Merge "Introduce a cert selector in exchange settings UI." 2011-06-15 11:17:40 -07:00
Daisuke Miyakawa
48e977aab6 Merge "Send email usage feedback to ContactsProvider" 2011-06-14 20:57:27 -07:00
Ben Komalo
82e0e1c4c5 Show sync window prefs for EAS only.
Bug: 4651025
Change-Id: I1633a2a94e28466686e90df4ff0cdebaaa1a81df
2011-06-14 19:10:28 -07:00
Daisuke Miyakawa
3975a28918 Send email usage feedback to ContactsProvider
This enables the provider to count the number of contacted
per email address basis, which should improve auto-complete
quality.

Bug: 4371572
Change-Id: I4f0e586d3edff5a460e33dc7d9f9680119a8d568
2011-06-14 19:06:47 -07:00
Ben Komalo
e4ca576ab0 Low-cost minimal fixes to make phone UI usable
This is a stopgap fix prior to getting designs in to at least make the
various message view components visible on screen so people can at least
use the app.

Note that this also removes reply all/forward, as per the design (the
idea is you can switch in the compose view, so we don't want to waste
real estate in the message view).

Bug: 4644072
Change-Id: I86f041678373a0fbc79a2e135a47cd1e5b1357c7
2011-06-14 18:07:32 -07:00
Ben Komalo
7014f7d329 Introduce a cert selector in exchange settings UI.
This simply allows the user to select a certificate from the KeyChain to
use for credentials.

Text and UI not finalized.

Change-Id: Ib86abc3c2e899640218122caa12308dc9646dab6
2011-06-14 17:34:09 -07:00
Makoto Onuki
6f8ed24c09 Merge "Add "search mode" to the action bar" 2011-06-14 15:20:30 -07:00
Makoto Onuki
0f27632749 Add "search mode" to the action bar
- Instead of the search dialog, show the search widget on the action bar.
- Launches a new activity for search, but still uses the temporary search code
- Search still works only on two-pane.

Change-Id: I1d36ad3416c7dff9579cf37e40e49e31c9d99219
2011-06-14 15:13:32 -07:00
Ben Komalo
22409fcffa Pass HostAuth when validating an account.
Since HostAuth is fully Parcelable, no sense passing the individual
fields.

Change-Id: I4d8fd2bbe7b47e8f1e2ff00c8c0cad8429eec159
2011-06-14 14:47:18 -07:00
Marc Blank
f5418f1f93 Move Account into its own top-level class
Change-Id: Ide7c991b7d4d418dbe17164421425bf898ba64ee
2011-06-13 15:37:22 -07:00
Marc Blank
69111b1e19 Fix broken account creation
* What the heck is mCacheLoginCredential for??

Bug: 4597765
Change-Id: Idcb6d323ba0e90f3fe6828f59fe36ec54e4cf40c
2011-06-12 10:06:51 -07:00
Todd Kennedy
e1fe562e26 Merge "Don't include sourc mailbox in the move-to dialog" 2011-06-10 10:21:11 -07:00
Todd Kennedy
0f747de9a7 Don't include sourc mailbox in the move-to dialog
When moving messages using the move-to dialog, exclude the source folder from
the list of valid targets.

bug 4585929

Change-Id: Id02c05f38d1623f0c059d84e50ee1b51a1cdec1a
2011-06-10 10:20:31 -07:00
Marc Blank
541e98a4e4 Merge "Remove storeUri's except during auto-setup" 2011-06-09 15:21:13 -07:00
Todd Kennedy
0ec545048a Add recent header if there are zero recent items
For the one pane view, it's possible that an account has zero items in the
recent list (this is only possible for accounts that do not have neither
a "drafts" nor a "sent" folder). In such situations, we will still want to
have some header to distinguish between the accounts and the "show all
folders" item.

Change-Id: Ic5d6368b88ba4a28904c3b78a6489d06345a901e
2011-06-09 14:58:07 -07:00
Marc Blank
85e4c101b0 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
2011-06-09 13:34:43 -07:00
Todd Kennedy
e1e63d4387 Merge "Set proper default values for new mailboxes" 2011-06-09 11:46:26 -07:00
Todd Kennedy
9d2dae6750 Set proper default values for new mailboxes
When creating mailboxes (specifically 'drafts' or 'sent'), we need to ensure
that its default values for flags & server key are set correctly. In most
cases this is "okay" because the mailbox will be created on the server and
the values for these fields will be reset. However, in cases where system
mailboxes cannot be created on the sever (for example, the 'drafts' folder
on any POP3 account or an IMAP gmail account), these default values do not
get updated and we are unable to view the contents of these mailboxes.

bug 4356871

Change-Id: I9e6a394145f471b555c5827d5114bca243dbc37c
2011-06-09 11:39:14 -07:00
Ben Komalo
479fdf03aa Guard against invalid selections in spinner
This is a stop gap fix for b/4584196
There was a race condition in which the actionbar callback happened
prior to the fragments being ready, and so any callbacks on a mailbox
would explode (and the spinner mistakenly thought the header was a
        mailbox)

Change-Id: Id0a24d252472faf97088175b5c413ef554dc3b76
2011-06-09 11:38:11 -07:00
Todd Kennedy
b4f6404cd1 ignore state loss during fragment transaction
We don't need to worry about state loss here. If the fragment state is already
saved, the loader will re-fire when the fragment resumes and we'll proceed to
mailbox selection / account list as expected.

Also; only add the account selection fragment to the back stack if there is
more than one account.

bug 4558901

Change-Id: I38290fa378ac80ef5a5c8cf25c38b6e820715366
2011-06-09 09:52:11 -07:00
Todd Kennedy
964c0caf74 Merge "Don't display count for items with invalid IDs" 2011-06-08 16:44:20 -07:00
Todd Kennedy
a26fe0f150 Don't display count for items with invalid IDs
Change-Id: Id82b0a96a718f27d51d205b066a282444d6bd939
2011-06-08 16:43:37 -07:00
Makoto Onuki
3b91d0ce0f Merge "Use fragment transition animation for 1pane." 2011-06-08 16:24:02 -07:00
Todd Kennedy
7986cf6737 Merge "Fix where recent mailboxes are displayed" 2011-06-08 15:47:49 -07:00
Makoto Onuki
519b488123 Use fragment transition animation for 1pane.
Change-Id: I5f62abf87580876c75c8578da1d4a46cb92bce94
2011-06-08 15:34:41 -07:00
Makoto Onuki
3e343286d7 Merge "Back navigation on 1 pane" 2011-06-08 14:46:59 -07:00
Makoto Onuki
e06e122441 Back navigation on 1 pane
- Allow going back from the message view to the message list with restoring
  all the state on the message list. (batch selection and scroll position)

- Also make "back" work for the message list <-> mailbox list navigation,
  but only 1 level at most.
  (Only the system back key works for this; the action bar home icon will
   not.)

- As discussed offline, it uses our custum "back stack" (which can hold
  at most 1 fragment) using the new fragment APIs, attach and detach.

- Removed commitFragmentTransaction() from the base class, as now there's
  nothing really in common between the two UI controllers in terms of how
  they use the fragment transaction.

Change-Id: Id626ce99beb1f4dceb999dc04bf7d3e5d57a8198
2011-06-08 14:45:57 -07:00
Todd Kennedy
85bd26e210 Fix where recent mailboxes are displayed
For the non two pane devices, we only show the recent mailbox list in the
account spinner (and not on the mailbox list fragment).
For two pane devices, we only show the recent mailbox list in the mailbox
list fragment (and not on the account spinner)

Change-Id: I1094626532ad6d6548ef441929d94546c97304a3
2011-06-08 14:21:00 -07:00
Todd Kennedy
3161f1a3f2 Merge "Lock cache puts while running tests" 2011-06-08 13:01:39 -07:00
Todd Kennedy
78849fd388 Lock cache puts while running tests
Change-Id: I04c88ee70f9d72252fd1c5114d560a28fcee1b56
2011-06-08 11:51:55 -07:00
Ben Komalo
313586c8eb 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
2011-06-07 18:48:23 -07:00
Makoto Onuki
4431a74be5 Merge "Message list: Hide CAB when in back stack." 2011-06-07 18:46:59 -07:00
Makoto Onuki
ab2dba417a Message list: Hide CAB when in back stack.
Because isViewCreated() is used by updateSelectionMode() which is called from
onDestroyView(), we can't use getView() to determine if the CAB should be
shown.

Change-Id: I8d868998031115800766000fb0128f1d1d3541cd
2011-06-07 18:23:47 -07:00
Todd Kennedy
7305cf5c8e update account spinner properly
Fixes two issues:
1. if a recent folder was selected from the spinner, the user could not
re-select it (even if they navigated to another mailbox using the mailbox
list) unless they manually selected another element in the spinner
2. the recent item "show all folders" did not set the associated account
position, so, when selecting that item, the spinner was not showing the
correct view.

Change-Id: I469f9f28aebd36a348534def28a4c476c0df366d
2011-06-07 17:12:34 -07:00
Todd Kennedy
dc6928d798 Add recent mailboxes to the mailbox list
Change-Id: I84ee9d0da43ccac4d10e5122f57583c4b39cf65d
2011-06-07 16:40:12 -07:00
Todd Kennedy
1b404f4fff 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
2011-06-07 14:34:16 -07:00
Todd Kennedy
96e44859cf Merge "Always add "recent" header for one pane view" 2011-06-07 14:23:50 -07:00
Makoto Onuki
f329665e10 Merge "Remove "Show all folders" menu item." 2011-06-07 14:18:05 -07:00
Makoto Onuki
f1097ba7e9 Merge "Revive message view specific menu options" 2011-06-07 14:17:18 -07:00
Makoto Onuki
ed14960af5 Merge "New method to see whether 1-pane or 2-pane UI..." 2011-06-07 14:06:57 -07:00
Makoto Onuki
c6bb2ab553 Revive message view specific menu options
Revive the delete, move, mark unread options

This was lost during the refactoring.

Bug 4483764

Change-Id: Ic8d79f926aac303b3ff7477019cd05c29d614627
2011-06-07 14:00:43 -07:00
Makoto Onuki
101f929b3c Remove "Show all folders" menu item.
Now the account spinner has this.

Change-Id: I95e771e512f6c70ea9ddd8084c29a2f99b4cd758
2011-06-07 13:50:44 -07:00
Makoto Onuki
347ae23b69 New method to see whether 1-pane or 2-pane UI...
should be used.

From now on, UiUtilities.useTwoPane() should be used to see which UI
should be used.

You can pass the DEBUG_PANE_MODE extra when launching Welcome
to force which UI mode to use.  (See the comment inside Welcome.)

Change-Id: Iefa3737e4979eb55f7986a9033ff9c6266d32f52
2011-06-07 13:41:42 -07:00
Todd Kennedy
132307281d Always add "recent" header for one pane view
The one pane view will always have something in the recent list (either the
default recent list or the "all folders" item).

Change-Id: Ic264b59dc25504a8ce75bea6efae53a0d5dede87
2011-06-07 13:28:01 -07:00
Todd Kennedy
da3d04ea31 Add ability to create headers in the mailbox list
Change-Id: I9d1054056db7b6ac993570adcc4adc4cc6699e9c
2011-06-07 12:01:35 -07:00
Makoto Onuki
ab40c98821 More work on fragment install/uninstall.
- Now we "uninstall" a fragment in Fragment.onDestroyView.
  i.e. a fragment transaction is actually executed.
- Maintain our own "about to be removed" fragment list to avoid
  double removal of a fragment.

Change-Id: I61328e0a09a7af00cbb0e6ba10a2d39c11b5c3dc
2011-06-07 11:13:37 -07:00
Makoto Onuki
cb530b4e91 Merge "Use the CursorWithExtras pattern for the message list." 2011-06-07 11:12:31 -07:00
Todd Kennedy
a09ac7d417 Implement account spinner recent list for one pane
This adds the default recent list and 'show all folders' to the one pane UI.

Change-Id: I877f854ff4f9c7440cbd40f2a9ded8aba4002656
2011-06-07 10:04:59 -07:00
Todd Kennedy
a757aaa055 Properly display spinner when necessary
Previously, we were deciding whether to show the spinner if the returned cursor
had more than 1 element. However, the cursor would _always_ have more than one
element because it contains a header in addition to the account information.

We now save away the number of accounts and the size of the recent list into the
cursor so we can use those counts to determine if the spinner should be shown.
Both of these counts are necessary as we want to show the spinner even if there
is only a single account as long as it has at least one recent mailbox.

Change-Id: If428c496a548a25f6b5cd7301ddb5c0d6876750c
2011-06-07 09:33:19 -07:00
Todd Kennedy
e392418840 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
2011-06-07 08:48:37 -07:00
Makoto Onuki
63a206ea56 Merge "Manually restore list view state." 2011-06-06 17:14:04 -07:00
Makoto Onuki
41878c2813 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
2011-06-06 16:34:03 -07:00
Makoto Onuki
345a61d0b9 Manually restore list view state.
Bug 4532222

Change-Id: I6f3394b7ffd55b32e1932e3e425cc0d0ae720e27
2011-06-06 16:13:16 -07:00
Todd Kennedy
47806a2244 Merge "Fix filtered query" 2011-06-06 15:11:29 -07:00
Todd Kennedy
3a1e874a9c 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
2011-06-06 14:58:39 -07:00
Makoto Onuki
d42b3222fb Merge "Make message list behave nicely when it's in back stack" 2011-06-06 14:33:19 -07:00
Todd Kennedy
69461503fb Add "Accounts" header to the AB spinner
Change-Id: I35e4b7295db16db803ede084cf65fa3f2115f770
2011-06-06 14:11:09 -07:00
Makoto Onuki
296d7d3614 Make message list behave nicely when it's in back stack
- Hide CAB when it has no views.
- Stop pending tasks and refresh callbacks when it's paused.

Change-Id: Idaae9061237ce9f923c002d659e8e12407e4bad1
2011-06-06 10:39:05 -07:00
Todd Kennedy
f04c832f23 Add ability to track mailbox recency
Change-Id: I1bcc7928ea7065a5daa262b7cea7ee3e21981675
2011-06-06 10:30:01 -07:00
Todd Kennedy
7d9d3a220a Merge "Add new column to table creation method" 2011-06-03 16:48:54 -07:00
Todd Kennedy
2e112b2d12 Add new column to table creation method
Change-Id: I2c6fe80d06e54dbd10eba41f0a0aa758baffb1b0
2011-06-03 16:47:39 -07:00
Makoto Onuki
696fa78cb3 Don't enable FragmentManager logging.
Change-Id: Ie02ece80df7832c609cffb64a4b0626c6b8a77b5
2011-06-03 15:15:01 -07:00
Makoto Onuki
cc881b744b Remove the hidden newer/older buttons from 1-pane.
We'll implement swipe and this view is not used on 1-pane anyway.

Change-Id: Ib1d9b44dd530159377f3e5f883188832de30482f
2011-06-03 14:25:10 -07:00
Makoto Onuki
03b863d68e Merge "Implement 1-pane navigation." 2011-06-03 14:16:49 -07:00
Makoto Onuki
3d9b8e76f0 Implement 1-pane navigation.
- Now that fragment useage is simplified (e.g. no new fragment
creation for nested mailbox navigation), most of the fragment
operation code for 2-pane is reuseable for 1-pane as well,
so moeved it to the base class.

- Temporarily added "Show all folders" as a menu option on 1-pane.

- Added "opener account id/mailbox id" to the message view fragment.
They are not used by the fragment itself, but they're used
by the UI controller for the back navigation.  (And now the UI
controller doesn't maintain the current IDs by itself; rather
it gets them from the currently-active fragment.)

- Use async fragment transaction on 1-pane too, now that it always
gets the current state from the active fragment.

- Changed the timing when we install fragments from onAttachFragment
to fragments' onActivityCreated.  So now all installed fragments are
created.

TODO Now that all installed fragments are guaranteed to be created,
remove all special trealment for the fragment argument accessor.
(They were meant be safe to call before onCreate, but it's not
necessary any more.)

Change-Id: I0ed100c3f0b460835b164c0dc908ea483a4e46ee
2011-06-03 13:59:50 -07:00
Jorge Lugo
8f54b2f135 Merge "Fixed reply-all bug" 2011-06-03 10:23:35 -07:00
Jorge Lugo
15842c522e 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
2011-06-03 10:16:05 -07:00
Todd Kennedy
4c4b088a21 Merge "Add "lastTouchedTime" column to the mailbox table" 2011-06-03 09:26:14 -07:00
Todd Kennedy
9dcb72e1ec Add "lastTouchedTime" column to the mailbox table
The last touched time will track the last time a message within that mailbox
was read. This will be used for the recent list.

Change-Id: I97a5fda52fd09b416fc3278a11a87b807da05c9c
2011-06-03 08:51:25 -07:00
Marc Blank
aaf12a5e75 Merge "Update searchMessages API" 2011-06-03 08:39:45 -07:00
Marc Blank
75a754660e Update searchMessages API
* Store various search parameters in a new parcelable class

Change-Id: Iadec6a803b1bf17d89cd401c3fca1cb0ad3340d4
2011-06-02 21:41:17 -07:00
Todd Kennedy
bc7cd16ec2 Fix NPE if message displayName is null
the spannable string builder assumes the given char sequence is non-null.
we now ensure that's always the case.

Change-Id: I12e7081e5348d797feab6ad17452b73a52feaf13
2011-06-02 15:27:48 -07:00
Todd Kennedy
cf772cc8ad update UX according to specs
Display the mailbox name as the widget title and the account name
as the secondary title.

Change-Id: Ibb36d4897e02b8cbc501eae9b27ee8381fe91e1a
2011-06-02 12:03:40 -07:00
Todd Kennedy
b9afe5760c Merge "Fix NPE accessing fragment arguments" 2011-06-02 12:02:50 -07:00
Todd Kennedy
8121876fef Merge "Add proper wording for "all accounts" picker item" 2011-06-02 11:56:05 -07:00
Todd Kennedy
f47255f6fc Fix NPE accessing fragment arguments
Change-Id: I417927568c2407f1d183f3d112d0761f57b5bb12
2011-06-02 11:55:24 -07:00
Todd Kennedy
b19516e248 Add proper wording for "all accounts" picker item
Per discussion w/ UX.

Change-Id: Ida4a11828d2bb157c4bc0c66f84d877013f0e4d7
2011-06-02 11:54:25 -07:00
Makoto Onuki
5dc07ad26c Merge "Rework on inbox lookup" 2011-06-02 11:01:09 -07:00
Todd Kennedy
2f5ee8e2d1 filter mailbox list for the widget
The mailbox list for widget configuration should only include two mailboxes --
1. an account's full inbox (both read & unread) and 2. an account's unread
inbox (similar to #1, but, only contains unread messages)

This also applies for the combined account view.

Change-Id: I5640fd8572d385703db04ca613f5b1f35f3952da
2011-06-02 10:36:29 -07:00
Makoto Onuki
f015cc00ed Rework on inbox lookup
- Moved MailboxFinder logic to UIControllerBase so it can be reused for 1-pane.
- Make sure MailboxFinder runs only while the activity is resumed.
  (we don't want to get callbacks when it's not, because we can't perform
  fragment transactions.)
- Make sure MailboxFinder is restarted if the activity gets re-created
  while it's still running.

Bug 4522010

Change-Id: I4486ecfa44dd700d28c424bc5eb7104d3043cf7d
2011-06-01 19:25:14 -07:00
Makoto Onuki
47d6f782de Merge "Switch to async fragment transaction for two-pane" 2011-06-01 19:16:15 -07:00
Makoto Onuki
61b0605a0b Merge "Change on the mailbox list item background." 2011-06-01 19:16:07 -07:00
Makoto Onuki
2912bed923 Merge "Remove unused method." 2011-06-01 18:41:18 -07:00
Makoto Onuki
3a8a1b451d Change on the mailbox list item background.
- The drawable for the active drop target background was static, and
  shared between items.  But StateListDrawable has inernal state and
  shouldn't be shared.

- Also make sure not to set the same background more than once.

For some reason, they will cause visal glitches when we switch to synchronous
fragment transaction.

Change-Id: I10fede2ad4e595f74d61768907b5b70fd5d4da21
2011-06-01 18:40:50 -07:00
Todd Kennedy
7f4cf3c46b Hook account/mailbox picker to widget
now when adding a widget to the desktop, you can pick the account
and mailbox.

Change-Id: Id3d2c21b349af58459304ac5a068402d67f4d0f7
2011-06-01 18:24:47 -07:00
Makoto Onuki
c7024f73ec Switch to async fragment transaction for two-pane
One-pane will follow too, but not soon.

Change-Id: Ie018f728273e9fa4a7e6cf3116a2a2afebcaecc5
2011-06-01 18:11:12 -07:00
Makoto Onuki
147e41d00a Remove unused method.
This should have been removed in I2c23651d.

Change-Id: I8dd90a0ba55e701225cdaf2e5b7c5fe92a417525
2011-06-01 17:56:16 -07:00
Todd Kennedy
60abc35a72 Merge "Loader query should use mailbox key" 2011-06-01 16:01:51 -07:00
Todd Kennedy
0b4602b5d9 Loader query should use mailbox key
The loader query should be testing against the mailbox key and not the message
id.

Change-Id: Idcc31b4e84db55c8c6a95e1141740371e1390c81
2011-06-01 15:52:15 -07:00
Todd Kennedy
5c453db639 Merge "Save widget config to shared preferences" 2011-06-01 15:19:53 -07:00
Todd Kennedy
fa1b3a8f37 Save widget config to shared preferences
The way the config activity communicates with the widget will be through
shared preferences. We now read / write shared preferences for widget
configuration. One step closer to the configuration activity...

Change-Id: I7c54259d84ad8d304a61652af5b3edff4c7d67db
2011-06-01 15:14:55 -07:00
Makoto Onuki
3bfd5734b8 Merge "MailboxListFragment: In-place nested mailbox navigation" 2011-06-01 15:11:09 -07:00
Makoto Onuki
844bf74504 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
2011-06-01 15:06:42 -07:00
Marc Blank
9634d2d88c Merge "Workaround bug 4520517" 2011-06-01 13:21:20 -07:00
Makoto Onuki
e50a6fb48b Workaround bug 4520517
To test bug 4490341

Change-Id: I93127a8ed1579184b0ae9c1fc0ce51bae7927f76
2011-06-01 13:18:36 -07:00
Todd Kennedy
44f5cd67c9 Remove widget views
The new widget UX allows for a single display mode for the widget. This can
be configured when the widget is added or at a later time during widget
re-configuration.

We don't have the configuration activity (yet). We first need to restructure
the widget to take a single account / mailbox combination. Hooking up the
configuration activity will occur in a future CL.

Change-Id: I38a5796c44938a6abd0d2bb50ac77241cc86a497
2011-06-01 10:46:32 -07:00
Todd Kennedy
0f84ff2c08 Add meta options in the picker
With this CL, we have "All accounts" in the account list and "Inbox" & "Unread"
in the mailbox list. "All" + "Unread" doesn't play very well, so, we should
seriously consider whether it's worth the effort to support it right now.

Change-Id: Ia1c07c89a535a68ffe6f3ae5009b5b6591a9acdb
2011-05-27 16:06:33 -07:00
Todd Kennedy
dc6f61a4c2 Merge "Use standard widget call backs" 2011-05-27 12:16:05 -07:00
Todd Kennedy
98108f2e0e Use standard widget call backs
Instead of overriding onReceive() and processing messages ourselves, we should
be overriding the standard widget call back methods, onUpdate(), etc...

Also added a deleteWidgets() method in the widget manager to maintain beter
symetry between create & delete.

Change-Id: Idc84bf220a1e14776a080cfee0b28df39f9a1450
2011-05-27 12:15:09 -07:00
Makoto Onuki
88b5e296e0 Merge "MessageViewFragment: Preparing to use back stack." 2011-05-27 10:44:22 -07:00
Todd Kennedy
7956e76e18 Merge "Make callbacks from shortcut picker" 2011-05-27 10:40:58 -07:00
Todd Kennedy
ae8e612ed5 Make callbacks from shortcut picker
We need to move some of the calls from shortcut picker to the activity (such
as creating the actual shortcut and terminating the activity). This should
let us to reuse the picker fragment from the widget code.

Maybe other callbacks are needed, but, this is a first pass to get something
that "should" work.

Change-Id: I6467979951ad73b5817ba543683f62f831ac73a4
2011-05-27 10:36:10 -07:00
Ben Komalo
6d44569356 Merge "Prevent NPE in MessageCompose." 2011-05-27 10:33:29 -07:00
Todd Kennedy
6d4f0d8fa0 Merge "Make it clear that args are immutable" 2011-05-26 16:51:10 -07:00
Todd Kennedy
90e08781ca Make it clear that args are immutable
Change-Id: I54657648fc7fcd145689a51acd8f3c27d3611a97
2011-05-26 16:45:33 -07:00
Makoto Onuki
262d18971a Merge "MessageListFragment: Preparing to use back stack" 2011-05-26 16:23:49 -07:00
Makoto Onuki
7cb2376aed MessageListFragment: Preparing to use back stack
with some clean-ups.

Change-Id: Ifd0ce888c6387013bc51237528980605c929279c
2011-05-26 16:22:11 -07:00
Todd Kennedy
b59b9d04d5 Merge "Don't navigate to a shortcut mailbox" 2011-05-26 14:56:50 -07:00
Makoto Onuki
3a505d8d96 MessageViewFragment: Preparing to use back stack.
Do all the clean-up stuff in onDestroyView() rather than onDestroy(),
so that no callbacks (such as the controller callbacks and
AsyncTask.onPostExecute()s) will work when it doesn't have views.

Change-Id: Ic4aa771d28209ee7b56ac4d228488768ae998dd8
2011-05-26 14:47:13 -07:00
Todd Kennedy
ca6eca0466 Don't navigate to a shortcut mailbox
All shortcuts now have a mailbox associated with them. When launching
the app via shortcut, we want to show the messages within that mailbox, but,
we do not want to navigate into the mailbox; unless the mailbox has children.
Since we don't want to put too much informatin into the shortcut, we must
perform these checks at runtime. So, if ever we try to load a mailbox that
doesn't contain children, we load it's parent instead.

Change-Id: Idb5dbc7cd740b270a0068811abe685f963ca2c0b
2011-05-26 14:21:42 -07:00
Marc Blank
67fefe21b6 Remove change made to workaround DPM issue
Change-Id: I88a9663d513e13ecca5957c61e2e817a8bd847d5
2011-05-26 12:06:28 -07:00
Ben Komalo
fdfeb8d3c3 Prevent NPE in MessageCompose.
New actionBar code makes removeAllTabs() not safe when there are no
tabs.

Change-Id: I9ac09c71872c5f2aaad7b8e3cf5dbe0caac6f8ef
2011-05-26 11:14:05 -07:00
Makoto Onuki
4ade29d6b0 Merge "MailboxListFragment: Preparing to use back stack" 2011-05-26 10:18:14 -07:00
Makoto Onuki
d1b7d43df6 MailboxListFragment: Preparing to use back stack
- Added more lifecycle logs to understand fragment lifecycle better.
- Made sure all code work fine even in the  state where a MailboxListFragment
  is create but doesn't have views.
- Cleaned up list state resoration code.
  Removed the setListAdapter call from onLoadFinished, which lets the
  ListView restore the state by itself, in the case where we're re-loading
  list for DB changes.  We still need to do the restoration manually for
  the orientation change case.

Change-Id: I96bff4ace6d48cc02113c2f5bd6a995260122334
2011-05-25 17:25:44 -07:00
Ben Komalo
102a001e96 Merge "Step 1 in - Email support for 7" devices." 2011-05-25 16:43:49 -07:00
Makoto Onuki
3096b4ae18 Add Controller.deleteMessages(long[]) for batch delete
- Also removed the accoundId parameter, which wasn't used.
- Also cleaned up MailboxListFragment.onDrop.
  (the restored Message was only used to get the account id, but
   it's no longer needed.)

Bug 4384642

Change-Id: I8f6635011dae0529a82972617101e1c130090b76
2011-05-25 13:49:40 -07:00
Ben Komalo
761390a041 Step 1 in - Email support for 7" devices.
This is a cherry-pick of 9f976e29a0 from
honeycomb-mr2. This is still using the old w600 qualifiers but the next
CL will cherry-pick the fix for that.

Change-Id: I40ab6717575cdfd02d5f7d05409f0355e96f2085
2011-05-25 12:52:00 -07:00
Makoto Onuki
72b458395d Merge "Rename some MessageViewFragmentBase callbacks." 2011-05-25 10:12:25 -07:00
Marc Blank
28b48acab0 resolved conflicts for merge of 7c270c50 to master
Change-Id: Id1694449a8a270429cf32b2ecd70da7afa3447a1
2011-05-25 09:34:37 -07:00
Todd Kennedy
d7db0a5f6b Merge "Auto-select if only one item in the list" 2011-05-25 08:43:04 -07:00
Marc Blank
f3ff0ba910 Create AccountManager acct for pop/imap on upgrade from GB
* Also, unit test for upgrade path

Bug: 4439595
Change-Id: I508a3d8ea70c1a894a412528314e42a39f3ae0e7
2011-05-25 08:31:24 -07:00
Todd Kennedy
e2d227ffed Auto-select if only one item in the list
If there is only one account and/or mailbox, automatically select it and
move onto the next step.

Change-Id: I716fbafb50ac6d59a17739a8d69c735d7733858b
2011-05-24 16:04:09 -07:00
Todd Kennedy
5675ea88d3 Add a second fragment to select the mailbox
After choosing the account, we need to select a mailbox for the shortcut.
In order to replace the fragment, we cannot hardcode it in the XML. Instead,
we need to dynamically create it.

Also, restructure the fragment class and rely on the class to "do the right
thing"

Change-Id: I752ad5bbdf2484332ec2b73852cae74a5d2092fa
2011-05-24 16:00:33 -07:00
Makoto Onuki
0b31917c0e Rename some MessageViewFragmentBase callbacks.
- Renamed some methods in MessageViewFragmentBase.Callback
- Removed unnecessary argument from a callback.
- Removed obsolete comment.

Change-Id: Ia5af222971bfe6b943c98208b539946f14f16aa8
2011-05-24 14:00:24 -07:00
Todd Kennedy
87f9b376a8 Only use one line of text for the shortcut list
The list used to contain both the display name (whatever special name the user
chose during account creation) and the email address. The new mocks only use
the display name.

Change-Id: I97f4f16af9865207f26e67aed5d07340775ea37c
2011-05-24 09:23:43 -07:00
Todd Kennedy
1e3c6d9788 use a fragment for the shortcut picker
instead of using an activity (which will be hard to manage multiple screens in
the 'back' stack), use a fragment. we can easily manage multiple fragments with
a fragment transaction.

Change-Id: Ibf75dd45941a0c1c6b6b6add8de78146cdae7c65
2011-05-24 07:35:22 -07:00
Marc Blank
4f5d4e29a8 Always set policies in DPM before checking whether they are active
* Since DPM can erroneously report a password failure (specifically,
  isActivePasswordSufficient() can return false when, in fact, the
  active password is just fine)
* This is the proximate cause of the referenced bug; we just weren't
  prepared to have the DPM mislead us...

Bug: 4464610
Change-Id: Ifcb85c0729e9a1884fbcf7b4180eb332bbfef1b5
2011-05-23 16:48:14 -07:00
Ben Komalo
ee97468feb Fix typo in settings.
This was causing a crash in settings when opening an incoming settings
fragment after initial setup.

Change-Id: Icedd24a3f5e8f378d6725a09c97525450ef74af7
2011-05-20 11:52:13 -07:00
Makoto Onuki
c5bbf134ea Merge "Show a toast for stale shortcuts." 2011-05-19 16:32:25 -07:00
Ben Komalo
b535e436f3 Merge "Move HostAuth to top level class." 2011-05-19 16:28:18 -07:00
Makoto Onuki
c1ca222b75 Show a toast for stale shortcuts.
Change-Id: Ibd7b9ae6a39169604136faafc1a7f87876ba55a1
2011-05-19 16:24:47 -07:00
Ben Komalo
12b82d9374 Move HostAuth to top level class.
No other changes made.

Change-Id: I1c6497c98abc0f99443ea42d8aed6295b263c123
2011-05-19 15:28:48 -07:00
Makoto Onuki
d531dc3058 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
2011-05-19 15:10:51 -07:00
Makoto Onuki
2ed7a86949 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
2011-05-19 13:47:25 -07:00
Makoto Onuki
01bd33f318 Change to Mailbox/MessageListFragment
- MailboxListFragment.Callback.onMailboxSelected is now split into
  two different callbacks, one for regular selection and the
  other for DnD for clarity.
- Added onDragStarted/Ended to MessageListFragment.Callback
- Changed Log to use this

Change-Id: I8861d3b43aa1b5b17c68c53605270e99733599f4
2011-05-19 10:51:12 -07:00
Makoto Onuki
92c0d91578 Merge "Clean up Two pane" 2011-05-18 15:14:50 -07:00
Makoto Onuki
49de71e3d2 Clean up Two pane
- Remove bunch of outdated TODOs
- Removed the stack for the back navigation for nested folders.
  Instead, Back/Up will always just navigate to the parent mailbox.
- Two-pane UI controller no longer stores IDs by itself.
  Now it always gets these from installed fragments.
- Added UIController.switchAccount(), which is the same as openAccount
  except it's no-op if the account is already selected.
- Other small clean-ups.

Change-Id: Ie14bc4f4b6b2cf6afb69bc97967c25682d4c7c78
2011-05-18 14:55:44 -07:00
Ben Komalo
9f976e29a0 DO NOT MERGE - Email support for 7" devices.
- use XLarge layout for Large as well in most cases.
- use XLarge portrait behavior for landscape and portrait for message
list collapsing
- some minor tweaks to account setup UI as the XLarge one didn't fit
on large devices with the padding it specified

Change-Id: I2a83e7239019b3feadcabe5fae61f0d13a628471
2011-05-18 10:23:22 -07:00
Todd Kennedy
ff72651145 Clean up shortcut picker
First some cleanup before adding new functionality.

Change-Id: I37339bb8967c2136c8361133d38c2f5ad30ae3e2
2011-05-18 09:59:31 -07:00
Makoto Onuki
3909570d26 Merge "Changes for NO_XXX" 2011-05-17 15:00:42 -07:00
Makoto Onuki
b36ac01792 Changes for NO_XXX
- Added Message.NO_MESSAGE
- Renamed PSEUDO_ACCOUNT_ID_NONE to NO_ACCOUNT
- Removed PARENT_KEY_NONE and use NO_MAILBOX instead
- For starters, cleaned up the UI controllers to use them.

Change-Id: I6cfd87ece2fced8e9f7c76d034c4d1dbf9e4db10
2011-05-17 14:36:00 -07:00
Todd Kennedy
18ad1651fa Merge "Fix display of POP3 mailbox" 2011-05-17 14:35:10 -07:00
Todd Kennedy
e07ecb8864 Fix display of POP3 mailbox
When legacy support for mailboxes with a parent key of '0' was removed, the
parent key for POP3 mailboxes was not updated. This forces the parent key
for all POP3 mailboxes to be "no mailbox". If we ever want to support virtual
mailboxes for POP3 accounts, this will need to be adjusted.

Change-Id: I4ae0e386db4bcdaf559b87ca17cbe0d151dea75b
2011-05-17 14:18:40 -07:00
Marc Blank
a30316d0df Merge "Workaround bug in DPM related to initialization of our admin" 2011-05-17 14:13:59 -07:00
Marc Blank
6d9d71683a Workaround bug in DPM related to initialization of our admin
Bug: 4436285

Change-Id: If6f0ccaa9e1479fae0dbd1853a462eaf7948ccfc
2011-05-17 13:27:02 -07:00
Todd Kennedy
7bf21c7165 Merge "Fix bug where we fail to acknowledge an APPEND" 2011-05-17 11:07:33 -07:00
Todd Kennedy
518fc490b2 Fix bug where we fail to acknowledge an APPEND
After appending a message to a mailbox (i.e. like appending to the 'sent'
mailbox after composing a new message), we would try to determine if the
append was successful by searching for the message. Most servers return an
APPENDUID response with the message's new UID. However, on those that don't
support APPENDUID, we need to perform a SEARCH for the message id. On one
set of these servers, the search would fail if the query string was
surrounded by parenthesis. However, another set of servers will fail if the
query string is not surroudned by parenthesis. So, we now try both ways.

Change-Id: I5a82ad241fb927e28aa5d05376568d5eac266a95
2011-05-17 10:43:46 -07:00
Todd Kennedy
b522a2c166 Merge "Fix Store re-using old data" 2011-05-17 08:49:55 -07:00
Todd Kennedy
581e3c2333 Fix Store re-using old data
The key for the Store cache was not adjusting properly for account
changes (such as port changes, etc...). As such, it was possible to
get an invalid store.

Now, there's problem with leaking Account objects if the store account
changes (see bug 4440839). This is "okay" for now since account changes
are fairly uncommon and Account objects are light. However, this should
be fixed at some point.

Change-Id: I4ddcbc3e2759b7b1374d0300706373678dedec94
2011-05-17 08:48:33 -07:00
Makoto Onuki
54c91f00d7 Use IllegalArgumentException, not InvalidParameterException
Because IllegalArgumentException is the standard one.

Change-Id: Ib4d0bfa88a3d4218148a7cb248d9baa2124a72ba
2011-05-16 17:48:46 -07:00
Makoto Onuki
7e1fa63d75 Merge "Clean up fragments" 2011-05-16 17:22:37 -07:00
Makoto Onuki
954f037d8f Clean up fragments
Now that we don't reuse fragments and always use newInstance() to pass
arguments, there's a bunch of unnecessary things in them, such as
clearContent().

Also now MessageListFragment takes an account ID as an argument.

Bug 4346486

Change-Id: I7e05628c481ed56512c2281257239105d40ee1bc
2011-05-16 17:17:20 -07:00
Todd Kennedy
171c3f2273 Some more re-arrangement of code
No real code changes; just moving where code / constants live. Removed
one unused method of Store.

Change-Id: Ie7532381759a568cb23601e1071c8e199b6beb07
2011-05-16 14:47:49 -07:00
Todd Kennedy
ebece4dbdc Make ImapConnect a top-level class
Split out ImapConnection to its own class. This allows us to update ImapStore
without worrying about links between it and the connection.

Also, added a bit more safety to the classes in terms of correctly freeing
resources. Whenever the connection is closed, it now releases all resources.
Additionally, if the connection is ever put back in the pool, any response
data is released.

Change-Id: Ie3bda40d677707a0d6655f57175e58dece539e19
2011-05-16 14:17:58 -07:00
Makoto Onuki
4c4e4c3515 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
2011-05-16 11:08:05 -07:00
Ben Komalo
53ea83ebf9 Move Mailbox to top level class.
No other changes made.

Change-Id: I3d8f3c521dc0d902be313b25252b4b6a4a96e7ee
2011-05-13 17:42:02 -07:00
Ben Komalo
373c3e1a56 Merge "Put account email as title on phone settings." 2011-05-13 14:41:22 -07:00
Makoto Onuki
bfac9f2e8a Move some of the log constants from Email to Logging
Change-Id: If9f4e4e3adcdef897a0d6a4e153bb446a8b24fdd
2011-05-13 14:24:38 -07:00
Ben Komalo
3955f6794f Put account email as title on phone settings.
This is kind of a convoluted issue; the framework automatically sets the
breadcrumbs on multi pane settings. However, on single pane, it doesn't
pass any of that breadcrumb info on, and just uses an Intent to start
another instance of the activity with a different Fragment.
Unfortunately, nothing in the default codepath sets the title to
correspond with the breadcrumbs (as it would have been in multipane)

Change-Id: I428642771538bdec3bdaba644f7816a1250ae929
2011-05-13 13:56:26 -07:00
Ben Komalo
8c9167027f Merge "Rename AccountSettingsXL -> AccountSettings" 2011-05-13 13:56:20 -07:00
Makoto Onuki
f1554751c7 Merge "Clean up fragment intallation." 2011-05-13 13:52:05 -07:00
Makoto Onuki
1fba8254c5 Clean up fragment intallation.
Change-Id: Ia9c9d713dc921783995a8a50cc8b256b8392c1a7
2011-05-13 13:18:35 -07:00
Ben Komalo
2866284a6d Rename AccountSettingsXL -> AccountSettings
This activity already supports phone and tablet mode.
Only renames in this change - no other change.

Change-Id: Ieca17137af45e3860812091f69cd4d9b55ddf3ec
2011-05-13 09:58:15 -07:00
Todd Kennedy
577ddb7dd7 Remove notifyNewMessages() service callback
Since the notification controller now operates exclusively using database
observers, there's no reason for the exchange service to call the
notifyNewMessages() service API.

Change-Id: Iaa7e2f5eae786162eab23b02b03ce6d1e8a738e9
2011-05-13 09:10:28 -07:00
Todd Kennedy
f437892348 Open message if only one message in notification
If there is only one unread&unseen message in the notification, clicking the
notification will automatically open the message view fragment. Otherwise,
the message list fragment will be opened.

Change-Id: I22778258836a36f289d71b99a6214ec82778f385
2011-05-13 08:41:48 -07:00
Todd Kennedy
76061eba14 Remove SuppressWarning("unused") wherever possible
Change-Id: Ie799f02ab39a7d020af1fb98b6bac45fc0fd1298
2011-05-12 16:02:06 -07:00
Marc Blank
a830547adf Merge "Add messaging exception status for "attachment not found"" 2011-05-12 15:53:50 -07:00
Todd Kennedy
5701e0a555 Suspend notifications for currently shown account
We will suspend notifications whenever we display the message list for an
account (including "combined inbox").  As soon as the message list is paused,
notifications will be resumed.

Change-Id: I481a0f59ce68f89c32210d862d0267f3f334063b
2011-05-12 14:03:14 -07:00
Marc Blank
b221cbc785 Add messaging exception status for "attachment not found"
* Adding this enables 4409976 to be fixed in a user-friendly manner

Bug: 4409976
Change-Id: I4f5ce890b6957c27a0f59656467dbe23b480a7e3
2011-05-12 12:11:43 -07:00
Marc Blank
ffeb7de284 Merge "Fix a race condition in which an Attachment might be wrongly deleted" 2011-05-11 18:03:26 -07:00
Marc Blank
2f6cbb021c Fix a race condition in which an Attachment might be wrongly deleted
* This is a serious bug dating back to the first Honeycomb release
* It was possible that a newly created Message could not yet be
  committed to the database when the AttachmentDownloadService
  tries to download one of that message's attachments.
* ADS, when it sees that the message (apparently) doesn't
  exist, deletes the Attachment (it appears to be orphaned)
* The effect is that the user never sees one of the attachments
  in a message.
* This bug has been reported externally
* The fix is simply to check for the message's existence before
  deciding to delete it (this check will always work properly)

Bug: 4409692

Change-Id: I106ed2fe88d2435ad7a462fced5cb307c2559fd6
2011-05-11 17:27:37 -07:00
Todd Kennedy
e7fb4ac9e3 Add account observer to NotificationController
The notification controller now observes changes to the account database and
adds or removes message observers as appropriate.

Change-Id: I1670fcfd6ce744030199b86708a6ada55b239a84
2011-05-11 17:22:56 -07:00
Makoto Onuki
94331c96d9 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
2011-05-11 15:35:27 -07:00
Todd Kennedy
dfdc8b6da3 Fix NPE in NotificationController
bug: 4409317
Change-Id: I7e515ba7c4fa7114e2bf9ecf6cb473cb3506ad1c
2011-05-11 13:45:42 -07:00
Todd Kennedy
bb7787bd3d Merge "Create a new notification service" 2011-05-11 07:55:58 -07:00
Todd Kennedy
71bd208ddd Create a new notification service
We can remove the preferences stuff 'cuz the service "should be" longer
living. And, even if the service is terminated (either by the user or by
the system) we'll receive a new notification when the service comes back.
This is probably desired behaviour anyway.

Change-Id: I4850a9473401536e8fb20385b780d4736ce80a8e
2011-05-11 07:54:07 -07:00
Marc Blank
791665da67 Merge "Add plumbing for disallowing attachment download per policy" 2011-05-10 18:31:36 -07:00
Marc Blank
9d9b481a85 Add plumbing for disallowing attachment download per policy
Change-Id: I860dfb5c28933dcd4bf96c8e4bc890bff0f53c42
2011-05-10 18:26:00 -07:00
Todd Kennedy
d31d64d330 Merge "Use observers to manage new message notifications" 2011-05-10 17:09:07 -07:00
Marc Blank
5d08360a9b Merge "Complete rewrite of account backup/restore code" 2011-05-10 16:23:41 -07:00
Todd Kennedy
83693a6aca Use observers to manage new message notifications
We were sort of using observers to maintain the new message notifications.
However, other parts of the code would poke into the notification controller
to set things such as a list of newly added message IDs. Now, we rely
exclusively on db observers to manage notifications.

As a side effect of this, we now set the notification text correctly to be
the most recently _added_ message. This may be different than the most recently
sent message [since there may be a non-negligable delta between when the
message was sent and when it was received].

NOTE this still suffers from an outstanding bug where we continue to get
notifications when the Eamil UX is visible. That and monitoring changes to the
account table will be addressed in future CLs.

Change-Id: I4c68273716cc685574a1ca71e5d634f53fe0d882
2011-05-10 15:36:07 -07:00
Ben Komalo
626ad1929d Support switching compose modes for the phone.
Not styled according to the UI quite yet, but functional

Bug: 3117253
Change-Id: I707e0254d142a54cd6e396fce63ebb00ba66048e
2011-05-10 15:31:51 -07:00
Todd Kennedy
a48abd7f95 Merge "Add notification table shared preference" 2011-05-10 11:36:30 -07:00
Todd Kennedy
2f371e8553 Add notification table shared preference
The notifiaction table will be used by the updated notification controller.
The table stores the key and the associated last notified message key and
message count.

Change-Id: I037b5374ab51620f1cffc8b41391db858cfd3a2d
2011-05-10 11:35:04 -07:00
Makoto Onuki
1d0bf81893 Merge "Add 1-pane UI controller" 2011-05-10 11:29:57 -07:00
Makoto Onuki
f5492ea991 Add 1-pane UI controller
Added the base class for the UI controllers and the 1-pane implementaion,
which is almost empty at this point.

The old phone activities still exist and will be used on the phone by default.
To use the new activity (1-pane EmailActivity) on the phone, use the following
comamnd.

adb shell am start -a android.intent.action.MAIN \
    -d '"content://ui.email.android.com/view/mailbox"' \
    -e DEBUG_PANE_MODE 1

Change-Id: Id1fe85d4517778afc967d7d5e17e1299dd1bfefd
2011-05-10 11:28:00 -07:00
Ben Komalo
5b7e434917 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
2011-05-10 10:36:22 -07:00
Makoto Onuki
0ea4f9295a Merge "Remove MailboxListFragment.DEFAULT_MAILBOX_ID" 2011-05-10 10:07:48 -07:00
Makoto Onuki
8a894f1ca0 Remove MailboxListFragment.DEFAULT_MAILBOX_ID
Now that we supports nested folders on IMAP too, it's not needed.

Change-Id: I80a6d6b59444132762d56ae6e03a5de69863ab8d
2011-05-10 10:06:54 -07:00
Makoto Onuki
c0491ed195 Add UiUtilities.getViewOrNull()
They're variants of getView() that will *not* crash even if the view
doesn't exist.

I didn't add them before as they would be exactly same as findViewbyId(),
but now that we make use of generics they'll be handy.

Change-Id: Ib649e591a987183064c7e98afe0e2414d9e62280
2011-05-09 11:58:47 -07:00
Marc Blank
0993190caf Complete rewrite of account backup/restore code
* Use EmailProvider to backup/restore into a backup database
* Remove all of the old AccountBackupRestore code
* Get rid of the legacy Account class and all of the Preferences
  crap that referenced it
* Remove corresponding tests

Change-Id: I2de75aafdacc87246174303961e58547303f641e
2011-05-09 10:39:17 -07:00
Makoto Onuki
c0042a2278 Merge "Extract action bar related code" 2011-05-09 09:24:49 -07:00
Todd Kennedy
ae993bda32 Merge "Add lastSeenMessageKey column to the mailbox table" 2011-05-06 15:07:58 -07:00
Todd Kennedy
a9ac20b96f Add lastSeenMessageKey column to the mailbox table
The last seen message key is the id of the last message that we've "seen" for
that mailbox

Change-Id: I197f8a191654225ada1ce553cc959db775809c88
2011-05-06 14:51:41 -07:00
Ben Komalo
d594cc6120 Merge "Re-work the way MessageCompose handles attachments" 2011-05-06 12:09:26 -07:00
Ben Komalo
8d042850fb 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
2011-05-06 11:53:53 -07:00
Todd Kennedy
bf30f94c2e Add operation and id to notification URI
In order to provide a bit more granularity for content observers, we add the
operation (e.g. "insert", "remove" or "update") as well as the id of the row
that has changed (if it's known).

Change-Id: I214d3c030872f888cde1a2db9b6b46f1bb121b7a
2011-05-06 11:36:00 -07:00
Makoto Onuki
ad71b358c6 Extract action bar related code
...so that we can easily reuse it for the one pane UI controller.

The one pane controller should eventually have its own action bar
controller, but we can use it for the time beeing, until we get
more detailed UI spec.

Change-Id: I10c92963350dad9eb834fd7474c597aedad5eb80
2011-05-05 17:21:07 -07:00
Todd Kennedy
c60fc093b4 Merge "Remove notification if messages seen off device" 2011-05-05 15:52:02 -07:00
Ben Komalo
c01b66dcf4 Merge "Fix NPE on startup." 2011-05-05 12:11:46 -07:00
Todd Kennedy
c4cdb11d24 Remove notification if messages seen off device
If we receive new messages, we may display a notification to the user. If
those same messages are read elsewhere (i.e. via a web client), we will
remove the notification.

Change-Id: Iba09afe01942e0deaac8210fd6f9b315b1c8c93f
2011-05-05 12:00:27 -07:00
Marc Blank
c96cd4a848 Merge "Add new policies to Policy and associated data structures" 2011-05-05 11:49:55 -07:00
Marc Blank
f91a03f520 Add new policies to Policy and associated data structures
* Update Policy unit test

Change-Id: I24a980537a73e40fca9fceb1b6ad6b2feaa9c342
2011-05-05 11:49:15 -07:00
Ben Komalo
ea56ccf6dd Fix NPE on startup.
There is no invariant in the controller that the fragments it references
are non-null, so querying the fragment for state is not always valid.

Change-Id: I880053be4000260b03b54ed8741e646b01314e0d
2011-05-05 11:19:30 -07:00
Todd Kennedy
075feb4556 Implement new nested folder mocks
Change-Id: I7c0c1d41b7a40d83e1237ba31d5f7949945c7e1e
2011-05-05 10:26:54 -07:00
Makoto Onuki
f456fa88bc Merge "Remove clearContent and other stuff for reusing fragments" 2011-05-05 10:08:41 -07:00
Makoto Onuki
38847b78fa Remove clearContent and other stuff for reusing fragments
from Mailbox/MessageListFragment.

This fixes some issues with screen rotation.

(We still reuse MessageViewFragement for the phone, but this should eventually
be cleaned up too.)

Also removed obsolete comments/TODOs.

Bug 4341517

Change-Id: Ib3e713ccab023151c1c47d7d7e4cd1c0de74039d
2011-05-05 10:07:20 -07:00
Makoto Onuki
171e2eed21 Merge "Revive the list footer for the message list" 2011-05-05 09:18:59 -07:00
Marc Blank
335a724ee6 Implement "automatic" sync lookback (Email side)
* Update sync window options to include "Automatic" and "All"
* Make the default (for new accounts) "Automatic"

Change-Id: Icbc696f55abcfad79e66079ebb414ca50778dcaa
2011-05-05 08:16:44 -07:00
Ben Komalo
c6beaaea59 Update MessageComposetests with latest refactors
Change-Id: I7ab1275f4f4a803588619952f55fd81520036526
2011-05-04 16:34:32 -07:00
Ben Komalo
c7c0b6791c Refactor MessageCompose.
This is a lot of code moves to make the asynchronous loading process
more explicit in nature:

- separate out code path for state restoration and intent resolving (no
  need to over-write mAction now)
- separate out code path for draft loading and source message
loading
- fixes an issue where loading a message accidentally set the draft
message instead of the source message
- makes it possible to switch reply/replyall/forward since now
processing a source message doesn't do crazy things

Bug: 4375775
Change-Id: I5b3a7ac9ed031abe88f9358df9cd46408dd1e9f9
2011-05-04 16:08:58 -07:00
Makoto Onuki
4452b15e2e Revive the list footer for the message list
It was accidentally removed in Ia67e7f3e.

Change-Id: I071ad25e699a96d09017609dc4463c24d0d4eab3
2011-05-04 13:49:40 -07:00
Marc Blank
5a29aa63b2 Merge "Remove scalpel left in patient" 2011-05-03 15:23:19 -07:00
Marc Blank
647007c31b Remove scalpel left in patient
Change-Id: Iea55718a815cf3eafdd2b506637c96aeac8e7cb2
2011-05-03 15:21:18 -07:00
Ben Komalo
bea743dc34 Merge "Cleanups to how "save draft" state is handled." 2011-05-03 12:33:32 -07:00
Ben Komalo
2f9cbdb37d Cleanups to how "save draft" state is handled.
- the options menu was being needlessly invalidated way too often (on
every text change)

Change-Id: I36e6363fdecb7f587dc322a1413d074070ed8a36
2011-05-03 11:41:56 -07:00
Marc Blank
55db7c098f Merge "Rework of security policy storage" 2011-05-03 11:20:46 -07:00
Marc Blank
aeee10e57e Rework of security policy storage
* Replace crazy (and soon to be "full") bit fields stored in an account's
  securityFlags with a row in a newly created Policy table (thus, fully
  expandable)
* Update code from database version 17 to 18; adds Policy table, a
  policyKey row in Account, and a revised trigger that deletes Policy
  information for deleted Accounts
* Update old PolicySet unit tests to work against the new Policy class
* Add test for the conversion of securityFlags to Policy
* Tested in a variety of scenarios; appears to be functionally equivalent

Change-Id: I1505ee75230d6a0d3c2b62a46326f39c2c7f9eb5
2011-05-03 11:11:47 -07:00
Ben Komalo
0bb7f1c37c Fixes to MessageCompose saving.
- "save draft" no longer closes the message
- ensure consistent state if there are successive saves
- misc changes to the way a message is loaded if there is a pending save

Bug: 3072398
Change-Id: I9cd01319772293e4d410020ab27603821a95ec9f
2011-05-03 10:35:11 -07:00
Todd Kennedy
6cd012b92d Merge "Remove dead code" 2011-04-29 09:38:24 -07:00
Todd Kennedy
bd2ab000b5 Remove dead code
Want to get this in before I start making other changes for notifications

Change-Id: I6da6ad798d125938eac1247d16a036f05c698e43
2011-04-29 09:27:35 -07:00
Ben Komalo
ec84dad879 Merge "Genericize UiUtilities.getView" 2011-04-28 17:21:24 -07:00
Ben Komalo
256652050c Genericize UiUtilities.getView
Change-Id: I7142d4a57170e3074dc896149bf95ed6d2677bdd
2011-04-28 16:54:26 -07:00
Ben Komalo
688f5355e3 Merge "Expose cc/attachment actions on UI directly" 2011-04-28 16:42:33 -07:00