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

Commit f32d4487 authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge changes from topic "revert-13049182-PHNMBCENTE"

* changes:
  Replace #init with #onInit to prevent stackoverflow.
  Revert^2 "7/N Inject media hosts directly."
  Revert^2 "Stop injecting QSPanel everywhere."
parents 00813be0 a8dcc1b7
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@ package com.android.systemui.qs;

import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;

import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.res.Configuration;
@@ -50,6 +53,7 @@ import com.android.systemui.util.LifecycleFragment;
import com.android.systemui.util.Utils;

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

public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Callbacks,
        StatusBarStateController.StateListener {
@@ -82,6 +86,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    private final InjectionInflationController mInjectionInflater;
    private final CommandQueue mCommandQueue;
    private final QSDetailDisplayer mQsDetailDisplayer;
    private final MediaHost mQsMediaHost;
    private final MediaHost mQqsMediaHost;
    private final QSFragmentComponent.Factory mQsComponentFactory;
    private final QSTileHost mHost;
    private boolean mShowCollapsedOnKeyguard;
@@ -104,12 +110,15 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
            InjectionInflationController injectionInflater, QSTileHost qsTileHost,
            StatusBarStateController statusBarStateController, CommandQueue commandQueue,
            QSDetailDisplayer qsDetailDisplayer,
            QSDetailDisplayer qsDetailDisplayer, @Named(QS_PANEL) MediaHost qsMediaHost,
            @Named(QUICK_QS_PANEL) MediaHost qqsMediaHost,
            QSFragmentComponent.Factory qsComponentFactory) {
        mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler;
        mInjectionInflater = injectionInflater;
        mCommandQueue = commandQueue;
        mQsDetailDisplayer = qsDetailDisplayer;
        mQsMediaHost = qsMediaHost;
        mQqsMediaHost = qqsMediaHost;
        mQsComponentFactory = qsComponentFactory;
        commandQueue.observe(getLifecycle(), this);
        mHost = qsTileHost;
@@ -261,7 +270,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    }

    public void setHost(QSTileHost qsh) {
        mHeader.setQSPanel(mQSPanelController.getView());
        mQSDetail.setHost(qsh);
    }

@@ -455,11 +463,9 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
            float expandedMediaPosition = absoluteBottomPosition - mQSPanelScrollView.getScrollY()
                    + mQSPanelScrollView.getScrollRange();
            // The expanded media host should never move below the laid out position
            pinToBottom(
                    expandedMediaPosition, mQSPanelController.getMediaHost(), true /* expanded */);
            pinToBottom(expandedMediaPosition, mQsMediaHost, true /* expanded */);
            // The expanded media host should never move above the laid out position
            pinToBottom(absoluteBottomPosition, mHeader.getHeaderQsPanel().getMediaHost(),
                    false /* expanded */);
            pinToBottom(absoluteBottomPosition, mQqsMediaHost, false /* expanded */);
        }
    }

+1 −4
Original line number Diff line number Diff line
@@ -550,6 +550,7 @@ public class QSPanel extends LinearLayout implements Tunable {
        }
        boolean horizontal = shouldUseHorizontalLayout();
        ViewGroup host = mMediaHost.getHostView();

        ViewGroup newParent = horizontal ? mHorizontalLinearLayout : this;
        ViewGroup currentParent = (ViewGroup) host.getParent();
        if (currentParent != newParent) {
@@ -865,10 +866,6 @@ public class QSPanel extends LinearLayout implements Tunable {
        }
    }

    public MediaHost getMediaHost() {
        return mMediaHost;
    }

    /**
     * Set the header container of quick settings.
     */
+19 −7
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.qs;

import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.qs.QSPanel.QS_SHOW_BRIGHTNESS;

import android.annotation.NonNull;
@@ -40,6 +41,7 @@ import com.android.systemui.tuner.TunerService;
import java.util.function.Consumer;

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

