summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/logging/InstanceId.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLogger.java91
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerImpl.java42
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/Notifications.proto46
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/SbnBuilder.java17
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java26
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerFake.java52
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java3
10 files changed, 8 insertions, 303 deletions
diff --git a/core/java/com/android/internal/logging/InstanceId.java b/core/java/com/android/internal/logging/InstanceId.java
index c90d851201a2..85643fcffa2f 100644
--- a/core/java/com/android/internal/logging/InstanceId.java
+++ b/core/java/com/android/internal/logging/InstanceId.java
@@ -48,17 +48,6 @@ public final class InstanceId implements Parcelable {
return mId;
}
- /**
- * Create a fake instance ID for testing purposes. Not for production use. See also
- * InstanceIdSequenceFake, which is a testing replacement for InstanceIdSequence.
- * @param id The ID you want to assign.
- * @return new InstanceId.
- */
- @VisibleForTesting
- public static InstanceId fakeInstanceId(int id) {
- return new InstanceId(id);
- }
-
@Override
public int hashCode() {
return mId;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
index c9ebc3597baf..d0b553db2100 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
@@ -43,8 +43,6 @@ import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl;
import com.android.systemui.statusbar.notification.init.NotificationsControllerStub;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
-import com.android.systemui.statusbar.notification.logging.NotificationPanelLogger;
-import com.android.systemui.statusbar.notification.logging.NotificationPanelLoggerImpl;
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -146,22 +144,13 @@ public interface NotificationsModule {
@UiBackground Executor uiBgExecutor,
NotificationEntryManager entryManager,
StatusBarStateController statusBarStateController,
- NotificationLogger.ExpansionStateLogger expansionStateLogger,
- NotificationPanelLogger notificationPanelLogger) {
+ NotificationLogger.ExpansionStateLogger expansionStateLogger) {
return new NotificationLogger(
notificationListener,
uiBgExecutor,
entryManager,
statusBarStateController,
- expansionStateLogger,
- notificationPanelLogger);
- }
-
- /** Provides an instance of {@link NotificationPanelLogger} */
- @Singleton
- @Provides
- static NotificationPanelLogger provideNotificationPanelLogger() {
- return new NotificationPanelLoggerImpl();
+ expansionStateLogger);
}
/** Provides an instance of {@link NotificationBlockingHelperManager} */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
index a088d85b2288..6e161c9686dd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationLogger.java
@@ -70,7 +70,6 @@ public class NotificationLogger implements StateListener {
private final NotificationListenerService mNotificationListener;
private final Executor mUiBgExecutor;
private final NotificationEntryManager mEntryManager;
- private final NotificationPanelLogger mNotificationPanelLogger;
private HeadsUpManager mHeadsUpManager;
private final ExpansionStateLogger mExpansionStateLogger;
@@ -199,15 +198,13 @@ public class NotificationLogger implements StateListener {
@UiBackground Executor uiBgExecutor,
NotificationEntryManager entryManager,
StatusBarStateController statusBarStateController,
- ExpansionStateLogger expansionStateLogger,
- NotificationPanelLogger notificationPanelLogger) {
+ ExpansionStateLogger expansionStateLogger) {
mNotificationListener = notificationListener;
mUiBgExecutor = uiBgExecutor;
mEntryManager = entryManager;
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
mExpansionStateLogger = expansionStateLogger;
- mNotificationPanelLogger = notificationPanelLogger;
// Not expected to be destroyed, don't need to unsubscribe
statusBarStateController.addCallback(this);
@@ -267,9 +264,6 @@ public class NotificationLogger implements StateListener {
// (Note that in cases where the scroller does emit events, this
// additional event doesn't break anything.)
mNotificationLocationsChangedListener.onChildLocationsChanged();
- // TODO - determine if this work needs to be put on mUiBgExecutor
- mNotificationPanelLogger.logPanelShown(mListContainer.hasPulsingNotifications(),
- mEntryManager.getVisibleNotifications());
}
private void setDozing(boolean dozing) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLogger.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLogger.java
deleted file mode 100644
index 0d0bc981382e..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLogger.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.notification.logging;
-
-import android.annotation.Nullable;
-import android.service.notification.StatusBarNotification;
-
-import com.android.internal.logging.UiEvent;
-import com.android.internal.logging.UiEventLogger;
-import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-
-import java.util.List;
-
-import nano.Notifications;
-
-/**
- * Statsd logging for notification panel.
- */
-public interface NotificationPanelLogger {
-
- /**
- * Log a NOTIFICATION_PANEL_REPORTED statsd event.
- * @param visibleNotifications as provided by NotificationEntryManager.getVisibleNotifications()
- */
- void logPanelShown(boolean isLockscreen,
- @Nullable List<NotificationEntry> visibleNotifications);
-
- enum NotificationPanelEvent implements UiEventLogger.UiEventEnum {
- @UiEvent(doc = "Notification panel shown from status bar.")
- NOTIFICATION_PANEL_OPEN_STATUS_BAR(200),
- @UiEvent(doc = "Notification panel shown from lockscreen.")
- NOTIFICATION_PANEL_OPEN_LOCKSCREEN(201);
-
- private final int mId;
- NotificationPanelEvent(int id) {
- mId = id;
- }
- @Override public int getId() {
- return mId;
- }
-
- public static NotificationPanelEvent fromLockscreen(boolean isLockscreen) {
- return isLockscreen ? NOTIFICATION_PANEL_OPEN_LOCKSCREEN :
- NOTIFICATION_PANEL_OPEN_STATUS_BAR;
- }
- }
-
- /**
- * Composes a NotificationsList proto from the list of visible notifications.
- * @param visibleNotifications as provided by NotificationEntryManager.getVisibleNotifications()
- * @return NotificationList proto suitable for SysUiStatsLog.write(NOTIFICATION_PANEL_REPORTED)
- */
- static Notifications.NotificationList toNotificationProto(
- @Nullable List<NotificationEntry> visibleNotifications) {
- Notifications.NotificationList notificationList = new Notifications.NotificationList();
- if (visibleNotifications == null) {
- return notificationList;
- }
- final Notifications.Notification[] nn =
- new Notifications.Notification[visibleNotifications.size()];
- int i = 0;
- for (NotificationEntry ne : visibleNotifications) {
- StatusBarNotification n = ne.getSbn();
- Notifications.Notification np = new Notifications.Notification();
- np.uid = n.getUid();
- np.packageName = n.getPackageName();
- np.instanceId = n.getInstanceId().getId();
- // TODO set np.groupInstanceId
- np.isGroupSummary = n.getNotification().isGroupSummary();
- np.section = 1 + ne.getBucket(); // We want 0 to mean not set / unknown
- nn[i] = np;
- ++i;
- }
- notificationList.notifications = nn;
- return notificationList;
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerImpl.java
deleted file mode 100644
index 0df426a4aafe..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.notification.logging;
-
-import com.android.systemui.shared.system.SysUiStatsLog;
-import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-
-import com.google.protobuf.nano.MessageNano;
-
-import java.util.List;
-
-import nano.Notifications;
-
-/**
- * Normal implementation of NotificationPanelLogger.
- */
-public class NotificationPanelLoggerImpl implements NotificationPanelLogger {
- @Override
- public void logPanelShown(boolean isLockscreen,
- List<NotificationEntry> visibleNotifications) {
- final Notifications.NotificationList proto = NotificationPanelLogger.toNotificationProto(
- visibleNotifications);
- SysUiStatsLog.write(SysUiStatsLog.NOTIFICATION_PANEL_REPORTED,
- /* int event_id */ NotificationPanelEvent.fromLockscreen(isLockscreen).getId(),
- /* int num_notifications*/ proto.notifications.length,
- /* byte[] notifications*/ MessageNano.toByteArray(proto));
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/Notifications.proto b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/Notifications.proto
deleted file mode 100644
index 94a7fcb47670..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/Notifications.proto
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * NotificationList proto from atoms.proto, duplicated here so that it's accessible in the build.
- * Must be kept in sync with the version in atoms.proto.
- */
-
-message Notification {
- // The notifying app's uid and package.
- optional int32 uid = 1;
- optional string package_name = 2;
- // A small system-assigned identifier for the notification.
- optional int32 instance_id = 3;
-
- // Grouping information.
- optional int32 group_instance_id = 4;
- optional bool is_group_summary = 5;
-
- // The section of the shade that the notification is in.
- // See NotificationSectionsManager.PriorityBucket.
- enum NotificationSection {
- SECTION_UNKNOWN = 0;
- SECTION_PEOPLE = 1;
- SECTION_ALERTING = 2;
- SECTION_SILENT = 3;
- }
- optional NotificationSection section = 6;
-}
-
-message NotificationList {
- repeated Notification notifications = 1; // An ordered sequence of notifications.
-} \ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SbnBuilder.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SbnBuilder.java
index 742dfee9460a..62f406ff835a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/SbnBuilder.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/SbnBuilder.java
@@ -22,8 +22,6 @@ import android.content.Context;
import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
-import com.android.internal.logging.InstanceId;
-
/**
* Convenience builder for {@link StatusBarNotification} since its constructor is terrifying.
*
@@ -42,7 +40,6 @@ public class SbnBuilder {
private UserHandle mUser = UserHandle.of(0);
private String mOverrideGroupKey;
private long mPostTime;
- private InstanceId mInstanceId;
public SbnBuilder() {
}
@@ -58,7 +55,6 @@ public class SbnBuilder {
mUser = source.getUser();
mOverrideGroupKey = source.getOverrideGroupKey();
mPostTime = source.getPostTime();
- mInstanceId = source.getInstanceId();
}
public StatusBarNotification build() {
@@ -75,7 +71,7 @@ public class SbnBuilder {
notification.setBubbleMetadata(mBubbleMetadata);
}
- StatusBarNotification result = new StatusBarNotification(
+ return new StatusBarNotification(
mPkg,
mOpPkg,
mId,
@@ -86,12 +82,6 @@ public class SbnBuilder {
mUser,
mOverrideGroupKey,
mPostTime);
- if (mInstanceId != null) {
- result.setInstanceId(mInstanceId);
- } else {
- result.setInstanceId(InstanceId.fakeInstanceId(1));
- }
- return result;
}
public SbnBuilder setPkg(String pkg) {
@@ -185,9 +175,4 @@ public class SbnBuilder {
mBubbleMetadata = data;
return this;
}
-
- public SbnBuilder setInstanceId(InstanceId instanceId) {
- mInstanceId = instanceId;
- return this;
- }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
index 79ba13681521..d826ce1bbdd8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationLoggerTest.java
@@ -16,10 +16,7 @@
package com.android.systemui.statusbar.notification.logging;
-import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING;
-
import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
@@ -65,8 +62,6 @@ import org.mockito.MockitoAnnotations;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.Executor;
-import nano.Notifications;
-
@SmallTest
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@@ -86,10 +81,9 @@ public class NotificationLoggerTest extends SysuiTestCase {
private NotificationEntry mEntry;
private TestableNotificationLogger mLogger;
+ private NotificationEntryListener mNotificationEntryListener;
private ConcurrentLinkedQueue<AssertionError> mErrorQueue = new ConcurrentLinkedQueue<>();
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
- private NotificationPanelLoggerFake mNotificationPanelLoggerFake =
- new NotificationPanelLoggerFake();
@Before
public void setUp() {
@@ -111,6 +105,7 @@ public class NotificationLoggerTest extends SysuiTestCase {
mExpansionStateLogger);
mLogger.setUpWithContainer(mListContainer);
verify(mEntryManager).addNotificationEntryListener(mEntryListenerCaptor.capture());
+ mNotificationEntryListener = mEntryListenerCaptor.getValue();
}
@Test
@@ -169,21 +164,6 @@ public class NotificationLoggerTest extends SysuiTestCase {
verify(mBarService, times(1)).onNotificationVisibilityChanged(any(), any());
}
- @Test
- public void testLogPanelShownOnLoggingStart() {
- when(mEntryManager.getVisibleNotifications()).thenReturn(Lists.newArrayList(mEntry));
- mLogger.startNotificationLogging();
- assertEquals(1, mNotificationPanelLoggerFake.getCalls().size());
- assertEquals(false, mNotificationPanelLoggerFake.get(0).isDozing);
- assertEquals(1, mNotificationPanelLoggerFake.get(0).list.notifications.length);
- Notifications.Notification n = mNotificationPanelLoggerFake.get(0).list.notifications[0];
- assertEquals(TEST_PACKAGE_NAME, n.packageName);
- assertEquals(TEST_UID, n.uid);
- assertEquals(1, n.instanceId);
- assertEquals(false, n.isGroupSummary);
- assertEquals(1 + BUCKET_ALERTING, n.section);
- }
-
private class TestableNotificationLogger extends NotificationLogger {
TestableNotificationLogger(NotificationListener notificationListener,
@@ -193,7 +173,7 @@ public class NotificationLoggerTest extends SysuiTestCase {
IStatusBarService barService,
ExpansionStateLogger expansionStateLogger) {
super(notificationListener, uiBgExecutor, entryManager, statusBarStateController,
- expansionStateLogger, mNotificationPanelLoggerFake);
+ expansionStateLogger);
mBarService = barService;
// Make this on the current thread so we can wait for it during tests.
mHandler = Handler.createAsync(Looper.myLooper());
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerFake.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerFake.java
deleted file mode 100644
index 551f3977e968..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/logging/NotificationPanelLoggerFake.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.notification.logging;
-
-import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import nano.Notifications;
-
-public class NotificationPanelLoggerFake implements NotificationPanelLogger {
- private List<CallRecord> mCalls = new ArrayList<>();
-
- List<CallRecord> getCalls() {
- return mCalls;
- }
-
- CallRecord get(int index) {
- return mCalls.get(index);
- }
-
- @Override
- public void logPanelShown(boolean isLockscreen,
- List<NotificationEntry> visibleNotifications) {
- mCalls.add(new CallRecord(isLockscreen,
- NotificationPanelLogger.toNotificationProto(visibleNotifications)));
- }
-
- public static class CallRecord {
- public boolean isDozing;
- public Notifications.NotificationList list;
- CallRecord(boolean isDozing, Notifications.NotificationList list) {
- this.isDozing = isDozing;
- this.list = list;
- }
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index 0035b98c9a8d..5253e2ca9e42 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -122,7 +122,6 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
-import com.android.systemui.statusbar.notification.logging.NotificationPanelLoggerFake;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
@@ -274,7 +273,7 @@ public class StatusBarTest extends SysuiTestCase {
mMetricsLogger = new FakeMetricsLogger();
NotificationLogger notificationLogger = new NotificationLogger(mNotificationListener,
mUiBgExecutor, mock(NotificationEntryManager.class), mStatusBarStateController,
- mExpansionStateLogger, new NotificationPanelLoggerFake());
+ mExpansionStateLogger);
notificationLogger.setVisibilityReporter(mock(Runnable.class));
when(mCommandQueue.asBinder()).thenReturn(new Binder());