History log of /packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0b69338a45faa422ccba8faf64c9816c55d33e4a 11-Aug-2014 Jin Cao <jinyan@google.com> [KBNav] two-pane landscape navigation polish

The system default navigation doesn't work quite as well
in landscape mode (e.g. focus on conversation view's reply,
hitting up goes to the mini-drawer instead of the message
header). This is partly because our overlay views are not
in a real list, thus we can't take advantage of the framework's
navigation support for listviews.

I decided to roll my own navigation entirely for
conversation view and manually focus/scroll.

This CL also includes some polishes for interactions in landscape
mode between drawer, TL, and CV panes.

b/16636060

Change-Id: Id1de01439a118702756d52f6a8b3f02395a0f932
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
52d9a8d4990a1e9c765e24d715a29eea51aad051 09-Aug-2014 Jin Cao <jinyan@google.com> Merge "[KBNav CV] basic support for CV keyboard nav" into ub-gmail-ur14-dev
5b317924c7c764954870501d99bfc57a243f6319 06-Aug-2014 Jin Cao <jinyan@google.com> [KBNav TL] Basic navigation in TL

Support basic keyboard navigation in TL. CV is not implemented
so interaction between TL and CV once you open a conversation
is not guaranteed.

On TL, left arrow goes to minidrawer/drawer, right arrow goes
to CV if open, up/down works as expected, TAB goes to ComposeBtn.
On drawer, up/down as expected, right goes to TL, TAB goes to ComposeBtn.
On ComposeBtn, left/up/TAB goes back to TL, right/down does nothing.

Currently no way of accessing the action bar menu because I don't
know what id to set to focus.

b/16636060

Change-Id: Ia9bae322e41a53beed20702fba301fbfd9100aa3

Conflicts:
src/com/android/mail/ui/ConversationListFragment.java
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a7404589b03ac9dd0d07b3f7d0a1ec92ac9acb62 05-Aug-2014 Jin Cao <jinyan@google.com> [KBNav CV] basic support for CV keyboard nav

Support basic navigation via keyboard in CV.

b/16636060

Change-Id: I66dbcd8015d722244b57c4e24579d0d854d3ee74
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d23f6d1cd1dd8248cba755bf91c5355a31fbb885 09-Aug-2014 Jin Cao <jinyan@google.com> [KBNav] Support peeking the focused conversation

On up/down navigation in two-pane landscape mode
we allow for peeking the conversation without
marking it as unread. Only on right/enter will
the conversation be marked as read.

TODO: mCurrentConversationJustPeeking isn't fully
implemented yet, so navigating with the keyboard
will still mark the conv as read.

b/16636060

Change-Id: Id6dbf163d1152c1f1c48836501489aa51478c155
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9a11011dc42ea3c8934c90455b17bd77a0a5ee17 08-Aug-2014 James Lemieux <jplemieux@google.com> Add popup and push down animations to snackbar.

Change-Id: Iaed07d606b2c5973ddcc4aea20c6a61f2fb1adb2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
52882ff08fe9420fe2dbb3f681545a330222e9c8 27-Jul-2014 Andrew Sapperstein <asapperstein@google.com> switch to appcompat. b/16664350

Currently only for MailActivity, ComposeActivity,
and FolderSelectionActivity.

Any activity that inherits from ActionBarActivity must
use an Appcompat-derived style. Three styles currently
exist: UnifiedEmail.Appcompat, UnifiedEmail.Appcompat.Toolbar,
and ShortcutWidgetTheme are all based on appcompat.

go/appcompat-material-doc contains the full migration guide.

The fast version is:
All MenuItem-related work that relates to actions must use
the MenuItemCompat-equivalent.
Any theming should use the appcompat versions which don't require
a namespace prefix. For instance, use actionBarStyle instead of
android:actionBarStyle.

There are a few missing styles on views that can't use appcompat versions.
Those still use style overrides for v21 changes. All others use appcompat versions.

A few methods on activity should now use the support equivalents:
getSupportActionBar()
supportInvalidateOptionsMenu()
startSupportActionMode()

Change-Id: Ic6f5964f4115ab4bde49c19df5fe49c9086df965
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f58e4c3c942033fce12b5f75f9e4d9e708c9ea6a 10-Jul-2014 Andy Huang <ath@google.com> mini-drawer. new tablet UI.

New MiniDrawerView class for a minimized drawer UI with shortcuts to the
main drawer logic to switch accounts and folders. The "drawer" is now
always visible except in portrait conversation view.

Can't easily use an actual DrawerLayout because:
-drawers usually occlude other views, they don't push
-we have that omnipresent 'mini' version
-we want custom control over dragging to trigger a fancy animation (not
just edge swipe!)
(I'll revisit this later.)

Even ActionBarDrawerToggle alone can't be used w/o DrawerLayout, so for
now, all of this drawer logic (dragging not yet implemented) is from
scratch.

TwoPaneLayout no longer "shifts" its panes to transition from TL->CV in
landscape; the panes are now fixed in position. Not yet implemented is a
'conversation-visible-but-not-marked-read' state necessary to avoid the
initial gray expanse there right now.

Bug: 16147175
Change-Id: I021aaff15afebb76db6722265e2a592213674405
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
29bc32547fcfb914f8f666f90343067f5d9b8e4d 30-Jul-2014 James Lemieux <jplemieux@google.com> Quantify Snackbars (aka Undo bars)

b/15991901

This CL addresses the major layout and styling changes introduced
by the Material theming. Note that layout is influenced by all of
the following factors:

1) RTL or LTR
2) Action text may exist or not
3) Description text may wrap or not
4) One-pane vs. Two-pane

Change-Id: Ie69bca2cef39666a90c9a43d6b4b030c64e664c8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2d86d1123c4183024222dd2eb60f7cbdc24953fd 25-Jul-2014 Andrew Sapperstein <asapperstein@google.com> Action bar styling.

Restores back button and drawer on old versions. b/16510684

b/16167419

Change-Id: I6b48a2d350330403ebf72304d74be957b6de7cb4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3047a9f03d9febaf2aba1e5ea0827e0b740d1ab2 23-Jul-2014 Andrew Sapperstein <asapperstein@google.com> stable action items

b/16167419

Change-Id: I72c7c44f5728563da1fcbd39daa31ccd41845d8a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
74470048daf58bc4e14130e9c8adec2db78c8163 22-Jul-2014 Tony Mantler <nicoya@google.com> Rearrange MailActivity layout loading

Need to load the layout earlier so that we can access a
Toolbar instance within the layout itself as the action bar

b/16458862

Change-Id: Iba187bb1495fe343a78598355586e1b5253452a2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
62e1496cb42c21b5348ebe795cd2fabd7574d3e1 23-Jun-2014 Régis Décamps <regisd@google.com> Refactor how the warm welcome is triggered.

- The welcome tour is an independent activity. AbstractActivityController doesn't need a specific ViewMode (this should also fix b/15747390) and doesn't implement WelcomeTourCompletionListener anymore.
- MailActivity returns the warm welcome loader callback.
- The MailActivityEmail, FolderSelectionActivity don't implement onWelcomeTourRequested anymore.
- ControllableActivty implements WelcomeTourListener.
- OnePaneController and TwoPaneController transition to the inbox as they used to.
- WelcomeTourListener renamed onWelcomeTourComplete to onWelcomeTourFinished and returns a status (completed, discarded, or not shown).

b/15705426

Change-Id: I9af1f7c2ee5a5819d5df2d860547a2668f1d5cf6
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ede2e52e725abc625ae963f979639ff8ecc40cf5 30-May-2014 Greg Bullock <gregbullock@google.com> Changes to support displaying a welcome tour.

Change-Id: Ice10fd8d629a9f4aebe5cfb7cb94bc1eb5ebaaeb
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9695e0046f79bd2d7166a411d6feff4cf0fb2539 29-May-2014 Jin Cao <jinyan@google.com> Properly check for empty Uri

Uri == Uri.empty doesn't work. Changed all uses of Uri == Uri.empty
to Uri.empty.equals(Uri). Refactored the function into a helper function
inside Folder to check if a given folder is top level.

b/14987117

Change-Id: I22b7a0bf7fbfcbd14936e5ff9b428fd3f4c15e60
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
eef52998bd2626c0e956837a339f0339f52fe25b 17-Apr-2014 Martin Hibdon <mhibdon@google.com> am b0b74c3e: Fix some accessibility issues

* commit 'b0b74c3e3e5eac1d8aa9132ca59bcf2a9cafe691':
Fix some accessibility issues
b0b74c3e3e5eac1d8aa9132ca59bcf2a9cafe691 16-Apr-2014 Martin Hibdon <mhibdon@google.com> Fix some accessibility issues

b/14075074
Make the individual TextViews in the message details
focusable so that they can be navigated. Also, set the
title of the drawer so that it will be vocalized when
opening the drawer.

Change-Id: Ic0ad0e7c5adebabce4d8135b69595062e9ac47c2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f55863727de2bb15f1906944bbc88c82703a3aff 08-Apr-2014 Jin Cao <jinyan@google.com> Added support for arbitrary post-undo actions

- Added interface to add arbitrary callbacks after a specific undo
action occurred. This is useful if we want to do some specific UI
modification after an undo, show the user more information, etc.
- This callback is also added to DestructiveAction so all destructive
actions can run custom callback when it's undone.
- Used the interface to add show the removed conversation when auto
advance is active.
- Removed references of inLoaderCallbacks in AbstractActivityController
where it's not being used.

