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

Commit a61f381c authored by Dave Mankoff's avatar Dave Mankoff
Browse files

4/N Remove ActivityStarter from QSFooterImpl.

This removes the last dependency injection into the QSFooterImpl view.

Bug: 168904199
Test: manual && atest SystemUITests
Change-Id: I1b6d811d2d21d1df99687671ad3bc6331ce3eef3
parent 2a89fa33
Loading
Loading
Loading
Loading
+3 −24
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@ package com.android.systemui.qs;

import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;

import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;

import android.content.Context;
import android.content.res.Configuration;
import android.database.ContentObserver;
@@ -46,20 +44,14 @@ import androidx.annotation.VisibleForTesting;
import com.android.settingslib.Utils;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.R.dimen;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.qs.TouchAnimator.Builder;
import com.android.systemui.statusbar.phone.MultiUserSwitch;
import com.android.systemui.statusbar.phone.SettingsButton;

import javax.inject.Inject;
import javax.inject.Named;

/** */
public class QSFooterImpl extends FrameLayout {
    private final ActivityStarter mActivityStarter;
    private SettingsButton mSettingsButton;
    protected View mSettingsContainer;
    private PageIndicator mPageIndicator;
@@ -67,7 +59,6 @@ public class QSFooterImpl extends FrameLayout {
    private boolean mShouldShowBuildText;

    private boolean mQsDisabled;
    private QSPanel mQsPanel;
    private QuickQSPanel mQuickQsPanel;

    private boolean mExpanded;
@@ -97,25 +88,14 @@ public class QSFooterImpl extends FrameLayout {
        }
    };

    @Inject
    public QSFooterImpl(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
            ActivityStarter activityStarter) {
        super(context, attrs);
        mActivityStarter = activityStarter;
    }

    @VisibleForTesting
    public QSFooterImpl(Context context, AttributeSet attrs) {
        this(context, attrs, Dependency.get(ActivityStarter.class));
        super(context, attrs);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mEdit = findViewById(android.R.id.edit);
        mEdit.setOnClickListener(view ->
                mActivityStarter.postQSRunnableDismissingKeyguard(() ->
                        mQsPanel.showEdit(view)));

        mPageIndicator = findViewById(R.id.footer_page_indicator);

@@ -308,10 +288,9 @@ public class QSFooterImpl extends FrameLayout {
    }

    public void setQSPanel(final QSPanel qsPanel) {
        mQsPanel = qsPanel;
        if (mQsPanel != null) {
        if (qsPanel != null) {
            mMultiUserSwitch.setQsPanel(qsPanel);
            mQsPanel.setFooterPageIndicator(mPageIndicator);
            qsPanel.setFooterPageIndicator(mPageIndicator);
        }
    }

+15 −3
Original line number Diff line number Diff line
@@ -54,10 +54,12 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
    private final ActivityStarter mActivityStarter;
    private final DeviceProvisionedController mDeviceProvisionedController;
    private final UserTracker mUserTracker;
    private final QSPanelController mQsPanelController;
    private final TunerService mTunerService;
    private final MetricsLogger mMetricsLogger;
    private final SettingsButton mSettingsButton;
    private final TextView mBuildText;
    private final View mEdit;

    private final UserInfoController.OnUserInfoChangedListener mOnUserInfoChangedListener =
            new UserInfoController.OnUserInfoChangedListener() {
@@ -117,18 +119,21 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
    QSFooterImplController(QSFooterImpl view, UserManager userManager,
            UserInfoController userInfoController, ActivityStarter activityStarter,
            DeviceProvisionedController deviceProvisionedController, UserTracker userTracker,
            TunerService tunerService, MetricsLogger metricsLogger) {
            QSPanelController qsPanelController, TunerService tunerService,
            MetricsLogger metricsLogger) {
        super(view);
        mUserManager = userManager;
        mUserInfoController = userInfoController;
        mActivityStarter = activityStarter;
        mDeviceProvisionedController = deviceProvisionedController;
        mUserTracker = userTracker;
        mQsPanelController = qsPanelController;
        mTunerService = tunerService;
        mMetricsLogger = metricsLogger;

        mSettingsButton = mView.findViewById(R.id.settings_button);
        mBuildText = mView.findViewById(R.id.build);
        mEdit = mView.findViewById(android.R.id.edit);
    }


@@ -149,6 +154,10 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
            return false;
        });

        mEdit.setOnClickListener(view ->
                mActivityStarter.postQSRunnableDismissingKeyguard(() ->
                        mQsPanelController.showEdit(view)));

        mView.updateEverything(isTunerEnabled());
    }

@@ -242,6 +251,7 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
        private final ActivityStarter mActivityStarter;
        private final DeviceProvisionedController mDeviceProvisionedController;
        private final UserTracker mUserTracker;
        private final QSPanelController mQsPanelController;
        private final TunerService mTunerService;
        private final MetricsLogger mMetricsLogger;

@@ -249,12 +259,14 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
        Factory(UserManager userManager, UserInfoController userInfoController,
                ActivityStarter activityStarter,
                DeviceProvisionedController deviceProvisionedController, UserTracker userTracker,
                TunerService tunerService, MetricsLogger metricsLogger) {
                QSPanelController qsPanelController, TunerService tunerService,
                MetricsLogger metricsLogger) {
            mUserManager = userManager;
            mUserInfoController = userInfoController;
            mActivityStarter = activityStarter;
            mDeviceProvisionedController = deviceProvisionedController;
            mUserTracker = userTracker;
            mQsPanelController = qsPanelController;
            mTunerService = tunerService;
            mMetricsLogger = metricsLogger;
        }
@@ -262,7 +274,7 @@ public class QSFooterImplController extends ViewController<QSFooterImpl> impleme
        QSFooterImplController create(QSFooterImpl view) {
            QSFooterImplController controller = new QSFooterImplController(view, mUserManager,
                    mUserInfoController, mActivityStarter, mDeviceProvisionedController,
                    mUserTracker, mTunerService, mMetricsLogger);
                    mUserTracker, mQsPanelController, mTunerService, mMetricsLogger);
            controller.init();
            return controller;
        }
