11/N Remove UIEventLogger from QSPanel.

Removes UIEventLogger injection from QSPanel constructor.

Bug: 168904199
Test: atest SystemUITests
Change-Id: I2099ed36c6ba09968da2bc2de1cba23318282573
This commit is contained in:
Dave Mankoff
2020-10-23 14:02:27 -04:00
parent a2a44155d4
commit ab55132939
13 changed files with 80 additions and 76 deletions

View File

@@ -25,8 +25,7 @@ import com.android.systemui.R
import com.android.systemui.qs.TileLayout.exactly
class DoubleLineTileLayout(
context: Context,
private val uiEventLogger: UiEventLogger
context: Context
) : ViewGroup(context), QSPanel.QSTileLayout {
companion object {
@@ -84,7 +83,7 @@ class DoubleLineTileLayout(
return false
}
override fun setListening(listening: Boolean) {
override fun setListening(listening: Boolean, uiEventLogger: UiEventLogger) {
if (_listening == listening) return
_listening = listening
for (record in mRecords) {

View File

@@ -142,7 +142,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
}
@Override
public void setListening(boolean listening) {
public void setListening(boolean listening, UiEventLogger uiEventLogger) {
if (mListening == listening) return;
mListening = listening;
updateListening();
@@ -150,7 +150,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
private void updateListening() {
for (TilePage tilePage : mPages) {
tilePage.setListening(tilePage.getParent() == null ? false : mListening);
tilePage.setListening(tilePage.getParent() != null && mListening);
}
}

View File

@@ -84,7 +84,6 @@ public class QSPanel extends LinearLayout implements Tunable {
private QSDetail.Callback mCallback;
private final QSLogger mQSLogger;
protected final UiEventLogger mUiEventLogger;
protected QSTileHost mHost;
private final List<OnConfigurationChangedListener> mOnConfigurationChangedListeners =
new ArrayList<>();
@@ -125,8 +124,7 @@ public class QSPanel extends LinearLayout implements Tunable {
public QSPanel(
@Named(VIEW_CONTEXT) Context context,
AttributeSet attrs,
QSLogger qsLogger,
UiEventLogger uiEventLogger
QSLogger qsLogger
) {
super(context, attrs);
mUsingMediaPlayer = useQsMediaPlayer(context);
@@ -134,7 +132,6 @@ public class QSPanel extends LinearLayout implements Tunable {
R.dimen.quick_settings_bottom_margin_media);
mContext = context;
mQSLogger = qsLogger;
mUiEventLogger = uiEventLogger;
setOrientation(VERTICAL);
@@ -243,14 +240,6 @@ public class QSPanel extends LinearLayout implements Tunable {
setMeasuredDimension(getMeasuredWidth(), height);
}
@Override
protected void onDetachedFromWindow() {
if (mTileLayout != null) {
mTileLayout.setListening(false);
}
super.onDetachedFromWindow();
}
protected String getDumpableTag() {
return TAG;
}
@@ -468,16 +457,10 @@ public class QSPanel extends LinearLayout implements Tunable {
}
/** */
public void setListening(boolean listening, String cachedSpecs) {
if (mListening == listening) return;
public void setListening(boolean listening) {
mListening = listening;
if (mTileLayout != null) {
mQSLogger.logAllTilesChangeListening(listening, getDumpableTag(), cachedSpecs);
mTileLayout.setListening(listening);
}
}
public void showDetailAdapter(boolean show, DetailAdapter adapter, int[] locationInWindow) {
int xInWindow = locationInWindow[0];
int yInWindow = locationInWindow[1];
@@ -756,7 +739,8 @@ public class QSPanel extends LinearLayout implements Tunable {
mSecurityFooter = view;
}
void setUsingHorizontalLayout(boolean horizontal, ViewGroup mediaHostView, boolean force) {
void setUsingHorizontalLayout(boolean horizontal, ViewGroup mediaHostView, boolean force,
UiEventLogger uiEventLogger) {
if (horizontal != mUsingHorizontalLayout || force) {
mUsingHorizontalLayout = horizontal;
View visibleView = horizontal ? mHorizontalLinearLayout : (View) mRegularTileLayout;
@@ -775,7 +759,7 @@ public class QSPanel extends LinearLayout implements Tunable {
switchAllContentToParent(newParent, newLayout);
reAttachMediaHost(mediaHostView, horizontal);
mTileLayout = newLayout;
newLayout.setListening(mListening);
newLayout.setListening(mListening, uiEventLogger);
if (needsDynamicRowsAndColumns()) {
newLayout.setMinRows(horizontal ? 2 : 1);
// Let's use 3 columns to match the current layout
@@ -835,7 +819,7 @@ public class QSPanel extends LinearLayout implements Tunable {
boolean updateResources();
/** */
void setListening(boolean listening);
void setListening(boolean listening, UiEventLogger uiEventLogger);
/**
* Set the minimum number of rows to show

View File

@@ -36,6 +36,7 @@ import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.brightness.BrightnessController;
import com.android.systemui.settings.brightness.BrightnessSlider;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
@@ -85,10 +86,10 @@ public class QSPanelController extends QSPanelControllerBase<QSPanel> {
@Named(QS_PANEL) MediaHost mediaHost,
QSTileRevealController.Factory qsTileRevealControllerFactory,
DumpManager dumpManager, MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
BrightnessController.Factory brightnessControllerFactory,
QSLogger qsLogger, BrightnessController.Factory brightnessControllerFactory,
BrightnessSlider.Factory brightnessSliderFactory) {
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
uiEventLogger, dumpManager);
super(view, qstileHost, qsCustomizerController, usingMediaPlayer, mediaHost,
metricsLogger, uiEventLogger, qsLogger, dumpManager);
mQsSecurityFooter = qsSecurityFooter;
mTunerService = tunerService;
mQsCustomizerController = qsCustomizerController;

View File

@@ -33,6 +33,7 @@ import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.util.ViewController;
import com.android.systemui.util.animation.DisappearParameters;
@@ -60,6 +61,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
protected final MediaHost mMediaHost;
protected final MetricsLogger mMetricsLogger;
private final UiEventLogger mUiEventLogger;
private final QSLogger mQSLogger;
private final DumpManager mDumpManager;
protected final ArrayList<TileRecord> mRecords = new ArrayList<>();
@@ -92,7 +94,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
protected QSPanelControllerBase(T view, QSTileHost host,
QSCustomizerController qsCustomizerController,
@Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer, MediaHost mediaHost,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
DumpManager dumpManager) {
super(view);
mHost = host;
mQsCustomizerController = qsCustomizerController;
@@ -100,6 +103,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
mMediaHost = mediaHost;
mMetricsLogger = metricsLogger;
mUiEventLogger = uiEventLogger;
mQSLogger = qsLogger;
mDumpManager = dumpManager;
}
@@ -125,6 +129,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
mHost.removeCallback(mQSHostCallback);
mView.getTileLayout().setListening(false, mUiEventLogger);
mMediaHost.removeVisibilityChangeListener(mMediaHostVisibilityListener);
for (TileRecord record : mRecords) {
@@ -248,7 +254,12 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
void setListening(boolean listening) {
mView.setListening(listening, mCachedSpecs);
mView.setListening(listening);
if (mView.getTileLayout() != null) {
mQSLogger.logAllTilesChangeListening(listening, mView.getDumpableTag(), mCachedSpecs);
mView.getTileLayout().setListening(listening, mUiEventLogger);
}
}
boolean switchTileLayout(boolean force) {
@@ -267,7 +278,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
mView.removeTile(record);
record.tile.removeCallback(record.callback);
}
mView.setUsingHorizontalLayout(mUsingHorizontalLayout, mMediaHost.getHostView(), force);
mView.setUsingHorizontalLayout(mUsingHorizontalLayout, mMediaHost.getHostView(), force,
mUiEventLogger);
updateMediaDisappearParameters();
setTiles();

View File

@@ -56,7 +56,7 @@ public class QuickQSPanel extends QSPanel {
AttributeSet attrs,
QSLogger qsLogger,
UiEventLogger uiEventLogger) {
super(context, attrs, qsLogger, uiEventLogger);
super(context, attrs, qsLogger);
mMaxTiles = Math.min(DEFAULT_MAX_TILES,
getResources().getInteger(R.integer.quick_qs_panel_max_columns));
applyBottomMargin((View) mRegularTileLayout);
@@ -76,12 +76,12 @@ public class QuickQSPanel extends QSPanel {
@Override
public TileLayout createRegularTileLayout() {
return new QuickQSPanel.HeaderTileLayout(mContext, mUiEventLogger);
return new QuickQSPanel.HeaderTileLayout(mContext);
}
@Override
protected QSTileLayout createHorizontalTileLayout() {
return new DoubleLineTileLayout(mContext, mUiEventLogger);
return new DoubleLineTileLayout(mContext);
}
@Override
@@ -195,13 +195,10 @@ public class QuickQSPanel extends QSPanel {
private static class HeaderTileLayout extends TileLayout {
private final UiEventLogger mUiEventLogger;
private Rect mClippingBounds = new Rect();
public HeaderTileLayout(Context context, UiEventLogger uiEventLogger) {
HeaderTileLayout(Context context) {
super(context);
mUiEventLogger = uiEventLogger;
setClipChildren(false);
setClipToPadding(false);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
@@ -329,14 +326,14 @@ public class QuickQSPanel extends QSPanel {
}
@Override
public void setListening(boolean listening) {
public void setListening(boolean listening, UiEventLogger uiEventLogger) {
boolean startedListening = !mListening && listening;
super.setListening(listening);
super.setListening(listening, uiEventLogger);
if (startedListening) {
// getNumVisibleTiles() <= mRecords.size()
for (int i = 0; i < getNumVisibleTiles(); i++) {
QSTile tile = mRecords.get(i).tile;
mUiEventLogger.logWithInstanceId(QSEvent.QQS_TILE_VISIBLE, 0,
uiEventLogger.logWithInstanceId(QSEvent.QQS_TILE_VISIBLE, 0,
tile.getMetricsSpec(), tile.getInstanceId());
}
}

View File

@@ -28,6 +28,7 @@ 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;
import com.android.systemui.qs.logging.QSLogger;
import java.util.ArrayList;
import java.util.List;
@@ -54,10 +55,10 @@ public class QuickQSPanelController extends QSPanelControllerBase<QuickQSPanel>
QSCustomizerController qsCustomizerController,
@Named(QS_USING_MEDIA_PLAYER) boolean usingMediaPlayer,
@Named(QUICK_QS_PANEL) MediaHost mediaHost,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
DumpManager dumpManager) {
super(view, qsTileHost, qsCustomizerController, usingMediaPlayer, mediaHost, metricsLogger,
uiEventLogger, dumpManager);
uiEventLogger, qsLogger, dumpManager);
}
@Override

View File

@@ -9,6 +9,7 @@ import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.qs.QSPanel.QSTileLayout;
import com.android.systemui.qs.QSPanelControllerBase.TileRecord;
@@ -59,8 +60,12 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
return getTop();
}
@Override
public void setListening(boolean listening) {
setListening(listening, null);
}
@Override
public void setListening(boolean listening, UiEventLogger uiEventLogger) {
if (mListening == listening) return;
mListening = listening;
for (TileRecord record : mRecords) {

View File

@@ -42,6 +42,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.util.animation.DisappearParameters;
@@ -76,6 +77,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
@Mock
private MetricsLogger mMetricsLogger;
private UiEventLoggerFake mUiEventLogger = new UiEventLoggerFake();
@Mock
private QSLogger mQSLogger;
private DumpManager mDumpManager = new DumpManager();
@Mock
QSTileImpl mQSTile;
@@ -90,9 +93,10 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
private class TestableQSPanelControllerBase extends QSPanelControllerBase<QSPanel> {
protected TestableQSPanelControllerBase(QSPanel view, QSTileHost host,
QSCustomizerController qsCustomizerController, MediaHost mediaHost,
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, DumpManager dumpManager) {
super(view, host, qsCustomizerController, true, mediaHost,
metricsLogger, uiEventLogger, dumpManager);
MetricsLogger metricsLogger, UiEventLogger uiEventLogger, QSLogger qsLogger,
DumpManager dumpManager) {
super(view, host, qsCustomizerController, true, mediaHost, metricsLogger, uiEventLogger,
qsLogger, dumpManager);
}
@Override
@@ -110,6 +114,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
when(mQSPanel.openPanelEvent()).thenReturn(QSEvent.QS_PANEL_EXPANDED);
when(mQSPanel.closePanelEvent()).thenReturn(QSEvent.QS_PANEL_COLLAPSED);
when(mQSPanel.createRegularTileLayout()).thenReturn(mPagedTileLayout);
when(mQSPanel.getTileLayout()).thenReturn(mPagedTileLayout);
when(mQSTile.getTileSpec()).thenReturn("dnd");
when(mQSTileHost.getTiles()).thenReturn(Collections.singleton(mQSTile));
when(mQSTileHost.createTileView(eq(mQSTile), anyBoolean())).thenReturn(mQSTileView);
when(mQSTileRevealControllerFactory.create(any(), any()))
@@ -117,7 +123,8 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
when(mMediaHost.getDisappearParameters()).thenReturn(new DisappearParameters());
mController = new TestableQSPanelControllerBase(mQSPanel, mQSTileHost,
mQSCustomizerController, mMediaHost, mMetricsLogger, mUiEventLogger, mDumpManager);
mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager);
mController.init();
reset(mQSTileRevealController);
@@ -127,9 +134,9 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
public void testSetRevealExpansion_preAttach() {
mController.onViewDetached();
QSPanelControllerBase<QSPanel> controller = new QSPanelControllerBase<QSPanel>(
mQSPanel, mQSTileHost, mQSCustomizerController, true, mMediaHost, mMetricsLogger,
mUiEventLogger, mDumpManager) {
QSPanelControllerBase<QSPanel> controller = new TestableQSPanelControllerBase(mQSPanel,
mQSTileHost, mQSCustomizerController, mMediaHost,
mMetricsLogger, mUiEventLogger, mQSLogger, mDumpManager) {
@Override
protected QSTileRevealController createTileRevealController() {
return mQSTileRevealController;
@@ -197,4 +204,14 @@ public class QSPanelControllerBaseTest extends SysuiTestCase {
assertEquals(expected, w.getBuffer().toString());
}
@Test
public void setListening() {
mController.setListening(true);
verify(mQSLogger).logAllTilesChangeListening(true, "QSPanel", "dnd");
verify(mPagedTileLayout).setListening(true, mUiEventLogger);
mController.setListening(false);
verify(mQSLogger).logAllTilesChangeListening(false, "QSPanel", "dnd");
verify(mPagedTileLayout).setListening(false, mUiEventLogger);
}
}

View File

@@ -36,6 +36,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.qs.customize.QSCustomizerController;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.settings.brightness.BrightnessController;
import com.android.systemui.settings.brightness.BrightnessSlider;
@@ -77,6 +78,8 @@ public class QSPanelControllerTest extends SysuiTestCase {
@Mock
private QSSecurityFooter mQSSecurityFooter;
@Mock
private QSLogger mQSLogger;
@Mock
private BrightnessController.Factory mBrightnessControllerFactory;
@Mock
private BrightnessController mBrightnessController;
@@ -91,7 +94,6 @@ public class QSPanelControllerTest extends SysuiTestCase {
@Mock
PagedTileLayout mPagedTileLayout;
private QSPanelController mController;
@Before
@@ -114,7 +116,7 @@ public class QSPanelControllerTest extends SysuiTestCase {
mController = new QSPanelController(mQSPanel, mQSSecurityFooter, mTunerService,
mQSTileHost, mQSCustomizerController, true, mMediaHost,
mQSTileRevealControllerFactory, mDumpManager, mMetricsLogger, mUiEventLogger,
mBrightnessControllerFactory, mToggleSliderViewControllerFactory);
mQSLogger, mBrightnessControllerFactory, mToggleSliderViewControllerFactory);
mController.init();
}

View File

@@ -32,8 +32,6 @@ import android.widget.FrameLayout;
import androidx.test.filters.SmallTest;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.testing.UiEventLoggerFake;
import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.ActivityStarter;
@@ -55,7 +53,6 @@ import java.util.Collections;
@SmallTest
public class QSPanelTest extends SysuiTestCase {
private MetricsLogger mMetricsLogger;
private TestableLooper mTestableLooper;
private QSPanel mQsPanel;
@Mock
@@ -73,7 +70,6 @@ public class QSPanelTest extends SysuiTestCase {
private QSTileView mQSTileView;
@Mock
private ActivityStarter mActivityStarter;
private UiEventLoggerFake mUiEventLogger;
@Before
public void setup() throws Exception {
@@ -88,10 +84,8 @@ public class QSPanelTest extends SysuiTestCase {
mDndTileRecord.tile = dndTile;
mDndTileRecord.tileView = mQSTileView;
mUiEventLogger = new UiEventLoggerFake();
mTestableLooper.runWithLooper(() -> {
mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class);
mQsPanel = new QSPanel(mContext, null, mQSLogger, mUiEventLogger);
mQsPanel = new QSPanel(mContext, null, mQSLogger);
mQsPanel.onFinishInflate();
// Provides a parent with non-zero size for QSPanel
mParentView = new FrameLayout(mContext);
@@ -123,15 +117,6 @@ public class QSPanelTest extends SysuiTestCase {
verify(mCallback).onShowingDetail(any(), anyInt(), anyInt());
}
@Test
public void setListening() {
mQsPanel.setListening(true, "dnd");
verify(mQSLogger).logAllTilesChangeListening(true, mQsPanel.getDumpableTag(), "dnd");
mQsPanel.setListening(false, "dnd");
verify(mQSLogger).logAllTilesChangeListening(false, mQsPanel.getDumpableTag(), "dnd");
}
@Test
public void testOpenDetailsWithNullParameter_NoException() {
mTestableLooper.processAllMessages();

View File

@@ -75,7 +75,7 @@ public class TileLayoutTest extends SysuiTestCase {
public void testSetListening_CallsSetListeningOnTile() {
QSPanelControllerBase.TileRecord tileRecord = createTileRecord();
mTileLayout.addTile(tileRecord);
mTileLayout.setListening(true);
mTileLayout.setListening(true, null);
verify(tileRecord.tile, times(1)).setListening(mTileLayout, true);
}
@@ -83,14 +83,14 @@ public class TileLayoutTest extends SysuiTestCase {
public void testSetListening_SameValueIsNoOp() {
QSPanelControllerBase.TileRecord tileRecord = createTileRecord();
mTileLayout.addTile(tileRecord);
mTileLayout.setListening(false);
mTileLayout.setListening(false, null);
verify(tileRecord.tile, times(1)).setListening(any(), anyBoolean());
}
@Test
public void testSetListening_ChangesValueForAddingFutureTiles() {
QSPanelControllerBase.TileRecord tileRecord = createTileRecord();
mTileLayout.setListening(true);
mTileLayout.setListening(true, null);
mTileLayout.addTile(tileRecord);
verify(tileRecord.tile, times(1)).setListening(mTileLayout, true);
}
@@ -98,7 +98,7 @@ public class TileLayoutTest extends SysuiTestCase {
@Test
public void testRemoveTile_CallsSetListeningFalseOnTile() {
QSPanelControllerBase.TileRecord tileRecord = createTileRecord();
mTileLayout.setListening(true);
mTileLayout.setListening(true, null);
mTileLayout.addTile(tileRecord);
mTileLayout.removeTile(tileRecord);
verify(tileRecord.tile, times(1)).setListening(mTileLayout, false);
@@ -108,7 +108,7 @@ public class TileLayoutTest extends SysuiTestCase {
public void testRemoveAllViews_CallsSetListeningFalseOnAllTiles() {
QSPanelControllerBase.TileRecord tileRecord1 = createTileRecord();
QSPanelControllerBase.TileRecord tileRecord2 = createTileRecord();
mTileLayout.setListening(true);
mTileLayout.setListening(true, null);
mTileLayout.addTile(tileRecord1);
mTileLayout.addTile(tileRecord2);
mTileLayout.removeAllViews();

View File

@@ -231,6 +231,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
when(mView.findViewById(R.id.qs_frame)).thenReturn(mQsFrame);
when(mView.findViewById(R.id.keyguard_status_view))
.thenReturn(mock(KeyguardStatusView.class));
when(mView.findViewById(R.id.keyguard_header)).thenReturn(mKeyguardStatusBar);
FlingAnimationUtils.Builder flingAnimationUtilsBuilder = new FlingAnimationUtils.Builder(
mDisplayMetrics);