Align hotseat drop target with the adjusted hotseat
Added logic to adjust the drop target to account for changes in the
hotseat position when accommodating the bubble bar.
Fixes: 382348730
Test: all tests in package src.com.android.launcher3.celllayout
Test: Manual. Ensure bubbles are present, and the hotseat width is
adjusted. Long-press any icon in the hotseat, begin dragging it over
other hotseat icons, and observe that the drop target is drawn
appropriately.
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ice961f40ace03077ab8c9312a93eda1a16d7da34
diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java
index b20d8a5..1c18179 100644
--- a/src/com/android/launcher3/Hotseat.java
+++ b/src/com/android/launcher3/Hotseat.java
@@ -36,6 +36,7 @@
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
+import com.android.launcher3.ShortcutAndWidgetContainer.TranslationProvider;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
import com.android.launcher3.util.HorizontalInsettableView;
import com.android.launcher3.util.MultiPropertyFactory;
@@ -233,6 +234,13 @@
}
@Override
+ protected int getTranslationXForCell(int cellX, int cellY) {
+ TranslationProvider translationProvider = getShortcutsAndWidgets().getTranslationProvider();
+ if (translationProvider == null) return 0;
+ return (int) translationProvider.getTranslationX(cellX);
+ }
+
+ @Override
public void setInsets(Rect insets) {
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams();
DeviceProfile grid = mActivity.getDeviceProfile();