Merge "Fix NPE in NotificationLogger for real this time"
This commit is contained in:
committed by
Android (Google) Code Review
commit
46bbbdd577
@@ -174,7 +174,7 @@ public class NotificationLogger implements StateListener {
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
if (removedByUser && visibility != null && entry.notification != null) {
|
||||
if (removedByUser && visibility != null && entry != null) {
|
||||
logNotificationClear(key, entry.notification, visibility);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ import com.android.systemui.UiOffloadThread;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
import com.android.systemui.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationData;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryListener;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
|
||||
@@ -51,6 +52,8 @@ import com.google.android.collect.Lists;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
@@ -72,9 +75,11 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
// Dependency mocks:
|
||||
@Mock private NotificationEntryManager mEntryManager;
|
||||
@Mock private NotificationListener mListener;
|
||||
@Captor private ArgumentCaptor<NotificationEntryListener> mEntryListenerCaptor;
|
||||
|
||||
private NotificationData.Entry mEntry;
|
||||
private TestableNotificationLogger mLogger;
|
||||
private NotificationEntryListener mNotificationEntryListener;
|
||||
private ConcurrentLinkedQueue<AssertionError> mErrorQueue = new ConcurrentLinkedQueue<>();
|
||||
|
||||
@Before
|
||||
@@ -94,6 +99,8 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
mLogger = new TestableNotificationLogger(mListener, Dependency.get(UiOffloadThread.class),
|
||||
mEntryManager, mock(StatusBarStateController.class), mBarService);
|
||||
mLogger.setUpWithContainer(mListContainer);
|
||||
verify(mEntryManager).addNotificationEntryListener(mEntryListenerCaptor.capture());
|
||||
mNotificationEntryListener = mEntryListenerCaptor.getValue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -152,6 +159,11 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
verify(mBarService, times(1)).onNotificationVisibilityChanged(any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandleNullEntryOnEntryRemoved() {
|
||||
mNotificationEntryListener.onEntryRemoved(null, "foobar", null, null, false, false);
|
||||
}
|
||||
|
||||
private class TestableNotificationLogger extends NotificationLogger {
|
||||
|
||||
TestableNotificationLogger(NotificationListener notificationListener,
|
||||
|
||||
Reference in New Issue
Block a user