Don't let ConversationCursor do work during scroll
Bug: 9032162
Change-Id: Id47fd9c2a1cab01b798a0c24a5802a3d059d5c70
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 9a61f7d..928b2f8 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -2909,10 +2909,7 @@
boolean isAnimating = false;
ConversationListFragment convListFragment = getConversationListFragment();
if (convListFragment != null) {
- AnimatedAdapter adapter = convListFragment.getAnimatedAdapter();
- if (adapter != null) {
- isAnimating = adapter.isAnimating();
- }
+ isAnimating = convListFragment.isAnimating();
}
return isAnimating;
}
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index 476a9ba..5afc9f4 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -650,6 +650,12 @@
}
}
+ public boolean isAnimating() {
+ final AnimatedAdapter adapter = getAnimatedAdapter();
+ return (adapter != null && adapter.isAnimating()) ||
+ (mListView != null && mListView.isScrolling());
+ }
+
private void clearChoicesAndActivated() {
final int currentSelected = mListView.getCheckedItemPosition();
if (currentSelected != ListView.INVALID_POSITION) {
diff --git a/src/com/android/mail/ui/SwipeableListView.java b/src/com/android/mail/ui/SwipeableListView.java
index cc3750e..657051f 100644
--- a/src/com/android/mail/ui/SwipeableListView.java
+++ b/src/com/android/mail/ui/SwipeableListView.java
@@ -377,6 +377,19 @@
default:
mScrolling = true;
}
+ if (!mScrolling) {
+ final Context c = getContext();
+ if (c instanceof ControllableActivity) {
+ final ControllableActivity activity = (ControllableActivity) c;
+ activity.onAnimationEnd(null /* adapter */);
+ } else {
+ LogUtils.wtf(LOG_TAG, "unexpected context=%s", c);
+ }
+ }
+ }
+
+ public boolean isScrolling() {
+ return mScrolling;
}
@Override