Merge "Fix transient taskbar icon size in two panel portrait DeviceProfile" into tm-qpr-dev
diff --git a/ext_tests/src/com/android/launcher3/testing/DebugTestInformationHandler.java b/ext_tests/src/com/android/launcher3/testing/DebugTestInformationHandler.java
index cf58198..4f9c32a 100644
--- a/ext_tests/src/com/android/launcher3/testing/DebugTestInformationHandler.java
+++ b/ext_tests/src/com/android/launcher3/testing/DebugTestInformationHandler.java
@@ -16,6 +16,7 @@
package com.android.launcher3.testing;
+import static com.android.launcher3.testing.shared.TestProtocol.VIEW_AND_ACTIVITY_LEAKS;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
@@ -24,7 +25,9 @@
import android.content.Context;
import android.os.Binder;
import android.os.Bundle;
+import android.os.Process;
import android.system.Os;
+import android.util.Log;
import android.view.View;
import androidx.annotation.Keep;
@@ -157,11 +160,17 @@
case TestProtocol.REQUEST_VIEW_LEAK: {
if (sLeaks == null) sLeaks = new LinkedList();
+ Log.d(VIEW_AND_ACTIVITY_LEAKS, "forcefully leaking 2 views");
sLeaks.add(new View(mContext));
sLeaks.add(new View(mContext));
return response;
}
+ case TestProtocol.PRINT_VIEW_LEAK: {
+ Log.d(VIEW_AND_ACTIVITY_LEAKS, "(pid=" + Process.myPid() + ") sLeaks=" + sLeaks);
+ return response;
+ }
+
case TestProtocol.REQUEST_START_EVENT_LOGGING: {
sEvents = new ArrayList<>();
TestLogging.setEventConsumer(
diff --git a/quickstep/res/layout/transient_taskbar.xml b/quickstep/res/layout/transient_taskbar.xml
index 47d63e7..62c6933 100644
--- a/quickstep/res/layout/transient_taskbar.xml
+++ b/quickstep/res/layout/transient_taskbar.xml
@@ -26,6 +26,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
+ android:focusable="true"
+ android:importantForAccessibility="yes"
android:forceHasOverlappingRendering="false"
android:layout_gravity="bottom"
android:layout_marginBottom="@dimen/transient_taskbar_bottom_margin"
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
index 41d35cf..b98f172 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -600,7 +600,11 @@
if (!mIsStashed) {
tryStartTaskbarTimeout();
}
- mControllers.taskbarViewController.announceForAccessibility();
+
+ // only announce if we are actually animating
+ if (duration > 0 && isInApp()) {
+ mControllers.taskbarViewController.announceForAccessibility();
+ }
}
});
}
diff --git a/src/com/android/launcher3/views/ActivityContext.java b/src/com/android/launcher3/views/ActivityContext.java
index 10f40b7..a6744fb 100644
--- a/src/com/android/launcher3/views/ActivityContext.java
+++ b/src/com/android/launcher3/views/ActivityContext.java
@@ -324,8 +324,9 @@
Bundle optsBundle = null;
if (v != null) {
optsBundle = getActivityLaunchOptions(v, item).toBundle();
- } else if (item != null && item.animationType == LauncherSettings.Animation.DEFAULT_NO_ICON
- && Utilities.ATLEAST_T) {
+ } else if (android.os.Build.VERSION.SDK_INT >= 33
+ && item != null
+ && item.animationType == LauncherSettings.Animation.DEFAULT_NO_ICON) {
optsBundle = ActivityOptions.makeBasic()
.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR).toBundle();
}
diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java
index c3633db..4d0e2af 100644
--- a/src/com/android/launcher3/views/FloatingIconView.java
+++ b/src/com/android/launcher3/views/FloatingIconView.java
@@ -80,7 +80,6 @@
public static final float SHAPE_PROGRESS_DURATION = 0.10f;
private static final RectF sTmpRectF = new RectF();
- private static final Object[] sTmpObjArray = new Object[1];
private Runnable mEndRunnable;
private CancellationSignal mLoadIconSignal;
@@ -289,12 +288,13 @@
} else {
int width = (int) pos.width();
int height = (int) pos.height();
+ Object[] tmpObjArray = new Object[1];
if (supportsAdaptiveIcons) {
boolean shouldThemeIcon = btvIcon instanceof FastBitmapDrawable
&& ((FastBitmapDrawable) btvIcon).isThemed();
- drawable = getFullDrawable(l, info, width, height, shouldThemeIcon, sTmpObjArray);
+ drawable = getFullDrawable(l, info, width, height, shouldThemeIcon, tmpObjArray);
if (drawable instanceof AdaptiveIconDrawable) {
- badge = getBadge(l, info, sTmpObjArray[0]);
+ badge = getBadge(l, info, tmpObjArray[0]);
} else {
// The drawable we get back is not an adaptive icon, so we need to use the
// BubbleTextView icon that is already legacy treated.
@@ -306,7 +306,7 @@
drawable = btvIcon;
} else {
drawable = getFullDrawable(l, info, width, height, true /* shouldThemeIcon */,
- sTmpObjArray);
+ tmpObjArray);
}
}
}
@@ -679,7 +679,6 @@
mOriginalIcon = null;
mOnTargetChangeRunnable = null;
mBadge = null;
- sTmpObjArray[0] = null;
sRecycledFetchIconId = sFetchIconId;
mIconLoadResult = null;
mClipIconView.recycle();
diff --git a/tests/shared/com/android/launcher3/testing/shared/TestProtocol.java b/tests/shared/com/android/launcher3/testing/shared/TestProtocol.java
index c7db2ae..a37c3cd 100644
--- a/tests/shared/com/android/launcher3/testing/shared/TestProtocol.java
+++ b/tests/shared/com/android/launcher3/testing/shared/TestProtocol.java
@@ -99,6 +99,7 @@
public static final String REQUEST_PID = "pid";
public static final String REQUEST_FORCE_GC = "gc";
public static final String REQUEST_VIEW_LEAK = "view-leak";
+ public static final String PRINT_VIEW_LEAK = "print-leak";
public static final String REQUEST_RECENT_TASKS_LIST = "recent-tasks-list";
public static final String REQUEST_START_EVENT_LOGGING = "start-event-logging";
public static final String REQUEST_GET_TEST_EVENTS = "get-test-events";
diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
index 5c4b707..08a6423 100644
--- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
+++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
@@ -1830,6 +1830,10 @@
getTestInfo(TestProtocol.REQUEST_VIEW_LEAK);
}
+ public void printViewLeak() {
+ getTestInfo(TestProtocol.PRINT_VIEW_LEAK);
+ }
+
public ArrayList<ComponentName> getRecentTasks() {
ArrayList<ComponentName> tasks = new ArrayList<>();
ArrayList<String> components = getTestInfo(TestProtocol.REQUEST_RECENT_TASKS_LIST)