summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndy Huang <ath@google.com>2014-11-02 20:51:19 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-02 20:51:19 +0000
commit3b5162962c1d6eeda2acae814b0601bdf6c9f4fe (patch)
tree145607bcdba647c3a842990f49b72364cf4deaed /src
parentdf6c4e40763ef1d9ca0728c82918c94ba5a74799 (diff)
parentc93b4a497c67cd1714b85c4fdc0e35f4d611c3af (diff)
downloadUnifiedEmail-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.java10
-rw-r--r--src/com/android/mail/ui/TwoPaneController.java32
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) {