diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-06-13 16:36:59 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-06-14 16:46:03 -0700 |
commit | e8b5d20d94cb03878137a7fdf65d7a88270b73f8 (patch) | |
tree | dd8ffb39af72269442876e68c81e93be7f0ac605 | |
parent | fb94f485ee4059a0a65e2b141982f936f36d91e7 (diff) | |
download | android_packages_apps_Trebuchet-e8b5d20d94cb03878137a7fdf65d7a88270b73f8.tar.gz android_packages_apps_Trebuchet-e8b5d20d94cb03878137a7fdf65d7a88270b73f8.tar.bz2 android_packages_apps_Trebuchet-e8b5d20d94cb03878137a7fdf65d7a88270b73f8.zip |
Fixing bug in getDescendantCoordRelativeToParent where it was
calculating the coordinates relative to the root's parent
The bug went unnoticed for so long, as its only used in DragLayer
which is positioned at 0,0 in its parent
Change-Id: I101cda1f1fa919c0faf9b23b1eeb05764bdf1a40
-rw-r--r-- | src/com/android/launcher3/Utilities.java | 11 | ||||
-rw-r--r-- | src/com/android/launcher3/dragndrop/DragLayer.java | 4 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 4aaa02fd3..35113758a 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -331,7 +331,7 @@ public final class Utilities { * coordinates. * * @param descendant The descendant to which the passed coordinate is relative. - * @param root The root view to make the coordinates relative to. + * @param ancestor The root view to make the coordinates relative to. * @param coord The coordinate that we want mapped. * @param includeRootScroll Whether or not to account for the scroll of the descendant: * sometimes this is relevant as in a child's coordinates within the descendant. @@ -339,18 +339,17 @@ public final class Utilities { * this scale factor is assumed to be equal in X and Y, and so if at any point this * assumption fails, we will need to return a pair of scale factors. */ - public static float getDescendantCoordRelativeToParent(View descendant, View root, - int[] coord, boolean includeRootScroll) { + public static float getDescendantCoordRelativeToAncestor( + View descendant, View ancestor, int[] coord, boolean includeRootScroll) { ArrayList<View> ancestorChain = new ArrayList<View>(); float[] pt = {coord[0], coord[1]}; View v = descendant; - while(v != root && v != null) { + while(v != ancestor && v != null) { ancestorChain.add(v); v = (View) v.getParent(); } - ancestorChain.add(root); float scale = 1.0f; int count = ancestorChain.size(); @@ -375,7 +374,7 @@ public final class Utilities { } /** - * Inverse of {@link #getDescendantCoordRelativeToParent(View, View, int[], boolean)}. + * Inverse of {@link #getDescendantCoordRelativeToAncestor(View, View, int[], boolean)}. */ public static float mapCoordInSelfToDescendent(View descendant, View root, int[] coord) { diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index 765ad64e9..5d212d8aa 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -42,7 +42,6 @@ import android.widget.FrameLayout; import android.widget.TextView; import com.android.launcher3.AppWidgetResizeFrame; -import com.android.launcher3.BaseContainerView; import com.android.launcher3.CellLayout; import com.android.launcher3.InsettableFrameLayout; import com.android.launcher3.ItemInfo; @@ -56,7 +55,6 @@ import com.android.launcher3.ShortcutAndWidgetContainer; import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.accessibility.LauncherAccessibilityDelegate; -import com.android.launcher3.allapps.AllAppsContainerView; import com.android.launcher3.allapps.AllAppsTransitionController; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.folder.Folder; @@ -468,7 +466,7 @@ public class DragLayer extends InsettableFrameLayout { */ public float getDescendantCoordRelativeToSelf(View descendant, int[] coord, boolean includeRootScroll) { - return Utilities.getDescendantCoordRelativeToParent(descendant, this, + return Utilities.getDescendantCoordRelativeToAncestor(descendant, this, coord, includeRootScroll); } |