+6 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;

import android.annotation.NonNull;
import android.content.res.Configuration;
import android.view.View;
import android.view.ViewGroup;

import com.android.internal.logging.MetricsLogger;
@@ -192,4 +193,9 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        super.refreshAllTiles();
        mQsSecurityFooter.refreshState();
    }

    /** Start customizing the Quick Settings. */
    public void showEdit(View view) {
        mView.showEdit(view);
    }
}
+0 −6
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.view.LayoutInflater;
import android.view.View;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.qs.QSFooterImpl;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.qs.QuickQSPanel;
import com.android.systemui.qs.customize.QSCustomizer;
@@ -91,11 +90,6 @@ public class InjectionInflationController {
                    @BindsInstance AttributeSet attributeSet);
        }

        /**
         * Creates the QSFooterImpl.
         */
        QSFooterImpl createQsFooter();

        /**
         * Creates the NotificationStackScrollLayout.
         */
+7 −2
Original line number Diff line number Diff line
@@ -72,6 +72,8 @@ public class QSFooterImplControllerTest extends LeakCheckedTest {
    @Mock
    private UserTracker mUserTracker;
    @Mock
    private QSPanelController mQSPanelController;
    @Mock
    private ClipboardManager mClipboardManager;
    private FakeTunerService mFakeTunerService;
    private MetricsLogger mMetricsLogger = new FakeMetricsLogger();
@@ -80,6 +82,8 @@ public class QSFooterImplControllerTest extends LeakCheckedTest {
    private SettingsButton mSettingsButton;
    @Mock
    private TextView mBuildText;
    @Mock
    private View mEdit;

    private QSFooterImplController mController;

@@ -100,10 +104,11 @@ public class QSFooterImplControllerTest extends LeakCheckedTest {
        when(mView.isAttachedToWindow()).thenReturn(true);
        when(mView.findViewById(R.id.settings_button)).thenReturn(mSettingsButton);
        when(mView.findViewById(R.id.build)).thenReturn(mBuildText);
        when(mView.findViewById(android.R.id.edit)).thenReturn(mEdit);

        mController = new QSFooterImplController(mView, mUserManager, mUserInfoController,
                mActivityStarter, mDeviceProvisionedController, mUserTracker, mFakeTunerService,
                mMetricsLogger);
                mActivityStarter, mDeviceProvisionedController, mUserTracker, mQSPanelController,
                mFakeTunerService, mMetricsLogger);

        mController.init();
    }