History log of /packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
366947ac313660e43b49bee1c00f558532240fea 18-Oct-2014 Jin Cao <jinyan@google.com> Merge "Save the focused conversation via id instead of position" into ub-gmail-ur14-dev
f9b96e244e6c6a19cb1920ff129f424997db2727 17-Oct-2014 Jin Cao <jinyan@google.com> Save the focused conversation via id instead of position

Don't rely on saving the position in the adapter because the position
might change as the adapter's data set changes (e.g. new mails via sync),
and we have no way of modifying the focused position accordingly.

Instead, save the focused conversation with its id (tried using the uri,
but the uri might change when the conversation gets cached). This way,
no matter what happens to the items in the adapter, the focused item
remains consistent.

b/18027602

Change-Id: I51aa68bc15c5892c3b34bde5c199de281390ce7b
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
100edc57f77f392cca0a99b5f7f445440cde2303 18-Oct-2014 Jin Cao <jinyan@google.com> Navigate up if up is pressed for nested folders

b/18022259

Change-Id: Ia93e1af3684dd11362bc2608691375f351ccba3d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
bd16ec759acbd1acbff33cc08a9c86cc600f9194 17-Oct-2014 Andy Huang <ath@google.com> Merge "Programmatically set selected state to correspond to peeking conv" into ub-gmail-ur14-dev
547cc85c36801be6601af1c30d239d30f30e15a3 17-Oct-2014 Andy Huang <ath@google.com> restore peeking state

Bug: 18024070
Change-Id: I0f4379e92fa1a9c67b76264ae0baa581399f5ab3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
80c6dc4cb0b29f12f96f98eea7b4fe1883aa09df 17-Oct-2014 Andy Huang <ath@google.com> only auto-close the drawer when selecting from the list

Previously tablet UI would close the drawer any time any conversation
would open. With peek mode, this happens a lot even when the user didn't
trigger it.

Restrict the auto-close to cases where the user actually taps/keyboard-
Enter a list item.

Bug: 18020565
Change-Id: Ia4c15c70f99619874fdd1bea760ceeb6bd2a8345
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0532b0edb999c6e131bfd1f2e1eccefed049ba49 16-Oct-2014 Jin Cao <jinyan@google.com> Programmatically set selected state to correspond to peeking conv

I can't simply rely on ListView#setSelection to programmatically
set the selected item because setSelection only caches the
selection internally if the view is currently in touch mode. Thus,
in touch modes, isSelected() will *always* return false for an item
in listview.

In order to know what's the current selected item, I keep track
of the selected position that corresponds EXACTLY to the listview's
selected position. Again, I can't use ListView#getSelectedItemPosition
because it will always return INVALID_POSITION in touch mode.

I change the selected position whenever a child calls setSelected()
or we programmatically call setSelected. I tried using onItemSelectedListener.
However, the listener's callback is called after the selected state
is changed AND the re-draw happened, so the UI gets inconsistent since
the selected state didn't properly update during the re-draw.

When we programmatically select an item that's visible on the screen,
we have to use ListView#setSelectionFromTop and pass in the current y
value since the default behavior is to scroll such that the selected
item is at the very top.

Also, another caveat is that I am now saving the ConversationItemView's
position in the adapter when the adapter binds data to it. I find that
this approach is much more dependable than using ListView#getPositionForView
because sometimes (for reasons beyond me) in ConversationItemView#setSelected
the listview ONLY HAS ONE CHILD (even though on the device I can see a
full list), thus getPositionForView will return index 0 since it thinks
it's the only child.. I have no clue, so I'm saving the position myself
instead.

b/18015875

Change-Id: I11897056fc9fa630eb4019532b1fd4cf41c7486a
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f91f88efa3854159f4814af1042a30d4ffbe7027 16-Oct-2014 Jin Cao <jinyan@google.com> Use guava Objects.equal

b/18014334

Change-Id: I95e85c484942364f004c0f4d65b7fa23bf0e1250
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c10a95be37d3961cd043a11ec20c2b10bd3591e0 16-Oct-2014 Andy Huang <ath@google.com> fix occasional blank CV panes on activity startup

The condition in onViewModeChanged made it impossible to get out of
UNKNOWN view mode if onLayout had been called before the view mode was
first set. Fix this by looking for something a layout would definitely
have set (a non-zero width).

Added some debugging toString() for TPL.

