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

Commit 00d4e050 authored by Shamali P's avatar Shamali P
Browse files

Move widget related listeners to widget picker data provider

The change listener on popup provider was for listening to widget
updates. With the widget now updated in widgets picker data provider,
 this moves over the listeners to it.

Test: Existing tests
Flag: EXEMPT minor refactoring
Bug: 353347512
Change-Id: I163529d207ea65044f8e3d6e77e87e0e674b82be
parent 74d9fbd6
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ import android.content.Context;
import android.view.View;

import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider.WidgetPickerDataChangeListener;

/**
 * Utility class to handle updates while the popup is visible (like widgets and
@@ -27,7 +29,7 @@ import com.android.launcher3.views.ActivityContext;
 * @param <T> The activity on which the popup shows
 */
public abstract class PopupLiveUpdateHandler<T extends Context & ActivityContext> implements
        PopupDataProvider.PopupDataChangeListener, View.OnAttachStateChangeListener {
        WidgetPickerDataChangeListener, View.OnAttachStateChangeListener {

    protected final T mContext;
    protected final PopupContainerWithArrow<T> mPopupContainerWithArrow;
@@ -40,19 +42,25 @@ public abstract class PopupLiveUpdateHandler<T extends Context & ActivityContext

    @Override
    public void onViewAttachedToWindow(View view) {
        PopupDataProvider popupDataProvider = mContext.getPopupDataProvider();
        WidgetPickerDataProvider widgetsDataProvider = mContext.getWidgetPickerDataProvider();

        if (popupDataProvider != null) {
            popupDataProvider.setChangeListener(this);
        if (widgetsDataProvider != null) {
            widgetsDataProvider.setChangeListener(this);
        }
    }

    @Override
    public void onViewDetachedFromWindow(View view) {
        PopupDataProvider popupDataProvider = mContext.getPopupDataProvider();
        WidgetPickerDataProvider widgetsDataProvider = mContext.getWidgetPickerDataProvider();

        if (popupDataProvider != null) {
            popupDataProvider.setChangeListener(null);
        if (widgetsDataProvider != null) {
            widgetsDataProvider.setChangeListener(null);
        }
    }

    @Override
    public void onWidgetsBound() {} // NO_OP

    @Override
    public void onRecommendedWidgetsBound() {} // NO_OP
}
+4 −4
Original line number Diff line number Diff line
@@ -45,13 +45,13 @@ import com.android.launcher3.Launcher;
import com.android.launcher3.PendingAddItemInfo;
import com.android.launcher3.R;
import com.android.launcher3.model.WidgetItem;
import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.testing.TestLogging;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.launcher3.util.SystemUiController;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.window.WindowManagerProxy;
import com.android.launcher3.views.AbstractSlideInView;
import com.android.launcher3.widget.picker.model.WidgetPickerDataProvider.WidgetPickerDataChangeListener;

import java.util.concurrent.atomic.AtomicBoolean;

@@ -60,7 +60,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 */
public abstract class BaseWidgetSheet extends AbstractSlideInView<BaseActivity>
        implements OnClickListener, OnLongClickListener,
        PopupDataProvider.PopupDataChangeListener, Insettable, OnDeviceProfileChangeListener {
        WidgetPickerDataChangeListener, Insettable, OnDeviceProfileChangeListener {
    /** The default number of cells that can fit horizontally in a widget sheet. */
    public static final int DEFAULT_MAX_HORIZONTAL_SPANS = 4;

@@ -106,14 +106,14 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<BaseActivity>
        WindowInsets windowInsets = WindowManagerProxy.INSTANCE.get(getContext())
                .normalizeWindowInsets(getContext(), getRootWindowInsets(), new Rect());
        mNavBarScrimHeight = getNavBarScrimHeight(windowInsets);
        mActivityContext.getPopupDataProvider().setChangeListener(this);
        mActivityContext.getWidgetPickerDataProvider().setChangeListener(this);
        mActivityContext.addOnDeviceProfileChangeListener(this);
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mActivityContext.getPopupDataProvider().setChangeListener(null);
        mActivityContext.getWidgetPickerDataProvider().setChangeListener(null);
        mActivityContext.removeOnDeviceProfileChangeListener(this);
    }

+3 −0
Original line number Diff line number Diff line
@@ -247,4 +247,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
            }
        }
    }

    @Override
    public void onRecommendedWidgetsBound() {} // no op
}