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

Commit 74d9fbd6 authored by Shamali P's avatar Shamali P
Browse files

Define widget picker data provider separate from popup provider

Separate provider in ActivityContext and relevant implementations that
open widget picker

Bug: 353347512
Flag: EXEMPT BUGFIX
Test: Unit test
Change-Id: I55df3d9ce6ae9b7d0a310a8686b188618d229065
parent 9e7d288f
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -266,6 +266,7 @@ import com.android.launcher3.widget.WidgetManagerHelper;
import com.android.launcher3.widget.custom.CustomWidgetManager;
import com.android.launcher3.widget.model.WidgetsListBaseEntry;
import com.android.launcher3.widget.picker.WidgetsFullSheet;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider;
import com.android.launcher3.widget.util.WidgetSizes;
import com.android.systemui.plugins.LauncherOverlayPlugin;
import com.android.systemui.plugins.PluginListener;
@@ -371,6 +372,7 @@ public class Launcher extends StatefulActivity<LauncherState>
    private LauncherAccessibilityDelegate mAccessibilityDelegate;

    private PopupDataProvider mPopupDataProvider;
    private WidgetPickerDataProvider mWidgetPickerDataProvider;

    // We only want to get the SharedPreferences once since it does an FS stat each time we get
    // it from the context.
@@ -532,6 +534,7 @@ public class Launcher extends StatefulActivity<LauncherState>
                mFocusHandler, new CellLayout(mWorkspace.getContext(), mWorkspace));

        mPopupDataProvider = new PopupDataProvider(this::updateNotificationDots);
        mWidgetPickerDataProvider = new WidgetPickerDataProvider();

        boolean internalStateHandled = ACTIVITY_TRACKER.handleCreate(this);
        if (internalStateHandled) {
@@ -2702,6 +2705,7 @@ public class Launcher extends StatefulActivity<LauncherState>
        mDragLayer.dump(prefix, writer);
        mStateManager.dump(prefix, writer);
        mPopupDataProvider.dump(prefix, writer);
        mWidgetPickerDataProvider.dump(prefix, writer);
        mDeviceProfile.dump(this, prefix, writer);
        mAppsView.getAppsStore().dump(prefix, writer);

@@ -3011,6 +3015,12 @@ public class Launcher extends StatefulActivity<LauncherState>
        return mPopupDataProvider;
    }

    @NonNull
    @Override
    public WidgetPickerDataProvider getWidgetPickerDataProvider() {
        return mWidgetPickerDataProvider;
    }

    @Override
    public DotInfo getDotInfoForItem(ItemInfo info) {
        return mPopupDataProvider.getDotInfoForItem(info);
+7 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.BaseDragLayer;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider;

import java.util.HashMap;
import java.util.Map;
@@ -76,6 +77,7 @@ public class SecondaryDisplayLauncher extends BaseDraggingActivity
    private View mAppsButton;

    private PopupDataProvider mPopupDataProvider;
    private WidgetPickerDataProvider mWidgetPickerDataProvider;

    private boolean mAppDrawerShown = false;

@@ -314,6 +316,11 @@ public class SecondaryDisplayLauncher extends BaseDraggingActivity
        return mPopupDataProvider;
    }

    @Override
    public WidgetPickerDataProvider getWidgetPickerDataProvider() {
        return mWidgetPickerDataProvider;
    }

    @Override
    public OnClickListener getItemOnClickListener() {
        return this::onIconClicked;
+9 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.RunnableList;
import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.launcher3.util.ViewCache;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider;

import java.util.List;

@@ -266,6 +267,14 @@ public interface ActivityContext {
        return null;
    }

    /**
     * Returns the {@link WidgetPickerDataProvider} that can be used to read widgets for display.
     */
    @Nullable
    default WidgetPickerDataProvider getWidgetPickerDataProvider() {
        return null;
    }

    @Nullable
    default StringCache getStringCache() {
        return null;
+10 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.launcher3.model.BgDataModel;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.pm.UserCache;
import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider;

import java.util.Map;
import java.util.concurrent.CountDownLatch;
@@ -57,6 +58,8 @@ public class TestSandboxModelContextWrapper extends ActivityContextWrapper imple
    protected ActivityAllAppsContainerView<ActivityContextWrapper> mAppsView;

    private final PopupDataProvider mPopupDataProvider = new PopupDataProvider(i -> {});
    private final WidgetPickerDataProvider mWidgetPickerDataProvider =
            new WidgetPickerDataProvider();
    protected final UserCache mUserCache;

    public TestSandboxModelContextWrapper(SandboxContext base) {
@@ -76,12 +79,19 @@ public class TestSandboxModelContextWrapper extends ActivityContextWrapper imple
        mAppsList = mAppsView.getPersonalAppList();
        mAllAppsStore = mAppsView.getAppsStore();
    }

    @Nullable
    @Override
    public PopupDataProvider getPopupDataProvider() {
        return mPopupDataProvider;
    }

    @Nullable
    @Override
    public WidgetPickerDataProvider getWidgetPickerDataProvider() {
        return mWidgetPickerDataProvider;
    }

    @Override
    public ActivityAllAppsContainerView<ActivityContextWrapper> getAppsView() {
        return mAppsView;