summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorVadim Tryshev <vadimt@google.com>2018-05-10 15:42:42 -0700
committerVadim Tryshev <vadimt@google.com>2018-05-15 11:28:24 -0700
commit3154cd16b02cdf2512b8160c4191a48ee3fd2c3b (patch)
tree8e6f182fc6aefc61107785c5840f90825aa682d7 /quickstep
parentc14adabe99aa120dc2e9cef64b4553f757f3086f (diff)
downloadandroid_packages_apps_Trebuchet-3154cd16b02cdf2512b8160c4191a48ee3fd2c3b.tar.gz
android_packages_apps_Trebuchet-3154cd16b02cdf2512b8160c4191a48ee3fd2c3b.tar.bz2
android_packages_apps_Trebuchet-3154cd16b02cdf2512b8160c4191a48ee3fd2c3b.zip
Keep clear-all button revealed after dismiss
If it was visible before the dismiss, it will be visible after that. As a nice side effect, it will preserve visibility on any layout, say, after a rotation. Bug: 79117932 Test: Manual Change-Id: Ia8a544af1326458d4e2d7a07ae2b668f604bc0b3
Diffstat (limited to 'quickstep')
-rw-r--r--quickstep/src/com/android/quickstep/views/RecentsView.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index ad85d9ed4..05793f14f 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -121,6 +121,8 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
// Keeps track of the previously known visible tasks for purposes of loading/unloading task data
private final SparseBooleanArray mHasVisibleTaskData = new SparseBooleanArray();
+ private boolean mIsClearAllButtonFullyRevealed;
+
/**
* TODO: Call reloadIdNeeded in onTaskStackChanged.
*/
@@ -337,11 +339,15 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
}
}
+ private int getScrollEnd() {
+ return mIsRtl ? 0 : mMaxScrollX;
+ }
+
private float calculateClearAllButtonAlpha() {
final int childCount = getChildCount();
if (mShowEmptyMessage || childCount == 0) return 0;
- final int scrollEnd = mIsRtl ? 0 : mMaxScrollX;
+ final int scrollEnd = getScrollEnd();
final int oldestChildScroll = getScrollForPage(childCount - 1);
return Utilities.boundToRange(
@@ -352,6 +358,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
private void updateClearAllButtonAlpha() {
if (mClearAllButton != null) {
final float alpha = calculateClearAllButtonAlpha();
+ mIsClearAllButtonFullyRevealed = alpha == 1;
mClearAllButton.setAlpha(alpha * mContentAlpha);
}
}
@@ -363,9 +370,18 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
}
@Override
+ protected void restoreScrollOnLayout() {
+ if (mIsClearAllButtonFullyRevealed) {
+ scrollAndForceFinish(getScrollEnd());
+ } else {
+ super.restoreScrollOnLayout();
+ }
+ }
+
+ @Override
public boolean onTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN && mTouchState == TOUCH_STATE_REST
- && mScroller.isFinished() && mClearAllButton.getAlpha() > 0) {
+ && mScroller.isFinished() && mIsClearAllButtonFullyRevealed) {
mClearAllButton.getHitRect(mTempRect);
mTempRect.offset(-getLeft(), -getTop());
if (mTempRect.contains((int) ev.getX(), (int) ev.getY())) {
@@ -829,7 +845,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
removeView(taskView);
if (getChildCount() == 0) {
onAllTasksRemoved();
- } else {
+ } else if (!mIsClearAllButtonFullyRevealed) {
snapToPageImmediately(pageToSnapTo);
}
}