Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f14285d authored by Sebastián Franco's avatar Sebastián Franco Committed by Android (Google) Code Review
Browse files

Merge "Moving bindSmartspaceWidget to ModelCallbacks" into main

parents 1459fd83 50b74c34
Loading
Loading
Loading
Loading
+2 −28
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_FOLDER;
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_T
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;
@@ -2861,32 +2860,7 @@ public class Launcher extends StatefulActivity<LauncherState>

    @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
+31 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ import com.android.launcher3.util.IntArray as LIntArray
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 @@ class ModelCallbacks(private var launcher: Launcher) : BgDataModel.Callbacks {
        }
        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
        )
    }
}