New Pipeline: Add a debug flag to always log the ShadeListBuilder result.
Test: manual Change-Id: I79010ecf8752dfc0d6178f3c4c428928051ddcb2
This commit is contained in:
@@ -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 =
|
||||
|
||||
@@ -24,8 +24,8 @@ import com.android.systemui.flags.Flags
|
||||
import javax.inject.Inject
|
||||
|
||||
class NotifPipelineFlags @Inject constructor(
|
||||
val context: Context,
|
||||
val featureFlags: FeatureFlags
|
||||
val context: Context,
|
||||
val featureFlags: FeatureFlags
|
||||
) {
|
||||
fun checkLegacyPipelineEnabled(): Boolean {
|
||||
if (!featureFlags.isEnabled(Flags.NEW_NOTIFICATION_PIPELINE_RENDERING)) {
|
||||
@@ -39,7 +39,10 @@ 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)
|
||||
featureFlags.isEnabled(Flags.SMARTSPACE) &&
|
||||
featureFlags.isEnabled(Flags.SMARTSPACE_DEDUPING)
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -404,7 +408,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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user