Merge "Removes dependency of NotificationEntryManager on IStatusBarService."
This commit is contained in:
committed by
Android (Google) Code Review
commit
233c73431d
@@ -42,6 +42,7 @@ import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.Interpolators;
|
||||
@@ -159,6 +160,7 @@ public class NotificationMediaManager implements Dumpable {
|
||||
Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
if (!lifetimeExtended) {
|
||||
|
||||
@@ -255,6 +255,7 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
NotificationData.Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
if (removedByUser) {
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.app.Notification;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.statusbar.AlertingNotificationManager;
|
||||
import com.android.systemui.statusbar.AmbientPulseManager;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
@@ -84,6 +85,7 @@ public class NotificationAlertingManager {
|
||||
NotificationData.Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
stopAlerting(key);
|
||||
|
||||
@@ -15,8 +15,10 @@
|
||||
*/
|
||||
package com.android.systemui.statusbar.notification;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationInflater;
|
||||
|
||||
/**
|
||||
@@ -58,6 +60,12 @@ public interface NotificationEntryListener {
|
||||
default void onEntryReinflated(NotificationData.Entry entry) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an error occurred inflating the views for a notification.
|
||||
*/
|
||||
default void onInflationError(StatusBarNotification notification, Exception exception) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a notification has been removed (either because the user swiped it away or
|
||||
* because the developer retracted it).
|
||||
@@ -65,6 +73,9 @@ public interface NotificationEntryListener {
|
||||
* removed key at the time of removal.
|
||||
* @param key key of notification that was removed
|
||||
* @param old StatusBarNotification of the notification before it was removed
|
||||
* @param visibility logging data related to the visibility of the notification at the time of
|
||||
* removal, if it was removed by a user action. Null if it was not removed by
|
||||
* a user action.
|
||||
* @param lifetimeExtended true if something is artificially extending how long the notification
|
||||
* @param removedByUser true if the notification was removed by a user action
|
||||
*/
|
||||
@@ -72,6 +83,7 @@ public interface NotificationEntryListener {
|
||||
NotificationData.Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
@Nullable NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
}
|
||||
|
||||
@@ -22,18 +22,14 @@ import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.PowerManager;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.UserHandle;
|
||||
import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.NotificationStats;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.Dumpable;
|
||||
@@ -98,7 +94,6 @@ public class NotificationEntryManager implements
|
||||
private final Handler mDeferredNotificationViewUpdateHandler;
|
||||
private Runnable mUpdateNotificationViewsCallback;
|
||||
|
||||
protected IStatusBarService mBarService;
|
||||
private NotificationPresenter mPresenter;
|
||||
protected PowerManager mPowerManager;
|
||||
private NotificationListenerService.RankingMap mLatestRankingMap;
|
||||
@@ -139,8 +134,6 @@ public class NotificationEntryManager implements
|
||||
public NotificationEntryManager(Context context) {
|
||||
mContext = context;
|
||||
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
||||
mBarService = IStatusBarService.Stub.asInterface(
|
||||
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
|
||||
mBubbleController.setDismissListener(this /* bubbleEventListener */);
|
||||
mNotificationData = new NotificationData();
|
||||
mDeferredNotificationViewUpdateHandler = new Handler();
|
||||
@@ -215,26 +208,8 @@ public class NotificationEntryManager implements
|
||||
final int count = mNotificationData.getActiveNotifications().size();
|
||||
final NotificationVisibility nv = NotificationVisibility.obtain(n.getKey(), rank, count,
|
||||
true);
|
||||
|
||||
final String pkg = n.getPackageName();
|
||||
final String tag = n.getTag();
|
||||
final int id = n.getId();
|
||||
final int userId = n.getUserId();
|
||||
try {
|
||||
int dismissalSurface = NotificationStats.DISMISSAL_SHADE;
|
||||
if (mHeadsUpManager.isAlerting(n.getKey())) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_PEEK;
|
||||
} else if (mListContainer.hasPulsingNotifications()) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_AOD;
|
||||
}
|
||||
int dismissalSentiment = NotificationStats.DISMISS_SENTIMENT_NEUTRAL;
|
||||
mBarService.onNotificationClear(pkg, tag, id, userId, n.getKey(), dismissalSurface,
|
||||
dismissalSentiment, nv);
|
||||
removeNotificationInternal(
|
||||
n.getKey(), null, false /* forceRemove */, true /* removedByUser */);
|
||||
} catch (RemoteException ex) {
|
||||
// system process is dead if we're here.
|
||||
}
|
||||
removeNotificationInternal(
|
||||
n.getKey(), null, nv, false /* forceRemove */, true /* removedByUser */);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -275,12 +250,9 @@ public class NotificationEntryManager implements
|
||||
@Override
|
||||
public void handleInflationException(StatusBarNotification n, Exception e) {
|
||||
removeNotificationInternal(
|
||||
n.getKey(), null, true /* forceRemove */, false /* removedByUser */);
|
||||
try {
|
||||
mBarService.onNotificationError(n.getPackageName(), n.getTag(), n.getId(), n.getUid(),
|
||||
n.getInitialPid(), e.getMessage(), n.getUserId());
|
||||
} catch (RemoteException ex) {
|
||||
// The end is nigh.
|
||||
n.getKey(), null, null, true /* forceRemove */, false /* removedByUser */);
|
||||
for (NotificationEntryListener listener : mNotificationEntryListeners) {
|
||||
listener.onInflationError(n, e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,12 +305,13 @@ public class NotificationEntryManager implements
|
||||
@Override
|
||||
public void removeNotification(String key, NotificationListenerService.RankingMap ranking) {
|
||||
removeNotificationInternal(
|
||||
key, ranking, false /* forceRemove */, false /* removedByUser */);
|
||||
key, ranking, null, false /* forceRemove */, false /* removedByUser */);
|
||||
}
|
||||
|
||||
private void removeNotificationInternal(
|
||||
String key,
|
||||
@Nullable NotificationListenerService.RankingMap ranking,
|
||||
@Nullable NotificationVisibility visibility,
|
||||
boolean forceRemove,
|
||||
boolean removedByUser) {
|
||||
final NotificationData.Entry entry = mNotificationData.get(key);
|
||||
@@ -385,7 +358,7 @@ public class NotificationEntryManager implements
|
||||
}
|
||||
|
||||
for (NotificationEntryListener listener : mNotificationEntryListeners) {
|
||||
listener.onEntryRemoved(entry, key, old, lifetimeExtended, removedByUser);
|
||||
listener.onEntryRemoved(entry, key, old, visibility, lifetimeExtended, removedByUser);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemClock;
|
||||
import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.NotificationStats;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -32,8 +34,10 @@ import com.android.systemui.statusbar.NotificationListener;
|
||||
import com.android.systemui.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.StatusBarStateController.StateListener;
|
||||
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.stack.NotificationListContainer;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -60,7 +64,8 @@ public class NotificationLogger implements StateListener {
|
||||
// Dependencies:
|
||||
private final NotificationListenerService mNotificationListener;
|
||||
private final UiOffloadThread mUiOffloadThread;
|
||||
protected NotificationEntryManager mEntryManager;
|
||||
private final NotificationEntryManager mEntryManager;
|
||||
private HeadsUpManager mHeadsUpManager;
|
||||
|
||||
protected Handler mHandler = new Handler();
|
||||
protected IStatusBarService mBarService;
|
||||
@@ -158,12 +163,38 @@ public class NotificationLogger implements StateListener {
|
||||
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
|
||||
// Not expected to be destroyed, don't need to unsubscribe
|
||||
statusBarStateController.addCallback(this);
|
||||
|
||||
entryManager.addNotificationEntryListener(new NotificationEntryListener() {
|
||||
@Override
|
||||
public void onEntryRemoved(
|
||||
NotificationData.Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
if (removedByUser && visibility != null) {
|
||||
logNotificationClear(key, entry.notification, visibility);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInflationError(
|
||||
StatusBarNotification notification,
|
||||
Exception exception) {
|
||||
logNotificationError(notification, exception);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void setUpWithContainer(NotificationListContainer listContainer) {
|
||||
mListContainer = listContainer;
|
||||
}
|
||||
|
||||
public void setHeadsUpManager(HeadsUpManager headsUpManager) {
|
||||
mHeadsUpManager = headsUpManager;
|
||||
}
|
||||
|
||||
public void stopNotificationLogging() {
|
||||
// Report all notifications as invisible and turn down the
|
||||
// reporter.
|
||||
@@ -193,6 +224,45 @@ public class NotificationLogger implements StateListener {
|
||||
}
|
||||
}
|
||||
|
||||
private void logNotificationClear(String key, StatusBarNotification notification,
|
||||
NotificationVisibility nv) {
|
||||
final String pkg = notification.getPackageName();
|
||||
final String tag = notification.getTag();
|
||||
final int id = notification.getId();
|
||||
final int userId = notification.getUserId();
|
||||
try {
|
||||
int dismissalSurface = NotificationStats.DISMISSAL_SHADE;
|
||||
if (mHeadsUpManager.isAlerting(key)) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_PEEK;
|
||||
} else if (mListContainer.hasPulsingNotifications()) {
|
||||
dismissalSurface = NotificationStats.DISMISSAL_AOD;
|
||||
}
|
||||
int dismissalSentiment = NotificationStats.DISMISS_SENTIMENT_NEUTRAL;
|
||||
mBarService.onNotificationClear(pkg, tag, id, userId, notification.getKey(),
|
||||
dismissalSurface,
|
||||
dismissalSentiment, nv);
|
||||
} catch (RemoteException ex) {
|
||||
// system process is dead if we're here.
|
||||
}
|
||||
}
|
||||
|
||||
private void logNotificationError(
|
||||
StatusBarNotification notification,
|
||||
Exception exception) {
|
||||
try {
|
||||
mBarService.onNotificationError(
|
||||
notification.getPackageName(),
|
||||
notification.getTag(),
|
||||
notification.getId(),
|
||||
notification.getUid(),
|
||||
notification.getInitialPid(),
|
||||
exception.getMessage(),
|
||||
notification.getUserId());
|
||||
} catch (RemoteException ex) {
|
||||
// The end is nigh.
|
||||
}
|
||||
}
|
||||
|
||||
private void logNotificationVisibilityChanges(
|
||||
Collection<NotificationVisibility> newlyVisible,
|
||||
Collection<NotificationVisibility> noLongerVisible) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import android.os.SystemClock;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.statusbar.AlertingNotificationManager;
|
||||
import com.android.systemui.statusbar.AmbientPulseManager;
|
||||
@@ -220,6 +221,7 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
|
||||
Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
// Removes any alerts pending on this entry. Note that this will not stop any inflation
|
||||
|
||||
@@ -868,6 +868,7 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
mNotificationPanel.setHeadsUpManager(mHeadsUpManager);
|
||||
mGroupManager.setHeadsUpManager(mHeadsUpManager);
|
||||
mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager);
|
||||
mNotificationLogger.setHeadsUpManager(mHeadsUpManager);
|
||||
putComponent(HeadsUpManager.class, mHeadsUpManager);
|
||||
|
||||
createNavigationBar();
|
||||
|
||||
@@ -37,6 +37,7 @@ import android.widget.TextView;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.statusbar.NotificationVisibility;
|
||||
import com.android.internal.widget.MessagingGroup;
|
||||
import com.android.internal.widget.MessagingMessage;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
@@ -195,6 +196,7 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
|
||||
Entry entry,
|
||||
String key,
|
||||
StatusBarNotification old,
|
||||
NotificationVisibility visibility,
|
||||
boolean lifetimeExtended,
|
||||
boolean removedByUser) {
|
||||
if (!lifetimeExtended) {
|
||||
|
||||
@@ -52,7 +52,6 @@ import android.util.ArraySet;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.ForegroundServiceController;
|
||||
import com.android.systemui.InitController;
|
||||
@@ -109,7 +108,6 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
@Mock private HeadsUpManager mHeadsUpManager;
|
||||
@Mock private NotificationListenerService.RankingMap mRankingMap;
|
||||
@Mock private RemoteInputController mRemoteInputController;
|
||||
@Mock private IStatusBarService mBarService;
|
||||
|
||||
// Dependency mocks:
|
||||
@Mock private ForegroundServiceController mForegroundServiceController;
|
||||
@@ -132,9 +130,8 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
private class TestableNotificationEntryManager extends NotificationEntryManager {
|
||||
private final CountDownLatch mCountDownLatch;
|
||||
|
||||
public TestableNotificationEntryManager(Context context, IStatusBarService barService) {
|
||||
TestableNotificationEntryManager(Context context) {
|
||||
super(context);
|
||||
mBarService = barService;
|
||||
mCountDownLatch = new CountDownLatch(1);
|
||||
}
|
||||
|
||||
@@ -227,7 +224,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
mEntry = new NotificationData.Entry(mSbn);
|
||||
mEntry.expandedIcon = mock(StatusBarIconView.class);
|
||||
|
||||
mEntryManager = new TestableNotificationEntryManager(mContext, mBarService);
|
||||
mEntryManager = new TestableNotificationEntryManager(mContext);
|
||||
Dependency.get(InitController.class).executePostInitTasks();
|
||||
mEntryManager.setUpWithPresenter(mPresenter, mListContainer, mHeadsUpManager);
|
||||
mEntryManager.addNotificationEntryListener(mEntryListener);
|
||||
@@ -258,8 +255,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
assertTrue(mEntryManager.getCountDownLatch().await(10, TimeUnit.SECONDS));
|
||||
|
||||
// Check that no inflation error occurred.
|
||||
verify(mBarService, never()).onNotificationError(any(), any(), anyInt(), anyInt(), anyInt(),
|
||||
any(), anyInt());
|
||||
verify(mEntryListener, never()).onInflationError(any(), any());
|
||||
verify(mForegroundServiceController).addNotification(eq(mSbn), anyInt());
|
||||
|
||||
// Row inflation:
|
||||
@@ -293,8 +289,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
// Wait for content update.
|
||||
assertTrue(mEntryManager.getCountDownLatch().await(10, TimeUnit.SECONDS));
|
||||
|
||||
verify(mBarService, never()).onNotificationError(any(), any(), anyInt(), anyInt(), anyInt(),
|
||||
any(), anyInt());
|
||||
verify(mEntryListener, never()).onInflationError(any(), any());
|
||||
|
||||
verify(mPresenter).updateNotificationViews();
|
||||
verify(mForegroundServiceController).updateNotification(eq(mSbn), anyInt());
|
||||
@@ -313,14 +308,13 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
|
||||
mEntryManager.removeNotification(mSbn.getKey(), mRankingMap);
|
||||
|
||||
verify(mBarService, never()).onNotificationError(any(), any(), anyInt(), anyInt(), anyInt(),
|
||||
any(), anyInt());
|
||||
verify(mEntryListener, never()).onInflationError(any(), any());
|
||||
|
||||
verify(mForegroundServiceController).removeNotification(mSbn);
|
||||
verify(mListContainer).cleanUpViewStateForEntry(mEntry);
|
||||
verify(mPresenter).updateNotificationViews();
|
||||
verify(mEntryListener).onEntryRemoved(mEntry, mSbn.getKey(), mSbn,
|
||||
false /* lifetimeExtended */, false /* removedByUser */);
|
||||
null, false /* lifetimeExtended */, false /* removedByUser */);
|
||||
verify(mRow).setRemoved();
|
||||
|
||||
assertNull(mEntryManager.getNotificationData().get(mSbn.getKey()));
|
||||
@@ -345,7 +339,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
|
||||
assertNotNull(mEntryManager.getNotificationData().get(mSbn.getKey()));
|
||||
verify(extender).setShouldManageLifetime(mEntry, true /* shouldManage */);
|
||||
verify(mEntryListener).onEntryRemoved(mEntry, mSbn.getKey(), null,
|
||||
true /* lifetimeExtended */, false /* removedByUser */);
|
||||
null, true /* lifetimeExtended */, false /* removedByUser */);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -28,7 +28,6 @@ import static org.mockito.Mockito.when;
|
||||
import android.app.Notification;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.support.test.filters.SmallTest;
|
||||
@@ -41,7 +40,6 @@ import com.android.systemui.Dependency;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.UiOffloadThread;
|
||||
import com.android.systemui.statusbar.NotificationListener;
|
||||
import com.android.systemui.statusbar.NotificationPresenter;
|
||||
import com.android.systemui.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.notification.NotificationData;
|
||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||
@@ -56,7 +54,6 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.stubbing.Answer;
|
||||
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
|
||||
@@ -67,7 +64,6 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
private static final String TEST_PACKAGE_NAME = "test";
|
||||
private static final int TEST_UID = 0;
|
||||
|
||||
@Mock private NotificationPresenter mPresenter;
|
||||
@Mock private NotificationListContainer mListContainer;
|
||||
@Mock private IStatusBarService mBarService;
|
||||
@Mock private NotificationData mNotificationData;
|
||||
@@ -78,21 +74,21 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
@Mock private NotificationListener mListener;
|
||||
|
||||
private NotificationData.Entry mEntry;
|
||||
private StatusBarNotification mSbn;
|
||||
private TestableNotificationLogger mLogger;
|
||||
private ConcurrentLinkedQueue<AssertionError> mErrorQueue = new ConcurrentLinkedQueue<>();
|
||||
|
||||
@Before
|
||||
public void setUp() throws RemoteException {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mDependency.injectTestDependency(NotificationEntryManager.class, mEntryManager);
|
||||
mDependency.injectTestDependency(NotificationListener.class, mListener);
|
||||
|
||||
when(mEntryManager.getNotificationData()).thenReturn(mNotificationData);
|
||||
|
||||
mSbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME, 0, null, TEST_UID,
|
||||
StatusBarNotification sbn = new StatusBarNotification(TEST_PACKAGE_NAME, TEST_PACKAGE_NAME,
|
||||
0, null, TEST_UID,
|
||||
0, new Notification(), UserHandle.CURRENT, null, 0);
|
||||
mEntry = new NotificationData.Entry(mSbn);
|
||||
mEntry = new NotificationData.Entry(sbn);
|
||||
mEntry.setRow(mRow);
|
||||
|
||||
mLogger = new TestableNotificationLogger(mListener, Dependency.get(UiOffloadThread.class),
|
||||
@@ -106,7 +102,7 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
NotificationVisibility.obtain(mEntry.key, 0, 1, true)
|
||||
};
|
||||
NotificationVisibility[] noLongerVisibleKeys = {};
|
||||
doAnswer((Answer) invocation -> {
|
||||
doAnswer(invocation -> {
|
||||
try {
|
||||
assertArrayEquals(newlyVisibleKeys,
|
||||
(NotificationVisibility[]) invocation.getArguments()[0]);
|
||||
@@ -158,7 +154,7 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
|
||||
private class TestableNotificationLogger extends NotificationLogger {
|
||||
|
||||
public TestableNotificationLogger(NotificationListener notificationListener,
|
||||
TestableNotificationLogger(NotificationListener notificationListener,
|
||||
UiOffloadThread uiOffloadThread,
|
||||
NotificationEntryManager entryManager,
|
||||
StatusBarStateController statusBarStateController,
|
||||
@@ -169,13 +165,9 @@ public class NotificationLoggerTest extends SysuiTestCase {
|
||||
mHandler = Handler.createAsync(Looper.myLooper());
|
||||
}
|
||||
|
||||
public OnChildLocationsChangedListener
|
||||
OnChildLocationsChangedListener
|
||||
getChildLocationsChangedListenerForTest() {
|
||||
return mNotificationLocationsChangedListener;
|
||||
}
|
||||
|
||||
public Handler getHandlerForTest() {
|
||||
return mHandler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,7 +237,8 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
|
||||
mGroupManager.onEntryAdded(summaryEntry);
|
||||
mGroupManager.onEntryAdded(childEntry);
|
||||
|
||||
mNotificationEntryListener.onEntryRemoved(childEntry, childEntry.key, null, false, false);
|
||||
mNotificationEntryListener.onEntryRemoved(childEntry, childEntry.key, null, null,
|
||||
false, false);
|
||||
|
||||
assertFalse(mGroupAlertTransferHelper.isAlertTransferPending(childEntry));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user