Merge "Making multiuser button work in collapsed QS in split shade" into sc-v2-dev

This commit is contained in:
Michał Brzeziński
2021-09-16 12:44:39 +00:00
committed by Android (Google) Code Review
5 changed files with 46 additions and 16 deletions

View File

@@ -36,7 +36,7 @@ class FooterActionsControllerBuilder @Inject constructor(
private val activityStarter: ActivityStarter,
private val userManager: UserManager,
private val userInfoController: UserInfoController,
private val multiUserSwitchController: MultiUserSwitchController,
private val multiUserSwitchControllerFactory: MultiUserSwitchController.Factory,
private val deviceProvisionedController: DeviceProvisionedController,
private val falsingManager: FalsingManager,
private val metricsLogger: MetricsLogger,
@@ -60,8 +60,8 @@ class FooterActionsControllerBuilder @Inject constructor(
fun build(): FooterActionsController {
return FooterActionsController(view, qsPanelController, activityStarter, userManager,
userInfoController, multiUserSwitchController, deviceProvisionedController,
falsingManager, metricsLogger, tunerService, globalActionsDialog, uiEventLogger,
showPMLiteButton, buttonsVisibleState)
userInfoController, multiUserSwitchControllerFactory.create(view),
deviceProvisionedController, falsingManager, metricsLogger, tunerService,
globalActionsDialog, uiEventLogger, showPMLiteButton, buttonsVisibleState)
}
}

View File

@@ -42,6 +42,7 @@ import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.brightness.BrightnessController;
import com.android.systemui.settings.brightness.BrightnessMirrorHandler;
import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.tuner.TunerService;
@@ -60,6 +61,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
private final QSCustomizerController mQsCustomizerController;
private final QSTileRevealController.Factory mQsTileRevealControllerFactory;
private final FalsingManager mFalsingManager;
private final CommandQueue mCommandQueue;
private final BrightnessController mBrightnessController;
private final BrightnessSlider mBrightnessSlider;
private final BrightnessMirrorHandler mBrightnessMirrorHandler;
@@ -97,7 +99,8 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
QSTileRevealController.Factory qsTileRevealControllerFactory,
DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
BrightnessSlider.Factory brightnessSliderFactory, FalsingManager falsingManager) {
BrightnessSlider.Factory brightnessSliderFactory, FalsingManager falsingManager,
CommandQueue commandQueue) {
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
metricsLogger, uiEventLogger, qsLogger, dumpManager);
mQsSecurityFooter = qsSecurityFooter;
@@ -105,6 +108,7 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
mQsCustomizerController = qsCustomizerController;
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
mFalsingManager = falsingManager;
mCommandQueue = commandQueue;
mQsSecurityFooter.setHostEnvironment(qstileHost);
mBrightnessSlider = brightnessSliderFactory.create(getContext(), mView);
@@ -274,6 +278,14 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
/** */
public void showDetailAdapter(DetailAdapter detailAdapter, int x, int y) {
// TODO(b/199296365)
// Workaround for opening detail from QQS, when there might not be enough space to
// display e.g. in case of multiuser detail from split shade. Currently showing detail works
// only for QS (mView below) and that's why expanding panel (thus showing QS instead of QQS)
// makes it displayed correctly.
if (!isExpanded()) {
mCommandQueue.animateExpandSettingsPanel(null);
}
mView.showDetailAdapter(true, detailAdapter, new int[]{x, y});
}

View File

@@ -39,7 +39,6 @@ import com.android.systemui.qs.QSPanel;
import com.android.systemui.qs.QuickQSPanel;
import com.android.systemui.qs.QuickStatusBarHeader;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.statusbar.phone.MultiUserSwitch;
import javax.inject.Named;
@@ -80,12 +79,6 @@ public interface QSFragmentModule {
return qsFragment.getView();
}
/** */
@Provides
static MultiUserSwitch providesMultiUserSWitch(QSFooterView qsFooterView) {
return qsFooterView.findViewById(R.id.multi_user_switch);
}
/** */
@Provides
static QSPanel provideQSPanel(@RootView View view) {

View File

@@ -25,6 +25,7 @@ import android.view.ViewGroup;
import com.android.systemui.R;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.qs.FooterActionsView;
import com.android.systemui.qs.QSDetailDisplayer;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.statusbar.policy.UserSwitcherController;
@@ -33,7 +34,6 @@ import com.android.systemui.util.ViewController;
import javax.inject.Inject;
/** View Controller for {@link MultiUserSwitch}. */
@QSScope
public class MultiUserSwitchController extends ViewController<MultiUserSwitch> {
private final UserManager mUserManager;
private final UserSwitcherController mUserSwitcherController;
@@ -60,8 +60,30 @@ public class MultiUserSwitchController extends ViewController<MultiUserSwitch> {
}
};
@Inject
public MultiUserSwitchController(MultiUserSwitch view, UserManager userManager,
@QSScope
public static class Factory {
private final UserManager mUserManager;
private final UserSwitcherController mUserSwitcherController;
private final QSDetailDisplayer mQsDetailDisplayer;
private final FalsingManager mFalsingManager;
@Inject
public Factory(UserManager userManager, UserSwitcherController userSwitcherController,
QSDetailDisplayer qsDetailDisplayer, FalsingManager falsingManager) {
mUserManager = userManager;
mUserSwitcherController = userSwitcherController;
mQsDetailDisplayer = qsDetailDisplayer;
mFalsingManager = falsingManager;
}
public MultiUserSwitchController create(FooterActionsView view) {
return new MultiUserSwitchController(view.findViewById(R.id.multi_user_switch),
mUserManager, mUserSwitcherController, mQsDetailDisplayer,
mFalsingManager);
}
}
private MultiUserSwitchController(MultiUserSwitch view, UserManager userManager,
UserSwitcherController userSwitcherController, QSDetailDisplayer qsDetailDisplayer,
FalsingManager falsingManager) {
super(view);

View File

@@ -42,6 +42,7 @@ import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.settings.brightness.BrightnessController;
import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.settings.brightness.ToggleSlider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.animation.DisappearParameters;
@@ -94,6 +95,8 @@ public class QSPanelControllerTest extends SysuiTestCase {
QSTileView mQSTileView;
@Mock
PagedTileLayout mPagedTileLayout;
@Mock
CommandQueue mCommandQueue;
FalsingManagerFake mFalsingManager = new FalsingManagerFake();
private QSPanelController mController;
@@ -121,7 +124,7 @@ public class QSPanelControllerTest extends SysuiTestCase {
mQSTileHost, mQSCustomizerController, true, mMediaHost,
mQSTileRevealControllerFactory, mDumpManager, mMetricsLogger, mUiEventLogger,
mQSLogger, mBrightnessControllerFactory, mToggleSliderViewControllerFactory,
mFalsingManager
mFalsingManager, mCommandQueue
);
mController.init();