Merge "New Pipeline: Add a debug flag to always log the ShadeListBuilder result."

This commit is contained in:
Jeff DeCew
2021-11-29 18:43:42 +00:00
committed by Android (Google) Code Review
4 changed files with 21 additions and 3 deletions

View File

@@ -46,6 +46,10 @@ public class Flags {
public static final BooleanFlag NOTIFICATION_UPDATES =
new BooleanFlag(102, true);
public static final BooleanFlag NOTIFICATION_PIPELINE_DEVELOPER_LOGGING =
new BooleanFlag(103, false);
/***************************************/
// 200 - keyguard/lockscreen
public static final BooleanFlag KEYGUARD_LAYOUT =

View File

@@ -42,6 +42,9 @@ class NotifPipelineFlags @Inject constructor(
fun isNewPipelineEnabled(): Boolean =
featureFlags.isEnabled(Flags.NEW_NOTIFICATION_PIPELINE_RENDERING)
fun isDevLoggingEnabled(): Boolean =
featureFlags.isEnabled(Flags.NOTIFICATION_PIPELINE_DEVELOPER_LOGGING)
fun isSmartspaceDedupingEnabled(): Boolean =
featureFlags.isEnabled(Flags.SMARTSPACE) &&
featureFlags.isEnabled(Flags.SMARTSPACE_DEDUPING)

View File

@@ -42,6 +42,7 @@ import com.android.systemui.Dumpable;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.NotificationInteractionTracker;
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
@@ -87,6 +88,7 @@ public class ShadeListBuilder implements Dumpable {
private final NotificationInteractionTracker mInteractionTracker;
// used exclusivly by ShadeListBuilder#notifySectionEntriesUpdated
private final ArrayList<ListEntry> mTempSectionMembers = new ArrayList<>();
private final boolean mAlwaysLogList;
private List<ListEntry> mNotifList = new ArrayList<>();
private List<ListEntry> mNewNotifList = new ArrayList<>();
@@ -119,6 +121,7 @@ public class ShadeListBuilder implements Dumpable {
@Inject
public ShadeListBuilder(
SystemClock systemClock,
NotifPipelineFlags flags,
ShadeListBuilderLogger logger,
DumpManager dumpManager,
NotificationInteractionTracker interactionTracker
@@ -126,6 +129,7 @@ public class ShadeListBuilder implements Dumpable {
Assert.isMainThread();
mSystemClock = systemClock;
mLogger = logger;
mAlwaysLogList = flags.isDevLoggingEnabled();
mInteractionTracker = interactionTracker;
dumpManager.registerDumpable(TAG, this);
@@ -407,7 +411,7 @@ public class ShadeListBuilder implements Dumpable {
mIterationCount,
mReadOnlyNotifList.size(),
countChildren(mReadOnlyNotifList));
if (mIterationCount % 10 == 0) {
if (mAlwaysLogList || mIterationCount % 10 == 0) {
mLogger.logFinalList(mNotifList);
}
mPipelineState.setState(STATE_IDLE);

View File

@@ -32,7 +32,6 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -52,6 +51,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.NotificationInteractionTracker;
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
import com.android.systemui.statusbar.notification.collection.ShadeListBuilder.OnRenderListListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
@@ -96,7 +96,9 @@ public class ShadeListBuilderTest extends SysuiTestCase {
private ShadeListBuilder mListBuilder;
private FakeSystemClock mSystemClock = new FakeSystemClock();
@Mock private NotifPipelineFlags mNotifPipelineFlags;
@Mock private ShadeListBuilderLogger mLogger;
@Mock private DumpManager mDumpManager;
@Mock private NotifCollection mNotifCollection;
@Mock private NotificationInteractionTracker mInteractionTracker;
@Spy private OnBeforeTransformGroupsListener mOnBeforeTransformGroupsListener;
@@ -122,7 +124,12 @@ public class ShadeListBuilderTest extends SysuiTestCase {
allowTestableLooperAsMainThread();
mListBuilder = new ShadeListBuilder(
mSystemClock, mLogger, mock(DumpManager.class), mInteractionTracker);
mSystemClock,
mNotifPipelineFlags,
mLogger,
mDumpManager,
mInteractionTracker
);
mListBuilder.setOnRenderListListener(mOnRenderListListener);
mListBuilder.attach(mNotifCollection);