mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
Fix app opening transition for deep shortcuts.
With this change, the floating view now starts on top of the deep shortcut icon; before this change the view stared in the middle of the text portion of the view. Bug: 70220260 Change-Id: I7a1ed705f6f8d9d2ff594f52c4cf678aa0575012
This commit is contained in:
committed by
Jonathan Miranda
parent
8168252567
commit
93e9dbddc5
@@ -51,6 +51,8 @@ import com.android.launcher3.anim.Interpolators;
|
||||
import com.android.launcher3.anim.PropertyListBuilder;
|
||||
import com.android.launcher3.dragndrop.DragLayer;
|
||||
import com.android.launcher3.graphics.DrawableFactory;
|
||||
import com.android.launcher3.shortcuts.DeepShortcutTextView;
|
||||
import com.android.launcher3.shortcuts.DeepShortcutView;
|
||||
import com.android.quickstep.RecentsAnimationInterpolator;
|
||||
import com.android.quickstep.RecentsAnimationInterpolator.TaskWindowBounds;
|
||||
import com.android.quickstep.RecentsView;
|
||||
@@ -498,7 +500,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
* @return Animator that controls the icon used to launch the target.
|
||||
*/
|
||||
private AnimatorSet getIconAnimator(View v) {
|
||||
boolean isBubbleTextView = v instanceof BubbleTextView;
|
||||
final boolean isBubbleTextView = v instanceof BubbleTextView;
|
||||
mFloatingView = new View(mLauncher);
|
||||
if (isBubbleTextView && v.getTag() instanceof ItemInfoWithIcon ) {
|
||||
// Create a copy of the app icon
|
||||
@@ -510,14 +512,24 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
|
||||
|
||||
// Position the floating view exactly on top of the original
|
||||
Rect rect = new Rect();
|
||||
mDragLayer.getDescendantRectRelativeToSelf(v, rect);
|
||||
int viewLocationStart = mIsRtl
|
||||
final boolean isDeepShortcutTextView = v instanceof DeepShortcutTextView
|
||||
&& v.getParent() != null && v.getParent() instanceof DeepShortcutView;
|
||||
if (isDeepShortcutTextView) {
|
||||
// Deep shortcut views have their icon drawn in a sibling view.
|
||||
DeepShortcutView view = (DeepShortcutView) v.getParent();
|
||||
mDragLayer.getDescendantRectRelativeToSelf(view.getIconView(), rect);
|
||||
} else {
|
||||
mDragLayer.getDescendantRectRelativeToSelf(v, rect);
|
||||
}
|
||||
final int viewLocationStart = mIsRtl
|
||||
? mDeviceProfile.widthPx - rect.right
|
||||
: rect.left;
|
||||
int viewLocationTop = rect.top;
|
||||
final int viewLocationTop = rect.top;
|
||||
|
||||
if (isBubbleTextView) {
|
||||
if (isBubbleTextView && !isDeepShortcutTextView) {
|
||||
((BubbleTextView) v).getIconBounds(rect);
|
||||
} else {
|
||||
rect.set(0, 0, rect.width(), rect.height());
|
||||
}
|
||||
LayoutParams lp = new LayoutParams(rect.width(), rect.height());
|
||||
lp.ignoreInsets = true;
|
||||
|
||||
Reference in New Issue
Block a user