Merge cherrypicks of [8551866, 8551867, 8551868, 8552336, 8552337, 8552338, 8551869, 8552339, 8552376, 8551887] into qt-c2f2-release
Change-Id: I8cda0a8687a02d0f3791023ded0c69f830e5419c
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
index f1d1141..ac7ba3f 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -505,7 +505,8 @@
initAnimFactory.run();
}
}
- AbstractFloatingView.closeAllOpenViews(activity, mWasLauncherAlreadyVisible);
+ AbstractFloatingView.closeAllOpenViewsExcept(activity, mWasLauncherAlreadyVisible,
+ AbstractFloatingView.TYPE_LISTENER);
if (mWasLauncherAlreadyVisible) {
mStateCallback.setState(STATE_LAUNCHER_DRAWN);
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
index 6cb2506..6a9abd5 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
@@ -473,6 +473,11 @@
}
@Override
+ protected boolean shouldBlockGestures(MotionEvent ev) {
+ return Utilities.shouldDisableGestures(ev);
+ }
+
+ @Override
public boolean onTouchEvent(MotionEvent ev) {
super.onTouchEvent(ev);
final int x = (int) ev.getX();
diff --git a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java
index 7bfa9a0..befeee0 100644
--- a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java
+++ b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java
@@ -15,7 +15,6 @@
*/
package com.android.quickstep;
-import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserManager;
@@ -23,29 +22,17 @@
import com.android.launcher3.BuildConfig;
import com.android.launcher3.MainProcessInitializer;
-import com.android.launcher3.Utilities;
import com.android.systemui.shared.system.ThreadedRendererCompat;
@SuppressWarnings("unused")
public class QuickstepProcessInitializer extends MainProcessInitializer {
private static final String TAG = "QuickstepProcessInitializer";
- private static final int HEAP_LIMIT_MB = 250;
public QuickstepProcessInitializer(Context context) { }
@Override
protected void init(Context context) {
- if (Utilities.IS_DEBUG_DEVICE) {
- try {
- // Trigger a heap dump if the PSS reaches beyond the target heap limit
- final ActivityManager am = context.getSystemService(ActivityManager.class);
- am.setWatchHeapLimit(HEAP_LIMIT_MB * 1024 * 1024);
- } catch (SecurityException e) {
- // Do nothing
- }
- }
-
// Workaround for b/120550382, an external app can cause the launcher process to start for
// a work profile user which we do not support. Disable the application immediately when we
// detect this to be the case.
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index d9af4da..bc3aa7e 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -952,10 +952,14 @@
mHandler.removeCallbacks(mHandleDeferredResume);
Utilities.postAsyncCallback(mHandler, mHandleDeferredResume);
- for (OnResumeCallback cb : mOnResumeCallbacks) {
- cb.onLauncherResume();
+ if (!mOnResumeCallbacks.isEmpty()) {
+ final ArrayList<OnResumeCallback> resumeCallbacks = new ArrayList<>(mOnResumeCallbacks);
+ mOnResumeCallbacks.clear();
+ for (int i = resumeCallbacks.size() - 1; i >= 0; i--) {
+ resumeCallbacks.get(i).onLauncherResume();
+ }
+ resumeCallbacks.clear();
}
- mOnResumeCallbacks.clear();
if (mLauncherCallbacks != null) {
mLauncherCallbacks.onResume();
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 2eeb132..f8e4c9d 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -16,7 +16,6 @@
package com.android.launcher3;
-import static com.android.launcher3.Utilities.shouldDisableGestures;
import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled;
import static com.android.launcher3.compat.AccessibilityManagerCompat.isObservedEventType;
import static com.android.launcher3.config.FeatureFlags.QUICKSTEP_SPRINGS;
@@ -847,7 +846,7 @@
*/
// Skip touch handling if there are no pages to swipe
- if (getChildCount() <= 0 || shouldDisableGestures(ev)) return false;
+ if (getChildCount() <= 0 || shouldBlockGestures(ev)) return false;
acquireVelocityTrackerAndAddMovement(ev);
@@ -1092,10 +1091,14 @@
mAllowOverScroll = enable;
}
+ protected boolean shouldBlockGestures(MotionEvent ev) {
+ return false;
+ }
+
@Override
public boolean onTouchEvent(MotionEvent ev) {
// Skip touch handling if there are no pages to swipe
- if (getChildCount() <= 0 || shouldDisableGestures(ev)) return false;
+ if (getChildCount() <= 0 || shouldBlockGestures(ev)) return false;
acquireVelocityTrackerAndAddMovement(ev);
diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java
index 53686ca..1e70c7f 100644
--- a/src/com/android/launcher3/views/BaseDragLayer.java
+++ b/src/com/android/launcher3/views/BaseDragLayer.java
@@ -224,12 +224,10 @@
if (child instanceof AbstractFloatingView) {
// Handles the case where the view is removed without being properly closed.
// This can happen if something goes wrong during a state change/transition.
- postDelayed(() -> {
- AbstractFloatingView floatingView = (AbstractFloatingView) child;
- if (floatingView.isOpen()) {
- floatingView.close(false);
- }
- }, SINGLE_FRAME_MS);
+ AbstractFloatingView floatingView = (AbstractFloatingView) child;
+ if (floatingView.isOpen()) {
+ postDelayed(() -> floatingView.close(false), SINGLE_FRAME_MS);
+ }
}
}
diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java
index b6c4fed..ab4b576 100644
--- a/src/com/android/launcher3/views/FloatingIconView.java
+++ b/src/com/android/launcher3/views/FloatingIconView.java
@@ -574,17 +574,17 @@
if (cancellationSignal.isCanceled()) {
return;
}
- if (mIconLoadResult.isIconLoaded) {
- setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge,
- mIconLoadResult.iconOffset);
- }
+
+ setIcon(originalView, mIconLoadResult.drawable, mIconLoadResult.badge,
+ mIconLoadResult.iconOffset);
+
// Delay swapping views until the icon is loaded to prevent a flash.
setVisibility(VISIBLE);
originalView.setVisibility(INVISIBLE);
};
+ mLoadIconSignal = cancellationSignal;
}
}
- mLoadIconSignal = cancellationSignal;
}
private void setBackgroundDrawableBounds(float scale) {