Merge "Fix getting stuck in BackgroundAppState for 2-button mode" into ub-launcher3-qt-dev
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionRowView.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionRowView.java
index 4a486f8..cb5cbdd 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionRowView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionRowView.java
@@ -164,13 +164,6 @@
mParent = parent;
}
- private void setPredictionsEnabled(boolean predictionsEnabled) {
- if (predictionsEnabled != mPredictionsEnabled) {
- mPredictionsEnabled = predictionsEnabled;
- updateVisibility();
- }
- }
-
private void updateVisibility() {
setVisibility(mPredictionsEnabled ? VISIBLE : GONE);
}
@@ -220,8 +213,7 @@
* If the number of predicted apps is the same as the previous list of predicted apps,
* we can optimize by swapping them in place.
*/
- public void setPredictedApps(boolean predictionsEnabled, List<ComponentKeyMapper> apps) {
- setPredictionsEnabled(predictionsEnabled);
+ public void setPredictedApps(List<ComponentKeyMapper> apps) {
mPredictedAppComponents.clear();
mPredictedAppComponents.addAll(apps);
@@ -237,11 +229,6 @@
}
private void applyPredictionApps() {
- if (!mPredictionsEnabled) {
- mParent.onHeightUpdated();
- return;
- }
-
if (getChildCount() != mNumPredictedAppsPerRow) {
while (getChildCount() > mNumPredictedAppsPerRow) {
removeViewAt(0);
@@ -282,8 +269,11 @@
}
}
- if (predictionCount == 0) {
- setPredictionsEnabled(false);
+ boolean predictionsEnabled = predictionCount > 0;
+ if (predictionsEnabled != mPredictionsEnabled) {
+ mPredictionsEnabled = predictionsEnabled;
+ mLauncher.reapplyUi();
+ updateVisibility();
}
mParent.onHeightUpdated();
}
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
index 64cb4b4..085bbc4 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
@@ -177,16 +177,10 @@
}
private void applyState(PredictionState state) {
- boolean wasEnabled = mCurrentState.isEnabled;
mCurrentState = state;
if (mAppsView != null) {
mAppsView.getFloatingHeaderView().findFixedRowByType(PredictionRowView.class)
- .setPredictedApps(mCurrentState.isEnabled, mCurrentState.apps);
-
- if (wasEnabled != mCurrentState.isEnabled) {
- // Reapply state as the State UI might have changed.
- Launcher.getLauncher(mAppsView.getContext()).getStateManager().reapplyState(true);
- }
+ .setPredictedApps(mCurrentState.apps);
}
}
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index 3edd838..fe6b522 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -40,6 +40,7 @@
import android.animation.AnimatorSet;
import android.os.Handler;
import android.os.Looper;
+import android.util.Log;
import androidx.annotation.IntDef;
@@ -474,6 +475,11 @@
// Only change the stable states after the transitions have finished
if (state != mCurrentStableState) {
mLastStableState = state.getHistoryForState(mCurrentStableState);
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG,
+ "mCurrentStableState = " + state.getClass().getSimpleName() + " @ " +
+ android.util.Log.getStackTraceString(new Throwable()));
+ }
mCurrentStableState = state;
}
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index a7f89d9..c62fc3d 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -14,6 +14,7 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.util.Log;
import android.util.Property;
import android.view.animation.Interpolator;
@@ -29,6 +30,7 @@
import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.SpringObjectAnimator;
import com.android.launcher3.anim.PropertySetter;
+import com.android.launcher3.testing.TestProtocol;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ScrimView;
@@ -162,6 +164,10 @@
@Override
public void setStateWithAnimation(LauncherState toState,
AnimatorSetBuilder builder, AnimationConfig config) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG,
+ "setStateWithAnimation " + toState.getClass().getSimpleName());
+ }
float targetProgress = toState.getVerticalProgress(mLauncher);
if (Float.compare(mProgress, targetProgress) == 0) {
setAlphas(toState, config, builder);
diff --git a/src/com/android/launcher3/config/BaseFlags.java b/src/com/android/launcher3/config/BaseFlags.java
index 54d0db1..7e20d11 100644
--- a/src/com/android/launcher3/config/BaseFlags.java
+++ b/src/com/android/launcher3/config/BaseFlags.java
@@ -105,7 +105,7 @@
"ENABLE_QUICKSTEP_LIVE_TILE", false, "Enable live tile in Quickstep overview");
public static final TogglableFlag ENABLE_HINTS_IN_OVERVIEW = new TogglableFlag(
- "ENABLE_HINTS_IN_OVERVIEW", true,
+ "ENABLE_HINTS_IN_OVERVIEW", false,
"Show chip hints and gleams on the overview screen");
public static final TogglableFlag FAKE_LANDSCAPE_UI = new TogglableFlag(
diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
index 9703aa6..4e5f7a5 100644
--- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
+++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
@@ -31,6 +31,7 @@
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.os.SystemClock;
+import android.util.Log;
import android.view.HapticFeedbackConstants;
import android.view.MotionEvent;
@@ -118,6 +119,9 @@
@Override
public final boolean onControllerInterceptTouchEvent(MotionEvent ev) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onControllerInterceptTouchEvent 1 " + ev);
+ }
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
mNoIntercept = !canInterceptTouch(ev);
if (mNoIntercept) {
@@ -147,6 +151,9 @@
return false;
}
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onControllerInterceptTouchEvent 2 ");
+ }
onControllerTouchEvent(ev);
return mDetector.isDraggingOrSettling();
}
@@ -234,6 +241,9 @@
@Override
public void onDragStart(boolean start) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onDragStart 1 " + start);
+ }
mStartState = mLauncher.getStateManager().getState();
if (mStartState == ALL_APPS) {
mStartContainerType = LauncherLogProto.ContainerType.ALLAPPS;
@@ -243,6 +253,9 @@
mStartContainerType = LauncherLogProto.ContainerType.TASKSWITCHER;
}
if (mCurrentAnimation == null) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onDragStart 2");
+ }
mFromState = mStartState;
mToState = null;
cancelAnimationControllers();
@@ -552,6 +565,9 @@
}
private void cancelAnimationControllers() {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "cancelAnimationControllers");
+ }
mCurrentAnimation = null;
cancelAtomicComponentsController();
mDetector.finishedScrolling();
diff --git a/src/com/android/launcher3/touch/SwipeDetector.java b/src/com/android/launcher3/touch/SwipeDetector.java
index 4616e58..3d45404 100644
--- a/src/com/android/launcher3/touch/SwipeDetector.java
+++ b/src/com/android/launcher3/touch/SwipeDetector.java
@@ -158,6 +158,9 @@
// SETTLING -> (View settled) -> IDLE
private void setState(ScrollState newState) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "setState -- start: " + newState);
+ }
if (DBG) {
Log.d(TAG, "setState:" + mState + "->" + newState);
}
@@ -165,6 +168,9 @@
if (newState == ScrollState.DRAGGING) {
initializeDragging();
if (mState == ScrollState.IDLE) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "setState -- 1: " + newState);
+ }
reportDragStart(false /* recatch */);
} else if (mState == ScrollState.SETTLING) {
reportDragStart(true /* recatch */);
@@ -318,9 +324,15 @@
break;
}
mDisplacement = mDir.getDisplacement(ev, pointerIndex, mDownPos, mIsRtl);
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onTouchEvent 1");
+ }
// handle state and listener calls.
if (mState != ScrollState.DRAGGING && shouldScrollStart(ev, pointerIndex)) {
+ if (TestProtocol.sDebugTracing) {
+ Log.d(TestProtocol.NO_ALLAPPS_EVENT_TAG, "onTouchEvent 2");
+ }
setState(ScrollState.DRAGGING);
}
if (mState == ScrollState.DRAGGING) {
diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
index 443bc1a..e45fca8 100644
--- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
+++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
@@ -257,6 +257,7 @@
}
private void fail(String message) {
+ log("Hierarchy dump for: " + getContextDescription() + message);
dumpViewHierarchy();
Assert.fail("http://go/tapl : " + getContextDescription() + message);
}