Merge "Populate buckets to ensure correct corner rounds on notifications"
This commit is contained in:
@@ -19,8 +19,8 @@ import static android.app.Notification.VISIBILITY_SECRET;
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED;
|
||||
|
||||
import static com.android.systemui.DejankUtils.whitelistIpcs;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.KeyguardManager;
|
||||
|
||||
@@ -31,7 +31,7 @@ import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_STATUS_BAR;
|
||||
|
||||
import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_NOT_CANCELED;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_ALERTING;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifStabilityManager;
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable;
|
||||
import com.android.systemui.statusbar.notification.collection.notifcollection.CollectionReadyForBuildListener;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
|
||||
import com.android.systemui.util.Assert;
|
||||
import com.android.systemui.util.time.SystemClock;
|
||||
|
||||
@@ -738,7 +739,7 @@ public class ShadeListBuilder implements Dumpable {
|
||||
if (entry instanceof GroupEntry) {
|
||||
GroupEntry parent = (GroupEntry) entry;
|
||||
for (NotificationEntry child : parent.getChildren()) {
|
||||
child.getAttachState().setSection(section);
|
||||
setEntrySection(child, section);
|
||||
}
|
||||
parent.sortChildren(sChildComparator);
|
||||
}
|
||||
@@ -957,10 +958,18 @@ public class ShadeListBuilder implements Dumpable {
|
||||
}
|
||||
}
|
||||
|
||||
entry.getAttachState().setSection(finalSection);
|
||||
setEntrySection(entry, finalSection);
|
||||
return finalSection;
|
||||
}
|
||||
|
||||
private void setEntrySection(ListEntry entry, NotifSection finalSection) {
|
||||
entry.getAttachState().setSection(finalSection);
|
||||
NotificationEntry representativeEntry = entry.getRepresentativeEntry();
|
||||
if (representativeEntry != null && finalSection != null) {
|
||||
representativeEntry.setBucket(finalSection.getBucket());
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private NotifSection findSection(ListEntry entry) {
|
||||
for (int i = 0; i < mNotifSections.size(); i++) {
|
||||
@@ -1039,13 +1048,13 @@ public class ShadeListBuilder implements Dumpable {
|
||||
void onRenderList(@NonNull List<ListEntry> entries);
|
||||
}
|
||||
|
||||
private static final NotifSectioner DEFAULT_SECTIONER =
|
||||
new NotifSectioner("UnknownSection") {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
private static final NotifSectioner DEFAULT_SECTIONER = new NotifSectioner("UnknownSection",
|
||||
NotificationPriorityBucketKt.BUCKET_UNKNOWN) {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
private static final int MIN_CHILDREN_FOR_GROUP = 2;
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.android.systemui.statusbar.notification.collection.NotifPipeline;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
|
||||
import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -102,7 +103,8 @@ public class AppOpsCoordinator implements Coordinator {
|
||||
/**
|
||||
* Puts foreground service notifications into its own section.
|
||||
*/
|
||||
private final NotifSectioner mNotifSectioner = new NotifSectioner("ForegroundService") {
|
||||
private final NotifSectioner mNotifSectioner = new NotifSectioner("ForegroundService",
|
||||
NotificationPriorityBucketKt.BUCKET_FOREGROUND_SERVICE) {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
NotificationEntry notificationEntry = entry.getRepresentativeEntry();
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.android.systemui.statusbar.notification.collection.render.NodeControl
|
||||
import com.android.systemui.statusbar.notification.dagger.PeopleHeader
|
||||
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier
|
||||
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier.Companion.TYPE_NON_PERSON
|
||||
import com.android.systemui.statusbar.notification.stack.BUCKET_PEOPLE
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
@@ -45,7 +46,7 @@ class ConversationCoordinator @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
val sectioner = object : NotifSectioner("People") {
|
||||
val sectioner = object : NotifSectioner("People", BUCKET_PEOPLE) {
|
||||
override fun isInSection(entry: ListEntry): Boolean =
|
||||
isConversation(entry.representativeEntry!!)
|
||||
override fun getHeaderNodeController() =
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.android.systemui.statusbar.notification.collection.render.NodeControl
|
||||
import com.android.systemui.statusbar.notification.dagger.IncomingHeader;
|
||||
import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder;
|
||||
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
|
||||
import com.android.systemui.statusbar.policy.HeadsUpManager;
|
||||
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
|
||||
|
||||
@@ -196,7 +197,8 @@ public class HeadsUpCoordinator implements Coordinator {
|
||||
}
|
||||
};
|
||||
|
||||
private final NotifSectioner mNotifSectioner = new NotifSectioner("HeadsUp") {
|
||||
private final NotifSectioner mNotifSectioner = new NotifSectioner("HeadsUp",
|
||||
NotificationPriorityBucketKt.BUCKET_HEADS_UP) {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
return isCurrentlyShowingHun(entry);
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.android.systemui.statusbar.notification.collection.render.NodeControl
|
||||
import com.android.systemui.statusbar.notification.collection.render.SectionHeaderController;
|
||||
import com.android.systemui.statusbar.notification.dagger.AlertingHeader;
|
||||
import com.android.systemui.statusbar.notification.dagger.SilentHeader;
|
||||
import com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -82,7 +83,8 @@ public class RankingCoordinator implements Coordinator {
|
||||
return mSilentNotifSectioner;
|
||||
}
|
||||
|
||||
private final NotifSectioner mAlertingNotifSectioner = new NotifSectioner("Alerting") {
|
||||
private final NotifSectioner mAlertingNotifSectioner = new NotifSectioner("Alerting",
|
||||
NotificationPriorityBucketKt.BUCKET_ALERTING) {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
return mHighPriorityProvider.isHighPriority(entry);
|
||||
@@ -99,7 +101,8 @@ public class RankingCoordinator implements Coordinator {
|
||||
}
|
||||
};
|
||||
|
||||
private final NotifSectioner mSilentNotifSectioner = new NotifSectioner("Silent") {
|
||||
private final NotifSectioner mSilentNotifSectioner = new NotifSectioner("Silent",
|
||||
NotificationPriorityBucketKt.BUCKET_SILENT) {
|
||||
@Override
|
||||
public boolean isInSection(ListEntry entry) {
|
||||
return !mHighPriorityProvider.isHighPriority(entry);
|
||||
|
||||
@@ -18,14 +18,17 @@ package com.android.systemui.statusbar.notification.collection.listbuilder
|
||||
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
|
||||
import com.android.systemui.statusbar.notification.collection.render.NodeController
|
||||
import com.android.systemui.statusbar.notification.stack.PriorityBucket
|
||||
|
||||
data class NotifSection(
|
||||
val sectioner: NotifSectioner,
|
||||
val index: Int
|
||||
) {
|
||||
val label: String
|
||||
get() = "Section($index, \"${sectioner.name}\")"
|
||||
get() = "Section($index, $bucket, \"${sectioner.name}\")"
|
||||
|
||||
val headerController: NodeController?
|
||||
get() = sectioner.headerNodeController
|
||||
|
||||
@PriorityBucket val bucket: Int = sectioner.bucket
|
||||
}
|
||||
|
||||
@@ -22,15 +22,28 @@ import com.android.systemui.statusbar.notification.collection.ListEntry;
|
||||
import com.android.systemui.statusbar.notification.collection.ShadeListBuilder;
|
||||
import com.android.systemui.statusbar.notification.collection.render.NodeController;
|
||||
import com.android.systemui.statusbar.notification.collection.render.NodeSpec;
|
||||
import com.android.systemui.statusbar.notification.stack.PriorityBucket;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Pluggable for participating in notif sectioning. See {@link ShadeListBuilder#setSections}.
|
||||
* Pluggable for participating in notif sectioning. See {@link ShadeListBuilder#setSectioners}.
|
||||
*/
|
||||
public abstract class NotifSectioner extends Pluggable<NotifSectioner> {
|
||||
protected NotifSectioner(String name) {
|
||||
@PriorityBucket
|
||||
private final int mBucket;
|
||||
|
||||
protected NotifSectioner(String name, @PriorityBucket int bucket) {
|
||||
super(name);
|
||||
mBucket = bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the "bucket" value to apply to entries in this section
|
||||
*/
|
||||
@PriorityBucket
|
||||
public final int getBucket() {
|
||||
return mBucket;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
package com.android.systemui.statusbar.notification.logging;
|
||||
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_FOREGROUND_SERVICE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_HEADS_UP;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_FOREGROUND_SERVICE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_HEADS_UP;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.android.systemui.statusbar.notification.stack
|
||||
|
||||
import android.annotation.IntDef
|
||||
|
||||
/**
|
||||
* For now, declare the available notification buckets (sections) here so that other
|
||||
* presentation code can decide what to do based on an entry's buckets
|
||||
*/
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
@IntDef(
|
||||
prefix = ["BUCKET_"],
|
||||
value = [
|
||||
BUCKET_UNKNOWN, BUCKET_MEDIA_CONTROLS, BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE,
|
||||
BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT
|
||||
]
|
||||
)
|
||||
annotation class PriorityBucket
|
||||
|
||||
const val BUCKET_UNKNOWN = 0
|
||||
const val BUCKET_MEDIA_CONTROLS = 1
|
||||
const val BUCKET_HEADS_UP = 2
|
||||
const val BUCKET_FOREGROUND_SERVICE = 3
|
||||
const val BUCKET_PEOPLE = 4
|
||||
const val BUCKET_ALERTING = 5
|
||||
const val BUCKET_SILENT = 6
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package com.android.systemui.statusbar.notification.stack;
|
||||
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_MEDIA_CONTROLS;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.android.systemui.statusbar.notification.stack
|
||||
|
||||
import android.annotation.ColorInt
|
||||
import android.annotation.IntDef
|
||||
import android.annotation.LayoutRes
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
@@ -448,25 +447,3 @@ class NotificationSectionsManager @Inject internal constructor(
|
||||
private const val DEBUG = false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For now, declare the available notification buckets (sections) here so that other
|
||||
* presentation code can decide what to do based on an entry's buckets
|
||||
*/
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
@IntDef(
|
||||
prefix = ["BUCKET_"],
|
||||
value = [
|
||||
BUCKET_UNKNOWN, BUCKET_MEDIA_CONTROLS, BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE,
|
||||
BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT
|
||||
]
|
||||
)
|
||||
annotation class PriorityBucket
|
||||
|
||||
const val BUCKET_UNKNOWN = 0
|
||||
const val BUCKET_MEDIA_CONTROLS = 1
|
||||
const val BUCKET_HEADS_UP = 2
|
||||
const val BUCKET_FOREGROUND_SERVICE = 3
|
||||
const val BUCKET_PEOPLE = 4
|
||||
const val BUCKET_ALERTING = 5
|
||||
const val BUCKET_SILENT = 6
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package com.android.systemui.statusbar.notification.stack;
|
||||
|
||||
import static com.android.internal.jank.InteractionJankMonitor.CUJ_NOTIFICATION_SHADE_SCROLL_FLING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_SWIPE;
|
||||
import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;
|
||||
import static com.android.systemui.util.Utils.shouldUseSplitNotificationShade;
|
||||
|
||||
@@ -20,10 +20,10 @@ import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||
import static android.app.NotificationManager.IMPORTANCE_LOW;
|
||||
import static android.content.Intent.ACTION_USER_SWITCHED;
|
||||
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_MEDIA_CONTROLS;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT;
|
||||
|
||||
import static junit.framework.Assert.assertFalse;
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
|
||||
@@ -1660,7 +1660,7 @@ public class ShadeListBuilderTest extends SysuiTestCase {
|
||||
private final String mPackage;
|
||||
|
||||
PackageSectioner(String pkg) {
|
||||
super("PackageSection_" + pkg);
|
||||
super("PackageSection_" + pkg, 0);
|
||||
mPackage = pkg;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,10 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
|
||||
import com.android.systemui.statusbar.notification.collection.getAttachState
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
|
||||
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
|
||||
import com.android.systemui.statusbar.notification.stack.BUCKET_ALERTING
|
||||
import com.android.systemui.statusbar.notification.stack.BUCKET_PEOPLE
|
||||
import com.android.systemui.statusbar.notification.stack.BUCKET_SILENT
|
||||
import com.android.systemui.statusbar.notification.stack.PriorityBucket
|
||||
import com.android.systemui.util.mockito.any
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
@@ -45,11 +49,15 @@ class NodeSpecBuilderTest : SysuiTestCase() {
|
||||
private var headerController1: NodeController = buildFakeController("header1")
|
||||
private var headerController2: NodeController = buildFakeController("header2")
|
||||
|
||||
private val section0 = buildSection(0, headerController0)
|
||||
private val section0NoHeader = buildSection(0, null)
|
||||
private val section1 = buildSection(1, headerController1)
|
||||
private val section1NoHeader = buildSection(1, null)
|
||||
private val section2 = buildSection(2, headerController2)
|
||||
private val section0Bucket = BUCKET_PEOPLE
|
||||
private val section1Bucket = BUCKET_ALERTING
|
||||
private val section2Bucket = BUCKET_SILENT
|
||||
|
||||
private val section0 = buildSection(0, section0Bucket, headerController0)
|
||||
private val section0NoHeader = buildSection(0, section0Bucket, null)
|
||||
private val section1 = buildSection(1, section1Bucket, headerController1)
|
||||
private val section1NoHeader = buildSection(1, section1Bucket, null)
|
||||
private val section2 = buildSection(2, section2Bucket, headerController2)
|
||||
|
||||
private val fakeViewBarn = FakeViewBarn()
|
||||
|
||||
@@ -297,8 +305,12 @@ private fun buildFakeController(name: String): NodeController {
|
||||
return controller
|
||||
}
|
||||
|
||||
private fun buildSection(index: Int, nodeController: NodeController?): NotifSection {
|
||||
return NotifSection(object : NotifSectioner("Section $index") {
|
||||
private fun buildSection(
|
||||
index: Int,
|
||||
@PriorityBucket bucket: Int,
|
||||
nodeController: NodeController?
|
||||
): NotifSection {
|
||||
return NotifSection(object : NotifSectioner("Section $index (bucket=$bucket)", bucket) {
|
||||
|
||||
override fun isInSection(entry: ListEntry?): Boolean {
|
||||
throw NotImplementedError("This should never be called")
|
||||
|
||||
@@ -18,11 +18,11 @@ package com.android.systemui.statusbar.notification.stack;
|
||||
|
||||
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_FOREGROUND_SERVICE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_HEADS_UP;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_ALERTING;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_FOREGROUND_SERVICE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_HEADS_UP;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_PEOPLE;
|
||||
import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_SILENT;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -64,7 +64,6 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
@@ -608,7 +607,7 @@ public class NotificationSectionsManagerTest extends SysuiTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
private View mockNotification(int bucket, boolean isGone) {
|
||||
private View mockNotification(@PriorityBucket int bucket, boolean isGone) {
|
||||
ExpandableNotificationRow notifRow =
|
||||
mock(ExpandableNotificationRow.class, RETURNS_DEEP_STUBS);
|
||||
when(notifRow.getVisibility()).thenReturn(View.VISIBLE);
|
||||
|
||||
Reference in New Issue
Block a user