Merge "Create new DesktopNavbarButtonsViewController class."
diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
index 65b346a..d9829c6 100644
--- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
@@ -39,6 +39,7 @@
import android.hardware.devicestate.DeviceStateManager;
import android.os.Bundle;
import android.os.CancellationSignal;
+import android.view.Display;
import android.view.View;
import android.view.WindowInsets;
import android.window.SplashScreen;
@@ -509,6 +510,9 @@
activityOptions.options, mLastTouchUpTime);
}
activityOptions.options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON);
+ activityOptions.options.setLaunchDisplayId(
+ (v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
+ : Display.DEFAULT_DISPLAY);
addLaunchCookie(item, activityOptions.options);
return activityOptions;
}
diff --git a/quickstep/src/com/android/quickstep/RecentsActivity.java b/quickstep/src/com/android/quickstep/RecentsActivity.java
index af53bca..3e00279 100644
--- a/quickstep/src/com/android/quickstep/RecentsActivity.java
+++ b/quickstep/src/com/android/quickstep/RecentsActivity.java
@@ -38,6 +38,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.view.Display;
import android.view.SurfaceControl.Transaction;
import android.view.View;
import android.window.SplashScreen;
@@ -256,6 +257,9 @@
ActivityOptionsCompat.makeRemoteAnimation(adapterCompat),
onEndCallback);
activityOptions.options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON);
+ activityOptions.options.setLaunchDisplayId(
+ (v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
+ : Display.DEFAULT_DISPLAY);
return activityOptions;
}
diff --git a/quickstep/src/com/android/quickstep/RemoteTargetGluer.java b/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
index 8e2b566..afb4d4d 100644
--- a/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
+++ b/quickstep/src/com/android/quickstep/RemoteTargetGluer.java
@@ -27,6 +27,8 @@
import com.android.quickstep.util.TransformParams;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
+import java.util.ArrayList;
+
/**
* Glues together the necessary components to animate a remote target using a
* {@link TaskViewSimulator}
@@ -144,20 +146,29 @@
*/
private RemoteAnimationTargets createRemoteAnimationTargetsForTarget(
RemoteAnimationTargets targets,
- @Nullable RemoteAnimationTargetCompat targetToExclude) {
- int finalLength = targets.unfilteredApps.length - (targetToExclude == null ? 0 : 1);
- RemoteAnimationTargetCompat[] targetsWithoutExcluded =
- new RemoteAnimationTargetCompat[finalLength];
- int i = 0;
+ RemoteAnimationTargetCompat targetToExclude) {
+ ArrayList<RemoteAnimationTargetCompat> targetsWithoutExcluded =
+ new ArrayList<RemoteAnimationTargetCompat>();
+
for (RemoteAnimationTargetCompat targetCompat : targets.unfilteredApps) {
if (targetCompat == targetToExclude) {
continue;
}
- targetsWithoutExcluded[i] = targetCompat;
- i++;
+ if (targetToExclude != null
+ && targetToExclude.taskInfo != null
+ && targetCompat.taskInfo != null
+ && targetToExclude.taskInfo.parentTaskId == targetCompat.taskInfo.taskId) {
+ // Also exclude corresponding parent task
+ continue;
+ }
+
+ targetsWithoutExcluded.add(targetCompat);
}
- return new RemoteAnimationTargets(targetsWithoutExcluded,
- targets.wallpapers, targets.nonApps, targets.targetMode);
+ final RemoteAnimationTargetCompat[] filteredApps =
+ targetsWithoutExcluded.toArray(
+ new RemoteAnimationTargetCompat[targetsWithoutExcluded.size()]);
+ return new RemoteAnimationTargets(
+ filteredApps, targets.wallpapers, targets.nonApps, targets.targetMode);
}
public RemoteTargetHandle[] getRemoteTargetHandles() {
diff --git a/src/com/android/launcher3/BaseDraggingActivity.java b/src/com/android/launcher3/BaseDraggingActivity.java
index dd56ca3..80c2d9e 100644
--- a/src/com/android/launcher3/BaseDraggingActivity.java
+++ b/src/com/android/launcher3/BaseDraggingActivity.java
@@ -182,6 +182,10 @@
}
ActivityOptions options =
ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
+
+ options.setLaunchDisplayId(
+ (v != null && v.getDisplay() != null) ? v.getDisplay().getDisplayId()
+ : Display.DEFAULT_DISPLAY);
RunnableList callback = new RunnableList();
addOnResumeCallback(callback::executeAllAndDestroy);
return new ActivityOptionsWrapper(options, callback);
diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
index a94ad7c..a6c9c4d 100644
--- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
@@ -482,17 +482,14 @@
(FrameLayout.LayoutParams) primaryIconView.getLayoutParams();
FrameLayout.LayoutParams secondaryIconParams =
new FrameLayout.LayoutParams(primaryIconParams);
- int dividerBar = (splitConfig.appsStackedVertically ?
- splitConfig.visualDividerBounds.height() :
- splitConfig.visualDividerBounds.width());
- primaryIconParams.gravity = (isRtl ? START : END) | TOP;
- primaryIconView.setTranslationY(primarySnapshotHeight - primaryIconView.getHeight() / 2f);
+ primaryIconParams.gravity = CENTER_VERTICAL | (isRtl ? START : END);
primaryIconView.setTranslationX(0);
-
- secondaryIconParams.gravity = (isRtl ? START : END) | TOP;
- secondaryIconView.setTranslationY(primarySnapshotHeight + taskIconHeight + dividerBar);
+ primaryIconView.setTranslationY(-(taskIconHeight / 2f));
+ secondaryIconParams.gravity = CENTER_VERTICAL | (isRtl ? START : END);
secondaryIconView.setTranslationX(0);
+ secondaryIconView.setTranslationY(taskIconHeight / 2f);
+
primaryIconView.setLayoutParams(primaryIconParams);
secondaryIconView.setLayoutParams(secondaryIconParams);
}
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index ad9f95c..627aa11 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -581,26 +581,15 @@
(FrameLayout.LayoutParams) primaryIconView.getLayoutParams();
FrameLayout.LayoutParams secondaryIconParams =
new FrameLayout.LayoutParams(primaryIconParams);
- int dividerBar = (splitConfig.appsStackedVertically ?
- splitConfig.visualDividerBounds.height() :
- splitConfig.visualDividerBounds.width());
- if (deviceProfile.isLandscape) {
- primaryIconParams.gravity = TOP | START;
- primaryIconView.setTranslationX(
- primarySnapshotWidth - primaryIconView.getMeasuredWidth());
- primaryIconView.setTranslationY(0);
- secondaryIconParams.gravity = TOP | START;
- secondaryIconView.setTranslationX(primarySnapshotWidth + dividerBar);
- } else {
- primaryIconParams.gravity = TOP | CENTER_HORIZONTAL;
- primaryIconView.setTranslationX(-(primaryIconView.getMeasuredWidth()) / 2f);
- primaryIconView.setTranslationY(0);
-
- secondaryIconParams.gravity = TOP | CENTER_HORIZONTAL;
- secondaryIconView.setTranslationX(secondaryIconView.getMeasuredWidth() / 2f);
- }
+ primaryIconParams.gravity = TOP | CENTER_HORIZONTAL;
+ // shifts icon half a width left (height is used conveniently here since icons are square)
+ primaryIconView.setTranslationX(-(taskIconHeight / 2f));
+ primaryIconView.setTranslationY(0);
+ secondaryIconParams.gravity = TOP | CENTER_HORIZONTAL;
+ secondaryIconView.setTranslationX(taskIconHeight / 2f);
secondaryIconView.setTranslationY(0);
+
primaryIconView.setLayoutParams(primaryIconParams);
secondaryIconView.setLayoutParams(secondaryIconParams);
}
diff --git a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
index de5f99c..80a7229 100644
--- a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java
@@ -20,7 +20,6 @@
import static android.view.Gravity.CENTER_VERTICAL;
import static android.view.Gravity.END;
import static android.view.Gravity.START;
-import static android.view.Gravity.TOP;
import static com.android.launcher3.touch.SingleAxisSwipeDetector.HORIZONTAL;
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT;
@@ -183,8 +182,8 @@
FrameLayout.LayoutParams secondaryIconParams =
(FrameLayout.LayoutParams) secondaryIconView.getLayoutParams();
- primaryIconParams.gravity = (isRtl ? END : START) | TOP;
- secondaryIconParams.gravity = (isRtl ? END : START) | TOP;
+ primaryIconParams.gravity = CENTER_VERTICAL | (isRtl ? END : START);
+ secondaryIconParams.gravity = CENTER_VERTICAL | (isRtl ? END : START);
primaryIconView.setLayoutParams(primaryIconParams);
secondaryIconView.setLayoutParams(secondaryIconParams);
}