Demo video here: https://drive.google.com/a/google.com/file/d/0ByX6TliQlkICSjZub0ZyaWtxS0pmZk1kbk5WQ2V5SGlMTWxF/edit?usp=sharing

b/6769311

Change-Id: I00cc66421315091cc934e0f63188ff693b0a84b8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e764cfd130c4f92ae823fd1f361ab70439e8ec95 26-Feb-2014 Andy Huang <ath@google.com> small refactor

wet -> dry

Change-Id: Iccb44b3156d5a38d6f3d0ddfee5b8d21f00c98cd
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
371a71c7f41155a83526e4745c993585c236b9d7 19-Feb-2014 Martin Hibdon <mhibdon@google.com> Make drawer available in Search and ConversationView

b/8737446
This is more complicated to do correctly than it seems like
it should be: When we are viewing search results, there is
actually a separate activity instance on top of the main
conversation list activity. This is true for both one
and two pane layouts.
So now, when we launch the search activity, we do it with
startActivityForResult. If the result is set upon return,
then the parent activity will know to navigate to a different
folder or account.

Change-Id: I5b780c4ce5bb0a1e55364cc4df280346900c5df5
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a4296c179cd4eb12e7c4912d72c22dd2ec724a7e 11-Jan-2014 Andrew Sapperstein <asapperstein@google.com> RTL the conversation list and two pane layout.

Fixes:
b/12451886
b/12452546

