Merge "6/N Remove QSCustomizer from QSPanel"
This commit is contained in:
@@ -327,7 +327,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
||||
|
||||
@Override
|
||||
public boolean isShowingDetail() {
|
||||
return mQSPanelController.isShowingCustomize() || mQSDetail.isShowingDetail();
|
||||
return mQSCustomizerController.isCustomizing() || mQSDetail.isShowingDetail();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -46,7 +46,6 @@ import com.android.systemui.media.MediaHierarchyManager;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.qs.DetailAdapter;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
import com.android.systemui.qs.customize.QSCustomizer;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.settings.ToggleSliderView;
|
||||
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
|
||||
@@ -56,7 +55,6 @@ import com.android.systemui.tuner.TunerService.Tunable;
|
||||
import com.android.systemui.util.animation.DisappearParameters;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -84,7 +82,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
|
||||
private final H mHandler = new H();
|
||||
private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
|
||||
private QSTileRevealController mQsTileRevealController;
|
||||
/** Whether or not the QS media player feature is enabled. */
|
||||
protected boolean mUsingMediaPlayer;
|
||||
private int mVisualMarginStart;
|
||||
@@ -117,7 +114,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
private int mVisualTilePadding;
|
||||
private boolean mUsingHorizontalLayout;
|
||||
|
||||
private QSCustomizer mCustomizePanel;
|
||||
private Record mDetailRecord;
|
||||
|
||||
private BrightnessMirrorController mBrightnessMirrorController;
|
||||
@@ -186,10 +182,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
|
||||
initMediaHostState();
|
||||
}
|
||||
if (mRegularTileLayout instanceof PagedTileLayout) {
|
||||
mQsTileRevealController = new QSTileRevealController(mContext, this,
|
||||
(PagedTileLayout) mRegularTileLayout);
|
||||
}
|
||||
mQSLogger.logAllTilesChangeListening(mListening, getDumpableTag(), "");
|
||||
}
|
||||
|
||||
@@ -297,14 +289,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
setMeasuredDimension(getMeasuredWidth(), height);
|
||||
}
|
||||
|
||||
public QSTileRevealController getQsTileRevealController() {
|
||||
return mQsTileRevealController;
|
||||
}
|
||||
|
||||
public boolean isShowingCustomize() {
|
||||
return mCustomizePanel != null && mCustomizePanel.isCustomizing();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
if (mTileLayout != null) {
|
||||
@@ -362,10 +346,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
void setCustomizer(QSCustomizer customizer) {
|
||||
mCustomizePanel = customizer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Links the footer's page indicator, which is used in landscape orientation to save space.
|
||||
*
|
||||
@@ -678,10 +658,6 @@ public class QSPanel extends LinearLayout implements Tunable, BrightnessMirrorLi
|
||||
return mExpanded;
|
||||
}
|
||||
|
||||
void updateRevealedTiles(Collection<QSTile> tiles) {
|
||||
mQsTileRevealController.updateRevealedTiles(tiles);
|
||||
}
|
||||
|
||||
void addTile(QSPanelControllerBase.TileRecord tileRecord) {
|
||||
final QSTile.Callback callback = new QSTile.Callback() {
|
||||
@Override
|
||||
|
||||
@@ -63,17 +63,17 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
@Inject
|
||||
QSPanelController(QSPanel view, QSSecurityFooter qsSecurityFooter, TunerService tunerService,
|
||||
QSTileHost qstileHost, QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
|
||||
BrightnessController.Factory brightnessControllerFactory) {
|
||||
super(view, qstileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager);
|
||||
super(view, qstileHost, qsCustomizerController, qsTileRevealControllerFactory,
|
||||
metricsLogger, uiEventLogger, dumpManager);
|
||||
mQsSecurityFooter = qsSecurityFooter;
|
||||
mTunerService = tunerService;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
mQsSecurityFooter.setHostEnvironment(qstileHost);
|
||||
mBrightnessController = brightnessControllerFactory.create(
|
||||
mView.findViewById(R.id.brightness_slider));
|
||||
|
||||
mView.setCustomizer(mQsCustomizerController.getView());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,11 +123,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
return mView.getTileLayout();
|
||||
}
|
||||
|
||||
/** */
|
||||
public boolean isShowingCustomize() {
|
||||
return mView.isShowingCustomize();
|
||||
}
|
||||
|
||||
/** */
|
||||
public void setVisibility(int visibility) {
|
||||
mView.setVisibility(visibility);
|
||||
@@ -151,11 +146,6 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
|
||||
}
|
||||
}
|
||||
|
||||
/** */
|
||||
public QSTileRevealController getQsTileRevealController() {
|
||||
return mView.getQsTileRevealController();
|
||||
}
|
||||
|
||||
/** */
|
||||
public MediaHost getMediaHost() {
|
||||
return mView.getMediaHost();
|
||||
|
||||
@@ -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;
|
||||
@@ -55,6 +56,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
protected final ArrayList<TileRecord> mRecords = new ArrayList<>();
|
||||
|
||||
private int mLastOrientation;
|
||||
private QSTileRevealController mQsTileRevealController;
|
||||
|
||||
private final QSHost.Callback mQSHostCallback = this::setTiles;
|
||||
|
||||
@@ -71,11 +73,13 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
private String mCachedSpecs = "";
|
||||
|
||||
protected QSPanelControllerBase(T view, QSTileHost host,
|
||||
QSCustomizerController qsCustomizerController, MetricsLogger metricsLogger,
|
||||
UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
super(view);
|
||||
mHost = host;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
mQsTileRevealControllerFactory = qsTileRevealControllerFactory;
|
||||
mMediaHost = mView.getMediaHost();
|
||||
mMetricsLogger = metricsLogger;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
@@ -84,6 +88,12 @@ 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);
|
||||
}
|
||||
|
||||
mView.addOnConfigurationChangedListener(mOnConfigurationChangedListener);
|
||||
mHost.addCallback(mQSHostCallback);
|
||||
mMediaHost.addVisibilityChangeListener(aBoolean -> {
|
||||
@@ -115,7 +125,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
/** */
|
||||
public void setTiles(Collection<QSTile> tiles, boolean collapsedView) {
|
||||
if (!collapsedView) {
|
||||
mView.updateRevealedTiles(tiles);
|
||||
mQsTileRevealController.updateRevealedTiles(tiles);
|
||||
}
|
||||
for (QSPanelControllerBase.TileRecord record : mRecords) {
|
||||
mView.removeTile(record);
|
||||
@@ -236,6 +246,10 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
|
||||
}
|
||||
}
|
||||
|
||||
/** */
|
||||
public QSTileRevealController getQsTileRevealController() {
|
||||
return mQsTileRevealController;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.util.ArraySet;
|
||||
|
||||
import com.android.systemui.Prefs;
|
||||
import com.android.systemui.plugins.qs.QSTile;
|
||||
import com.android.systemui.qs.customize.QSCustomizerController;
|
||||
import com.android.systemui.qs.dagger.QSScope;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -17,13 +18,13 @@ import java.util.Set;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** */
|
||||
@QSScope
|
||||
public class QSTileRevealController {
|
||||
private static final long QS_REVEAL_TILES_DELAY = 500L;
|
||||
|
||||
private final Context mContext;
|
||||
private final QSPanel mQSPanel;
|
||||
private final PagedTileLayout mPagedTileLayout;
|
||||
private final QSCustomizerController mQsCustomizerController;
|
||||
private final ArraySet<String> mTilesToReveal = new ArraySet<>();
|
||||
private final Handler mHandler = new Handler();
|
||||
|
||||
@@ -38,12 +39,12 @@ public class QSTileRevealController {
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@Inject
|
||||
QSTileRevealController(Context context, QSPanel qsPanel, PagedTileLayout pagedTileLayout) {
|
||||
QSTileRevealController(Context context, QSPanel qsPanel, PagedTileLayout pagedTileLayout,
|
||||
QSCustomizerController qsCustomizerController) {
|
||||
mContext = context;
|
||||
mQSPanel = qsPanel;
|
||||
mPagedTileLayout = pagedTileLayout;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
}
|
||||
|
||||
public void setExpansion(float expansion) {
|
||||
@@ -62,7 +63,7 @@ public class QSTileRevealController {
|
||||
|
||||
final Set<String> revealedTiles = Prefs.getStringSet(
|
||||
mContext, QS_TILE_SPECS_REVEALED, Collections.EMPTY_SET);
|
||||
if (revealedTiles.isEmpty() || mQSPanel.isShowingCustomize()) {
|
||||
if (revealedTiles.isEmpty() || mQsCustomizerController.isCustomizing()) {
|
||||
// Do not reveal QS tiles the user has upon first load or those that they directly
|
||||
// added through customization.
|
||||
addTileSpecsToRevealed(tileSpecs);
|
||||
@@ -79,4 +80,24 @@ public class QSTileRevealController {
|
||||
revealedTiles.addAll(specs);
|
||||
Prefs.putStringSet(mContext, QS_TILE_SPECS_REVEALED, revealedTiles);
|
||||
}
|
||||
|
||||
/** TODO(b/168904199): Remove this once QSPanel has its rejection removed. */
|
||||
@QSScope
|
||||
static class Factory {
|
||||
private final Context mContext;
|
||||
private final QSPanel mQsPanel;
|
||||
private final QSCustomizerController mQsCustomizerController;
|
||||
|
||||
@Inject
|
||||
Factory(Context context, QSPanel qsPanel, QSCustomizerController qsCustomizerController) {
|
||||
mContext = context;
|
||||
mQsPanel = qsPanel;
|
||||
mQsCustomizerController = qsCustomizerController;
|
||||
}
|
||||
|
||||
QSTileRevealController create(PagedTileLayout pagedTileLayout) {
|
||||
return new QSTileRevealController(mContext, mQsPanel, pagedTileLayout,
|
||||
mQsCustomizerController);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,9 +43,11 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
|
||||
@Inject
|
||||
QuickQSPanelController(QuickQSPanel view, TunerService tunerService, QSTileHost qsTileHost,
|
||||
QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
|
||||
DumpManager dumpManager) {
|
||||
super(view, qsTileHost, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager);
|
||||
super(view, qsTileHost, qsCustomizerController, qsTileRevealControllerFactory,
|
||||
metricsLogger, uiEventLogger, dumpManager);
|
||||
mTunerService = tunerService;
|
||||
}
|
||||
|
||||
|
||||
@@ -213,11 +213,6 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
|
||||
mView.setContainer(container);
|
||||
}
|
||||
|
||||
// TODO(b/168904199): remove this.
|
||||
public QSCustomizer getView() {
|
||||
return mView;
|
||||
}
|
||||
|
||||
public boolean isShown() {
|
||||
return mView.isShown();
|
||||
}
|
||||
|
||||
@@ -64,6 +64,10 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private QSCustomizerController mQSCustomizerController;
|
||||
@Mock
|
||||
private QSTileRevealController.Factory mQSTileRevealControllerFactory;
|
||||
@Mock
|
||||
private QSTileRevealController mQSTileRevealController;
|
||||
@Mock
|
||||
private MediaHost mMediaHost;
|
||||
@Mock
|
||||
private MetricsLogger mMetricsLogger;
|
||||
@@ -73,15 +77,19 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
QSTileImpl mQSTile;
|
||||
@Mock
|
||||
QSTileView mQSTileView;
|
||||
@Mock
|
||||
PagedTileLayout mPagedTileLayout;
|
||||
|
||||
private QSPanelControllerBase<QSPanel> mController;
|
||||
|
||||
/** Implementation needed to ensure we have a reflectively-available class name. */
|
||||
private static class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> {
|
||||
protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host,
|
||||
QSCustomizerController qsCustomizerController, MetricsLogger metricsLogger,
|
||||
UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
super(view, host, qsCustomizerController, metricsLogger, uiEventLogger, dumpManager);
|
||||
QSCustomizerController qsCustomizerController,
|
||||
QSTileRevealController.Factory qsTileRevealControllerFactory,
|
||||
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
|
||||
super(view, host, qsCustomizerController, qsTileRevealControllerFactory, metricsLogger,
|
||||
uiEventLogger, dumpManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,11 +102,14 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
|
||||
when(mQSPanel.getDumpableTag()).thenReturn("QSPanel");
|
||||
when(mQSPanel.openPanelEvent()).thenReturn(QSEvent.QS_PANEL_EXPANDED);
|
||||
when(mQSPanel.closePanelEvent()).thenReturn(QSEvent.QS_PANEL_COLLAPSED);
|
||||
when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout);
|
||||
when(mQSTileHost.getTiles()).thenReturn(Collections.singleton(mQSTile));
|
||||
when(mQSTileHost.createTileView(eq(mQSTile), anyBoolean())).thenReturn(mQSTileView);
|
||||
when(mQSTileRevealControllerFactory.create(any())).thenReturn(mQSTileRevealController);
|
||||
|
||||
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost,
|
||||
mQSCustomizerController, mMetricsLogger, mUiEventLogger, mDumpManager);
|
||||
mQSCustomizerController, mQSTileRevealControllerFactory, mMetricsLogger,
|
||||
mUiEventLogger, mDumpManager);
|
||||
|
||||
mController.init();
|
||||
}
|
||||
|
||||
@@ -61,6 +61,10 @@ public class QSPanelControllerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private QSCustomizerController mQSCustomizerController;
|
||||
@Mock
|
||||
private QSTileRevealController.Factory mQSTileRevealControllerFactory;
|
||||
@Mock
|
||||
private QSTileRevealController mQSTileRevealController;
|
||||
@Mock
|
||||
private MediaHost mMediaHost;
|
||||
@Mock
|
||||
private MetricsLogger mMetricsLogger;
|
||||
@@ -78,6 +82,9 @@ public class QSPanelControllerTest extends SysuiTestCase {
|
||||
QSTileImpl mQSTile;
|
||||
@Mock
|
||||
QSTileView mQSTileView;
|
||||
@Mock
|
||||
PagedTileLayout mPagedTileLayout;
|
||||
|
||||
|
||||
private QSPanelController mController;
|
||||
|
||||
@@ -88,14 +95,16 @@ public class QSPanelControllerTest extends SysuiTestCase {
|
||||
when(mQSPanel.getMediaHost()).thenReturn(mMediaHost);
|
||||
when(mQSPanel.isAttachedToWindow()).thenReturn(true);
|
||||
when(mQSPanel.getDumpableTag()).thenReturn("QSPanel");
|
||||
when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout);
|
||||
when(mQSTileHost.getTiles()).thenReturn(Collections.singleton(mQSTile));
|
||||
when(mQSTileHost.createTileView(eq(mQSTile), anyBoolean())).thenReturn(mQSTileView);
|
||||
when(mBrightnessControllerFactory.create(any(ToggleSlider.class)))
|
||||
.thenReturn(mBrightnessController);
|
||||
when(mQSTileRevealControllerFactory.create(any())).thenReturn(mQSTileRevealController);
|
||||
|
||||
mController = new QSPanelController(mQSPanel, mQSSecurityFooter, mTunerService,
|
||||
mQSTileHost, mQSCustomizerController, mDumpManager, mMetricsLogger, mUiEventLogger,
|
||||
mBrightnessControllerFactory);
|
||||
mQSTileHost, mQSCustomizerController, mQSTileRevealControllerFactory, mDumpManager,
|
||||
mMetricsLogger, mUiEventLogger, mBrightnessControllerFactory);
|
||||
|
||||
mController.init();
|
||||
}
|
||||
|
||||
@@ -39,7 +39,6 @@ import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.media.MediaHost;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.qs.QSTileView;
|
||||
import com.android.systemui.qs.customize.QSCustomizer;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.statusbar.policy.SecurityController;
|
||||
@@ -65,12 +64,8 @@ public class QSPanelTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private QSTileHost mHost;
|
||||
@Mock
|
||||
private QSCustomizer mCustomizer;
|
||||
@Mock
|
||||
private QSTileImpl dndTile;
|
||||
@Mock
|
||||
private QSTileImpl mNonTile;
|
||||
@Mock
|
||||
private QSPanelControllerBase.TileRecord mDndTileRecord;
|
||||
@Mock
|
||||
private QSLogger mQSLogger;
|
||||
@@ -84,7 +79,6 @@ public class QSPanelTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private ActivityStarter mActivityStarter;
|
||||
private UiEventLoggerFake mUiEventLogger;
|
||||
private String mCachedSpecs = "";
|
||||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
@@ -113,8 +107,6 @@ public class QSPanelTest extends SysuiTestCase {
|
||||
when(dndTile.getTileSpec()).thenReturn("dnd");
|
||||
when(mHost.getTiles()).thenReturn(Collections.emptyList());
|
||||
when(mHost.createTileView(any(), anyBoolean())).thenReturn(mQSTileView);
|
||||
|
||||
mQsPanel.setCustomizer(mCustomizer);
|
||||
mQsPanel.addTile(mDndTileRecord);
|
||||
mQsPanel.setCallback(mCallback);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user