Bug: 18009285
Change-Id: Ibacaa1f6473edeefceccfd270c2a761113c6e530
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
6ac079b4d236120232f59c080aeeb17ac16c7c8b 16-Oct-2014 Jin Cao <jinyan@google.com> Cleanup of drawer drag

- Don't do anything in enableHardwareLayer if it's already enabled
- Add onDrawerDragEnded in TPC for consistency so it has access
to all 3 drawer events.
- Change ObjectAnimator back into ViewPropertyAnimator

Change-Id: If78b833d35f0c37f6b9e4d8c644c8a6714bfc7b7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0c07334fb04e00de53a5dc80ca035e15a8a55377 16-Oct-2014 Jin Cao <jinyan@google.com> Merge "Enable hardware acceleration for drawer drag" into ub-gmail-ur14-dev
f9b88e40b41790b29ca75d5e807c55e93feb9dc5 16-Oct-2014 Andy Huang <ath@google.com> Merge "treat taps in CV in peek mode as marking the convo seen" into ub-gmail-ur14-dev
46c4c365c6b767645e22139513f1d19aef78f5d5 16-Oct-2014 Andy Huang <ath@google.com> treat taps in CV in peek mode as marking the convo seen

Bug: 17291366
Change-Id: I7e6841013514496f7e2ce6da9e538f949c69c65d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2796ee4c0eacef6aa1a4541a915cd0c81eb2acc0 16-Oct-2014 Andy Huang <ath@google.com> fix crash when rotating an Ad on tablet

Don't auto-peek at the first conversation when in ad mode.

Bug: 18007774
Change-Id: Ic838d8362addec6899c12c8ea0dde124e88a02d9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
4c91a8ce54b7874309ff1d4cb8c9c439fe308375 16-Oct-2014 Jin Cao <jinyan@google.com> Enable hardware acceleration for drawer drag

b/17936591

Change-Id: Ie9b435a1c0af457a0524b95a20ece3f3cb829011
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
87a8982af83168453b6dc219fe984bff68047beb 15-Aug-2014 Andy Huang <ath@google.com> Peek mode for 2-pane landscape

