Merge "Remove screen actions plugin" into sc-v2-dev
diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
index 2537134..f210e3a 100644
--- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
+++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
@@ -856,7 +856,13 @@
// Since we added a start delay, call update here to init the FloatingIconView properly.
listener.onUpdate(0, true /* initOnly */);
- animatorSet.playTogether(appAnimator, getBackgroundAnimator(appTargets));
+ // If app targets are translucent, do not animate the background as it causes a visible
+ // flicker when it resets itself at the end of its animation.
+ if (appTargetsAreTranslucent) {
+ animatorSet.play(appAnimator);
+ } else {
+ animatorSet.playTogether(appAnimator, getBackgroundAnimator());
+ }
return animatorSet;
}
@@ -993,11 +999,20 @@
}
});
- animatorSet.playTogether(appAnimator, getBackgroundAnimator(appTargets));
+ // If app targets are translucent, do not animate the background as it causes a visible
+ // flicker when it resets itself at the end of its animation.
+ if (appTargetsAreTranslucent) {
+ animatorSet.play(appAnimator);
+ } else {
+ animatorSet.playTogether(appAnimator, getBackgroundAnimator());
+ }
return animatorSet;
}
- private ObjectAnimator getBackgroundAnimator(RemoteAnimationTargetCompat[] appTargets) {
+ /**
+ * Returns animator that controls depth/blur of the background.
+ */
+ private ObjectAnimator getBackgroundAnimator() {
// When launching an app from overview that doesn't map to a task, we still want to just
// blur the wallpaper instead of the launcher surface as well
boolean allowBlurringLauncher = mLauncher.getStateManager().getState() != OVERVIEW;
diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
index e88ebcf..734c844 100644
--- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
+++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java
@@ -17,7 +17,11 @@
import static com.android.launcher3.states.RotationHelper.deltaRotation;
import static com.android.launcher3.touch.PagedOrientationHandler.MATRIX_POST_TRANSLATE;
-import static com.android.launcher3.util.SplitConfigurationOptions.*;
+import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT;
+import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT;
+import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_UNDEFINED;
+import static com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
+import static com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
import static com.android.quickstep.util.RecentsOrientedState.postDisplayRotation;
import static com.android.quickstep.util.RecentsOrientedState.preDisplayRotation;
import static com.android.systemui.shared.system.WindowManagerWrapper.WINDOWING_MODE_FULLSCREEN;
@@ -26,7 +30,6 @@
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Matrix;
-import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -56,8 +59,6 @@
private final Rect mTmpCropRect = new Rect();
private final RectF mTempRectF = new RectF();
- // Additional offset for split tasks
- private final Point mSplitOffset = new Point();
private final float[] mTempPoint = new float[2];
private final Context mContext;
@@ -75,7 +76,6 @@
private final Matrix mMatrix = new Matrix();
private final Matrix mMatrixTmp = new Matrix();
- private final Point mRunningTargetWindowPosition = new Point();
// Thumbnail view properties
private final Rect mThumbnailPosition = new Rect();
@@ -159,8 +159,6 @@
*/
public void setPreview(RemoteAnimationTargetCompat runningTarget) {
setPreviewBounds(runningTarget.screenSpaceBounds, runningTarget.contentInsets);
- mRunningTargetWindowPosition.set(runningTarget.screenSpaceBounds.left,
- runningTarget.screenSpaceBounds.top);
}
/**
@@ -261,9 +259,6 @@
mOrientationState.getRecentsActivityRotation(),
mOrientationState.getDisplayRotation()),
mDp.widthPx, mDp.heightPx, matrix);
- matrix.postTranslate(-mRunningTargetWindowPosition.x, -mRunningTargetWindowPosition.y);
- // Move lower/right split window into correct position
- matrix.postTranslate(mSplitOffset.x, mSplitOffset.y);
}
/**
@@ -280,11 +275,6 @@
getFullScreenScale();
mThumbnailData.rotation = mOrientationState.getDisplayRotation();
- if (mStagedSplitBounds != null) {
- mOrientationState.getOrientationHandler().setLeashSplitOffset(mSplitOffset, mDp,
- mStagedSplitBounds, mStagePosition);
- }
-
// mIsRecentsRtl is the inverse of TaskView RTL.
boolean isRtlEnabled = !mIsRecentsRtl;
mPositionHelper.updateThumbnailMatrix(
@@ -293,7 +283,7 @@
mDp, mOrientationState.getRecentsActivityRotation(), isRtlEnabled);
mPositionHelper.getMatrix().invert(mInversePositionMatrix);
if (DEBUG) {
- Log.d(TAG, " taskRect: " + mTaskRect + " splitOffset: " + mSplitOffset);
+ Log.d(TAG, " taskRect: " + mTaskRect);
}
}
@@ -344,7 +334,6 @@
+ " recentsViewScale: " + recentsViewScale.value
+ " crop: " + mTmpCropRect
+ " radius: " + getCurrentCornerRadius()
- + " translate: " + mSplitOffset
+ " taskW: " + taskWidth + " H: " + taskHeight
+ " taskRect: " + mTaskRect
+ " taskPrimaryT: " + taskPrimaryTranslation.value
diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml
index 55cedf4..7bbdbd1 100644
--- a/res/values-v31/colors.xml
+++ b/res/values-v31/colors.xml
@@ -40,7 +40,7 @@
<color name="wallpaper_popup_scrim">@android:color/system_neutral1_900</color>
- <color name="folder_dot_color">@android:color/system_accent2_50</color>
+ <color name="folder_dot_color">@android:color/system_accent3_100</color>
<color name="folder_pagination_color_light">@android:color/system_accent1_600</color>
<color name="folder_pagination_color_dark">@android:color/system_accent2_100</color>
diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
index 3ac25f2..a190f52 100644
--- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
+++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java
@@ -31,7 +31,6 @@
import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MAIN;
import android.content.res.Resources;
-import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -389,15 +388,6 @@
}
@Override
- public void setLeashSplitOffset(Point splitOffset, DeviceProfile dp,
- StagedSplitBounds splitInfo, int desiredStagePosition) {
- if (desiredStagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT) {
- // The preview set is for the bottom/right, inset by top/left task
- splitOffset.x = splitInfo.leftTopBounds.width() + splitInfo.visualDividerBounds.width();
- }
- }
-
- @Override
public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
int parentWidth, int parentHeight,
SplitConfigurationOptions.StagedSplitBounds splitBoundsConfig, DeviceProfile dp) {
diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java
index 19d73a8..8112afd 100644
--- a/src/com/android/launcher3/touch/PagedOrientationHandler.java
+++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java
@@ -19,7 +19,6 @@
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Matrix;
-import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -146,21 +145,6 @@
StagedSplitBounds splitInfo,
@SplitConfigurationOptions.StagePosition int desiredStagePosition);
- /**
- * It's important to note that {@link #setSplitTaskSwipeRect(DeviceProfile, Rect,
- * StagedSplitBounds, int)} above operates on the outRect based on
- * launcher's coordinate system, meaning it will treat the outRect as portrait if home rotation
- * is not allowed.
- *
- * However, here the splitOffset is from perspective of TaskViewSimulator, which is in display
- * orientation coordinates. So, for example, for the fake landscape scenario, even though
- * launcher is portrait, we inset the bottom/right task by an X coordinate instead of the
- * usual Y
- */
- void setLeashSplitOffset(Point splitOffset, DeviceProfile dp,
- StagedSplitBounds splitInfo,
- @SplitConfigurationOptions.StagePosition int desiredStagePosition);
-
void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
int parentWidth, int parentHeight,
SplitConfigurationOptions.StagedSplitBounds splitBoundsConfig, DeviceProfile dp);
diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
index 1b8ebd8..576c6f5 100644
--- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
+++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java
@@ -31,7 +31,6 @@
import android.content.res.Resources;
import android.graphics.Matrix;
-import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -476,22 +475,6 @@
}
@Override
- public void setLeashSplitOffset(Point splitOffset, DeviceProfile dp,
- StagedSplitBounds splitInfo, int desiredStagePosition) {
- if (desiredStagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT) {
- if (dp.isLandscape) {
- splitOffset.x = splitInfo.leftTopBounds.width() +
- splitInfo.visualDividerBounds.width();
- splitOffset.y = 0;
- } else {
- splitOffset.y = splitInfo.leftTopBounds.height() +
- splitInfo.visualDividerBounds.height();
- splitOffset.x = 0;
- }
- }
- }
-
- @Override
public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
int parentWidth, int parentHeight,
SplitConfigurationOptions.StagedSplitBounds splitBoundsConfig, DeviceProfile dp) {
diff --git a/src/com/android/launcher3/widget/util/WidgetSizes.java b/src/com/android/launcher3/widget/util/WidgetSizes.java
index 451ed6e..b211f4c 100644
--- a/src/com/android/launcher3/widget/util/WidgetSizes.java
+++ b/src/com/android/launcher3/widget/util/WidgetSizes.java
@@ -17,7 +17,6 @@
import static android.appwidget.AppWidgetHostView.getDefaultPaddingForWidget;
-
import android.appwidget.AppWidgetHostView;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
@@ -87,7 +86,13 @@
}
/**
- * Returns the size of a WidgetItem.
+ * Returns the size of a {@link WidgetItem}.
+ *
+ * <p>This size is used by the widget picker. It should NEVER be shared with app widgets.
+ *
+ * <p>For sizes shared with app widgets, please refer to
+ * {@link #getWidgetPaddedSizes(Context, ComponentName, int, int)} &
+ * {@link #getWidgetPaddedSizePx(Context, ComponentName, DeviceProfile, int, int)}.
*/
public static Size getWidgetItemSizePx(Context context, DeviceProfile profile,
WidgetItem widgetItem) {
@@ -96,8 +101,15 @@
.getDimensionPixelSize(R.dimen.widget_preview_shortcut_padding);
return new Size(dimension, dimension);
}
- return getWidgetPaddedSizePx(context, widgetItem.componentName, profile, widgetItem.spanX,
- widgetItem.spanY);
+ Size widgetItemSize = getWidgetSizePx(profile, widgetItem.spanX,
+ widgetItem.spanY, /* recycledCellSize= */ null);
+ if (profile.shouldInsetWidgets()) {
+ Rect inset = new Rect();
+ AppWidgetHostView.getDefaultPaddingForWidget(context, widgetItem.componentName, inset);
+ return new Size(widgetItemSize.getWidth() + inset.left + inset.right,
+ widgetItemSize.getHeight() + inset.top + inset.bottom);
+ }
+ return widgetItemSize;
}
private static Size getWidgetSizePx(DeviceProfile profile, int spanX, int spanY,