Merge "Added functions to pass launcher widget span info to preview" into tm-qpr-dev
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
index dc5c22d..48fde8f 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt
@@ -22,6 +22,7 @@
import android.view.InsetsState
import android.view.WindowManager
import android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD
+import android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION
import com.android.launcher3.AbstractFloatingView
import com.android.launcher3.AbstractFloatingView.TYPE_TASKBAR_ALL_APPS
import com.android.launcher3.DeviceProfile
@@ -88,11 +89,17 @@
}
}
- var imeInsetsSize = Insets.of(0, 0, 0, taskbarHeightForIme)
- var insetsSizeOverride = arrayOf(
+ val imeInsetsSize = Insets.of(0, 0, 0, taskbarHeightForIme)
+ // Use 0 insets for the VoiceInteractionWindow (assistant) when gesture nav is enabled.
+ val visInsetsSize = Insets.of(0, 0, 0, if (context.isGestureNav) 0 else tappableHeight)
+ val insetsSizeOverride = arrayOf(
InsetsFrameProvider.InsetsSizeOverride(
TYPE_INPUT_METHOD,
imeInsetsSize
+ ),
+ InsetsFrameProvider.InsetsSizeOverride(
+ TYPE_VOICE_INTERACTION,
+ visInsetsSize
)
)
for (provider in windowLayoutParams.providedInsets) {
@@ -153,7 +160,8 @@
+ " insetsSize=" + provider.insetsSize)
if (provider.insetsSizeOverrides != null) {
pw.print(" insetsSizeOverrides={")
- for (overrideSize in provider.insetsSizeOverrides) {
+ for ((i, overrideSize) in provider.insetsSizeOverrides.withIndex()) {
+ if (i > 0) pw.print(", ")
pw.print(overrideSize)
}
pw.print("})")
diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java
index 4b4a017..fbb0a57 100644
--- a/src/com/android/launcher3/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher3/AppWidgetResizeFrame.java
@@ -24,6 +24,7 @@
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -68,22 +69,6 @@
private final View[] mDragHandles = new View[HANDLE_COUNT];
private final List<Rect> mSystemGestureExclusionRects = new ArrayList<>(HANDLE_COUNT);
- private final OnAttachStateChangeListener mWidgetViewAttachStateChangeListener =
- new OnAttachStateChangeListener() {
- @Override
- public void onViewAttachedToWindow(View view) {
- // Do nothing
- }
-
- @Override
- public void onViewDetachedFromWindow(View view) {
- // When the app widget view is detached, we should close the resize frame.
- // An example is when the dragging starts, the widget view is detached from
- // CellLayout and then reattached to DragLayout.
- close(false);
- }
- };
-
private LauncherAppWidgetHostView mWidgetView;
private CellLayout mCellLayout;
@@ -221,11 +206,7 @@
private void setupForWidget(LauncherAppWidgetHostView widgetView, CellLayout cellLayout,
DragLayer dragLayer) {
mCellLayout = cellLayout;
- if (mWidgetView != null) {
- mWidgetView.removeOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
- }
mWidgetView = widgetView;
- mWidgetView.addOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
LauncherAppWidgetProviderInfo info = (LauncherAppWidgetProviderInfo)
widgetView.getAppWidgetInfo();
mDragLayer = dragLayer;
@@ -423,6 +404,10 @@
* Based on the current deltas, we determine if and how to resize the widget.
*/
private void resizeWidgetIfNeeded(boolean onDismiss) {
+ ViewGroup.LayoutParams wlp = mWidgetView.getLayoutParams();
+ if (!(wlp instanceof CellLayout.LayoutParams)) {
+ return;
+ }
DeviceProfile dp = mLauncher.getDeviceProfile();
float xThreshold = mCellLayout.getCellWidth() + dp.cellLayoutBorderSpacePx.x;
float yThreshold = mCellLayout.getCellHeight() + dp.cellLayoutBorderSpacePx.y;
@@ -435,7 +420,7 @@
mDirectionVector[0] = 0;
mDirectionVector[1] = 0;
- CellLayout.LayoutParams lp = (CellLayout.LayoutParams) mWidgetView.getLayoutParams();
+ CellLayout.LayoutParams lp = (CellLayout.LayoutParams) wlp;
int spanX = lp.cellHSpan;
int spanY = lp.cellVSpan;
@@ -687,9 +672,6 @@
@Override
protected void handleClose(boolean animate) {
mDragLayer.removeView(this);
- if (mWidgetView != null) {
- mWidgetView.removeOnAttachStateChangeListener(mWidgetViewAttachStateChangeListener);
- }
}
private void updateInvalidResizeEffect(CellLayout cellLayout, CellLayout pairedCellLayout,