Merge "Fixing wrong diffing logic in AdapterItem" into tm-dev
diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
index f2162b0..2d7fe69 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
@@ -191,6 +191,9 @@
1 - ALL_APPS_SCRIM_OPAQUE_THRESHOLD,
1 - ALL_APPS_SCRIM_VISIBLE_THRESHOLD));
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_ACCELERATE);
+ if (!isTablet) {
+ config.setInterpolator(ANIM_WORKSPACE_FADE, INSTANT);
+ }
} else if (fromState == NORMAL && toState == ALL_APPS) {
if (mActivity.getDeviceProfile().isTablet) {
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_DECELERATE);
diff --git a/quickstep/src/com/android/quickstep/TopTaskTracker.java b/quickstep/src/com/android/quickstep/TopTaskTracker.java
index 39c5f2a..723dc72 100644
--- a/quickstep/src/com/android/quickstep/TopTaskTracker.java
+++ b/quickstep/src/com/android/quickstep/TopTaskTracker.java
@@ -15,12 +15,13 @@
*/
package com.android.quickstep;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.content.Intent.ACTION_CHOOSER;
import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT;
-import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_ASSISTANT;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.Context;
@@ -64,6 +65,7 @@
private final StagedSplitTaskPosition mMainStagePosition = new StagedSplitTaskPosition();
private final StagedSplitTaskPosition mSideStagePosition = new StagedSplitTaskPosition();
+ private int mPinnedTaskId = INVALID_TASK_ID;
private TopTaskTracker(Context context) {
mMainStagePosition.stageType = SplitConfigurationOptions.STAGE_TYPE_MAIN;
@@ -132,8 +134,18 @@
}
}
+ @Override
+ public void onActivityPinned(String packageName, int userId, int taskId, int stackId) {
+ mPinnedTaskId = taskId;
+ }
+
+ @Override
+ public void onActivityUnpinned() {
+ mPinnedTaskId = INVALID_TASK_ID;
+ }
+
private void resetTaskId(StagedSplitTaskPosition taskPosition) {
- taskPosition.taskId = -1;
+ taskPosition.taskId = INVALID_TASK_ID;
}
/**
@@ -141,7 +153,8 @@
* Will return empty array if device is not in staged split
*/
public int[] getRunningSplitTaskIds() {
- if (mMainStagePosition.taskId == -1 || mSideStagePosition.taskId == -1) {
+ if (mMainStagePosition.taskId == INVALID_TASK_ID
+ || mSideStagePosition.taskId == INVALID_TASK_ID) {
return new int[]{};
}
int[] out = new int[2];
@@ -175,7 +188,11 @@
false /* filterOnlyVisibleRecents */));
Collections.addAll(mOrderedTaskList, tasks);
}
- return new CachedTaskInfo(new ArrayList<>(mOrderedTaskList));
+
+ // Strip the pinned task
+ ArrayList<RunningTaskInfo> tasks = new ArrayList<>(mOrderedTaskList);
+ tasks.removeIf(t -> t.taskId == mPinnedTaskId);
+ return new CachedTaskInfo(tasks);
}
/**
@@ -194,7 +211,7 @@
}
public int getTaskId() {
- return mTopTask == null ? -1 : mTopTask.taskId;
+ return mTopTask == null ? INVALID_TASK_ID : mTopTask.taskId;
}
/**
diff --git a/src/com/android/launcher3/touch/AllAppsSwipeController.java b/src/com/android/launcher3/touch/AllAppsSwipeController.java
index 787d9ea..db43baa 100644
--- a/src/com/android/launcher3/touch/AllAppsSwipeController.java
+++ b/src/com/android/launcher3/touch/AllAppsSwipeController.java
@@ -65,13 +65,13 @@
public static final Interpolator BLUR =
Interpolators.clampToProgress(
Interpolators.mapToProgress(
- EMPHASIZED_DECELERATE, 0f, ALL_APPS_FULL_DEPTH_PROGRESS),
+ LINEAR, 0f, ALL_APPS_FULL_DEPTH_PROGRESS),
WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION);
public static final Interpolator WORKSPACE_FADE =
Interpolators.clampToProgress(FINAL_FRAME, 0f, ALL_APPS_STATE_TRANSITION);
public static final Interpolator WORKSPACE_SCALE =
Interpolators.clampToProgress(
- EMPHASIZED_DECELERATE, WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION);
+ EMPHASIZED_ACCELERATE, WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION);
public static final Interpolator HOTSEAT_FADE = WORKSPACE_FADE;
public static final Interpolator HOTSEAT_SCALE = HOTSEAT_FADE;
public static final Interpolator HOTSEAT_TRANSLATE =
@@ -157,6 +157,9 @@
config.setInterpolator(ANIM_SCRIM_FADE, ALLAPPS_STAGGERED_FADE_LATE_RESPONDER);
config.setInterpolator(ANIM_ALL_APPS_FADE, isTablet
? FINAL_FRAME : ALLAPPS_STAGGERED_FADE_EARLY_RESPONDER);
+ if (!isTablet) {
+ config.setInterpolator(ANIM_WORKSPACE_FADE, INSTANT);
+ }
}
/**
diff --git a/src/com/android/launcher3/views/FloatingIconView.java b/src/com/android/launcher3/views/FloatingIconView.java
index babe607..acdd9a1 100644
--- a/src/com/android/launcher3/views/FloatingIconView.java
+++ b/src/com/android/launcher3/views/FloatingIconView.java
@@ -525,7 +525,7 @@
& ItemInfoWithIcon.FLAG_SHOW_DOWNLOAD_PROGRESS_MASK) != 0) {
btvIcon = btv.makePreloadIcon();
} else {
- btvIcon = btv.getIcon();
+ btvIcon = (FastBitmapDrawable) btv.getIcon().getConstantState().newDrawable();
}
} else {
btvIcon = null;