Moving bindSmartspaceWidget to ModelCallbacks
Changes are part of go/launcher_SoR .
Flag: NA
Bug: 301108526
Test: This is a no-op change, compiling should be the test
Change-Id: I960cb767e3c4db4a952e019ee489ec1611e2dbd2
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index dd03035..776f766 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -27,7 +27,6 @@
import static com.android.launcher3.AbstractFloatingView.TYPE_ICON_SURFACE;
import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE;
import static com.android.launcher3.AbstractFloatingView.getTopOpenViewWithType;
-import static com.android.launcher3.BuildConfig.APPLICATION_ID;
import static com.android.launcher3.BuildConfig.QSB_ON_FIRST_SCREEN;
import static com.android.launcher3.LauncherAnimUtils.HOTSEAT_SCALE_PROPERTY_FACTORY;
import static com.android.launcher3.LauncherAnimUtils.SCALE_INDEX_WIDGET_TRANSITION;
@@ -49,8 +48,8 @@
import static com.android.launcher3.LauncherConstants.TraceEvents.COLD_STARTUP_TRACE_METHOD_NAME;
import static com.android.launcher3.LauncherConstants.TraceEvents.DISPLAY_ALL_APPS_TRACE_COOKIE;
import static com.android.launcher3.LauncherConstants.TraceEvents.DISPLAY_ALL_APPS_TRACE_METHOD_NAME;
-import static com.android.launcher3.LauncherConstants.TraceEvents.DISPLAY_WORKSPACE_TRACE_METHOD_NAME;
import static com.android.launcher3.LauncherConstants.TraceEvents.DISPLAY_WORKSPACE_TRACE_COOKIE;
+import static com.android.launcher3.LauncherConstants.TraceEvents.DISPLAY_WORKSPACE_TRACE_METHOD_NAME;
import static com.android.launcher3.LauncherConstants.TraceEvents.ON_CREATE_EVT;
import static com.android.launcher3.LauncherConstants.TraceEvents.ON_NEW_INTENT_EVT;
import static com.android.launcher3.LauncherConstants.TraceEvents.ON_RESUME_EVT;
@@ -2845,32 +2844,7 @@
@Override
public void bindSmartspaceWidget() {
- CellLayout cl = mWorkspace.getScreenWithId(FIRST_SCREEN_ID);
- int spanX = InvariantDeviceProfile.INSTANCE.get(this).numSearchContainerColumns;
- if (cl != null) {
- for (int col = 0; col < spanX; col++) {
- if (cl.isOccupied(col, 0)) {
- return;
- }
- }
- } else {
- return;
- }
-
- WidgetsListBaseEntry widgetsListBaseEntry = getPopupDataProvider()
- .getAllWidgets().stream().filter(
- item -> item.mPkgItem.packageName.equals(
- APPLICATION_ID))
- .findFirst()
- .orElse(null);
- if (widgetsListBaseEntry != null) {
- LauncherAppWidgetProviderInfo launcherAppWidgetProviderInfo =
- widgetsListBaseEntry.mWidgets.get(0).widgetInfo;
- PendingAddWidgetInfo info = new PendingAddWidgetInfo(launcherAppWidgetProviderInfo,
- CONTAINER_DESKTOP);
- addPendingItem(info, info.container, FIRST_SCREEN_ID, new int[]{0, 0}, info.spanX,
- info.spanY);
- }
+ mModelCallbacks.bindSmartspaceWidget();
}
@Override
diff --git a/src/com/android/launcher3/ModelCallbacks.kt b/src/com/android/launcher3/ModelCallbacks.kt
index 8304e96..2c3e74d 100644
--- a/src/com/android/launcher3/ModelCallbacks.kt
+++ b/src/com/android/launcher3/ModelCallbacks.kt
@@ -12,6 +12,7 @@
import com.android.launcher3.util.IntSet as LIntSet
import com.android.launcher3.util.PackageUserKey
import com.android.launcher3.util.Preconditions
+import com.android.launcher3.widget.PendingAddWidgetInfo
import com.android.launcher3.widget.model.WidgetsListBaseEntry
import java.util.function.Predicate
@@ -135,4 +136,34 @@
}
return result
}
+
+ override fun bindSmartspaceWidget() {
+ val cl: CellLayout? =
+ launcher.workspace.getScreenWithId(WorkspaceLayoutManager.FIRST_SCREEN_ID)
+ val spanX = InvariantDeviceProfile.INSTANCE.get(launcher).numSearchContainerColumns
+
+ if (cl?.isRegionVacant(0, 0, spanX, 1) != true) {
+ return
+ }
+
+ val widgetsListBaseEntry: WidgetsListBaseEntry =
+ launcher.popupDataProvider.allWidgets.firstOrNull { item: WidgetsListBaseEntry ->
+ item.mPkgItem.packageName == BuildConfig.APPLICATION_ID
+ }
+ ?: return
+
+ val info =
+ PendingAddWidgetInfo(
+ widgetsListBaseEntry.mWidgets[0].widgetInfo,
+ LauncherSettings.Favorites.CONTAINER_DESKTOP
+ )
+ launcher.addPendingItem(
+ info,
+ info.container,
+ WorkspaceLayoutManager.FIRST_SCREEN_ID,
+ intArrayOf(0, 0),
+ info.spanX,
+ info.spanY
+ )
+ }
}