Peek mode allows CV fragments to be visible but not marked viewed and
read. TPC keeps a global flag for whether the current conversation
should be peeked vs marked read. I have tried to manually reset the
flag in the 6 cases that cause the current conversation to change:
1. tap another conversation (don't peek)
2. swipe to another conversation (don't peek)
3. keyboard-advance to another conversation (peek)
4. auto-advance=newer|older (don't peek)
5. auto-advance=list (go older & peek)
6. empty CV and a list cursor has loaded (peek at i=0)

Swipe, in particular, required a new onConversationViewSwitched() call
in CPA because onPageSelected() is triggered both when swiping around in
the view pager AND when simply setting the initial page as part of
constructing a view pager.

Thankfully, there is only ever one copy of this peek flag in the app, in
TPC, since AAC/TPC is where all the work is done both to mark
conversations seen and to switch to new conversations.

Rotation to portrait on tablets now requires tearing down a ViewPager;
this code and thought process is documented here: http://go/xqaxk

TODO: selected indicator for transition from peek->read state in-place
TODO: touches in CVF should mark it read

Bug: 17291366
Change-Id: I24f71a2b7985773814d8caad9f3ab3fe5c3609c8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
b70a428b7eaf5c5e04c67b5e087cb3a64ed8cdba 13-Oct-2014 Jin Cao <jinyan@google.com> Allow dragging the drawer close from CV

When the drawer is open, tapping on the CV pane will auto
close the drawer, and dragging on the CV has the same effect
as dragging on the TL.

b/17922832

Change-Id: Ib518ed58cee9752dd8c8713f2bdcb5c65f4afac0
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
fbb0c7f6b294337ab8e2a43daebbdd901ea9442b 10-Oct-2014 Jin Cao <jinyan@google.com> Cross-fade the drawer on toggle/drag

b/17936591

Change-Id: I7720b5091d22d3361fd3660976674a725d9563c7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7b45ff8538067edafe6b3d445e3880cd4858d267 14-Oct-2014 Jin Cao <jinyan@google.com> Fade in/out the search bar

When showing/hiding the search bar, fade it in/out instead of
simply setting the visibility.

Other changes:
- remove the check for state change inside showSearchActionBar because
we previously assumed that a given state will always look the same.
However, this is no longer true as ONLY_ACTIONBAR looks different
on tablet landscape verses portrait (landscape shows the transparent
background while portrait always shows the white search bar).

b/17546831

Change-Id: I9120afd3ff89a4c6611b3b4510c2d8427285f3d8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
5fa4018360ea05c2d9cdc7cfd7abd5f74bc83002 24-Sep-2014 Jin Cao <jinyan@google.com> Support finger tracking for tablet drawer/minidrawer

- Supports dragging the mini drawer open
- Supports dragging the full drawer close by dragging
along the list pane (not the drawer pane)
- Supports RTL mode

b/17206080

Change-Id: I8ac8933ed30ca92f162cc6a75865fa1fdc1b2cb1
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
375faf0f8cf1d1de1d4aca7b9a7598e168dc9bf3 10-Oct-2014 Rohan Shah <shahrk@google.com> Add Vector Drawables (UnifiedEmail)

Had to rename a couple resources to be consistent
with what UX has in drive.

Bug: 17936539
Change-Id: I9ca2c0ec870afcdea52c1fbf1e55468b930301ae
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
18512bd09af3a5e3d6e8ae2789a40968aa5e8f07 04-Oct-2014 Rohan Shah <shahrk@google.com> Fix TL flicker before CV shows upon opening notification

Pager no longer animates in unless we've selected a
conversation from the TL (In all other cases, it will
now directly appear).

Bug: 17808571
Change-Id: Iadabdfa6ec913b1f5f9979dfe50c74eaeb51d326
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
816a43c94d991ad219378571f7bc96308a365d44 02-Oct-2014 Jin Cao <jinyan@google.com> Merge "New assets for the various empty icons" into ub-gmail-ur14-dev
b29afab8f42465843c634b74190f6d6f9fb94513 01-Oct-2014 Jin Cao <jinyan@google.com> New assets for the various empty icons

b/16876067

Change-Id: Icb65dd69b3ffc34ca31d0c7e997cb58e384ee0df
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f59080ee7ddbb986a295a14578b55f17a10cff4a 29-Sep-2014 Rohan Shah <shahrk@google.com> Add fade in transition from TL to CV

Added a fade in animation for the conversation pager to
ease in the transition from TL to CV and allow for feedback
on the TL.

In OPC, wait to remove TL fragment until after the pager
is done animating in (Also addressed edge cases such as the
user hitting back rapidly after selecting an email or, in
the case of long animation durations, multiple actions
occuring - did this by checking view mode in the listener
and cancelling animation on pager hide).

Bug: 17304654
Change-Id: I24e977eb6bd335f4f6764fef58b549e7cf0edfe3
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
859822be95f6ff23ada95e3b93504da82b835082 01-Oct-2014 Jin Cao <jinyan@google.com> Merge "New empty states for tablet landscape" into ub-gmail-ur14-dev
84662ce9ac05081b16dd58202acbc69c7e24a354 24-Sep-2014 Jin Cao <jinyan@google.com> New empty states for tablet landscape

For tablet landscape, the empty icon should be shown
in the CV pane while the empty text (if the folder is
empty) should be shown in the list pane.

Added a new empty icon for not having any selected conversation,
this state does not have text associated with it since
the list pane still showed the available items.

b/16876067

Change-Id: I27b7b9ae8ce739f23829afc292df083e8399a118
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ce4fb9c63aa7e6044c6fb968e7fd75f1031e2e9e 30-Sep-2014 Jin Cao <jinyan@google.com> Fix ad mode for two pane layout

Positions the panes properly when the view is in ad mode.
Also fixes the bug where twopanecontroller only checks
conversation mode for setting up action bar icon.

b/16821877

Change-Id: I07191d67f8e4c395063f89dc3d037c1eaf2a14e7
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e46a146db9d598654ea0fc937bb68857bd9bac8b 26-Sep-2014 Rohan Shah <shahrk@google.com> Reset action bar icon on showing conversation

There's situations where view mode is changed
to CONVERSATION, but the current conversation has not
yet been assigned. As a result, it does not show
the back button. Fixed this by adding resetActionBarIcon()
to showConversation.

Bug: 17360232
Change-Id: I0fe1fbaf1251b9104c9822efb2cf6884998540df
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f332c349ce4ca15cd6d0ccf5a7c1c885dd61e2b9 26-Sep-2014 Jin Cao <jinyan@google.com> Use the rtl version of ic_arrow_back for back button

b/17653878

Change-Id: If5f649df0a8da998983625985e8e81e478c2e8e8
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
fc0bbdcabbadd9eb5518b68b8f3ebcaf147079d5 24-Sep-2014 Jin Cao <jinyan@google.com> Merge "More keyboard polish" into ub-gmail-ur14-dev
f7720cb61d0e10b94dd048bf1f486898cd0d23f1 26-Aug-2014 Ray Chen <raychen@google.com> Move FAB inside TL in 2-pane layout

b/17136827

Change-Id: I76a4a0a1dfabd45d4bdbec6aa0beaae3476fcf91
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
3f784c879e564cb144d542b29c4e68e980d2c298 19-Sep-2014 Andy Huang <ath@google.com> disable focus/click on current account in mini-drawer

And clean up some mini-drawer (the stub current-account view was just
tossed in Gmail) focus shenanigans (assumed 0th mini-drawer child was
focusable).

Bug: 17536935
Change-Id: I5246afd650da728601cece4339357557dac3de37
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
2cb6c1ca2b508331ee29d16b71f5ec024cd22555 18-Sep-2014 Jin Cao <jinyan@google.com> More keyboard polish

- Weird condition where user presses right to go into a conversation,
we load the conversation then set mConversationToShow = null. But
then our posted runnable for "peeking" the conversation completes,
and we show a null conversation which defaults to the first conv.

- Don't focus if the pager can't find anything to focus. This prevents
the focus from being put to default location (top left) if
onRequestFocusInDescendants fail.

- When the user taps a conversation, the list loses selectedItem. Use
checked item as fallback for navigation. However, sometimes the
listview loses focus when the user taps a conversation, thus
it wont receive any onKey events. I'll try to figure that out later.

- Check target size before commiting the undo action for toast bar.

b/17570560
b/17567978

Change-Id: I3d471dc1c1d956957463198086112d5a352fb775
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
e4c6a13112d6e06a61f7db07a3344e72f7db8dba 18-Sep-2014 Jin Cao <jinyan@google.com> Fix navigation to mini drawer

Soemthing changed for current_account_avatar (I see it
in xml, but the id is never referenced in code and I
couldn't find it in hierarchy viewer) which broke navigation
since that was the default navigation id I was using for
mini drawer. I changed the default id to the mini drawer
itself and auto-passing the focus to its first child.

Also remove focusableInTouchMode for FAB.

b/17555177

Change-Id: I79f27850efdcc06497a042d1e5b155a6755fdbed
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
524ded5f9d27dda75c53d256922a39c867857575 05-Sep-2014 Jin Cao <jinyan@google.com> [Quantum search] new two-pane land search result list

In two-pane landscape, change the search bar accordingly
when we are in conversation mode (so the menu items are
visible).

b/17361017

Change-Id: Icb07fff91f0533681478d866430fbaa82bc5850c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
92ae766a1eb3182efe5225af224c6ddd7be40931 12-Sep-2014 Andy Huang <ath@google.com> fix slow 2-pane transitions; fix 2-pane animations in portrait

The instant visibility changes on layout after mode changes were
preventing the animations from running. Defer any cases when moving to
invisible state until after the transition is complete.

Move FAB reveal earlier when going CV->TL on 2-pane portrait by
triggering list-visibility-changed manually when entering TL mode. TL-
>CV hides the FAB after transition complete as usual.

Position and animate 2-pane elements after normal layout, since some
size calculations depend on having performed a layout already. Fixes
some FAB-related race conditions I started seeing with the animations
working again. b/17514925 tracks the fact that FAB shouldn't need to
move about in this way in the first place (since it's pretty much always
tethered to TL).

Also short-circuit an infinite loop that triggered continuous relayouts
when an Ad is present. This change reverts to the older logic of only
positioning/animating panels on known layout change events, which also
has the side effect of smoothing out the animation.

Bug: 17477114
Bug: 16818991
Change-Id: Ice1f6b896b9d7dc434debb3c2cf15aec87551ebc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
1e421ae335ca301cb3bf3ece5c5c2ab0e312d5a9 15-Sep-2014 Jin Cao <jinyan@google.com> Merge "Remove unnecessary calls to setCheckedItem" into ub-gmail-ur14-dev
8da4dc852b131e7516ad1ab888e2d601d3f51bed 10-Sep-2014 Jin Cao <jinyan@google.com> Fix keyboard RTL navigation

Main issue is that we no longer need the focus changes
in onViewModeChanged because we handle left/right navigation
individually.

Furthermore, changed isRtl check to using the ViewCompat version
instead of the locale version so it's easier to test (locale
version doesn't work for force rtl in dev options).

b/17234283

Change-Id: I3f87e67ed1c7457370f8cdb63cc3abaa57211db9
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0207f18f524aa75c5a4de7b5ce71377d9dd7b20c 10-Sep-2014 Jin Cao <jinyan@google.com> Remove unnecessary calls to setCheckedItem

We have multiple places where we call setCheckedItem, and it
seems that there can be discrepancy among what indices are
checked, so we get weird behavior when we are in CAB mode.

b/17441959

Change-Id: Ia5ad6f17288b76b5fe4b5a4d64ef856f77c13616
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
0ec03e8d930a58c9138b5ebe84468f99c332c504 03-Sep-2014 James Lemieux <jplemieux@google.com> Update "New message" toast bar in CV

b/17373672

The bar in conversation view prompting the user to update the thread
with newly arrived messages has been changed to use the ActionableToastBar
to look consistent with conventional snackbar messages. In two pane layout
it is now possible to have a conventional snackbar message showing over
the TL and "new message" snackbar showing over the CV simultaneously.

All snackbar messages have had their trailing punctuation (period) removed.

Change-Id: Iaf7d5d9afc38360d07a7b6602d6bc5626ecc3de2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f847126e7f84d3c21b91f4a96a017c97f90f06b6 15-Aug-2014 Jin Cao <jinyan@google.com> Add a delay to loading peeked conversations

Don't instantly start loading a peeked conversation
when the user is navigating with the keyboard.
This prevents the app from freaking out when the
user is trying to quickly scroll down the TL.

Current delay is 500ms.

b/3304236

Change-Id: I5bbdafc5187a7f2b96e28aed1b60b694d4565db1
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
7ae078381e3552a63e93485b09eed68a5daf798e 03-Sep-2014 Jin Cao <jinyan@google.com> Merge "Keyboard support for focused state" into ub-gmail-ur14-dev
ac7f7d86635205e6f7c78c469fa08d2d279ccb79 03-Sep-2014 Jin Cao <jinyan@google.com> Merge "Support keyboard navigation for RTL" into ub-gmail-ur14-dev
52a40d5900b66bb06e7df3a40e338760d69e8ce6 23-Aug-2014 Jin Cao <jinyan@google.com> Support keyboard navigation for RTL

In two-pane landscape mode support our custom navigation
for RTL mode (left/right reversed).

Change-Id: I8d3afe1362fc935f8b6140ce37bcfd6a9ba88bb2
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
ec0fa48764bede0772e9c711f3e33361b62f3608 29-Aug-2014 Jin Cao <jinyan@google.com> Keyboard support for focused state

- remove focusable from FAB so keyboard won't navigate to it.
- rename selectionSet to checkedSet
- selected is a state for listview to focus one of its elements
- what we really want is checked state for checked items in CAB mode.
- show the blue focus bar when isSelected returns true
- this is auto-set by the framework as we navigate using the keyboard.
- remove blue background color for selected state

b/17258708

Change-Id: Ic9739c9b349403942f64fafa26500c08d1f1cc4c
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c93a1f53a8e33f24b868e3587d080291c5e09c5d 29-Aug-2014 Jin Cao <jinyan@google.com> TwoPaneLayout changes position of FAB as well

In two pane mode the FAB positioning will follow the
position of the list/conv view. This way, the FAB button
is always by the bottom right corner of the list view.

b/17136827

Change-Id: If5e9fea2bd177132042fd26547c437b20a005e7f
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
77db7fda313ed4c001eb05fb6b619f9f2798c635 27-Aug-2014 Rohan Shah <shahrk@google.com> Show current folder on tablet landscape

When in conversation view mode, we were not showing
any text on the title bar (setEmptyMode). Changed it to
be visible if in landscape by checking the
is_tablet_landscape boolean (renamed), which we currently
use with TwoPaneController.

Bug: 16985409
Change-Id: I9a35b3b46f024584e1c47936def5aa854c52813d
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f84fe2eec91f437f02b6944e4a4981d3907652a0 27-Aug-2014 Jin Cao <jinyan@google.com> Compose button is only visible in regular convlist

Or regular conv mode if its two-pane landscape.

b/17258369

Change-Id: Icf9c82b8ddc7a1d4c42f29761758cda31b48c071
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8619cd7d2ffaa648cf7590419d3cd26e5bb1024b 25-Aug-2014 Jin Cao <jinyan@google.com> Merge "Add custom view for toolbar to reposition search icon" into ub-gmail-ur14-dev
090ea0188eec1cd29d84d5890cbba6aebfa6b6ce 24-Aug-2014 Jin Cao <jinyan@google.com> Add custom view for toolbar to reposition search icon

Remove search from the default menu items and add
the search button to a custom view so we can position
it ourselves. This involved extending the toolbar
class because custom views cover up the toolbar
title by default.

b/17070560

Change-Id: Iba7d127a58b8061d84228732fcadbd82665d0835
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
405a344937675f57fc9c6988b2b124410a270f13 25-Aug-2014 Jin Cao <jinyan@google.com> Remove some unnecessary interface

Remove unused interface for ActivityController and
ControllableActivity.

b/17258810

Change-Id: I8edbff09b1a5a3278efad8675e3fc3f71e82d2e4
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c966a8a65a75559f677574c2a53cb9d43490f04e 22-Aug-2014 Jin Cao <jinyan@google.com> Focusing on the conversation pager grabs wrong initial focus

When the framework tries to shift focus from the listview
to the conversation pane, it calls onRequestFocusInDescendants.
By default, this method will find the first child that is focusable
and call requestFocus on that child.

This won't work for ConversationContainer because we add the
children view in reverse order. As a result, it always tries
to focus the conversation footer first.

Override onRequestFocusInDescendants to always auto focus
the first header item fixes this issue.

In ConversationViewAdapter, we also prevent views that
are recycled from grabbing focus with up/down navigation.

This CL also contains a ClassCastException bug fix for
ConversationListFragment$onKey.

b/17189775 b/17113398 b/17162145

Change-Id: I739207178fe3df1087d6504fffb11bfdf854a5dc
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
8712f412130f06cd21e68e89d87d28b226830e1a 22-Aug-2014 Andy Huang <ath@google.com> prevent list swipes on 2-pane, part 2

Previous CL only worked for the lifetime of a single CLF, so the state
reset on account or folder change. Have new CLFs init their state
properly.

Bug: 17070336
Change-Id: I5208295e6dd2e460fc8b41bec249130708fda713
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
f211b12a7cdf6556f489df51c6f57dd79e8887fe 22-Aug-2014 Andy Huang <ath@google.com> prevent list swipes when 2-pane drawer is open

Bug: 17070336
Change-Id: Ie33ae772053dfe9b0f592a6ce3f42f2d5f018dbe
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
a70ab69fd489a1f10dd75fc84214bd970096ae02 22-Aug-2014 Jin Cao <jinyan@google.com> Search last-minute updates before dogfood!

Scrim transparency should be 20% instead of 50%.
move requestFocus to inside hasFocus block.
Fix back button navigation.

b/16518233

Change-Id: I66f3e7deb81dda3959ed05e0661c4ff13786f495
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
c6801eb828627c37b8992584767c095dfe11df62 13-Aug-2014 Jin Cao <jinyan@google.com> Quantum search - version 1

I apologize in advance for this huge CL.

- New icons (yay!)

- Abandon framework search and handle in-app search
functionality ourselves. This is made possible because
we use Toolbar and can position any custom view on top.

- Remove all previous search related attributes, including
search providers, searchable, search authority, default
search menu item layout, etc.

- Cleaned up the recent history provider to contain only
the functionalities we need - query, add, and delete.
Instead of using the framework to add recent queries,
we directly insert into our database. Since the provider
no longer needs to extend ContentProvider, removed
some unnecessary callbacks such as onCreate.

- Custom quantum search views:
- Top search bar, this is inserted in a FrameLayout
on top of Toolbar. The search bar interacts with
the suggestion list and AbstractActivityController
via the QuantumSearchViewController interface.
- Suggestions list, this is inserted in the FrameLayout
that typically contains the main content pane for
either one-pane or two-pane layouts. Again, this
interacts with the action bar via the controller.
- Voice search, this is simply an implicit intent
that converts speech to text.

b/16518233

Change-Id: I589c40e6c6e3d8c719856b735d0c53e8db986e65
/packages/apps/UnifiedEmail/src/com/android/mail/ui/TwoPaneController.java
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