diff --git a/quickstep/src/com/android/launcher3/WidgetPickerActivity.java b/quickstep/src/com/android/launcher3/WidgetPickerActivity.java index cdae9caa5c..d8d43f1f51 100644 --- a/quickstep/src/com/android/launcher3/WidgetPickerActivity.java +++ b/quickstep/src/com/android/launcher3/WidgetPickerActivity.java @@ -167,7 +167,7 @@ public class WidgetPickerActivity extends BaseActivity implements InvariantDeviceProfile idp = mApp.getInvariantDeviceProfile(); mDeviceProfile = idp.getDeviceProfile(this); mModel = new WidgetsModel(mApp.getContext()); - mWidgetPickerDataProvider = new WidgetPickerDataProvider(this); + mWidgetPickerDataProvider = new WidgetPickerDataProvider(); setContentView(R.layout.widget_picker_activity); mDragLayer = findViewById(R.id.drag_layer); diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index f5e70dffb4..f05b76cb70 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -545,7 +545,7 @@ public class Launcher extends StatefulActivity mFocusHandler, new CellLayout(mWorkspace.getContext(), mWorkspace)); mPopupDataProvider = new PopupDataProvider(this); - mWidgetPickerDataProvider = new WidgetPickerDataProvider(this); + mWidgetPickerDataProvider = new WidgetPickerDataProvider(); PillColorProvider.getInstance(mWorkspace.getContext()).registerObserver(); boolean internalStateHandled = ACTIVITY_TRACKER.handleCreate(this); diff --git a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java index c95c376290..0974403e0d 100644 --- a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java +++ b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java @@ -29,7 +29,6 @@ import com.android.launcher3.graphics.ThemeManager; import com.android.launcher3.icons.LauncherIcons.IconPool; import com.android.launcher3.model.ItemInstallQueue; import com.android.launcher3.model.LoaderCursor.LoaderCursorFactory; -import com.android.launcher3.model.WidgetsFilterDataProvider; import com.android.launcher3.pm.InstallSessionHelper; import com.android.launcher3.pm.UserCache; import com.android.launcher3.util.ApiWrapper; @@ -87,7 +86,6 @@ public interface LauncherBaseAppComponent { RemoveAnimationSettingsTracker getRemoveAnimationSettingsTracker(); LauncherAppState getLauncherAppState(); GridCustomizationsProxy getGridCustomizationsProxy(); - WidgetsFilterDataProvider getWidgetsFilterDataProvider(); LoaderCursorFactory getLoaderCursorFactory(); WidgetHolderFactory getWidgetHolderFactory(); diff --git a/src/com/android/launcher3/model/WidgetsFilterDataProvider.kt b/src/com/android/launcher3/model/WidgetsFilterDataProvider.kt deleted file mode 100644 index 90d6fb2594..0000000000 --- a/src/com/android/launcher3/model/WidgetsFilterDataProvider.kt +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.launcher3.model - -import com.android.launcher3.dagger.LauncherAppSingleton -import java.util.function.Predicate -import javax.inject.Inject - -/** Helper for the widgets model to load the filters that can be applied to available widgets. */ -@LauncherAppSingleton -open class WidgetsFilterDataProvider @Inject constructor() { - - /** Filter that should be applied to the widget predictions */ - open val predictedWidgetsFilter: Predicate? = null - - /** - * Filter that should be applied to the widgets list to see which widgets can be shown by - * default. - */ - open val defaultWidgetsFilter: Predicate? = null - - protected val listeners = mutableListOf() - - /** Adds a callback for listening to filter changes */ - fun addFilterChangeCallback(callback: WidgetsFilterLoadedCallback) { - listeners.add(callback) - } - - /** Removes a previously added callback */ - fun removeFilterChangeCallback(callback: WidgetsFilterLoadedCallback) { - listeners.remove(callback) - } - - /** Interface for the model callback to be invoked when filters are loaded. */ - interface WidgetsFilterLoadedCallback { - /** Method called back when widget filters are loaded */ - fun onWidgetsFilterLoaded() - } -} diff --git a/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProvider.kt b/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProvider.kt index 5b97a49536..16bbfd6197 100644 --- a/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProvider.kt +++ b/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProvider.kt @@ -16,11 +16,7 @@ package com.android.launcher3.widget.picker.model -import android.content.Context -import com.android.launcher3.dagger.LauncherComponentProvider.appComponent import com.android.launcher3.model.WidgetItem -import com.android.launcher3.model.WidgetsFilterDataProvider -import com.android.launcher3.model.WidgetsFilterDataProvider.WidgetsFilterLoadedCallback import com.android.launcher3.model.data.ItemInfo import com.android.launcher3.widget.model.WidgetsListBaseEntry import com.android.launcher3.widget.picker.model.data.WidgetPickerData @@ -33,11 +29,7 @@ import java.util.function.Predicate * Provides [WidgetPickerData] to various views such as widget picker, app-specific widget picker, * widgets shortcut. */ -class WidgetPickerDataProvider(private val filterProvider: WidgetsFilterDataProvider) : - WidgetsFilterLoadedCallback { - - constructor(context: Context) : this(context.appComponent.widgetsFilterDataProvider) - +class WidgetPickerDataProvider { /** All the widgets data provided for the views */ private var mWidgetPickerData: WidgetPickerData = WidgetPickerData() @@ -52,19 +44,11 @@ class WidgetPickerDataProvider(private val filterProvider: WidgetsFilterDataProv this.changeListener = changeListener } - init { - filterProvider.addFilterChangeCallback(this) - } - /** Returns the current snapshot of [WidgetPickerData]. */ fun get(): WidgetPickerData { return mWidgetPickerData } - override fun onWidgetsFilterLoaded() { - setWidgets(allWidgets) - } - /** * Updates the widgets available to the widget picker. * @@ -73,19 +57,11 @@ class WidgetPickerDataProvider(private val filterProvider: WidgetsFilterDataProv fun setWidgets(allWidgets: List) { this.allWidgets = allWidgets - val currentFilter = filterProvider.defaultWidgetsFilter - val finalFilter = - when { - currentFilter != null && hostSpecifiedDefaultWidgetsFilter != null -> - currentFilter.and(hostSpecifiedDefaultWidgetsFilter) - hostSpecifiedDefaultWidgetsFilter != null -> hostSpecifiedDefaultWidgetsFilter - else -> currentFilter - } - + val defaultWidgetsFilter = hostSpecifiedDefaultWidgetsFilter val defaultWidgets = - if (finalFilter != null) + if (defaultWidgetsFilter != null) allWidgets - .map { it.copy().apply { mWidgets.removeIf(finalFilter) } } + .map { it.copy().apply { mWidgets.removeIf(defaultWidgetsFilter) } } .filter { it.mWidgets.isNotEmpty() } else emptyList() @@ -111,7 +87,7 @@ class WidgetPickerDataProvider(private val filterProvider: WidgetsFilterDataProv } fun destroy() { - filterProvider.removeFilterChangeCallback(this) + changeListener = null } interface WidgetPickerDataChangeListener { diff --git a/tests/multivalentTests/src/com/android/launcher3/util/TestSandboxModelContextWrapper.java b/tests/multivalentTests/src/com/android/launcher3/util/TestSandboxModelContextWrapper.java index acd17d1586..8be13412e9 100644 --- a/tests/multivalentTests/src/com/android/launcher3/util/TestSandboxModelContextWrapper.java +++ b/tests/multivalentTests/src/com/android/launcher3/util/TestSandboxModelContextWrapper.java @@ -28,7 +28,6 @@ import com.android.launcher3.allapps.ActivityAllAppsContainerView; import com.android.launcher3.allapps.AllAppsStore; import com.android.launcher3.allapps.AlphabeticalAppsList; import com.android.launcher3.model.BgDataModel; -import com.android.launcher3.model.WidgetsFilterDataProvider; import com.android.launcher3.model.data.AppInfo; import com.android.launcher3.pm.UserCache; import com.android.launcher3.popup.PopupDataProvider; @@ -59,7 +58,7 @@ public class TestSandboxModelContextWrapper extends ActivityContextWrapper imple private final PopupDataProvider mPopupDataProvider = new PopupDataProvider(this); private final WidgetPickerDataProvider mWidgetPickerDataProvider = - new WidgetPickerDataProvider(new WidgetsFilterDataProvider()); + new WidgetPickerDataProvider(); protected final UserCache mUserCache; public TestSandboxModelContextWrapper(SandboxContext base) { diff --git a/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProviderTest.kt b/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProviderTest.kt index c1827bc66d..766fb780be 100644 --- a/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProviderTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/widget/picker/model/WidgetPickerDataProviderTest.kt @@ -80,7 +80,7 @@ class WidgetPickerDataProviderTest { userHandle = UserHandle.CURRENT context = ActivityContextWrapper(ApplicationProvider.getApplicationContext()) testInvariantProfile = LauncherAppState.getIDP(context) - underTest = WidgetPickerDataProvider(context) + underTest = WidgetPickerDataProvider() doAnswer { invocation: InvocationOnMock -> val componentWithLabel = invocation.getArgument(0) as CachedObject componentWithLabel.getComponent().shortClassName