/**
 * Controller for {@link QSPanel}.
@@ -49,6 +51,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    private final QSSecurityFooter mQsSecurityFooter;
    private final TunerService mTunerService;
    private final QSCustomizerController mQsCustomizerController;
    private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
    private final BrightnessController mBrightnessController;
    private final BrightnessSlider.Factory mBrightnessSliderFactory;
    private final BrightnessSlider mBrightnessSlider;
@@ -73,15 +76,17 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    @Inject
    QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
            QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
            @Named(QS_PANEL) MediaHost mediaHost,
            QSTileRevealController.Factory qsTileRevealControllerFactory,
            DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
            BrightnessController.Factory brightnessControllerFactory,
            BrightnessSlider.Factory brightnessSliderFactory) {
        super(view, qstileHost, qsCustomizerController, qsTileRevealControllerFactory,
                metricsLogger, uiEventLogger, dumpManager);
        super(view, qstileHost, qsCustomizerController, mediaHost, metricsLogger, uiEventLogger,
                dumpManager);
        mQsSecurityFooter = qsSecurityFooter;
        mTunerService = tunerService;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mQsSecurityFooter.setHostEnvironment(qstileHost);
        mBrightnessSliderFactory = brightnessSliderFactory;

@@ -93,6 +98,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {

    @Override
    public void onInit() {
        super.onInit();
        mQsCustomizerController.init();
        mBrightnessSlider.init();
    }
@@ -113,6 +119,12 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        }
    }

    @Override
    protected QSTileRevealController createTileRevealController() {
        return mQsTileRevealControllerFactory.create(
                this, (PagedTileLayout) mView.createRegularTileLayout());
    }

    @Override
    protected void onViewDetached() {
        mTunerService.removeTunable(mView);
@@ -158,11 +170,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
        }
    }

    /** */
    public MediaHost getMediaHost() {
        return mView.getMediaHost();
    }

    /** */
    public void setBrightnessMirror(BrightnessMirrorController brightnessMirrorController) {
        mBrightnessMirrorController = brightnessMirrorController;
@@ -280,5 +287,10 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
    public void setFooterPageIndicator(PageIndicator pageIndicator) {
        mView.setFooterPageIndicator(pageIndicator);
    }

    /** */
    public boolean isExpanded() {
        return mView.isExpanded();
    }
}
+11 −12
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        implements Dumpable{
    protected final QSTileHost mHost;
    private final QSCustomizerController mQsCustomizerController;
    private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
    private final MediaHost mMediaHost;
    private final MetricsLogger mMetricsLogger;
    private final UiEventLogger mUiEventLogger;
@@ -74,14 +73,12 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
            };

    protected QSPanelControllerBase(T view, QSTileHost host,
            QSCustomizerController qsCustomizerController,
            QSTileRevealController.Factory qsTileRevealControllerFactory,
            QSCustomizerController qsCustomizerController, MediaHost mediaHost,
            MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
        super(view);
        mHost = host;
        mQsCustomizerController = qsCustomizerController;
        mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
        mMediaHost = mView.getMediaHost();
        mMediaHost = mediaHost;
        mMetricsLogger = metricsLogger;
        mUiEventLogger = uiEventLogger;
        mDumpManager = dumpManager;
@@ -89,10 +86,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    @Override
    protected void onViewAttached() {
        QSPanel.QSTileLayout regularTileLayout = mView.createRegularTileLayout();
        if (regularTileLayout instanceof PagedTileLayout) {
            mQsTileRevealController = mQsTileRevealControllerFactory.create(
                    (PagedTileLayout) regularTileLayout);
        mQsTileRevealController = createTileRevealController();
        if (mQsTileRevealController != null) {
            mQsTileRevealController.setExpansion(mRevealExpansion);
        }

@@ -119,6 +114,10 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        mDumpManager.unregisterDumpable(mView.getDumpableTag());
    }

    protected QSTileRevealController createTileRevealController() {
        return null;
    }

    /** */
    public void setTiles() {
        setTiles(mHost.getTiles(), false);
@@ -126,9 +125,11 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    /** */
    public void setTiles(Collection<QSTile> tiles, boolean collapsedView) {
        if (!collapsedView) {
        // TODO(b/168904199): move this logic into QSPanelController.
        if (!collapsedView && mQsTileRevealController != null) {
            mQsTileRevealController.updateRevealedTiles(tiles);
        }

        for (QSPanelControllerBase.TileRecord record : mRecords) {
            mView.removeTile(record);
            record.tile.removeCallback(record.callback);
@@ -192,7 +193,6 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
                .collect(Collectors.joining(","));
    }


    /** */
    public void setExpanded(boolean expanded) {
        mView.setExpanded(expanded);
@@ -234,7 +234,6 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
    boolean switchTileLayout(boolean force) {
        if (mView.switchTileLayout(force, mRecords)) {
            setTiles();
            mView.reSetLayoutListening();
            return true;
        }
        return false;
+13 −8
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.systemui.qs;

import static com.android.systemui.qs.dagger.QSFragmentModule.QS_SECURITY_FOOTER_VIEW;

import android.app.AlertDialog;
import android.app.admin.DeviceAdminInfo;
import android.app.admin.DevicePolicyEventLogger;
@@ -44,9 +46,10 @@ import android.widget.TextView;
import androidx.annotation.VisibleForTesting;

import com.android.internal.util.FrameworkStatsLog;
import com.android.systemui.Dependency;
import com.android.systemui.FontSizeUtils;
import com.android.systemui.R;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.settings.UserTracker;
@@ -54,6 +57,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.SecurityController;

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

@QSScope
class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListener {
@@ -81,18 +85,19 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
    private int mFooterIconId;

    @Inject
    public QSSecurityFooter(QSPanel qsPanel, Context context, UserTracker userTracker) {
        mRootView = LayoutInflater.from(context)
                .inflate(R.layout.quick_settings_footer, qsPanel, false);
    QSSecurityFooter(@Named(QS_SECURITY_FOOTER_VIEW) View rootView, Context context,
            UserTracker userTracker, @Main Handler mainHandler, ActivityStarter activityStarter,
            SecurityController securityController, @Background Looper bgLooper) {
        mRootView = rootView;
        mRootView.setOnClickListener(this);
        mFooterText = mRootView.findViewById(R.id.footer_text);
        mFooterIcon = mRootView.findViewById(R.id.footer_icon);
        mFooterIconId = R.drawable.ic_info_outline;
        mContext = context;
        mMainHandler = new Handler(Looper.myLooper());
        mActivityStarter = Dependency.get(ActivityStarter.class);
        mSecurityController = Dependency.get(SecurityController.class);
        mHandler = new H(Dependency.get(Dependency.BG_LOOPER));
        mMainHandler = mainHandler;
        mActivityStarter = activityStarter;
        mSecurityController = securityController;
        mHandler = new H(bgLooper);
        mUserTracker = userTracker;
    }

Loading