Snap for 9556973 from b70a68a6d7f7fbd3e81af87183c096af6a50e4cf to tm-qpr3-release
Change-Id: Ie6ed25d01c78c39d74ebe7e663202b8418b6dad5
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index d339d28..0d8391b 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -304,7 +304,7 @@
<dimen name="taskbar_nav_threshold_v2">30dp</dimen>
<dimen name="taskbar_app_window_threshold_v2">100dp</dimen>
- <dimen name="taskbar_home_overview_threshold_v2">200dp</dimen>
+ <dimen name="taskbar_home_overview_threshold_v2">180dp</dimen>
<!-- Taskbar 3 button spacing -->
<dimen name="taskbar_button_space_inbetween">24dp</dimen>
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
index b680a15..87fa6f3 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java
@@ -31,6 +31,7 @@
import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
+import com.android.quickstep.views.TaskView.TaskIdAttributeContainer;
import com.android.systemui.shared.recents.model.Task;
import java.io.PrintWriter;
@@ -202,12 +203,16 @@
// null checks as much. See comments at ag/21152798.
if (foundTaskView != null) {
// There is already a running app of this type, use that as second app.
+ // Get index of task (0 or 1), in case it's a GroupedTaskView
+ int indexOfTask = foundTaskView.getIndexOfTask(foundTask.key.id);
+ TaskIdAttributeContainer taskAttributes =
+ foundTaskView.getTaskIdAttributeContainers()[indexOfTask];
recents.confirmSplitSelect(
foundTaskView,
- foundTaskView.getTask(),
- foundTaskView.getIconView().getDrawable(),
- foundTaskView.getThumbnail(),
- foundTaskView.getThumbnail().getThumbnail(),
+ taskAttributes.getTask(),
+ taskAttributes.getIconView().getDrawable(),
+ taskAttributes.getThumbnailView(),
+ taskAttributes.getThumbnailView().getThumbnail(),
null /* intent */);
return;
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
index db584d8..38351a9 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
@@ -47,6 +47,7 @@
import com.android.launcher3.util.LauncherBindableItemsContainer;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.DoubleShadowBubbleTextView;
+import com.android.launcher3.views.IconButtonView;
import java.util.function.Predicate;
@@ -80,7 +81,7 @@
private @Nullable FolderIcon mLeaveBehindFolderIcon;
// Only non-null when device supports having an All Apps button.
- private @Nullable View mAllAppsButton;
+ private @Nullable IconButtonView mAllAppsButton;
// Only non-null when device supports having an All Apps button.
private @Nullable View mTaskbarDivider;
@@ -125,10 +126,14 @@
if (FeatureFlags.ENABLE_ALL_APPS_IN_TASKBAR.get()
&& !mActivityContext.getPackageManager().hasSystemFeature(FEATURE_PC)) {
- mAllAppsButton = LayoutInflater.from(context)
+ mAllAppsButton = (IconButtonView) LayoutInflater.from(context)
.inflate(R.layout.taskbar_all_apps_button, this, false);
mAllAppsButton.setPadding(mItemPadding, mItemPadding, mItemPadding, mItemPadding);
mAllAppsButton.setScaleX(mIsRtl ? -1 : 1);
+ mAllAppsButton.setForegroundTint(mActivityContext.getColor(
+ DisplayController.isTransientTaskbar(mActivityContext)
+ ? R.color.all_apps_button_color
+ : R.color.all_apps_button_color_dark));
if (FeatureFlags.ENABLE_TASKBAR_PINNING.get()) {
mTaskbarDivider = LayoutInflater.from(context).inflate(R.layout.taskbar_divider,
diff --git a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
index 170c622..fdbb119 100644
--- a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
+++ b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java
@@ -20,6 +20,7 @@
import static com.android.launcher3.LauncherAnimUtils.WORKSPACE_SCALE_PROPERTY_FACTORY;
import android.annotation.Nullable;
+import android.os.Trace;
import android.util.FloatProperty;
import android.util.MathUtils;
import android.view.WindowManager;
@@ -55,6 +56,9 @@
private final UnfoldMoveFromCenterHotseatAnimator mUnfoldMoveFromCenterHotseatAnimator;
private final UnfoldMoveFromCenterWorkspaceAnimator mUnfoldMoveFromCenterWorkspaceAnimator;
+ private static final String TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION =
+ "waitingOneFrameBeforeHandlingUnfoldAnimation";
+
@Nullable
private HorizontalInsettableView mQsbInsettable;
@@ -92,8 +96,18 @@
mQsbInsettable = (HorizontalInsettableView) hotseat.getQsb();
}
+ handleTransitionOnNextFrame();
+ }
+
+ private void handleTransitionOnNextFrame() {
+ Trace.asyncTraceBegin(Trace.TRACE_TAG_APP,
+ TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
OneShotPreDrawListener.add(mLauncher.getWorkspace(),
- () -> mProgressProvider.setReadyToHandleTransition(true));
+ () -> {
+ Trace.asyncTraceEnd(Trace.TRACE_TAG_APP,
+ TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
+ mProgressProvider.setReadyToHandleTransition(true);
+ });
}
/**
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index aa37fdd..b23c873 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -600,6 +600,19 @@
return mTaskIdContainer[1] != -1;
}
+ /**
+ * Finds the index of a given taskId within this TaskView, or -1 if the TaskView does not
+ * contain it. For grouped tasks (of two), this is 0 or 1; for solo tasks, it is 0.
+ */
+ public int getIndexOfTask(int taskId) {
+ for (int i = 0; i < mTaskIdContainer.length; i++) {
+ if (mTaskIdContainer[i] == taskId) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
public TaskThumbnailView getThumbnail() {
return mSnapshotView;
}
diff --git a/res/values-night-v31/colors.xml b/res/values-night-v31/colors.xml
index 54d6d88..2c1bc90 100644
--- a/res/values-night-v31/colors.xml
+++ b/res/values-night-v31/colors.xml
@@ -24,6 +24,4 @@
<color name="home_settings_thumb_off_color">@android:color/system_neutral2_300</color>
<color name="home_settings_track_on_color">@android:color/system_accent2_700</color>
<color name="home_settings_track_off_color">@android:color/system_neutral1_700</color>
-
- <color name="all_apps_button_color">?android:attr/textColorSecondary</color>
</resources>
\ No newline at end of file
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index 17fe419..4ba77fa 100644
--- a/res/values-night/colors.xml
+++ b/res/values-night/colors.xml
@@ -17,5 +17,5 @@
-->
<resources>
- <color name="all_apps_button_color">#BFC8CC</color>
+ <color name="all_apps_button_color">@color/all_apps_button_color_dark</color>
</resources>
\ No newline at end of file
diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml
index cf4f000..63a5454 100644
--- a/res/values-v31/colors.xml
+++ b/res/values-v31/colors.xml
@@ -62,5 +62,6 @@
<color name="preload_icon_accent_color_dark">@android:color/system_accent1_300</color>
<color name="preload_icon_background_color_dark">@android:color/system_neutral2_700</color>
- <color name="all_apps_button_color">?android:attr/textColorSecondary</color>
+ <color name="all_apps_button_color_light">@android:color/system_neutral2_700</color>
+ <color name="all_apps_button_color_dark">@android:color/system_neutral2_200</color>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 9d6927b..ef7bf91 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -80,7 +80,9 @@
<color name="workspace_accent_color_light">#ff8df5e3</color>
<color name="workspace_accent_color_dark">#ff3d665f</color>
- <color name="all_apps_button_color">#40484B</color>
+ <color name="all_apps_button_color">@color/all_apps_button_color_light</color>
+ <color name="all_apps_button_color_light">#40484B</color>
+ <color name="all_apps_button_color_dark">#BFC8CC</color>
<color name="preload_icon_accent_color_light">#00668B</color>
<color name="preload_icon_background_color_light">#B5CAD7</color>
diff --git a/src/com/android/launcher3/views/IconButtonView.java b/src/com/android/launcher3/views/IconButtonView.java
index dd48c99..64e9327 100644
--- a/src/com/android/launcher3/views/IconButtonView.java
+++ b/src/com/android/launcher3/views/IconButtonView.java
@@ -30,6 +30,8 @@
import android.os.Build;
import android.util.AttributeSet;
+import androidx.annotation.ColorInt;
+
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.icons.BaseIconFactory;
import com.android.launcher3.icons.FastBitmapDrawable;
@@ -68,6 +70,14 @@
}
}
+ /** Updates the color of the icon's foreground layer. */
+ public void setForegroundTint(@ColorInt int tintColor) {
+ FastBitmapDrawable icon = getIcon();
+ if (icon instanceof IconDrawable) {
+ ((IconDrawable) icon).mFg.setTint(tintColor);
+ }
+ }
+
private static class IconDrawable extends FastBitmapDrawable {
private final Drawable mFg;