Merge changes I99cd110f,I5630fc05
* changes: Revert "Stop injecting QSPanel everywhere." Revert "7/N Inject media hosts directly."
This commit is contained in:
committed by
Android (Google) Code Review
commit
5d1ebbbb31
@@ -16,9 +16,6 @@ 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;
|
||||
@@ -53,7 +50,6 @@ 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 {
|
||||
@@ -86,8 +82,6 @@ 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;
|
||||
@@ -110,15 +104,12 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
|
||||
InjectionInflationController injectionInflater, QSTileHost qsTileHost,
|
||||
StatusBarStateController statusBarStateController, CommandQueue commandQueue,
|
||||
QSDetailDisplayer qsDetailDisplayer, @Named(QS_PANEL) MediaHost qsMediaHost,
|
||||
@Named(QUICK_QS_PANEL) MediaHost qqsMediaHost,
|
||||
QSDetailDisplayer qsDetailDisplayer,
|
||||
QSFragmentComponent.Factory qsComponentFactory) {
|
||||
mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler;
|
||||
mInjectionInflater = injectionInflater;
|
||||
mCommandQueue = commandQueue;
|
||||
mQsDetailDisplayer = qsDetailDisplayer;
|
||||
mQsMediaHost = qsMediaHost;
|
||||
mQqsMediaHost = qqsMediaHost;
|
||||
mQsComponentFactory = qsComponentFactory;
|
||||
commandQueue.observe(getLifecycle(), this);
|
||||
mHost = qsTileHost;
|
||||
@@ -270,6 +261,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
}
|
||||
|
||||
public void setHost(QSTileHost qsh) {
|
||||
mHeader.setQSPanel(mQSPanelController.getView());
|
||||
mQSDetail.setHost(qsh);
|
||||
}
|
||||
|
||||
@@ -463,9 +455,11 @@ 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, mQsMediaHost, true /* expanded */);
|
||||
pinToBottom(
|
||||
expandedMediaPosition, mQSPanelController.getMediaHost(), true /* expanded */);
|
||||
// The expanded media host should never move above the laid out position
|
||||
pinToBottom(absoluteBottomPosition, mQqsMediaHost, false /* expanded */);
|
||||
pinToBottom(absoluteBottomPosition, mHeader.getHeaderQsPanel().getMediaHost(),
|
||||
false /* expanded */);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -550,7 +550,6 @@ 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) {
|
||||
@@ -866,6 +865,10 @@ public class QSPanel extends LinearLayout implements Tunable {
|
||||
}
|
||||
}
|
||||
|
||||
public MediaHost getMediaHost() {
|
||||
return mMediaHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the header container of quick settings.
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
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;
|
||||
@@ -41,7 +40,6 @@ import com.android.systemui.tuner.TunerService;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
/**
|
||||
* Controller for {@link QSPanel}.
|
||||
@@ -51,7 +49,6 @@ 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;
|
||||
@@ -76,17 +73,15 @@ 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, mediaHost, metricsLogger, uiEventLogger,
|
||||
dumpManager);
|
||||
super(view, qstileHost, qsCustomizerController, qsTileRevealControllerFactory,
|
||||
metricsLogger, uiEventLogger, dumpManager);
|
||||
mQsSecurityFooter = qsSecurityFooter;
|
||||
mTunerService = tunerService;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
|
||||
mQsSecurityFooter.setHostEnvironment(qstileHost);
|
||||
mBrightnessSliderFactory = brightnessSliderFactory;
|
||||
|
||||
@@ -98,7 +93,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
|
||||
@Override
|
||||
public void onInit() {
|
||||
super.init();
|
||||
mQsCustomizerController.init();
|
||||
mBrightnessSlider.init();
|
||||
}
|
||||
@@ -119,12 +113,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected QSTileRevealController createTileRevealController() {
|
||||
return mQsTileRevealControllerFactory.create(
|
||||
this, (PagedTileLayout) mView.createRegularTileLayout());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
mTunerService.removeTunable(mView);
|
||||
@@ -170,6 +158,11 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
}
|
||||
}
|
||||
|
||||
/** */
|
||||
public MediaHost getMediaHost() {
|
||||
return mView.getMediaHost();
|
||||
}
|
||||
|
||||
/** */
|
||||
public void setBrightnessMirror(BrightnessMirrorController brightnessMirrorController) {
|
||||
mBrightnessMirrorController = brightnessMirrorController;
|
||||
@@ -287,10 +280,5 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
public void setFooterPageIndicator(PageIndicator pageIndicator) {
|
||||
mView.setFooterPageIndicator(pageIndicator);
|
||||
}
|
||||
|
||||
/** */
|
||||
public boolean isExpanded() {
|
||||
return mView.isExpanded();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ 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;
|
||||
@@ -73,12 +74,14 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
};
|
||||
|
||||
protected QSPanelControllerBase(T view, QSTileHost host,
|
||||
QSCustomizerController qsCustomizerController, MediaHost mediaHost,
|
||||
QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
super(view);
|
||||
mHost = host;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
mMediaHost = mediaHost;
|
||||
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
|
||||
mMediaHost = mView.getMediaHost();
|
||||
mMetricsLogger = metricsLogger;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
mDumpManager = dumpManager;
|
||||
@@ -86,8 +89,10 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
mQsTileRevealController = createTileRevealController();
|
||||
if (mQsTileRevealController != null) {
|
||||
QSPanel.QSTileLayout regularTileLayout = mView.createRegularTileLayout();
|
||||
if (regularTileLayout instanceof PagedTileLayout) {
|
||||
mQsTileRevealController = mQsTileRevealControllerFactory.create(
|
||||
(PagedTileLayout) regularTileLayout);
|
||||
mQsTileRevealController.setExpansion(mRevealExpansion);
|
||||
}
|
||||
|
||||
@@ -114,10 +119,6 @@ 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);
|
||||
@@ -125,11 +126,9 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
|
||||
/** */
|
||||
public void setTiles(Collection<QSTile> tiles, boolean collapsedView) {
|
||||
// TODO(b/168904199): move this logic into QSPanelController.
|
||||
if (!collapsedView && mQsTileRevealController != null) {
|
||||
if (!collapsedView) {
|
||||
mQsTileRevealController.updateRevealedTiles(tiles);
|
||||
}
|
||||
|
||||
for (QSPanelControllerBase.TileRecord record : mRecords) {
|
||||
mView.removeTile(record);
|
||||
record.tile.removeCallback(record.callback);
|
||||
@@ -193,6 +192,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
.collect(Collectors.joining(","));
|
||||
}
|
||||
|
||||
|
||||
/** */
|
||||
public void setExpanded(boolean expanded) {
|
||||
mView.setExpanded(expanded);
|
||||
@@ -234,6 +234,7 @@ 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;
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
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;
|
||||
@@ -46,10 +44,9 @@ 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;
|
||||
@@ -57,7 +54,6 @@ 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 {
|
||||
@@ -85,19 +81,18 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
|
||||
private int mFooterIconId;
|
||||
|
||||
@Inject
|
||||
QSSecurityFooter(@Named(QS_SECURITY_FOOTER_VIEW) View rootView, Context context,
|
||||
UserTracker userTracker, @Main Handler mainHandler, ActivityStarter activityStarter,
|
||||
SecurityController securityController, @Background Looper bgLooper) {
|
||||
mRootView = rootView;
|
||||
public QSSecurityFooter(QSPanel qsPanel, Context context, UserTracker userTracker) {
|
||||
mRootView = LayoutInflater.from(context)
|
||||
.inflate(R.layout.quick_settings_footer, qsPanel, false);
|
||||
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 = mainHandler;
|
||||
mActivityStarter = activityStarter;
|
||||
mSecurityController = securityController;
|
||||
mHandler = new H(bgLooper);
|
||||
mMainHandler = new Handler(Looper.myLooper());
|
||||
mActivityStarter = Dependency.get(ActivityStarter.class);
|
||||
mSecurityController = Dependency.get(SecurityController.class);
|
||||
mHandler = new H(Dependency.get(Dependency.BG_LOOPER));
|
||||
mUserTracker = userTracker;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public class QSTileRevealController {
|
||||
private static final long QS_REVEAL_TILES_DELAY = 500L;
|
||||
|
||||
private final Context mContext;
|
||||
private final QSPanelController mQSPanelController;
|
||||
private final QSPanel mQSPanel;
|
||||
private final PagedTileLayout mPagedTileLayout;
|
||||
private final QSCustomizerController mQsCustomizerController;
|
||||
private final ArraySet<String> mTilesToReveal = new ArraySet<>();
|
||||
@@ -32,17 +32,17 @@ public class QSTileRevealController {
|
||||
@Override
|
||||
public void run() {
|
||||
mPagedTileLayout.startTileReveal(mTilesToReveal, () -> {
|
||||
if (mQSPanelController.isExpanded()) {
|
||||
if (mQSPanel.isExpanded()) {
|
||||
addTileSpecsToRevealed(mTilesToReveal);
|
||||
mTilesToReveal.clear();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
QSTileRevealController(Context context, QSPanelController qsPanelController,
|
||||
PagedTileLayout pagedTileLayout, QSCustomizerController qsCustomizerController) {
|
||||
QSTileRevealController(Context context, QSPanel qsPanel, PagedTileLayout pagedTileLayout,
|
||||
QSCustomizerController qsCustomizerController) {
|
||||
mContext = context;
|
||||
mQSPanelController = qsPanelController;
|
||||
mQSPanel = qsPanel;
|
||||
mPagedTileLayout = pagedTileLayout;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
}
|
||||
@@ -85,17 +85,18 @@ public class QSTileRevealController {
|
||||
@QSScope
|
||||
static class Factory {
|
||||
private final Context mContext;
|
||||
private final QSPanel mQsPanel;
|
||||
private final QSCustomizerController mQsCustomizerController;
|
||||
|
||||
@Inject
|
||||
Factory(Context context, QSCustomizerController qsCustomizerController) {
|
||||
Factory(Context context, QSPanel qsPanel, QSCustomizerController qsCustomizerController) {
|
||||
mContext = context;
|
||||
mQsPanel = qsPanel;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
}
|
||||
|
||||
QSTileRevealController create(QSPanelController qsPanelController,
|
||||
PagedTileLayout pagedTileLayout) {
|
||||
return new QSTileRevealController(mContext, qsPanelController, pagedTileLayout,
|
||||
QSTileRevealController create(PagedTileLayout pagedTileLayout) {
|
||||
return new QSTileRevealController(mContext, mQsPanel, pagedTileLayout,
|
||||
mQsCustomizerController);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ public class QuickQSPanel extends QSPanel {
|
||||
|
||||
private boolean mDisabledByPolicy;
|
||||
private int mMaxTiles;
|
||||
protected QSPanel mFullPanel;
|
||||
|
||||
|
||||
@Inject
|
||||
@@ -117,6 +118,10 @@ public class QuickQSPanel extends QSPanel {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
public void setQSPanelAndHeader(QSPanel fullPanel, View header) {
|
||||
mFullPanel = fullPanel;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldShowDetail() {
|
||||
return !mExpanded;
|
||||
|
||||
@@ -16,13 +16,10 @@
|
||||
|
||||
package com.android.systemui.qs;
|
||||
|
||||
import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
import com.android.systemui.qs.customize.QSCustomizerController;
|
||||
import com.android.systemui.qs.dagger.QSScope;
|
||||
@@ -31,7 +28,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
/** Controller for {@link QuickQSPanel}. */
|
||||
@QSScope
|
||||
@@ -50,11 +46,11 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
@Inject
|
||||
QuickQSPanelController(QuickQSPanel view, QSTileHost qsTileHost,
|
||||
QSCustomizerController qsCustomizerController,
|
||||
@Named(QUICK_QS_PANEL) MediaHost mediaHost,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
|
||||
DumpManager dumpManager) {
|
||||
super(view, qsTileHost, qsCustomizerController, mediaHost, metricsLogger, uiEventLogger,
|
||||
dumpManager);
|
||||
super(view, qsTileHost, qsCustomizerController, qsTileRevealControllerFactory,
|
||||
metricsLogger, uiEventLogger, dumpManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -153,12 +153,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
|
||||
mRingerModeTextView.setSelected(true);
|
||||
mNextAlarmTextView.setSelected(true);
|
||||
|
||||
int colorForeground = Utils.getColorAttrDefaultColor(getContext(),
|
||||
android.R.attr.colorForeground);
|
||||
float intensity = getColorIntensity(colorForeground);
|
||||
int fillColor = mDualToneHandler.getSingleColor(intensity);
|
||||
mBatteryRemainingIcon.onDarkChanged(tintArea, intensity, fillColor);
|
||||
}
|
||||
|
||||
void onAttach(TintedIconManager iconManager) {
|
||||
@@ -445,6 +439,18 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
post(() -> setClickable(!mExpanded));
|
||||
}
|
||||
|
||||
public void setQSPanel(final QSPanel qsPanel) {
|
||||
//host.setHeaderView(mExpandIndicator);
|
||||
mHeaderQsPanel.setQSPanelAndHeader(qsPanel, this);
|
||||
|
||||
Rect tintArea = new Rect(0, 0, 0, 0);
|
||||
int colorForeground = Utils.getColorAttrDefaultColor(getContext(),
|
||||
android.R.attr.colorForeground);
|
||||
float intensity = getColorIntensity(colorForeground);
|
||||
int fillColor = mDualToneHandler.getSingleColor(intensity);
|
||||
mBatteryRemainingIcon.onDarkChanged(tintArea, intensity, fillColor);
|
||||
}
|
||||
|
||||
public void setCallback(Callback qsPanelCallback) {
|
||||
mHeaderQsPanel.setCallback(qsPanelCallback);
|
||||
}
|
||||
@@ -469,7 +475,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
return mLifecycle;
|
||||
}
|
||||
|
||||
/** */
|
||||
public void setContentMargins(int marginStart, int marginEnd) {
|
||||
mContentMarginStart = marginStart;
|
||||
mContentMarginEnd = marginEnd;
|
||||
|
||||
@@ -366,6 +366,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
mZenModeController.getConsolidatedPolicy());
|
||||
}
|
||||
|
||||
|
||||
private static class ClockDemoModeReceiver implements DemoMode {
|
||||
private Clock mClockView;
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package com.android.systemui.qs.dagger;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.systemui.R;
|
||||
@@ -32,8 +31,6 @@ import com.android.systemui.qs.QuickQSPanel;
|
||||
import com.android.systemui.qs.QuickStatusBarHeader;
|
||||
import com.android.systemui.qs.customize.QSCustomizer;
|
||||
|
||||
import javax.inject.Named;
|
||||
|
||||
import dagger.Binds;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
@@ -43,8 +40,6 @@ import dagger.Provides;
|
||||
*/
|
||||
@Module
|
||||
public interface QSFragmentModule {
|
||||
String QS_SECURITY_FOOTER_VIEW = "qs_security_footer";
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@RootView
|
||||
@@ -100,12 +95,4 @@ public interface QSFragmentModule {
|
||||
static QSCustomizer providesQSCutomizer(@RootView View view) {
|
||||
return view.findViewById(R.id.qs_customize);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@QSScope
|
||||
@Named(QS_SECURITY_FOOTER_VIEW)
|
||||
static View providesQSSecurityFooterView(LayoutInflater layoutInflater, QSPanel qsPanel) {
|
||||
return layoutInflater.inflate(R.layout.quick_settings_footer, qsPanel, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ import com.android.systemui.SystemUIFactory;
|
||||
import com.android.systemui.SysuiBaseFragmentTest;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
@@ -83,10 +82,6 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
private QSFragmentComponent mQsFragmentComponent;
|
||||
@Mock
|
||||
private QSPanelController mQSPanelController;
|
||||
@Mock
|
||||
private MediaHost mQSMediaHost;
|
||||
@Mock
|
||||
private MediaHost mQQSMediaHost;
|
||||
|
||||
public QSFragmentTest() {
|
||||
super(QSFragment.class);
|
||||
@@ -173,8 +168,6 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
||||
mock(StatusBarStateController.class),
|
||||
commandQueue,
|
||||
new QSDetailDisplayer(),
|
||||
mQSMediaHost,
|
||||
mQQSMediaHost,
|
||||
mQsComponentFactory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,17 +86,13 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
private QSPanelControllerBase<QSPanel> mController;
|
||||
|
||||
/** Implementation needed to ensure we have a reflectively-available class name. */
|
||||
private class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> {
|
||||
private static class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> {
|
||||
protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host,
|
||||
QSCustomizerController qsCustomizerController, MediaHost mediaHost,
|
||||
QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
super(view, host, qsCustomizerController, mediaHost,
|
||||
metricsLogger, uiEventLogger, dumpManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected QSTileRevealController createTileRevealController() {
|
||||
return mQSTileRevealController;
|
||||
super(view, host, qsCustomizerController, qsTileRevealControllerFactory, metricsLogger,
|
||||
uiEventLogger, dumpManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +100,7 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
public void setup() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
when(mQSPanel.getMediaHost()).thenReturn(mMediaHost);
|
||||
when(mQSPanel.isAttachedToWindow()).thenReturn(true);
|
||||
when(mQSPanel.getDumpableTag()).thenReturn("QSPanel");
|
||||
when(mQSPanel.openPanelEvent()).thenReturn(QSEvent.QS_PANEL_EXPANDED);
|
||||
@@ -111,11 +108,11 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout);
|
||||
when(mQSTileHost.getTiles()).thenReturn(Collections.singleton(mQSTile));
|
||||
when(mQSTileHost.createTileView(eq(mQSTile), anyBoolean())).thenReturn(mQSTileView);
|
||||
when(mQSTileRevealControllerFactory.create(any(), any()))
|
||||
.thenReturn(mQSTileRevealController);
|
||||
when(mQSTileRevealControllerFactory.create(any())).thenReturn(mQSTileRevealController);
|
||||
|
||||
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost,
|
||||
mQSCustomizerController, mMediaHost, mMetricsLogger, mUiEventLogger, mDumpManager);
|
||||
mQSCustomizerController, mQSTileRevealControllerFactory, mMetricsLogger,
|
||||
mUiEventLogger, mDumpManager);
|
||||
|
||||
mController.init();
|
||||
reset(mQSTileRevealController);
|
||||
@@ -125,14 +122,9 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
public void testSetRevealExpansion_preAttach() {
|
||||
mController.onViewDetached();
|
||||
|
||||
QSPanelControllerBase<QSPanel> controller = new QSPanelControllerBase<QSPanel>(
|
||||
mQSPanel, mQSTileHost, mQSCustomizerController, mMediaHost, mMetricsLogger,
|
||||
mUiEventLogger, mDumpManager) {
|
||||
@Override
|
||||
protected QSTileRevealController createTileRevealController() {
|
||||
return mQSTileRevealController;
|
||||
}
|
||||
};
|
||||
QSPanelControllerBase<QSPanel> controller = new TestableQSPanelControllerBase(mQSPanel,
|
||||
mQSTileHost, mQSCustomizerController, mQSTileRevealControllerFactory,
|
||||
mMetricsLogger, mUiEventLogger, mDumpManager);
|
||||
|
||||
// Nothing happens until attached
|
||||
controller.setRevealExpansion(0);
|
||||
|
||||
@@ -41,7 +41,6 @@ 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.tuner.TunerService;
|
||||
import com.android.systemui.util.animation.DisappearParameters;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -98,6 +97,7 @@ public class QSPanelControllerTest extends SysuiTestCase {
|
||||
public void setup() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
when(mQSPanel.getMediaHost()).thenReturn(mMediaHost);
|
||||
when(mQSPanel.isAttachedToWindow()).thenReturn(true);
|
||||
when(mQSPanel.getDumpableTag()).thenReturn("QSPanel");
|
||||
when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout);
|
||||
@@ -107,13 +107,11 @@ public class QSPanelControllerTest extends SysuiTestCase {
|
||||
.thenReturn(mBrightnessSlider);
|
||||
when(mBrightnessControllerFactory.create(any(ToggleSlider.class)))
|
||||
.thenReturn(mBrightnessController);
|
||||
when(mQSTileRevealControllerFactory.create(any(), any()))
|
||||
.thenReturn(mQSTileRevealController);
|
||||
when(mMediaHost.getDisappearParameters()).thenReturn(new DisappearParameters());
|
||||
when(mQSTileRevealControllerFactory.create(any())).thenReturn(mQSTileRevealController);
|
||||
|
||||
mController = new QSPanelController(mQSPanel, mQSSecurityFooter, mTunerService,
|
||||
mQSTileHost, mQSCustomizerController, mMediaHost, mQSTileRevealControllerFactory,
|
||||
mDumpManager, mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory,
|
||||
mQSTileHost, mQSCustomizerController, mQSTileRevealControllerFactory, mDumpManager,
|
||||
mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory,
|
||||
mToggleSliderViewControllerFactory);
|
||||
|
||||
mController.init();
|
||||
|
||||
@@ -23,9 +23,8 @@ import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.provider.Settings;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
@@ -39,18 +38,16 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.statusbar.policy.SecurityController;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
/*
|
||||
* Compile and run the whole SystemUI test suite:
|
||||
@@ -76,23 +73,22 @@ public class QSSecurityFooterTest extends SysuiTestCase {
|
||||
private TextView mFooterText;
|
||||
private TestableImageView mFooterIcon;
|
||||
private QSSecurityFooter mFooter;
|
||||
@Mock
|
||||
private SecurityController mSecurityController;
|
||||
@Mock
|
||||
private SecurityController mSecurityController = mock(SecurityController.class);
|
||||
private UserTracker mUserTracker;
|
||||
@Mock
|
||||
private ActivityStarter mActivityStarter;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
Looper looper = TestableLooper.get(this).getLooper();
|
||||
mDependency.injectTestDependency(SecurityController.class, mSecurityController);
|
||||
mDependency.injectTestDependency(Dependency.BG_LOOPER,
|
||||
TestableLooper.get(this).getLooper());
|
||||
mUserTracker = mock(UserTracker.class);
|
||||
when(mUserTracker.getUserInfo()).thenReturn(mock(UserInfo.class));
|
||||
mRootView = (ViewGroup) new LayoutInflaterBuilder(mContext)
|
||||
.replace("ImageView", TestableImageView.class)
|
||||
.build().inflate(R.layout.quick_settings_footer, null, false);
|
||||
mFooter = new QSSecurityFooter(mRootView, mContext, mUserTracker, new Handler(looper),
|
||||
mActivityStarter, mSecurityController, looper);
|
||||
mContext.addMockSystemService(Context.LAYOUT_INFLATER_SERVICE,
|
||||
new LayoutInflaterBuilder(mContext)
|
||||
.replace("ImageView", TestableImageView.class)
|
||||
.build());
|
||||
mFooter = new QSSecurityFooter(null, mContext, mUserTracker);
|
||||
mRootView = (ViewGroup) mFooter.getView();
|
||||
mFooterText = mRootView.findViewById(R.id.footer_text);
|
||||
mFooterIcon = mRootView.findViewById(R.id.footer_icon);
|
||||
mFooter.setHostEnvironment(null);
|
||||
|
||||
Reference in New Issue
Block a user