Change-Id: If2bd3d63c07eda3190d16fd95746c0105b251406
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
535af3345aa5caab4e2b47dd3b1539a301dbab1d 04-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "Revert "Exit cab mode when we change folders""" into jb-ub-mail-ur10
7f8ce7c946b28c2d4ef238fa43d0cf101b53cb21 04-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "Revert "NPE in TwoPaneController""" into jb-ub-mail-ur10
03f1239aec39f8e3e3ade0e8c78df5836d5f4fc2 04-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "Revert "Fix hierarchical folders""" into jb-ub-mail-ur10
7dd0e1cec391fc2562795d6e6d9fc91ab36ca647 04-Sep-2013 Alice Yang <alice@google.com> Revert "Revert "Exit cab mode when we change folders""

This reverts commit c06821c54ed61b1efd4a7d878d03956023deef5c.

Change-Id: Ib8c2858498553690f5a6de2c41065bf4766a1c44
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1a7884b6e516220ace1ab74196df445fee10592b 04-Sep-2013 Alice Yang <alice@google.com> Revert "Revert "NPE in TwoPaneController""

This reverts commit 4f6e5f4e1e842f3f0552b673626c6d4bceaf1641.

Change-Id: I4e450e20110d06aa252168ecf573edc692a90db1
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ebeef1babe39de2c1d97429a93ea956c655cd377 04-Sep-2013 Alice Yang <alice@google.com> Revert "Revert "Fix hierarchical folders""

This reverts commit 6e604d33ee0aab10a72c836af6e83ace315f4b79.

Change-Id: I8eb30a3b38919e0efb694fc571b166a89258f517
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b09b7cda41b1cafce57d52707f8e33823160aafd 03-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "Fix hierarchical folders"" into jb-ub-mail-ur10
bc83dec6da0b6d326c00ff531bbe8447b62abbb9 03-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "NPE in TwoPaneController"" into jb-ub-mail-ur10
784f9e928f0b1e38f6cc94d7f201258ef573f40b 03-Sep-2013 Alice Yang <alice@google.com> Merge "Revert "Exit cab mode when we change folders"" into jb-ub-mail-ur10
c06821c54ed61b1efd4a7d878d03956023deef5c 03-Sep-2013 Alice Yang <alice@google.com> Revert "Exit cab mode when we change folders"

Another one that depends on the hierarchical folders change

This reverts commit d2a0c393d8e3ecce86e4ca0475165bec7464bd06.

Change-Id: Idfef27b799084a6dc764201b73c3fb18c92ce14a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4f6e5f4e1e842f3f0552b673626c6d4bceaf1641 03-Sep-2013 Alice Yang <alice@google.com> Revert "NPE in TwoPaneController"

Since this one depends on the hierarchical folder change that is being reverted.

This reverts commit 9e288454da3c6c63d866252f521911b60adce2f2.

Change-Id: I363982790348c77b2dbd63b59a0b44c9016db257
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6e604d33ee0aab10a72c836af6e83ace315f4b79 03-Sep-2013 Alice Yang <alice@google.com> Revert "Fix hierarchical folders"

Temporarily so we can take TOT UR10

This reverts commit ad41814e704f0e7575472e4e7b60dfaf68b2f3b1.

Change-Id: I70f7b3b424c3da3785181c673c7c4f80737892aa
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4f71da73824e9e8196ae53715776afe93e336802 03-Sep-2013 Andrew Sapperstein <asapperstein@google.com> Don't add duplicate fragment. b/10515101.

Change-Id: Ic4799fd5f5f3b7beebfe9408ee1125cf77f8f735
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9e288454da3c6c63d866252f521911b60adce2f2 30-Aug-2013 Alice Yang <alice@google.com> NPE in TwoPaneController

Bug 10551079

Change-Id: I79c1d36e31063ee940bc67b69bdeb57b1d27fb00
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d2a0c393d8e3ecce86e4ca0475165bec7464bd06 29-Aug-2013 Scott Kennedy <skennedy@google.com> Exit cab mode when we change folders

We were previously only doing this on two pane.

The problem with one pane is that we call onFolderChanged() when we
come back from conversation view, so we need to ensure we only exit
CAB mode if the folder has actually changed.

Bug: 9611402
Change-Id: I033d9af9e5bfff43075a5e3ed49942621b44a7c7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a35d83ff8945e805394bcae4949112e332c11388 28-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Properly save/restore misc views. b/10515101.

Change-Id: I1c8f8cba3ac88f5d6a4f3d37abb46a77cb033955
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ad41814e704f0e7575472e4e7b60dfaf68b2f3b1 11-Jul-2013 Scott Kennedy <skennedy@google.com> Fix hierarchical folders

Stop adding stuff to the back stack, because we never remove it.

Remove some unused code related to hierarchical folders.

This allows nested folders to work properly.

Bug: 9762055
Bug: 9694899
Bug: 9565828
Change-Id: I8ba2e96e6b478dd73e11fdcaf2c02643f1370e57
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
baf6e244948b1db23e064e8eb2114185d5410695 21-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Don't change ToastBar bottom margin.

With no conversation view pager title strip,
we don't ever need to change the height.

Change-Id: I7d18919a156296f3ed8bd0f2e1098e6085b1469c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e0d01fb7379225a0f058999d9da9050f2fcc6945 20-Aug-2013 Scott Kennedy <skennedy@google.com> Show the selected state on an ad on two pane

Also show the selected caret

Bug: 10212376
Change-Id: I075b2aebfbe869c658108f7d36109ad70402b4c7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
516b31665599f35d6845c5ffcaaab547ceb66640 19-Aug-2013 Scott Kennedy <skennedy@google.com> Actually remove the AdFragment when we stop viewing it

Otherwise, we're left with its action items in the ActionBar.

Bug: 10212376
Change-Id: Ic8843e0b205f617a9fcc75573bbe01d996e79890
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
45c4ce371f5ecc7bf6eb3cc99731a93fdb6557ca 16-Aug-2013 Scott Kennedy <skennedy@google.com> Support ads in TwoPaneLayout

Bug: 10212376
Change-Id: I8598501deb8012e6a8ec543c419cf6b251178e2a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f8ccdcfc26f362d9c20771e2295a0c0e8d1195f3 09-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Refactor ActionableToastBar and ToastBarOperation.

Now supports ToastBarOperation performing actions
when the action button is clicked or the toast bar
disappears.

Change-Id: If191e3cbbf404d2371e086e105627c9474167e8a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d9eaca8676ad4c6c58122fd41be799872bfd9cda 05-Aug-2013 Tony Mantler <nicoya@google.com> Fix drawer handling when in "Waiting for sync" state

b/10153197

Change-Id: Ic65855e9210271cdc3b715c64d8d786026ae9a67
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1480e057a5fa7f24d488a6c37cf4a2ee3c5c92ef 02-Aug-2013 Alice Yang <alice@google.com> Remove wtfs

Bug 9777558

Change-Id: Ife1f4006f16dc76e113f8d00c173e7893b65e7fd
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2b9d80eb16156173f11a02eae4f770d8c975927c 31-Jul-2013 Scott Kennedy <skennedy@google.com> Change all resid switches to if-elseif-else

I really want to get this building in an IDE.

As per http://tools.android.com/tips/non-constant-fields, library
projects (like UnifiedEmail will be) have non-final R constants. They
are not final until packaged into the main application project's
(Gmail/Email)'s R.java.

As such, they cannot be used in switch case statements, and we must
use if-elseif-elseif-elseif-...-else instead.

"This is typically in UI code and the performance impact is
negligible."

Change-Id: Ie699c13e1becd51c59c1b2ea81bc902d4f2e28d9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
103319aaed26bce257de55b2fe93d4f78d3c59b9 26-Jul-2013 Scott Kennedy <skennedy@google.com> Ads in conversation list

Change-Id: I3095409211d6a6bdc42212bcd6a330333a9da411
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
259df5b9e11908c8ef7c91483924891dd96b3c27 11-Jul-2013 Scott Kennedy <skennedy@google.com> Add a new FolderUri

This will allow us to add query parameters such that Uris will still
appear to be equal, regardless of differences in the parameters.

Bug: 9780067
Change-Id: Iafe39763b3ee448cf02536df89caa736500dfdaf
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a3bbac02817b12e7641ba67f95d60ecd7794b500 04-Jul-2013 Vikram Aggarwal <viki@google.com> Parent folder as a URI

1. Change folder to a URI
2. Fix references.

Bug: 9694857 Populate folder.parent correctly in the provider
Bug: 9694899 Clean up the hierarchy folder code

Change-Id: I4eff33d0259777e447cfe5769813db990f142077
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
05e539a255ed3075109894f39c63cbec157d729f 04-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Prevent NPE.

Fixes b/9265059 by adding some null checks.
Also added some wtf logs so we can figure out
what is null.

Change-Id: I2c8c660effa63abdddaa3fa075952ed46681192b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c23378b93487fa54088a11aa660dd6aa8f16802d 11-Jun-2013 Vikram Aggarwal <viki@google.com> More cleanup

Change-Id: I61acdfd84c1958eca05437e03734581f7ace6b25
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a3abeed709c97fb4c4611adf24d7789c0e6964dc 11-Jun-2013 Vikram Aggarwal <viki@google.com> Nested folder cleanup

With the removal of nesting in the drawer, we can simplify some of the
code in the FolderListFragment

Change-Id: Ib0d7c25151c4fd358d9efb3dc37d75c46be1e374
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
37a20ca39be842b4b4cb54d5b5ed418d49d950cf 06-Jun-2013 Vikram Aggarwal <viki@google.com> Fist cut of nested folders

1. Rename FolderListFragment.FolderListSelectionListener to
FolderSelector.

2. Allow special views to be tapped; all existing special views
disallow taps.

3. Allow nested folders in ConversationListFragment. The adapter is
responsible for populating the nested folders above the
conversations.

4. Add a nested folder special item for the conversation list. This
reuses current resources and is particularly ugly. The ugliness
will be fixed once we have a UX spec and real assets.

5. The child folders are loaded through an ObjectCursorLoader in the
ConversationListFragment.

Change-Id: I5eb566d7a1f87c1a11fc6961378d00650a27007d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
24633ce8bb737f990459210eeffa38f0ca1894c3 31-May-2013 Scott Kennedy <skennedy@google.com> Merge "Fix hierarchical FolderListFragments" into jb-ub-mail-ur10
feb5b1ef0c9489c1ea727177f8bd423250b64990 29-May-2013 Scott Kennedy <skennedy@google.com> Fix hierarchical FolderListFragments

We were never using most of the args we set.

There are multiple active FLFs (drawer and subfolder). Both of these
are notified of folder changes, and then they check if that folder
exists in their cursor. If not, they switch you back to the account's
default inbox. However, the cursor for the drawer only has top level
folders, so this breaks. Now, we have a full folder list cursor in
each FLF, and this is used for that check.

Bug: 8575001
Change-Id: I47f17fb9c5d108b2388db5ba918f6413a018b414
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3a6db65198ced51c81675bc9584fd14c0dfe2b2d 31-May-2013 Andrew Sapperstein <asapperstein@google.com> Return to inbox when hitting back from label.

Fixes b/9006969. When we're in 7-inch tablet,
we need to return to inbox when in a non-default
inbox label. But 10-inch tablet should exit. This
CL makes that happen.

Change-Id: I4ff562ebfe490cc9d8a740d1dbc3d2370194909e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
71c7a15a61d44e77870dad11b286e2e020735fbc 23-May-2013 Scott Kennedy <skennedy@google.com> If you select a Folder, enter conversation list mode

Selecting a Gmail inbox section from the teaser, while viewing a
message in Primary, would change the conversation list, but the
message would remain in view.

This will bump is back out into conversation list mode.

Bug: 9094738
Change-Id: I19f197e2e1b7f94ae538e56b107322cc9fea3b80
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8d7162eac64206281267c48f58ff9690429bee2f 08-May-2013 Andy Huang <ath@google.com> grand unified toast bar sizing

Death to constants.

Bug: 8872920
Change-Id: Ic90ddac4b741ec57dd59aadf4d3d426d9813e105
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
12b3ee458e04ac7e0b69302e671d10b24a5c98cf 25-Apr-2013 Andy Huang <ath@google.com> use the drawer on small tablets. general tablet layout love.

Added 'spacious' variant of NORMAL list item layout.
Because the determination of whether to use tight or spacious dimensions
isn't easy with resource qualifiers (think of 7" tablet, which uses
tight dimensions for 2-pane side-by-side layout, but spacious dimensions
in portrait), I just made a whole new layout for this permutation.
Please remember to maintain NORMAL, WIDE, and now NORMAL/spacious
variants!

Use WIDE mode + drawer on landscape 7" tablet.

Make 2-pane controller and layout drawer-aware. Pull up drawer code into
the common controller base class. 10" 2-pane continues to not use a
drawer.

Don't use a resource qualifier to decide between normal and wide item
layouts (same reason as spacious dimensions above). Use the actual item
width as a dimensional test (list_min_width_is_wide).

Use default drawer scrim color.

TODO:
the conversation-open animation is janky looking.
can't open the drawer in conv mode/7" landscape

Bug: 8578806
Change-Id: I1210b1d47d1756353f7c386873465751ca21f801
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
5952761d1916f8568a47a55c6f6a74b90aad2b83 27-Apr-2013 Mark Wei <markwei@google.com> am 6126d72a: Fix multi-selection on tablets. We invalidated our previous assumption that tablets will always have a checkbox. This fixes new issues with tablet CAB mode.

* commit '6126d72ae2769bd39451872f45781cadb5b90515':
Fix multi-selection on tablets. We invalidated our previous assumption that tablets will always have a checkbox. This fixes new issues with tablet CAB mode.
6126d72ae2769bd39451872f45781cadb5b90515 25-Apr-2013 Mark Wei <markwei@google.com> Fix multi-selection on tablets.
We invalidated our previous assumption that tablets will always have a checkbox.
This fixes new issues with tablet CAB mode.

Bug: 8698135
Change-Id: If76f0f3d07f1b515afc5d05f57f0d8cc068b3fe9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
687e64deeafade4709bf0acac1076776bc9ab9a9 25-Apr-2013 Rohan Shah <shahrk@google.com> Remove account from widget folder selection

For widgets, we should not show accounts. Removed
from list by adding an instance var to manage it.

Bug: 8713654
Change-Id: I1cb8b219e67e6d61e6e767a27077b1b8c31ccd3e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8c887ef97607ad5c2c94d1d3b902afe6d5ef95a0 24-Apr-2013 Paul Westbrook <pwestbro@google.com> Support pressing title to toggle drawer

Bug: 8521542
Change-Id: I920a54f5ea69a8f839c0134a6fc274b0645e157c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8cbf281d1676c21ced08c42da2aa9828cdadd87d 12-Apr-2013 Vikram Aggarwal <viki@google.com> Switch out of wait mode correctly

The burden of transitioning out of wait fragment is on the
implementation of hideWaitForInitialization(). It is correctly handled
on phone, but not on tablet.

On tablet, if we have not transitioned out to the correct mode, we
should set the mode to conversation list mode, which is the only valid
mode to set at this point.

Bug: 8529007 Compose, Search, Manage labels and Settings are missing
from menu bar in list view on Nakasi after adding an
account

Bug: 8427487 Blank page is displayed upon opening Gmail 4.3 (UR8) on
ICS tablets

Change-Id: I779969187e1aaf0b84697354544b6f0440e93578
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1f45e419a6fecce4cea8dab9bef845dd9559b071 10-Apr-2013 Rohan Shah <shahrk@google.com> Stop WaitingForSync from taking up whole screen

Waiting for Sync was taking up the entire screen
on tablets previously. This change makes it only
replace the conversation list area as opposed to
covering the entire screen and the folder list.

Bug: 8483730 Tablet waiting for account sync takes
up full screen
Change-Id: I123b4cd0d5ee2a504e4ca059dbee5d0971c8c649
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ff8553f20964f4c31b0c503a9e1daff6ae08a9c7 06-Apr-2013 Scott Kennedy <skennedy@google.com> Cleanup

Change-Id: Iee8abf75639450d469632e43fe0e102b687558db
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e6459424b3e46d768865c908af1caa932f783095 02-Apr-2013 Andy Huang <ath@google.com> fix blank conversation view on tablet when launching from intent

If a 2-pane layout pass finished before the FIRST_FOLDER loader returned
results, the layout pass triggered an early showConversation() operation
before mConversationToShow is set by the FIRST_FOLDER loader.

The later showConversation() in the FIRST_FOLDER onLoadFinished did not
re-run the operation, because it assumed a transition would run that
showConversation had to wait for. The transition does not actually run
because TwoPaneLayout debounces consecutive requests to change the view
mode.

So...
* don't switch modes on FIRST_FOLDER load unnecessarily
* FIRST_FOLDER load was triggering a mode change to LIST, so move that
into loadAccountInbox
* don't have 2-pane ask ViewMode to see if the mode changed, have it
ask TPL instead

Add some helpful optional logging, and a facility to ObjectCursorLoader
to slow down race conditions for debugging purposes.

Bug: 8408885
Change-Id: If4672c0f6c4426f810de33f65694119d678bacfb
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6e0a11d7351601ea2e9bd3f78665651581b2b03f 30-Mar-2013 Vikram Aggarwal <viki@google.com> Create drawer once, even in two-pane

Much like the previous change, we should create the drawer once at app
start-up and tear it down once at app tear-down. Saves a lot of
effort in creating and deleting drawer elements.

Previous change:
https://googleplex-android-review.googlesource.com/#/c/290576/

Change-Id: I7bbdf919469e2d41d1fa3f1a582bd650dca47a51
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
564c969875af7d4c760fd791a97696e247a641c2 29-Mar-2013 Vikram Aggarwal <viki@google.com> Fix excluded types

We only need to exclude types only for top-level lists, not subsequent
hierarchical folders.

Bug: 8506090 Excluding folder types is currently broken

Change-Id: I1c18a9302c756c55f9e12ed33bfd8fe9820a7108
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e9dcd245262567c1d294d36faa7f0f23973cb229 26-Mar-2013 Vikram Aggarwal <viki@google.com> Enable Hierarchical folder lists

This re-enables hierarchical by either getting the folder list URI at
construction time or as a list from the current account.

Bug: 8473060 Folder List Fragment for Hierarchical folders is busted
Change-Id: I5c8435b521f436f65bff83803c70684eb6d2dd40
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9860f5ebcd77bce62f76ccf46cee939fe4f2858a 26-Mar-2013 Rohan Shah <shahrk@google.com> Remove MORE label references

Remove the more label entirely from FolderListFragment and DrawerItem.

Change-Id: I4f557764325f9065aa8c02bb10a88afbd93e53a4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c82a0322ef0c2eb35bf0ae8deb2e9292060ca946 25-Mar-2013 Vikram Aggarwal <viki@google.com> Reset the FLF arguments when the account changes.

Earlier we were creating a new FLF every time an account changes. We
aren't doing that anymore so we need to change the arguments when the
account changes.

Changes:

1. Decouple the folder list URI from fragment creation.

2. Instead, always read the folder list URI from the current account.

3. No point saving it or restoring it from bundles.

4. Implement AccountController in the FolderSelectionActivity to pass
the current account when creating widgets/shortcuts.

...and minor changes:

1. controller.loadFolderList() is only called from OnePane, so making
that private

2. Removing the folder list URI as an instance variable since that is
now unrelated to the creation of the account.

Bug: 8437457 Mismatch of personal/corp account
Change-Id: I81170ee80b5f9e064fd13edbc23981171740d814
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6a3d5ce0b18f58fcfa1af0315dc8ddc7331c2c5f 16-Mar-2013 Scott Kennedy <skennedy@google.com> Change the undo message for a "Move to" action

Previously, the undo bar toast could only show the currently
displayed folder, but we want to be able to say something like
"Moved to Social". So now, we can pass in any folder that we
consider the recipient of the action, and this is the folder name
that gets displayed in the toast.

Change-Id: I0b17462be86657f7d0c9a3504d15091a157a2292
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8b353d3473421acc1ccade5d0c207c781a218ffd 15-Mar-2013 Rohan Shah <shahrk@google.com> Remove collapsed headers for tablet only

Take out "More" and "More accounts" when the
FolderListFragment is displayed on tablets thru
the two pane layout.

Change-Id: I4a4ee8a7572edd6b025dc82a490f3f3603d10beb
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
5fd8afd5c1b40580c069a5a97039ca0601208216 13-Mar-2013 Vikram Aggarwal <viki@google.com> Remove unused interface and rename method

changeAccount(account) is more indicative of its purpose than
onAccountChanged(account) which suggests that the account has
*already* been changed.

Change-Id: I7dd780e16b6a238814748bb429113dfe1069d9aa
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
177097fad8fc26b8a215f9f1af6dd5fd2c8eb06c 08-Mar-2013 Vikram Aggarwal <viki@google.com> Loaders that create objects in the background

Create Folder objects in the background. This frees the UI thread
after onLoadFinished is called, since the object has already been
created.

Bug: 8315641 optimize AbstractActivityController's loaders

Change-Id: I1f4b2f679cf99a9193d88cb6b9a5aa77b33d6ea9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8e65c6d2527c7539b689e0e8548c84f690badca5 08-Mar-2013 Rohan Shah <shahrk@google.com> Drawer support prototype

Added drawer in the stead of the folder list selection.
Drawer works as expected, by swiping from the left and
following up with the drag. The show labels item has
changed functionality - toggling drawer state.

Change-Id: I34efc865c95696911d8cdf96e83a4334816378a0
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3e068bab6009a758309f07ddcea3d6171feac635 06-Mar-2013 Vikram Aggarwal <viki@google.com> Some more cleanup

Change-Id: Ib641e1c876bc4187815e4089fb839196056c087e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a88304d638bfe9ba9a29b7c3f9c4f60d23a9b461 22-Feb-2013 Rohan Shah <shahrk@google.com> Remove back button when Waiting For Sync

When waiting for sync (No Conversation List/Item shown),
there used to be a back arrow without any purpose attached
to the Gmail icon.

The change adds on consideration for the view mode being
"WAITING_FOR_ACCOUNT_INITIALIZATION" such that the action
bar icon does not present the back button.

Bug: 8142710
Change-Id: I9294b25d3bd13ab54c1bc6e5a5d54d0770bb97c8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c1fb9a9c2730178105977fca629e80951bfc3cdc 11-Feb-2013 Andy Huang <ath@google.com> Single-message zoom using a floating WebView

Protected by an experimental pref for now
Restores scroll position
Preserves 'show pics' state
Speedy animation
Fade-in animation begins right after onNewPicture (ICS compatible!)
add UpOrBackController role for fragments to get a whack at back/up

And because this approach avoids using the CSS 'zoom' attribute
within single-message mode, double-tap works well and there are no
line-height issues.

Bug: 7400516
Change-Id: Idedfa6e35edc291c9169fbd9b1315b39b4253f60
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d31f0cf7dc06292527e23853b818aa9c9bc74ba6 19-Jan-2013 Vikram Aggarwal <viki@google.com> Remove obsolete TODOs and obsolete code

The extra constant was kept for compatibility. It has been renamed to
ACCOUNT_INITIALIZATION_REQUIRED

Remove TODOs that aren't valid anymore.

Change-Id: I9fa0ca638e1b2f6578895b77a7087362bda3ce2c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f98db959678b7d632dc7f40a7b930e9dab7a616f 17-Jan-2013 Vikram Aggarwal <viki@google.com> Clarify assumptions and simplify

No feature change.

Change-Id: Ifd198873f9f8729d694ca23cf2629d721e6a31ba
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
17a8e78d61bff414610e23f24889bab29955f54e 29-Nov-2012 mindyp <mindyp@google.com> Don't animate committing destructive items when we are opening a new fragment/view

Fixes b/625303 Swiped away message reappears.

Change-Id: I273fa2e69d3fe599af52f41c4ebb4c373e193272
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c59dd8270215f97d39697dae9e69976bcfe3642b 13-Nov-2012 mindyp <mindyp@google.com> Make sure we use our version of converting from html to plain text.

Fixes b/7532730 audit UnifiedEmail and replace all Html.to / Html.from with our HTML tree parser

Change-Id: Iad23b688175b20db698fce5efccbe869c12d0b5c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f0ef23054a2311f898955178ff53a2f29ca425c9 07-Nov-2012 Vikram Aggarwal <viki@google.com> Only enter conversation mode if we have search results.

We currently enter conversation mode even if we don't have any
conversations from search. This results in a blank conversation view,
which is not satisfactory. Instead, we should only enter conversation
view if we have some conversation to show.

Bug: 7315837 Rotate device while searching in Gmail is showing blank
screen

Change-Id: I28cbd8998a5de1bb526a56b66cc54d35057c7a3d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
93dc202420c3bf8adf4d9e8ae18c8e30e3cb1959 05-Nov-2012 Vikram Aggarwal <viki@google.com> Make up icon work consistently for recent & label list

Fixed two problems with the up icon. Removed the visibility of the
resetActionBar() method and removed code duplication.

Bug: 7419208 Up arrow next to app icon isn't updated in two cases
Change-Id: I0b166bfe9984eb4f5ce0370d1c0abbb036fab93d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d243d459b64003c5171ac5ff606729e525161be6 01-Nov-2012 Mark Wei <markwei@google.com> Reposition Undo Bar if user enters into conversation before or while the
animation is running.

Give a little bit of margin to the Undo Bar when it is not shown in the
conversation to match the amount of empty space under the Undo Bar while it is
shown in the conversation.

Bug: 7418034
Change-Id: I7f4333b9bc89e8c55a938c8aeb37026abc419a1a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a3f43d4c2423ab03bdae925042fe8440b7f70025 26-Oct-2012 Vikram Aggarwal <viki@google.com> Allow immediate removal of a wait fragment.

Another variant of the problem, where adding a wait fragment and
immediately removing it (all in handleIntent) doesn't work because
getFragmentByTag() fails.

Bug: 7377741 Waiting for sync didn't dismiss when attempting to view
conversation

Change-Id: I5536cb692dfb57bf998c0f01b34e42fe3118789c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
dd6a7ce32c4003bd0941e2f18fcf5b80b5cd43c5 23-Oct-2012 Vikram Aggarwal <viki@google.com> Reduce visibility of methods

Change-Id: Icb0d2698debfcecb440477a6125d8981b8e68bfb
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4271bf0350442b594729d3074530bc0d8deac2a2 11-Oct-2012 mindyp <mindyp@google.com> The animation for folderlistfrag on 720dp devices is too janky

disable it
fixes b/7329623 don't animate the folderlistfragment transition

Change-Id: Ic4e67f7e64941f3d18cc89ff66e2817f19dd5441
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f047ef3bbb1995a8da7f8299ccd7cff0ba8f2078 02-Oct-2012 mindyp <mindyp@google.com> Use resources to define the undo bar width values.

That way, we don't have to wait for 2 pane to complete layout
to know how wide to make it.

Fixes b/7267726 undo bar resizes on rotate

Change-Id: Ie442ad3772b9130fa5a368388a661cd343e7c8b6
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e21f88695fca2fde6d3636ab505ca28f74c8eb42 01-Oct-2012 mindyp <mindyp@google.com> Only smooth scroll to the selected item if it is not the same as the old one.

We will always scroll to the selected item in 1 pane
If the user scrolls the selected item offscreen in 2 pane, we don't
want to scroll to it
Do this by checking the id of the selected item against the new item
before scrolling in 2 pane

Fixes b/7256978 Conversation list scrolls to selected item

Change-Id: Ia13369d864d31bac89e931beeed813b0df6380e1
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
fcfef4279a971c23b17b240f28663304dad9b695 27-Sep-2012 mindyp <mindyp@google.com> Make sure we have a convlist before getting the adapter.

We already do this for the other case above.
Fixes b/7245859 NPE in Gmail at mail.ui.TwoPaneController.onUndoAvailable(TwoPaneController.java:472)

Change-Id: I2a9b3f8073266f23eddb98125cdeffe9494f0ee4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
49e0e991fe8880852b936a0f8d7d57c5b36f2154 21-Sep-2012 Vikram Aggarwal <viki@google.com> Not in conversation view -> unset current conversation

When the current conversation goes out of visibility, we should unset
the mCurrentConversation because many objects get the conversation
from AAC.getCurrentConversation().

I tested this with both one pane and two pane, with search and
otherwise. But I wouldn't be surprised if this breaks something. If it
does, revert!

Fixes Bug: 7205219 Message list is scrolled down by itself until it
reaches last read message

Change-Id: I263c07e8063e7094a1defca76dde788b52df71ff
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4166dee04af54bb0abd7b3761fd8ded711297073 14-Sep-2012 Vikram Aggarwal <viki@google.com> FLF gets selectedFolder from controller.

Also, save the selected folder type in a bundle and always set it when
the fragment is created.

This avoids a host of problems with the existence of FLF from the
controller.

Fixes b/7170094 Folder not highlighted when launching from
notification/widget

Change-Id: I944851f168733aefd1c71991dff7b55b39bdf1a5
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b42891c852d93bb5b3f5f198298b4de78d2ca3ef 14-Sep-2012 Vikram Aggarwal <viki@google.com> CAB mode save/restore on orientation change

Fixes b/7149877 On rotation change CAB mode is displayed on
conversation view

Change-Id: I50cc47ec9e7f8a14a1b987617467b8d590afacea
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a3ed834c959ece3453c1b34953fabecb3b19c424 01-Sep-2012 Andy Huang <ath@google.com> new two-pane layout

New, simplified 2-pane ViewGroup.
This version shuffles three panes around, like the last one, but
also supports other floating children like any FrameLayout
would. The animation is now done using ViewPropertyAnimator.
The cross-fade of the conversation list is now done with a
separate "copy" view (ConversationListCopy) that's animated in
tandem with the real list view.

Bug: 6963808
Change-Id: Icee580f663a50537874c1f98e9bbac822f58e571
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
69b5c304f9572f18c0fcb456d81cccf2e560c72f 05-Sep-2012 Vikram Aggarwal <viki@google.com> Inform the cursor when a folder is first shown.

Fixes b/7100089 Need a way to know when a mailbox is entered

Change-Id: Ib60b8c2ac8e741f0d6fbaaa1656524371d6668f2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2c0032dd2a4996680ab6e1958fe80a2ebcd01ef3 04-Sep-2012 Vikram Aggarwal <viki@google.com> Use sectioned lists only on two pane.

Fixes b/7102332 Creating a widget crashes in FolderListFragment

Change-Id: I66616725d954a4e9e28f237fb1f52ce82d488afa
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d736a385f1ce5e1a59a7953f9245526b37126809 29-Aug-2012 Andy Huang <ath@google.com> minimize state changes to avoid blank views

Disable 2-pane layout transitions for now. Some devices
sometimes don't terminate the transition, which prevents
layouts from happening.

Refactor actionbar's menu prep to avoid unnecessary changes to
actionbar view state. Frequent changes induced actionbar's
internal Spinner to sometimes do layout during a layout,
orphaning view subtrees and causing blank views.

Now that the known root causes are fixed, disable the original
workaround so new issues can surface and be fixed sooner.

Remove an unnecessary menu invalidate in AAC.

Remove unnecessary view containers in 2-pane layout.

Bug: 6946182
Change-Id: I8334a3846996ca06c0da56f1c1a33089a2fca3de
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3825f3d2284b2b57fadcfe6a4ebd9992f3c5c7bb 30-Aug-2012 Andy Huang <ath@google.com> fix spurious stopListening on the pager when loading from widget

When loading from a VIEW intent, the pager was sometimes
disconnected from its data source before the data was loaded,
which caused it to stay in singleton mode forever.

The original code to disconnect the pager was intended to
disable pager updates when jumping back from conversation mode
in 2-pane (via account spinner), so move that call to the
beginning of 2-pane's mode change animation.

Also do a bit of misc API cleanup.

Bug: 7076780
Change-Id: I508b59816f4f537276aa103b9dcae51972389eb0
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
649b9ea3653da73fac0c33c8fb0af18baad12ac3 27-Aug-2012 Vikram Aggarwal <viki@google.com> Fragment save/restore machinery

1. Avoids creating ConversationListFragment and FolderListFragment
objects when restoring state.
2. Stores and restores the view mode correctly.
3. Moves core logic to the AbstractController where possible.
4. FolderListFragment scroll position and selected state is verified
working in One-Pane and Two-Pane.
5. Fewer mode changes, less creation and destruction of fragments.

Coming soon:
1. Restore scroll position in ConversationListFragment.
2. Fix some inconsitencies discovered and marked with TODO(viki).

Change-Id: I4d11a576587b8e85300202650381b6e4df3ce61e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1ee96b2b100546b5b69ad42c5bc3755a4293d1a3 25-Aug-2012 Andy Huang <ath@google.com> handle missing messages every which way

Entire conversations can disappear upon sync (should pop back)
Or just single messages can disappear (should keep conv in view)

Handle these specially in conversation view. Stay on the current
conversation when possible, except if no messages remain, we
should pop back to list view.

When single messages disappear, make sure we don't treat all
the rest as super-collapsed, or else the conv will render empty.

When popping back to list view, we can't call popBackStack()
from onLoadFinished(). Since we only need to do this in 1-pane,
add logic to 1-pane's showConversation() to handle cases where
the caller is in onLoadFinished. In that case, we need to defer
the work slightly, but still be aware of other FragmentManager
constraints when later handling the deferred job.

Bug: 6889742
Bug: 7005366
Change-Id: Id37f878e82523837b7f105d49fb736f774bad224
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
203dc00aff8e890000ee0c9587081e0968fdae8d 23-Aug-2012 Vikram Aggarwal <viki@google.com> Use existing CLF and FLF in onCreate.

This will reuse existing fragments if they exist. If a folder is
selected in the FolderListFragment, it will continue to stay selected
after this change.

Caveats:

1. I would have liked to clean up the existing methods:
showConversationList(), onFolderChanged(), etc. But changing those
might lead to bigger breakages, so duplicating code instead. Code
cleanup happens with UR8. Bug 7048818 filed to keep track of the
cleanup.

2. The current folder is not highlighted if the folder was selected
using recents. This requires the FLF to be a listener for folder
changes. This happens in the next CL.

Fix b/6879926

Change-Id: I500752478f96a1d343a045378cff5472b764cd1f
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6343feb48abdf2de6cc9bbc25859e614c0a15f50 22-Aug-2012 Vikram Aggarwal <viki@google.com> Ignore ViewMode.UNKNOWN for actionbar icon

Fix b/6996976

Change-Id: I0dde6c4d8ba4c479274a972fd23ad7d41b9ee7dc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
49c7f80747eac40316f225267dc0093978e5efe2 22-Aug-2012 Paul Westbrook <pwestbro@google.com> Use a separate view for the wait fragment

Adding a fragment to a view that is used by by other fragments
seems to cause a problem when attempting to re-add the fragmeents to the
hierarchy

Instead create a node in the view hierarchy that is only used for the
wait fragment

Bug: 6829431
Change-Id: I5de3d0513e0bfdb7fcf7793cf6022cf43f9f5833
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ca9b3f6c4a6611ccf89016f63ecf672f2f008820 16-Aug-2012 Vikram Aggarwal <viki@google.com> Correct the list visibility in Two-Pane mode.

Fixes the following problems:

1. R.bool.list_collapsed is only meaningful in conversation mode,
while previously it was used even in conversation list mode
(b/6980648)

2. Dispatching conversation list visibility should happen when
entering conversation mode.

3. Change the list visibility before changing the layout to ensure
correct measurements.

4. Dispatching conversation list visibility change can be safely done
on the UI thread.

5. Consistent variable naming, and removing dead code.

Change-Id: Ic910b7adc7bdb1b599a7e650239d580d36c3478b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
01f30509c4c8ad0d13b7635447b7f023c7a0cab7 14-Aug-2012 Mindy Pereira <mindyp@google.com> Show remove folder option in user created labels.

Fixes b/6977686 User created labels don't have Remove label (archive) icon

Change-Id: Icecada98ac11e66f622fbac80991a481873eed18
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8742a614a238c5ae55d767461000d0a10d1da4d4 13-Aug-2012 Vikram Aggarwal <viki@google.com> Miscelaneous cleanup

Change-Id: I960ecf14c72ed41b6f46dd1bf2c1868f367d2f31
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4e0158f03fd8f430e88394e8b99e1b65ed01838a 08-Aug-2012 Andy Huang <ath@google.com> speculative fix for destroyed activity case

It's possible for the two-pane conversation->list animation to
finish after the activity is already destroyed (apparently).
Choreographer is not aborting early, so we must check for a dead
Activity and avoid work (which may depend on Activity) in
response to onAnimationEnd.

Bug: 6931878
Change-Id: Ifeb4ac6664e0db18b263ae201a20d0811971f347
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ae4ea997d3d3f3c8c11fc5a3e7f9d49f82b4e2e7 07-Aug-2012 Vikram Aggarwal <viki@google.com> Remove NPE when listContext is null

Change-Id: Ife330f28c3d34b8e0d028d30c92e857dec86d81f
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1a249e094e961f463ff392390d591a1d37106e69 04-Aug-2012 Vikram Aggarwal <viki@google.com> Create folder list on Widget title tap

Fix b/6907748

Change-Id: I4207152b8ea85f0377aa1f295a829c9808b9d9c5
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d388adea63c2a2ba91e4187fc0342d461f15fdfc 03-Aug-2012 Vikram Aggarwal <viki@google.com> Prevent monkey crash

Change-Id: I02e3ebf8d14ec4ddd5cbd85ed19b12e0f8fa089b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7b6d03db55338cbf9717896f99eb20d02bf371e4 30-Jul-2012 Mindy Pereira <mindyp@google.com> Serialized strings are faster than json

Also, cleaned up/ reduced the number of Folder methods
that do the same exact thing.
From ~24ms to ~12ms/conversation now
AKA in half AGAIN
Change-Id: Ibdc67fe94d66ce32d933b4e18e9581d8c71d9974
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
192fac189e6aed434556a4e37bd3c5c29ef02f29 26-Jul-2012 Vikram Aggarwal <viki@google.com> Eliminate some poor pager/list/destructive action interplay.

Change-Id: Ib7f3a7dfd194fe7f5df0f59b5b2989d31b55a631
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8937bf1552a86853efc798a4d8df34c01115cdfd 23-Jul-2012 Mindy Pereira <mindyp@google.com> Commit leave behind items on view mode change, conv selected, cab mode exited, any new action.

Future CL's will handle animating these out nicely, once
the animations are decided upon. Currently, they just
disappear.

Change-Id: I1a1ee0ed3be0a684c2838f25d804e8fb2b1fbfc7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
148b191681abebc56973f7a42d9adfbdf30c8a2c 17-Jul-2012 Mindy Pereira <mindyp@google.com> Restore hierarchical folder on orientation change.

Make sure to enter folder list mode if the hierarchical folder flag is set
as well.

Update TwoPaneController to use the hierarchyFolder to determine
what to save/restore/how to go up the chain

Change-Id: If8879a952f9dd63b0b29f4402f060906d83bf543
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9d7519d18e8ddbcdd59b37eec7c85210fca0e8c2 16-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Error notifications show after orientation change.

Change-Id: Id038a4ee7a7f28fe7119d71e070464d9663f8516
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d3367499e56116854ed637b1036fd71057ac0f49 26-Jun-2012 Mindy Pereira <mindyp@google.com> Make it possible to restore undo operations.

Conflicts:

src/com/android/mail/ui/AbstractActivityController.java
src/com/android/mail/ui/SwipeableListView.java
src/com/android/mail/ui/UndoBarView.java

Change-Id: I42441c60e9ab7aff8f4c07dd21d03d2e419b2d0b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c2c9dc14aa184db1f05b8c060b27d97dda5a3ca4 03-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Refactored UndoBarView into ActionableToastBar.

This step was mostly renaming. Deleted some unused
stuff. Made the show() method far more
general. Now showing sync errors as a toast.

Still requires some tweaking for the different error
types.

Change-Id: I476e107ed89ed492b44b081d32e4216504626c13
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1c3cac4cca3aac6a06f1120ea1a5919bcdd8200c 30-Jun-2012 Andrew Sapperstein <asapperstein@google.com> Undo Bar refactoring and layout fixes.

Previously, the undo bar was declared in xml
and included a layout called undo_bar. undo_bar
contained merely a LinearLayout and an include
for undo_row. Since the undo bar was just a FrameLayout,
turning it into a LinearLayout enabled the elimination of
undo_bar.xml.

In testing this change, noticed several bugs in the layout
of the undo bar. It was not properly accounting for left
and right margins in two pane mode, was obscuring the
pager strip in the conversation view, and was not showing
up in the left column when performing a batch operation
in two pane mode. All of these have been fixed.

Change-Id: I0c6a2656c5a86d38aab6fef074b16f1b61f20a1b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
864e758a75b0d4945974ea516a23c63e4785973f 30-Jun-2012 Andy Huang <ath@google.com> advance selected list item upon conversation swipe

Bug: 6763207
Change-Id: Iffc86b92b9a3ecc698fc865b6b40f0eddd8208ec
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
907e0d8e10457f535b47b9849873f4ab9bec72ad 29-Jun-2012 Andrew Sapperstein <asapperstein@google.com> Fixed two pane bug that caused undo to do nothing.

Change-Id: Ic3819d6f355755dec5a95a6664faebfb856c5da6
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
12a4d8040d64501aa5a24c25865c806331560b74 22-Jun-2012 Mindy Pereira <mindyp@google.com> eow that two pane hierarchies are fixed, fix 1 pane hierarchy navigation

Fixes b/6406686 Navigation issue when pressing back when in nested folders

Change-Id: Iae5e472508b0f5c886e41b607b79963199a72f40
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4eb5271e0f0a48ea624e048eb69fbe86d6c62dc3 20-Jun-2012 Vikram Aggarwal <viki@google.com> Exit CAB mode on folder change in tablet.

Fix b/6696861

Change-Id: I679c4a635992f7f7db850785610c353ac70ea85a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
505df5f59c92adbe8eaa734321c1d3f91be84a4a 20-Jun-2012 Mindy Pereira <mindyp@google.com> Fixup multi level hierarchies

Fixes several issues:
1) now properly shows parent icon at all levels
2) now properly hides parent icon at all levels (recycling views
means we have to show/hide each time!)
3) moving up/ down the hierarchy works properly

open issue:
going back from a folder with children to its parent
does not select the child folder in its parent view

Change-Id: I46995ee636ac199a3d600eea0b5f37bd3bf624ff
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ac2548293e93c14b1d14e6de53328c561ba1cca6 18-Jun-2012 Mindy Pereira <mindyp@google.com> Small tweaks to make search on tablet work better.

This makes sure we clear the focus from the search entry field
when in search results mode.
Also, when in two pane display for search results, we want
to show search_results_conversation mode and not search_results_mode
Now, when the user rotates to or first enters search in landscape,
we don't get the annoying transition from FolderList|Result List
to Result List | Conversation; it goes directly to Result List|Conv
Change-Id: I980990aa34d6712b7ebe5212a515a3931473cba8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b466bcf49502a1178cf7362a81470f3231d8892b 15-Jun-2012 Mindy Pereira <mindyp@google.com> Fixup behaviors for action bar when in search mode.

Now that the subject is showing in conv mode, can confirm
this all works as expected.

Change-Id: I707f3f46a2a5bdfa49e61bc1eacb217c5a1ba86c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
11e3596e8c5978d07195ae2d7c8a96bb51aa75b3 01-Jun-2012 Mindy Pereira <mindyp@google.com> Handle up and back behavior for the one pane/ two pane folder lists.

Adding hierarchies makes this more complex.

Change-Id: I6f4946c351c53dbfda880780fe804d8e57c4a494
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
13c12a628bd4f1e52b9a4fc44a18b85bfdaeb88b 01-Jun-2012 Mindy Pereira <mindyp@google.com> Update hierarchical folders; implement this "the right way"

Have 2 list adapters that understand when to setup a hierarchy
and when to not

Change-Id: I98b349ac373689c091bd8227a975bc47ae3f5092
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
599bc6b8aad47400da844add5a6fb08965398fd1 29-May-2012 Vikram Aggarwal <viki@google.com> Prune dependencies

Change-Id: Iee766de86dea0d034fc6135527fc2c5b860051df
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ba68fdaf4f251eccba0832878a74bdaf6aa7469e 25-May-2012 Mindy Pereira <mindyp@google.com> Make inside conversation unread work; merge twopane/onepane controller logic.

These were the same!
Also inside conversation unread was not going back to the conv list.

Change-Id: Ia06bc9f33e424bb8677a9bb360e05dc7de91e811
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
04ba80fafd4c8c4473443a23cc4e0d2c28d2542b 24-May-2012 Mindy Pereira <mindyp@google.com> Set the folder currently being viewed to selected in the FolderListFragment.

For 2 pane.

Change-Id: If3f16f9d67075f8a2a49a1207727d06fd8347778
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7dd054e39986de84a213c56a3c11ac94731402e6 21-May-2012 Vikram Aggarwal <viki@google.com> Fix auto-advance on tablet.

Two issues have been fixed:
1. We get the next conversation *before* deleting the existing conversation.
2. Conversation View Fragments are not available in the same manner as
ConversationListFragment's are. Instead on relying on the existence of a view
fragment, rely on the conversation view visibility.
3. Next conversation with batch-selected conversations is now correct.

Fix b/6516141

Change-Id: I7a023ff50415347a9cdaf4bd5a9f24fe89f7530e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c30fe4172676a5ea3fdc0da8a0fbb917d9cf878e 18-May-2012 Vikram Aggarwal <viki@google.com> Call it archive rather than y_button.

Fix b/6482584

Change-Id: I7cfc511eb582a0379e92a15d4e2740777b932d4f
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3d7ca9d2aefd20dc115f20532c1e19fdb60f7d68 11-May-2012 Vikram Aggarwal <viki@google.com> Consolidate OnePane, TwoPane, and Conversation Destructive actions.

Change-Id: Ieccc3fc1962572fec78dfb1ea91557e56f931a48
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9fa43cab6a83c70a7739c3d5300fc354856f22ff 17-May-2012 Mindy Pereira <mindyp@google.com> Fix a whole bunch of bugs related to orientation changes when searching.

Change-Id: Ie64a33eb0ac716d4963fb18520032f7d27d153c2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b4b2a576ae0a3e76388994c8d54c7da9b2625164 17-May-2012 Mindy Pereira <mindyp@google.com> Make search behavior match jb search behavior.

fixes b/6497634 carry over search results behavior from jb Gmail
Change-Id: I54cea6b8d828071ad841e1f42fbdece8a1aa159b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a2f7065e22fafd666f9f2a6b681441ea01b1551a 16-May-2012 Mindy Pereira <mindyp@google.com> Update pattern for port/landscape

Conv list hides in conv portrait view
Fix relative widths of folder list/ conv list/ conv

Change-Id: I47547c994748fdabf6ac590b7905863dc0ebefc2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d503df4f0c31bbf842c6a1d3cba18df8c074bf67 11-May-2012 Vikram Aggarwal <viki@google.com> ActivityController commits folders, nobody else

Change-Id: I3ff870f275821ebc3cd08cfad0875eb229094f2e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
440fe79194314b25ef5829702494735ce2f1e2e8 11-May-2012 Vikram Aggarwal <viki@google.com> Safely create Collections.

Change-Id: I5fb740195b7aa9cd683485609ad50312b6840555
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7248535580aa5c898101b68c9438c10781d9e020 09-May-2012 Marc Blank <mblank@google.com> Prevent NPE when selecting a menu option

Bug: 6465102
Change-Id: I1eb93adab04afd5fb3de9c333c7838a8ec9b3289
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
025eba8bfd4d0b5e248b6de0bda6f1129170fb41 08-May-2012 Vikram Aggarwal <viki@google.com> Always read settings from the account

Since settings are a member of the account, read them from the account
directly rather than keeping a copy. Also, stop passing Settings if we
can pass specific values within them to limit the visibility of the
class.

(Nobody likes settings...)

Change-Id: I0b4ee83f7396c9205169e89838e0121ee17232f5
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7f602f7a64f176894ccb7942a6642f22584c3894 01-May-2012 Vikram Aggarwal <viki@google.com> Synchronize destruction and remove dead/deprecated code

Change-Id: Ia86449494cca7d4ed5e2d9d515d8afa3dd94b68d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
bc67bb1211654e69b1233e0f8759771873ca773e 30-Apr-2012 Vikram Aggarwal <viki@google.com> More Destructive Action consolidation.

Change-Id: Ib4ac078d30b6c6d721aef398ada42030f1604678
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
75daee52f08c9bf66652b9bddf42cfbd1ca71987 30-Apr-2012 Vikram Aggarwal <viki@google.com> Consolidate list refresh and deletion

Change-Id: I024dbc3f9d18ae0c762c5fd1c54855afe6d54050
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9f119c72042e4d0382017d5ddcee9aa2113b6425 25-Apr-2012 Paul Westbrook <pwestbro@google.com> Fix problems clearing notifications

Bug: 6348210
Change-Id: Icfa2084935b79afc6d747a73c017ca40c2842c8d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
acaa3c0aa2335e0a635601e09c955388d698dfda 24-Apr-2012 Vikram Aggarwal <viki@google.com> Register the controller's DestructiveAction objects

The final destructive action objects are now created by the
controller, and so we will be able to commit all destruction before
changing the conversation cursor.

This CL is the last in the series. This fixes b/6381692

Change-Id: I4d2ef0f2aa9f3289e710152a2c96b71a6efb31ef
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c7694221dfa5cec3f4ae290f2266b081b2639d80 23-Apr-2012 Vikram Aggarwal <viki@google.com> Destructive Actions. Part 2: More logic consolidated.

Get next and previous conversations through mTracker in preparation
for relying entirely on the AbstractActivityController's logic.

Change-Id: I0d477547356561316c1717d5ddbf4f467b7f3b3b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
09a4bfe3f81ee216b5c4a4e2d083432a4e387abd 23-Apr-2012 Vikram Aggarwal <viki@google.com> Destructive Actions. Part 1

1. Change ActionCompleteListener to DestructiveAction.
2. Call OnePane and TwoPane objects DestructiveActions instead.

No functionality change.

Change-Id: I492de83bc9e49948a4dabcfc5e8438220339fc46
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
bf232c3735f65b1a4746943e4a134e59e36f0bde 18-Apr-2012 Paul Westbrook <pwestbro@google.com> Major refactor of ConversationCursor

* ConversationCursors are now associated with a particular loader;
there are no static methods or static state fields
* ConversationCursorLoader maintains a list of current loaders
(for tracking/debugging)
* AbstractActivityController acts as a router of conversation
changes to/from fragments (currently message view -> conversation
list)
* Comment out some ConversationCursor tests for now

Change-Id: I9b8425a19c77501796b6681142e1bc0ad20b3693
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
cf164d64bcb1da92b427bda99b97f7ec310ef704 20-Apr-2012 Marc Blank <mblank@google.com> Revert "Major refactor of ConversationCursor"

This reverts commit 5150f03723af8019169aeed8e406784da9c5f8f1.
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
5150f03723af8019169aeed8e406784da9c5f8f1 18-Apr-2012 Paul Westbrook <pwestbro@google.com> Major refactor of ConversationCursor

* ConversationCursors are now associated with a particular loader;
there are no static methods or static state fields
* ConversationCursorLoader maintains a list of current loaders
(for tracking/debugging)
* AbstractActivityController acts as a router of conversation
changes to/from fragments (currently message view -> conversation
list)

Change-Id: I0eb554615b4bf93b3547ff28e2bd5913e8703a97
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
632721e6b3a9ba8c476456f2e0fb1b564561e0b5 12-Apr-2012 Andy Huang <ath@google.com> conversation paging

This CL takes the approach of using a permanent ViewPager that
pages through conversation fragments. Its adapter is only
set and populated when the conversation view is shown. In all
other cases, it is an inert empty layer.

One risk with this approach is that it breaks with the typical
fragment transitions that all other content panes use.

On the other hand: conversation fragments are full-on fragments
and benefit from loader separation, and the FragmentManager
takes care of save/restore of state.

Change-Id: Ic17d1ae3f35a0cb1119967f2d34433ad27fa307c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7d81600cbce3cfd366cbff9ecd1b7317ff957221 18-Apr-2012 Vikram Aggarwal <viki@google.com> Update consumers on changes to Settings

Change-Id: I96ed21a16c0dfb290198d2236fee8d21e299ec31
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1e2573bbba613fb700e8fa01c58c9382c0027b5e 17-Apr-2012 Mindy Pereira <mindyp@google.com> Commit leave behind properly on pause.

Change-Id: Ia12e60c2d7f5cc6587373f25b80ac2342533b0e4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6902dcf8688d7d0691639f49365a78a3a78fe9e3 11-Apr-2012 Vikram Aggarwal <viki@google.com> Controller gets fragments from FragmentManager

Change-Id: I1d9906ba5d70ed5580e35a53b34797cd5f1e0ad7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
cfa500421d5e092c05785b2bd0b216eb664adf53 13-Apr-2012 Vikram Aggarwal <viki@google.com> Read mCachedSettings directly.

Change-Id: I3bc086a6adbcb93c09d138687a2d9b2b9e9ba226
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
af53c7a0a0c8d54a31d1072e5bff4bccf7458acc 11-Apr-2012 Mindy Pereira <mindyp@google.com> Give correct undo width and positioning.

Need to use a framelayout as keeping the undobar in the twopanelayout
is causing issues getting the correct width.

Change-Id: Ie89e65543d6192dd0bb1e0015058c727a5597241
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2d50bcdca57756ecad20d21da0d936243215b79c 10-Apr-2012 Paul Westbrook <pwestbro@google.com> Support for unintialized accounts

This is the initial CL for support for a "wait fragment"

A subsequent CL will make clicking on the buttons in the
Manual sync case work

Change-Id: I7f1ca27eb8792aaa94d354b2753d37783a72b309
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0963ef8394e1f0bca3f931f930b127b00790361a 10-Apr-2012 Mindy Pereira <mindyp@google.com> Move undo up to the controller level.

Change-Id: I1fa2d921132c0d66c677b428f570c60672471ad9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e128fc21fab03f6d66c656efeee2155fab449a7f 04-Apr-2012 Vikram Aggarwal <viki@google.com> Clear selection set when viewing messages on one-pane

This is missing one crucial functionality:
In conversation view, if we perform destructive actions on the selected conversations, the
selected set is not accurately updated.

For a correct implementation, we need a ConversationPositionTracker class, so that will be solved
in a second pass.

Change-Id: Ie9909ce026c4ec1148b4817d6968699b392e2330
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c67182dfb4884e92262a2365ecfcc5d254c7999c 03-Apr-2012 Vikram Aggarwal <viki@google.com> Capture current conversation correctly.

Fixes b/6277911

Change-Id: I59d8348b4a9443c56a390008b3ce1b2557938638
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a76e5aeff4a54ec70661de35be4f3ecb9d1d2fe2 29-Mar-2012 Mindy Pereira <mindyp@google.com> Add no args constructor for FolderListFragment.

Fixes b/6251677 FolderListFragment needs a public no-args constructor

Change-Id: I1f87b5ed105a3b2598da5507eedb0f439aad087c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
56e3f50f5aee6606035eae4b713ef634c4f3a686 28-Mar-2012 Mindy Pereira <mindyp@google.com> The parent folder should be shown at the top of the list of child folders.

Fixes hierarchical folders to allow the user to dive into the parent
folder as well as the child folders from folder list.

Change-Id: Ia75275b1941797be8e8c9e10ba8887ca8e5dcd71
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e49c56c8a136e1d64c0d2e9034f4564be32084c5 23-Mar-2012 Mindy Pereira <mindyp@google.com> Remove deprecated method.

Change-Id: I0597f64a845d8e0f2ace3dcf596a667c12ddf47b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
863e44160d9175023d30e7e225ecb69ad3892eec 23-Mar-2012 Mindy Pereira <mindyp@google.com> Update everything to read mute/ spam.

Conversation menu items now reflect if mute/ spam should be shown.

Change-Id: Ic4694c3feb3261c02d546e8befd9d999fdfefc85
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
451857feade2c5c4fa4a70542d16627959c07dd7 23-Mar-2012 Mindy Pereira <mindyp@google.com> Fix id for folder list.

The issue was that the id's for the folder area were different in one pane
and two pane.

Fixes b/6215555 Email crashes when the user taps on a folder with child folders or that advertises is has child folders
Change-Id: I5c5e075d33909b038bbdcc0d0831dc0261b56130
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
967ede63e059810d9d4d425c50111d606014c893 22-Mar-2012 Mindy Pereira <mindyp@google.com> Move ownership of the conversationlistcursor to the controller.

That way, conversation fragment, conversationlistfragment, and
all the controllers can get to it for positioning, getting next/prev
conversations, etc.

Also removes need to keep conversationlistfragment from being
destroyed/ nulled out.
todo: should the controller own the list adapter as well so
that is can make changes? unclear.
Change-Id: I2388b8403c4253f6075c03f613ca73c2cfa81422
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a9108e799cff3d7f680a1b4a3b910836bf59de53 22-Mar-2012 Mindy Pereira <mindyp@google.com> Add null checks to prevent crashes.

Change-Id: I12e7fc7cefb8203474f461ca525e4f4bdfb383db
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e5f4dc0661dad02e2cb39ffa62ff2157147ac387 22-Mar-2012 Mindy Pereira <mindyp@google.com> Make sure we follow auto advance rules for folder changes.

Folder changes might be destructive.

Change-Id: I9798667bcf958dcf301bf6c5db204f51ca3b047a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
fbe4019a262f6b1934a44e598009ae63dc5745ee 20-Mar-2012 Mindy Pereira <mindyp@google.com> ellow onepane and two pane to specify their own behavior for conversation changes.

Add menu handlers for help, settings, feedback to compose.
Set up on compose to exit the activity.
Change-Id: I42d2736e83cb5bedbb3194f0cffcf12aca6ced9a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0d96c440ccc862a2e38ea87dc54030790b809cb9 15-Mar-2012 Mindy Pereira <mindyp@google.com> Fix folder selection from widget.

Change-Id: I5dbc231475ec1e6a36fd22de0c2a078879131b50
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ec5cbf79b825c6f96d45e85015319c66470b7e57 09-Mar-2012 Vikram Aggarwal <viki@google.com> Store recent folder list in the AbstractActivityController

Change-Id: Ie557cf4e67b55c238c323063e3211117c6d101b3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b849dfbda3c917f078a5c09f03906886c27ecbec 08-Mar-2012 Mindy Pereira <mindyp@google.com> Make tablet search work correctly.

Change-Id: Ib19dcc590fd80aa134aa3afab9989eeac2aec224
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
68f2e222b4ffccd9f67f02b3a9cfdb3841a7eb43 07-Mar-2012 Mindy Pereira <mindyp@google.com> Hookup search in the UI.

Remove ActionBarView interface and rename MailActionBar
to actionbarview. We needed this for pre v-14 support, but no longer.
Change-Id: I539b6751313e561311921010b03250df632260bc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d2ca51ac0c0727ae924259918ac6f25b3f8ce571 05-Mar-2012 Mindy Pereira <mindyp@google.com> Small cleanup.

Check for null before comparing folder, before looking at conv list
context.

Change-Id: I254bda02cb4fdbc2878ff132b82feab13bb05647
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0b8cb5999382187b045b8835f15c1d2c6836fc64 02-Mar-2012 Mindy Pereira <mindyp@google.com> Fix up/back behavior for tablet.

Change-Id: I6d4d2573b478bcd90de0e93c72f98ad498fe94a7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
5dfc5501439462e6f1c9edf25d80bc5a39d44a83 02-Mar-2012 Mindy Pereira <mindyp@google.com> Fix selection state. Don't recreate the folder list fragment each time the conv list is shown.

Change-Id: Ic0fc7bf00c55e1332de0fa6964844f80f9a52c8c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
04ff99c8ac7742e952afb8a25b17f7997fc907de 29-Feb-2012 Vikram Aggarwal <viki@google.com> Remove test activity entirely

Change-Id: Iff2027620f8d109aec581f82528430f04ad58e9b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
bc19a2fe68e735c00ddbc2260bb76e12a1c55dc0 23-Feb-2012 Vikram Aggarwal <viki@google.com> Fix back in conversation mode

Change-Id: Ied8af2edab0990d727326b7920c96a3e9b1366cf
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
49656dcf7abf09141d6ac59fc1fccef8012238dc 23-Feb-2012 Vikram Aggarwal <viki@google.com> Show conversations in two-pane

A few things are still missing from conversation handling:

1. The conversation blinks in certain cases. This needs to be chased
down.

2. Back is not working correctly when viewing conversations. Back is
the same as up. Instead, it should display the conversation list and
label list.

Change-Id: I6fd91bfe5add862998bd7cbdbf5515db2325b950
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e9a81035bcef5a372fa13a992f8553eb60e6aaf0 22-Feb-2012 Vikram Aggarwal <viki@google.com> Start showing label list on tablets

Change-Id: Ib5529ce2eca88c71979ed0bc6340cb2a752ffd25
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2a25d0c0a533563b4d6105553f621181f896043d 22-Feb-2012 Vikram Aggarwal <viki@google.com> Two Pane Actionbar fix

Change-Id: I379045692245296983e91c2a5b5bcffbe0b9602a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2175d0a93263672d4498458c81b404b0999134ba 18-Feb-2012 Vikram Aggarwal <viki@google.com> Start tying in fragments to Viewmode changes

Change-Id: I09eaeb0c338ab3205e0887a99b9684b4ac0549ca
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f5acda4a4b7c9e8ecacb41cb7d570ef426b6d4fc 16-Feb-2012 Mindy Pereira <mindyp@google.com> Make MailActionBar use viewmodes; make sure it gets updated when view mode changes.

TODO: would it be better to make it an on view made changed listener?
Also, fixes up behavior.

Change-Id: Ib48d54b4cefc39629182d0df942b0f19fa77361e
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
9b87568c9e9f1c32a9672b315229866a58a1e757 16-Feb-2012 Mindy Pereira <mindyp@google.com> Add conversation view fragment.

This pulls over the logic that had been in ConversationViewActivity.

Change-Id: Ib617d3c1cb43265a559a18e05842ca186188b3d3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
28d5f72e0ad0db75b6243ee8125bfe3aadbdcb85 15-Feb-2012 Mindy Pereira <mindyp@google.com> Make a folder list fragment. Hook into Viki's app.

Also, hook up listeners for changing account in the
account spinner dropdown.
Change-Id: I0e6bbabc525c141fa581f49e6265c26bc767b8cf
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
80aeac5356b5a14a5ef2aff8f0f72a464c9a3cb4 08-Feb-2012 Vikram Aggarwal <viki@google.com> Show Conversation Lists

Change-Id: Ia4356aaa5ee698cad6f648b9d26a5719ba8076ba
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
d7a12cd5b5c2639b653d8c671b04844ef02ee01d 03-Feb-2012 Vikram Aggarwal <viki@google.com> Create TwoPaneLayout from TriStateSplitLayout

Minor changes to the OnePane and TwoPane Controllers to hook in the layout.

Change-Id: Ie3fc73ed3fb63441d7ed9b79ce02c2f1e9f51e36
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1ddcf0f2bf44d3c9db89112ef52510d9b2433ac4 13-Jan-2012 Vikram Aggarwal <viki@google.com> Adding more ActivityController dependencies

ui.ControllableActivity added from Gmail.
One pane layout files brought in.
Minor changes to make everything work with the test activity.

Change-Id: I8cacd5f36394fe4a786590e2e381369a3afb5494
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a55b36cb6b75ce8096812183651e89115300975a 13-Jan-2012 Vikram Aggarwal <viki@google.com> Bring more classes into Unified Mail

Bringing in
SubjectDisplayChanger: (was called ConversationSubjectDisplayer in Gmail)
AbstractMailActivity: (was called GmailBaseActivity in Gmail)
MailActivity: (was called GmailActivity in Gmail)

These are called the same things they were in Gmail:
ActivityController
ControllerFactory
OnePaneController
TwoPaneController

Change-Id: Ie761407cad891b669172acc729950f9d358f5c34
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java