Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d80fb04 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

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

Test: manual
Change-Id: I79010ecf8752dfc0d6178f3c4c428928051ddcb2
parent c273e395
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -46,6 +46,10 @@ public class Flags {
    public static final BooleanFlag NOTIFICATION_UPDATES =
    public static final BooleanFlag NOTIFICATION_UPDATES =
            new BooleanFlag(102, true);
            new BooleanFlag(102, true);


    public static final BooleanFlag NOTIFICATION_PIPELINE_DEVELOPER_LOGGING =
            new BooleanFlag(103, false);


    /***************************************/
    /***************************************/
    // 200 - keyguard/lockscreen
    // 200 - keyguard/lockscreen
    public static final BooleanFlag KEYGUARD_LAYOUT =
    public static final BooleanFlag KEYGUARD_LAYOUT =
+7 −4
Original line number Original line Diff line number Diff line
@@ -39,7 +39,10 @@ class NotifPipelineFlags @Inject constructor(
    fun isNewPipelineEnabled(): Boolean = featureFlags.isEnabled(
    fun isNewPipelineEnabled(): Boolean = featureFlags.isEnabled(
            Flags.NEW_NOTIFICATION_PIPELINE_RENDERING)
            Flags.NEW_NOTIFICATION_PIPELINE_RENDERING)


    fun isDevLoggingEnabled(): Boolean =
        featureFlags.isEnabled(Flags.NOTIFICATION_PIPELINE_DEVELOPER_LOGGING)

    fun isSmartspaceDedupingEnabled(): Boolean =
    fun isSmartspaceDedupingEnabled(): Boolean =
            featureFlags.isEnabled(Flags.SMARTSPACE)
            featureFlags.isEnabled(Flags.SMARTSPACE) &&
                    && featureFlags.isEnabled(Flags.SMARTSPACE_DEDUPING)
                    featureFlags.isEnabled(Flags.SMARTSPACE_DEDUPING)
}
}
 No newline at end of file
+5 −1
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.systemui.Dumpable;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.NotificationInteractionTracker;
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.NotifSection;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeFinalizeFilterListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;
@@ -87,6 +88,7 @@ public class ShadeListBuilder implements Dumpable {
    private final NotificationInteractionTracker mInteractionTracker;
    private final NotificationInteractionTracker mInteractionTracker;
    // used exclusivly by ShadeListBuilder#notifySectionEntriesUpdated
    // used exclusivly by ShadeListBuilder#notifySectionEntriesUpdated
    private final ArrayList<ListEntry> mTempSectionMembers = new ArrayList<>();
    private final ArrayList<ListEntry> mTempSectionMembers = new ArrayList<>();
    private final boolean mAlwaysLogList;


    private List<ListEntry> mNotifList = new ArrayList<>();
    private List<ListEntry> mNotifList = new ArrayList<>();
    private List<ListEntry> mNewNotifList = new ArrayList<>();
    private List<ListEntry> mNewNotifList = new ArrayList<>();
@@ -119,6 +121,7 @@ public class ShadeListBuilder implements Dumpable {
    @Inject
    @Inject
    public ShadeListBuilder(
    public ShadeListBuilder(
            SystemClock systemClock,
            SystemClock systemClock,
            NotifPipelineFlags flags,
            ShadeListBuilderLogger logger,
            ShadeListBuilderLogger logger,
            DumpManager dumpManager,
            DumpManager dumpManager,
            NotificationInteractionTracker interactionTracker
            NotificationInteractionTracker interactionTracker
@@ -126,6 +129,7 @@ public class ShadeListBuilder implements Dumpable {
        Assert.isMainThread();
        Assert.isMainThread();
        mSystemClock = systemClock;
        mSystemClock = systemClock;
        mLogger = logger;
        mLogger = logger;
        mAlwaysLogList = flags.isDevLoggingEnabled();
        mInteractionTracker = interactionTracker;
        mInteractionTracker = interactionTracker;
        dumpManager.registerDumpable(TAG, this);
        dumpManager.registerDumpable(TAG, this);


@@ -404,7 +408,7 @@ public class ShadeListBuilder implements Dumpable {
                mIterationCount,
                mIterationCount,
                mReadOnlyNotifList.size(),
                mReadOnlyNotifList.size(),
                countChildren(mReadOnlyNotifList));
                countChildren(mReadOnlyNotifList));
        if (mIterationCount % 10 == 0) {
        if (mAlwaysLogList || mIterationCount % 10 == 0) {
            mLogger.logFinalList(mNotifList);
            mLogger.logFinalList(mNotifList);
        }
        }
        mPipelineState.setState(STATE_IDLE);
        mPipelineState.setState(STATE_IDLE);
+9 −2
Original line number Original line Diff line number Diff line
@@ -32,7 +32,6 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.times;
@@ -52,6 +51,7 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.NotificationInteractionTracker;
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.ShadeListBuilder.OnRenderListListener;
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection;
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.OnBeforeFinalizeFilterListener;
@@ -96,7 +96,9 @@ public class ShadeListBuilderTest extends SysuiTestCase {
    private ShadeListBuilder mListBuilder;
    private ShadeListBuilder mListBuilder;
    private FakeSystemClock mSystemClock = new FakeSystemClock();
    private FakeSystemClock mSystemClock = new FakeSystemClock();


    @Mock private NotifPipelineFlags mNotifPipelineFlags;
    @Mock private ShadeListBuilderLogger mLogger;
    @Mock private ShadeListBuilderLogger mLogger;
    @Mock private DumpManager mDumpManager;
    @Mock private NotifCollection mNotifCollection;
    @Mock private NotifCollection mNotifCollection;
    @Mock private NotificationInteractionTracker mInteractionTracker;
    @Mock private NotificationInteractionTracker mInteractionTracker;
    @Spy private OnBeforeTransformGroupsListener mOnBeforeTransformGroupsListener;
    @Spy private OnBeforeTransformGroupsListener mOnBeforeTransformGroupsListener;
@@ -122,7 +124,12 @@ public class ShadeListBuilderTest extends SysuiTestCase {
        allowTestableLooperAsMainThread();
        allowTestableLooperAsMainThread();


        mListBuilder = new ShadeListBuilder(
        mListBuilder = new ShadeListBuilder(
                mSystemClock, mLogger, mock(DumpManager.class), mInteractionTracker);
                mSystemClock,
                mNotifPipelineFlags,
                mLogger,
                mDumpManager,
                mInteractionTracker
        );
        mListBuilder.setOnRenderListListener(mOnRenderListListener);
        mListBuilder.setOnRenderListListener(mOnRenderListListener);


        mListBuilder.attach(mNotifCollection);
        mListBuilder.attach(mNotifCollection);