Merge "Scale icons from search to make app icons big like AA -> workspace" into tm-qpr-dev am: 956851e7ca
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19774829 Change-Id: Ic092c9a5cc32f42eaf7f9a8e0dc34ddd16aae310 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -942,6 +942,11 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver,
|
||||
return mIconSize;
|
||||
}
|
||||
|
||||
public boolean isDisplaySearchResult() {
|
||||
return mDisplay == DISPLAY_SEARCH_RESULT ||
|
||||
mDisplay == DISPLAY_SEARCH_RESULT_SMALL;
|
||||
}
|
||||
|
||||
private void updateTranslation() {
|
||||
super.setTranslationX(mTranslationForReorderBounce.x + mTranslationForReorderPreview.x
|
||||
+ mTranslationForMoveFromCenterAnimation.x
|
||||
|
||||
@@ -106,6 +106,7 @@ import com.android.launcher3.util.PackageUserKey;
|
||||
import com.android.launcher3.util.RunnableList;
|
||||
import com.android.launcher3.util.Thunk;
|
||||
import com.android.launcher3.util.WallpaperOffsetInterpolator;
|
||||
import com.android.launcher3.views.ActivityContext;
|
||||
import com.android.launcher3.widget.LauncherAppWidgetHost;
|
||||
import com.android.launcher3.widget.LauncherAppWidgetHost.ProviderChangedListener;
|
||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||
@@ -152,6 +153,8 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
|
||||
public static final int DEFAULT_PAGE = 0;
|
||||
|
||||
private final int mAllAppsIconSize;
|
||||
|
||||
private LayoutTransition mLayoutTransition;
|
||||
@Thunk final WallpaperManager mWallpaperManager;
|
||||
|
||||
@@ -286,7 +289,7 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
mLauncher = Launcher.getLauncher(context);
|
||||
mStateTransitionAnimation = new WorkspaceStateTransitionAnimation(mLauncher, this);
|
||||
mWallpaperManager = WallpaperManager.getInstance(context);
|
||||
|
||||
mAllAppsIconSize = mLauncher.getDeviceProfile().allAppsIconSizePx;
|
||||
mWallpaperOffset = new WallpaperOffsetInterpolator(this);
|
||||
|
||||
setHapticFeedbackEnabled(false);
|
||||
@@ -1671,8 +1674,14 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
mDragSourceInternal = (ShortcutAndWidgetContainer) child.getParent();
|
||||
}
|
||||
|
||||
if (child instanceof BubbleTextView && !dragOptions.isAccessibleDrag) {
|
||||
dragOptions.preDragCondition = ((BubbleTextView) child).startLongPressAction();
|
||||
if (child instanceof BubbleTextView) {
|
||||
BubbleTextView btv = (BubbleTextView) child;
|
||||
if (!dragOptions.isAccessibleDrag) {
|
||||
dragOptions.preDragCondition = btv.startLongPressAction();
|
||||
}
|
||||
if (btv.isDisplaySearchResult()) {
|
||||
dragOptions.preDragEndScale = (float) mAllAppsIconSize / btv.getIconSize();
|
||||
}
|
||||
}
|
||||
|
||||
final DragView dv;
|
||||
|
||||
@@ -31,6 +31,7 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.DragSource;
|
||||
import com.android.launcher3.DropTarget;
|
||||
import com.android.launcher3.anim.Interpolators;
|
||||
import com.android.launcher3.logging.InstanceId;
|
||||
import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.model.data.WorkspaceItemInfo;
|
||||
@@ -90,6 +91,8 @@ public abstract class DragController<T extends ActivityContext>
|
||||
|
||||
protected boolean mIsInPreDrag;
|
||||
|
||||
private final int DRAG_VIEW_SCALE_DURATION_MS = 500;
|
||||
|
||||
/**
|
||||
* Interface to receive notifications when a drag starts or stops
|
||||
*/
|
||||
@@ -214,6 +217,15 @@ public abstract class DragController<T extends ActivityContext>
|
||||
mOptions.preDragCondition.onPreDragEnd(mDragObject, true /* dragStarted*/);
|
||||
}
|
||||
mIsInPreDrag = false;
|
||||
if (mOptions.preDragEndScale != 0) {
|
||||
mDragObject.dragView
|
||||
.animate()
|
||||
.scaleX(mOptions.preDragEndScale)
|
||||
.scaleY(mOptions.preDragEndScale)
|
||||
.setInterpolator(Interpolators.EMPHASIZED)
|
||||
.setDuration(DRAG_VIEW_SCALE_DURATION_MS)
|
||||
.start();
|
||||
}
|
||||
mDragObject.dragView.onDragStart();
|
||||
for (DragListener listener : new ArrayList<>(mListeners)) {
|
||||
listener.onDragStart(mDragObject, mOptions);
|
||||
@@ -295,9 +307,9 @@ public abstract class DragController<T extends ActivityContext>
|
||||
} else if (mIsInPreDrag) {
|
||||
animateDragViewToOriginalPosition(null, null, -1);
|
||||
}
|
||||
mDragObject.dragView.clearAnimation();
|
||||
mDragObject.dragView = null;
|
||||
}
|
||||
|
||||
// Only end the drag if we are not deferred
|
||||
if (!isDeferred) {
|
||||
callOnDragEnd();
|
||||
|
||||
@@ -40,6 +40,12 @@ public class DragOptions {
|
||||
/** Determines when a pre-drag should transition to a drag. By default, this is immediate. */
|
||||
public PreDragCondition preDragCondition = null;
|
||||
|
||||
/**
|
||||
* A drag scale that scales the original drag view size when the preDragCondition is met (or
|
||||
* is ignored if preDragEndScale is 0).
|
||||
*/
|
||||
public float preDragEndScale;
|
||||
|
||||
/** Scale of the icons over the workspace icon size. */
|
||||
public float intrinsicIconScaleFactor = 1f;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user