Merge "Delete the filter code as it will be provided differently in refactor" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
f216f3d2ce
@@ -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);
|
||||
|
||||
@@ -545,7 +545,7 @@ public class Launcher extends StatefulActivity<LauncherState>
|
||||
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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<WidgetItem>? = null
|
||||
|
||||
/**
|
||||
* Filter that should be applied to the widgets list to see which widgets can be shown by
|
||||
* default.
|
||||
*/
|
||||
open val defaultWidgetsFilter: Predicate<WidgetItem>? = null
|
||||
|
||||
protected val listeners = mutableListOf<WidgetsFilterLoadedCallback>()
|
||||
|
||||
/** 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()
|
||||
}
|
||||
}
|
||||
@@ -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<WidgetsListBaseEntry>) {
|
||||
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 {
|
||||
|
||||
+1
-2
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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<Any>(0) as CachedObject
|
||||
componentWithLabel.getComponent().shortClassName
|
||||
|
||||
Reference in New Issue
Block a user