diff options
author | Andy Huang <ath@google.com> | 2014-11-02 20:51:19 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-11-02 20:51:19 +0000 |
commit | 3b5162962c1d6eeda2acae814b0601bdf6c9f4fe (patch) | |
tree | 145607bcdba647c3a842990f49b72364cf4deaed /src | |
parent | df6c4e40763ef1d9ca0728c82918c94ba5a74799 (diff) | |
parent | c93b4a497c67cd1714b85c4fdc0e35f4d611c3af (diff) | |
download | UnifiedEmail-3b5162962c1d6eeda2acae814b0601bdf6c9f4fe.tar.gz |
am c93b4a49: am 903632ae: am 61592e8a: am 02bc1163: am f9b88e40: Merge "treat taps in CV in peek mode as marking the convo seen" into ub-gmail-ur14-dev
* commit 'c93b4a497c67cd1714b85c4fdc0e35f4d611c3af':
treat taps in CV in peek mode as marking the convo seen
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/mail/ui/ConversationViewFrame.java | 10 | ||||
-rw-r--r-- | src/com/android/mail/ui/TwoPaneController.java | 32 |
2 files changed, 37 insertions, 5 deletions
diff --git a/src/com/android/mail/ui/ConversationViewFrame.java b/src/com/android/mail/ui/ConversationViewFrame.java index 50da2eebe..de933340c 100644 --- a/src/com/android/mail/ui/ConversationViewFrame.java +++ b/src/com/android/mail/ui/ConversationViewFrame.java @@ -37,6 +37,7 @@ public class ConversationViewFrame extends FrameLayout { public interface DownEventListener { boolean shouldBlockTouchEvents(); void onConversationViewFrameTapped(); + void onConversationViewTouchDown(); } private DownEventListener mDownEventListener; @@ -56,7 +57,14 @@ public class ConversationViewFrame extends FrameLayout { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - return mDownEventListener != null && mDownEventListener.shouldBlockTouchEvents(); + final boolean steal = (mDownEventListener != null + && mDownEventListener.shouldBlockTouchEvents()); + if (!steal && ev.getActionMasked() == MotionEvent.ACTION_DOWN + && mDownEventListener != null) { + // notify 2-pane that this CV is being interacted (to turn a peek->normal) + mDownEventListener.onConversationViewTouchDown(); + } + return steal; } @Override diff --git a/src/com/android/mail/ui/TwoPaneController.java b/src/com/android/mail/ui/TwoPaneController.java index 983373e53..abcadd68c 100644 --- a/src/com/android/mail/ui/TwoPaneController.java +++ b/src/com/android/mail/ui/TwoPaneController.java @@ -526,15 +526,18 @@ public final class TwoPaneController extends AbstractActivityController implemen showConversation(conversation, peek, false /* fromKeyboard */); } + private boolean isCurrentlyPeeking() { + return mViewMode.isConversationMode() && mCurrentConversationJustPeeking + && mCurrentConversation != null; + } + private void showConversation(Conversation conversation, boolean peek, boolean fromKeyboard) { // transition from peek mode to normal mode if we're already peeking at this convo // and this was a request to switch to normal mode - if (mViewMode.isConversationMode() && mCurrentConversationJustPeeking && !peek - && conversation != null && conversation.equals(mCurrentConversation)) { + if (!peek && conversation != null && conversation.equals(mCurrentConversation) + && transitionFromPeekToNormalMode()) { LogUtils.i(LOG_TAG, "peek->normal: marking current CV seen. conv=%s", mCurrentConversation); - mCurrentConversationJustPeeking = false; - markConversationSeen(mCurrentConversation); return; } @@ -583,6 +586,18 @@ public final class TwoPaneController extends AbstractActivityController implemen } } + /** + * @return success=true, else false if we aren't peeking + */ + private boolean transitionFromPeekToNormalMode() { + final boolean shouldTransition = isCurrentlyPeeking(); + if (shouldTransition) { + mCurrentConversationJustPeeking = false; + markConversationSeen(mCurrentConversation); + } + return shouldTransition; + } + @Override public void onConversationSelected(Conversation conversation, boolean inLoaderCallbacks) { super.onConversationSelected(conversation, inLoaderCallbacks); @@ -879,6 +894,15 @@ public final class TwoPaneController extends AbstractActivityController implemen } @Override + public void onConversationViewTouchDown() { + final boolean handled = transitionFromPeekToNormalMode(); + if (handled) { + LogUtils.i(LOG_TAG, "TPC: tap on CV triggered peek->normal, marking seen. conv=%s", + mCurrentConversation); + } + } + + @Override public boolean onInterceptKeyFromCV(int keyCode, KeyEvent keyEvent, boolean navigateAway) { // Override left/right key presses in landscape mode. if (navigateAway) { |