Merge changes I48717c7c,Idc111ccb into rvc-dev
* changes: Highlight provided channels Only use "apply" when there are changes
This commit is contained in:
@@ -76,7 +76,6 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager.Keyg
|
||||
import com.android.systemui.statusbar.notification.NotificationFilter;
|
||||
import com.android.systemui.statusbar.notification.VisualStabilityManager;
|
||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||
import com.android.systemui.statusbar.notification.row.ChannelEditorDialogController;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||
import com.android.systemui.statusbar.phone.AutoHideController;
|
||||
@@ -308,7 +307,6 @@ public class Dependency {
|
||||
@Inject Lazy<PackageManagerWrapper> mPackageManagerWrapper;
|
||||
@Inject Lazy<SensorPrivacyController> mSensorPrivacyController;
|
||||
@Inject Lazy<DockManager> mDockManager;
|
||||
@Inject Lazy<ChannelEditorDialogController> mChannelEditorDialogController;
|
||||
@Inject Lazy<INotificationManager> mINotificationManager;
|
||||
@Inject Lazy<SysUiState> mSysUiStateFlagsContainer;
|
||||
@Inject Lazy<AlarmManager> mAlarmManager;
|
||||
@@ -498,7 +496,6 @@ public class Dependency {
|
||||
mProviders.put(PackageManagerWrapper.class, mPackageManagerWrapper::get);
|
||||
mProviders.put(SensorPrivacyController.class, mSensorPrivacyController::get);
|
||||
mProviders.put(DockManager.class, mDockManager::get);
|
||||
mProviders.put(ChannelEditorDialogController.class, mChannelEditorDialogController::get);
|
||||
mProviders.put(INotificationManager.class, mINotificationManager::get);
|
||||
mProviders.put(SysUiState.class, mSysUiStateFlagsContainer::get);
|
||||
mProviders.put(AlarmManager.class, mAlarmManager::get);
|
||||
|
||||
@@ -49,6 +49,7 @@ import com.android.systemui.statusbar.notification.interruption.NotificationInte
|
||||
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.ChannelEditorDialogController;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
|
||||
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
|
||||
import com.android.systemui.statusbar.notification.row.PriorityOnboardingDialogController;
|
||||
@@ -109,6 +110,7 @@ public interface NotificationsModule {
|
||||
INotificationManager notificationManager,
|
||||
LauncherApps launcherApps,
|
||||
ShortcutManager shortcutManager,
|
||||
ChannelEditorDialogController channelEditorDialogController,
|
||||
CurrentUserContextTracker contextTracker,
|
||||
Provider<PriorityOnboardingDialogController.Builder> builderProvider) {
|
||||
return new NotificationGutsManager(
|
||||
@@ -121,6 +123,7 @@ public interface NotificationsModule {
|
||||
notificationManager,
|
||||
launcherApps,
|
||||
shortcutManager,
|
||||
channelEditorDialogController,
|
||||
contextTracker,
|
||||
builderProvider);
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ import android.app.NotificationChannel
|
||||
import android.app.NotificationChannel.DEFAULT_CHANNEL_ID
|
||||
import android.app.NotificationChannelGroup
|
||||
import android.app.NotificationManager.IMPORTANCE_NONE
|
||||
import android.app.NotificationManager.Importance
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.graphics.Color
|
||||
import android.graphics.PixelFormat
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
@@ -37,8 +37,10 @@ import android.view.Window
|
||||
import android.view.WindowInsets.Type.statusBars
|
||||
import android.view.WindowManager
|
||||
import android.widget.TextView
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting
|
||||
import com.android.systemui.R
|
||||
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@@ -59,11 +61,13 @@ private const val TAG = "ChannelDialogController"
|
||||
@Singleton
|
||||
class ChannelEditorDialogController @Inject constructor(
|
||||
c: Context,
|
||||
private val noMan: INotificationManager
|
||||
private val noMan: INotificationManager,
|
||||
private val dialogBuilder: ChannelEditorDialog.Builder
|
||||
) {
|
||||
val context: Context = c.applicationContext
|
||||
|
||||
lateinit var dialog: Dialog
|
||||
private var prepared = false
|
||||
private lateinit var dialog: ChannelEditorDialog
|
||||
|
||||
private var appIcon: Drawable? = null
|
||||
private var appUid: Int? = null
|
||||
@@ -74,13 +78,16 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
// Caller should set this if they care about when we dismiss
|
||||
var onFinishListener: OnChannelEditorDialogFinishedListener? = null
|
||||
|
||||
// Channels handed to us from NotificationInfo
|
||||
@VisibleForTesting
|
||||
internal val providedChannels = mutableListOf<NotificationChannel>()
|
||||
internal val paddedChannels = mutableListOf<NotificationChannel>()
|
||||
// Channels handed to us from NotificationInfo
|
||||
private val providedChannels = mutableListOf<NotificationChannel>()
|
||||
|
||||
// Map from NotificationChannel to importance
|
||||
private val edits = mutableMapOf<NotificationChannel, Int>()
|
||||
var appNotificationsEnabled = true
|
||||
private var appNotificationsEnabled = true
|
||||
// System settings for app notifications
|
||||
private var appNotificationsCurrentlyEnabled: Boolean? = null
|
||||
|
||||
// Keep a mapping of NotificationChannel.getGroup() to the actual group name for display
|
||||
@VisibleForTesting
|
||||
@@ -106,10 +113,18 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
this.appNotificationsEnabled = checkAreAppNotificationsOn()
|
||||
this.onSettingsClickListener = onSettingsClickListener
|
||||
|
||||
// These will always start out the same
|
||||
appNotificationsCurrentlyEnabled = appNotificationsEnabled
|
||||
|
||||
channelGroupList.clear()
|
||||
channelGroupList.addAll(fetchNotificationChannelGroups())
|
||||
buildGroupNameLookup()
|
||||
providedChannels.clear()
|
||||
providedChannels.addAll(channels)
|
||||
padToFourChannels(channels)
|
||||
initDialog()
|
||||
|
||||
prepared = true
|
||||
}
|
||||
|
||||
private fun buildGroupNameLookup() {
|
||||
@@ -121,21 +136,21 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
}
|
||||
|
||||
private fun padToFourChannels(channels: Set<NotificationChannel>) {
|
||||
providedChannels.clear()
|
||||
paddedChannels.clear()
|
||||
// First, add all of the given channels
|
||||
providedChannels.addAll(channels.asSequence().take(4))
|
||||
paddedChannels.addAll(channels.asSequence().take(4))
|
||||
|
||||
// Then pad to 4 if we haven't been given that many
|
||||
providedChannels.addAll(getDisplayableChannels(channelGroupList.asSequence())
|
||||
.filterNot { providedChannels.contains(it) }
|
||||
paddedChannels.addAll(getDisplayableChannels(channelGroupList.asSequence())
|
||||
.filterNot { paddedChannels.contains(it) }
|
||||
.distinct()
|
||||
.take(4 - providedChannels.size))
|
||||
.take(4 - paddedChannels.size))
|
||||
|
||||
// If we only got one channel and it has the default miscellaneous tag, then we actually
|
||||
// are looking at an app with a targetSdk <= O, and it doesn't make much sense to show the
|
||||
// channel
|
||||
if (providedChannels.size == 1 && DEFAULT_CHANNEL_ID == providedChannels[0].id) {
|
||||
providedChannels.clear()
|
||||
if (paddedChannels.size == 1 && DEFAULT_CHANNEL_ID == paddedChannels[0].id) {
|
||||
paddedChannels.clear()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +172,9 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
}
|
||||
|
||||
fun show() {
|
||||
initDialog()
|
||||
if (!prepared) {
|
||||
throw IllegalStateException("Must call prepareDialogForApp() before calling show()")
|
||||
}
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
@@ -178,8 +195,10 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
appUid = null
|
||||
packageName = null
|
||||
appName = null
|
||||
appNotificationsCurrentlyEnabled = null
|
||||
|
||||
edits.clear()
|
||||
paddedChannels.clear()
|
||||
providedChannels.clear()
|
||||
groupNameLookup.clear()
|
||||
}
|
||||
@@ -188,12 +207,27 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
return groupNameLookup[groupId] ?: ""
|
||||
}
|
||||
|
||||
fun proposeEditForChannel(channel: NotificationChannel, edit: Int) {
|
||||
fun proposeEditForChannel(channel: NotificationChannel, @Importance edit: Int) {
|
||||
if (channel.importance == edit) {
|
||||
edits.remove(channel)
|
||||
} else {
|
||||
edits[channel] = edit
|
||||
}
|
||||
|
||||
dialog.updateDoneButtonText(hasChanges())
|
||||
}
|
||||
|
||||
fun proposeSetAppNotificationsEnabled(enabled: Boolean) {
|
||||
appNotificationsEnabled = enabled
|
||||
dialog.updateDoneButtonText(hasChanges())
|
||||
}
|
||||
|
||||
fun areAppNotificationsEnabled(): Boolean {
|
||||
return appNotificationsEnabled
|
||||
}
|
||||
|
||||
private fun hasChanges(): Boolean {
|
||||
return edits.isNotEmpty() || (appNotificationsEnabled != appNotificationsCurrentlyEnabled)
|
||||
}
|
||||
|
||||
@Suppress("unchecked_cast")
|
||||
@@ -241,7 +275,7 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
if (appNotificationsEnabled != checkAreAppNotificationsOn()) {
|
||||
if (appNotificationsEnabled != appNotificationsCurrentlyEnabled) {
|
||||
applyAppNotificationsOn(appNotificationsEnabled)
|
||||
}
|
||||
}
|
||||
@@ -252,7 +286,8 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
}
|
||||
|
||||
private fun initDialog() {
|
||||
dialog = Dialog(context)
|
||||
dialogBuilder.setContext(context)
|
||||
dialog = dialogBuilder.build()
|
||||
|
||||
dialog.window?.requestFeature(Window.FEATURE_NO_TITLE)
|
||||
// Prevent a11y readers from reading the first element in the dialog twice
|
||||
@@ -260,16 +295,21 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
dialog.apply {
|
||||
setContentView(R.layout.notif_half_shelf)
|
||||
setCanceledOnTouchOutside(true)
|
||||
setOnDismissListener(object : DialogInterface.OnDismissListener {
|
||||
override fun onDismiss(dialog: DialogInterface?) {
|
||||
onFinishListener?.onChannelEditorDialogFinished()
|
||||
}
|
||||
})
|
||||
findViewById<ChannelEditorListView>(R.id.half_shelf_container).apply {
|
||||
setOnDismissListener { onFinishListener?.onChannelEditorDialogFinished() }
|
||||
|
||||
val listView = findViewById<ChannelEditorListView>(R.id.half_shelf_container)
|
||||
listView?.apply {
|
||||
controller = this@ChannelEditorDialogController
|
||||
appIcon = this@ChannelEditorDialogController.appIcon
|
||||
appName = this@ChannelEditorDialogController.appName
|
||||
channels = providedChannels
|
||||
channels = paddedChannels
|
||||
}
|
||||
|
||||
setOnShowListener {
|
||||
// play a highlight animation for the given channels
|
||||
for (channel in providedChannels) {
|
||||
listView?.highlightChannel(channel)
|
||||
}
|
||||
}
|
||||
|
||||
findViewById<TextView>(R.id.done_button)?.setOnClickListener {
|
||||
@@ -306,6 +346,28 @@ class ChannelEditorDialogController @Inject constructor(
|
||||
or WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED)
|
||||
}
|
||||
|
||||
class ChannelEditorDialog(context: Context) : Dialog(context) {
|
||||
fun updateDoneButtonText(hasChanges: Boolean) {
|
||||
findViewById<TextView>(R.id.done_button)?.setText(
|
||||
if (hasChanges)
|
||||
R.string.inline_ok_button
|
||||
else
|
||||
R.string.inline_done_button)
|
||||
}
|
||||
|
||||
class Builder @Inject constructor() {
|
||||
private lateinit var context: Context
|
||||
fun setContext(context: Context): Builder {
|
||||
this.context = context
|
||||
return this
|
||||
}
|
||||
|
||||
fun build(): ChannelEditorDialog {
|
||||
return ChannelEditorDialog(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface OnChannelEditorDialogFinishedListener {
|
||||
fun onChannelEditorDialogFinished()
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.systemui.statusbar.notification.row
|
||||
|
||||
import android.animation.ArgbEvaluator
|
||||
import android.animation.ValueAnimator
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager.IMPORTANCE_DEFAULT
|
||||
import android.app.NotificationManager.IMPORTANCE_NONE
|
||||
@@ -33,8 +35,10 @@ import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Switch
|
||||
import android.widget.TextView
|
||||
import com.android.settingslib.Utils
|
||||
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.util.Assert
|
||||
|
||||
/**
|
||||
* Half-shelf for notification channel controls
|
||||
@@ -51,6 +55,7 @@ class ChannelEditorListView(c: Context, attrs: AttributeSet) : LinearLayout(c, a
|
||||
|
||||
// The first row is for the entire app
|
||||
private lateinit var appControlRow: AppControlView
|
||||
private val channelRows = mutableListOf<ChannelRow>()
|
||||
|
||||
override fun onFinishInflate() {
|
||||
super.onFinishInflate()
|
||||
@@ -58,8 +63,21 @@ class ChannelEditorListView(c: Context, attrs: AttributeSet) : LinearLayout(c, a
|
||||
appControlRow = findViewById(R.id.app_control)
|
||||
}
|
||||
|
||||
/**
|
||||
* Play a highlight animation for the given channel (it really should exist but this will just
|
||||
* fail silently if it doesn't)
|
||||
*/
|
||||
fun highlightChannel(channel: NotificationChannel) {
|
||||
Assert.isMainThread()
|
||||
for (row in channelRows) {
|
||||
if (row.channel == channel) {
|
||||
row.playHighlight()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateRows() {
|
||||
val enabled = controller.appNotificationsEnabled
|
||||
val enabled = controller.areAppNotificationsEnabled()
|
||||
|
||||
val transition = AutoTransition()
|
||||
transition.duration = 200
|
||||
@@ -83,13 +101,10 @@ class ChannelEditorListView(c: Context, attrs: AttributeSet) : LinearLayout(c, a
|
||||
TransitionManager.beginDelayedTransition(this, transition)
|
||||
|
||||
// Remove any rows
|
||||
val n = childCount
|
||||
for (i in n.downTo(0)) {
|
||||
val child = getChildAt(i)
|
||||
if (child is ChannelRow) {
|
||||
removeView(child)
|
||||
}
|
||||
for (row in channelRows) {
|
||||
removeView(row)
|
||||
}
|
||||
channelRows.clear()
|
||||
|
||||
updateAppControlRow(enabled)
|
||||
|
||||
@@ -105,6 +120,8 @@ class ChannelEditorListView(c: Context, attrs: AttributeSet) : LinearLayout(c, a
|
||||
val row = inflater.inflate(R.layout.notif_half_shelf_row, null) as ChannelRow
|
||||
row.controller = controller
|
||||
row.channel = channel
|
||||
|
||||
channelRows.add(row)
|
||||
addView(row)
|
||||
}
|
||||
|
||||
@@ -114,7 +131,7 @@ class ChannelEditorListView(c: Context, attrs: AttributeSet) : LinearLayout(c, a
|
||||
.getString(R.string.notification_channel_dialog_title, appName)
|
||||
appControlRow.switch.isChecked = enabled
|
||||
appControlRow.switch.setOnCheckedChangeListener { _, b ->
|
||||
controller.appNotificationsEnabled = b
|
||||
controller.proposeSetAppNotificationsEnabled(b)
|
||||
updateRows()
|
||||
}
|
||||
}
|
||||
@@ -140,8 +157,14 @@ class ChannelRow(c: Context, attrs: AttributeSet) : LinearLayout(c, attrs) {
|
||||
private lateinit var channelName: TextView
|
||||
private lateinit var channelDescription: TextView
|
||||
private lateinit var switch: Switch
|
||||
private val highlightColor: Int
|
||||
var gentle = false
|
||||
|
||||
init {
|
||||
highlightColor = Utils.getColorAttrDefaultColor(
|
||||
context, android.R.attr.colorControlHighlight)
|
||||
}
|
||||
|
||||
var channel: NotificationChannel? = null
|
||||
set(newValue) {
|
||||
field = newValue
|
||||
@@ -150,6 +173,7 @@ class ChannelRow(c: Context, attrs: AttributeSet) : LinearLayout(c, attrs) {
|
||||
}
|
||||
|
||||
override fun onFinishInflate() {
|
||||
super.onFinishInflate()
|
||||
channelName = findViewById(R.id.channel_name)
|
||||
channelDescription = findViewById(R.id.channel_description)
|
||||
switch = findViewById(R.id.toggle)
|
||||
@@ -161,6 +185,22 @@ class ChannelRow(c: Context, attrs: AttributeSet) : LinearLayout(c, attrs) {
|
||||
setOnClickListener { switch.toggle() }
|
||||
}
|
||||
|
||||
/**
|
||||
* Play an animation that highlights this row
|
||||
*/
|
||||
fun playHighlight() {
|
||||
// Use 0 for the start value because our background is given to us by our parent
|
||||
val fadeInLoop = ValueAnimator.ofObject(ArgbEvaluator(), 0, highlightColor)
|
||||
fadeInLoop.duration = 200L
|
||||
fadeInLoop.addUpdateListener { animator ->
|
||||
setBackgroundColor(animator.animatedValue as Int)
|
||||
}
|
||||
fadeInLoop.repeatMode = ValueAnimator.REVERSE
|
||||
// Repeat an odd number of times to we end up normal
|
||||
fadeInLoop.repeatCount = 5
|
||||
fadeInLoop.start()
|
||||
}
|
||||
|
||||
private fun updateViews() {
|
||||
val nc = channel ?: return
|
||||
|
||||
|
||||
@@ -87,6 +87,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
private final VisualStabilityManager mVisualStabilityManager;
|
||||
private final AccessibilityManager mAccessibilityManager;
|
||||
private final HighPriorityProvider mHighPriorityProvider;
|
||||
private final ChannelEditorDialogController mChannelEditorDialogController;
|
||||
|
||||
// Dependencies:
|
||||
private final NotificationLockscreenUserManager mLockscreenUserManager =
|
||||
@@ -127,6 +128,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
INotificationManager notificationManager,
|
||||
LauncherApps launcherApps,
|
||||
ShortcutManager shortcutManager,
|
||||
ChannelEditorDialogController channelEditorDialogController,
|
||||
CurrentUserContextTracker contextTracker,
|
||||
Provider<PriorityOnboardingDialogController.Builder> builderProvider) {
|
||||
mContext = context;
|
||||
@@ -140,6 +142,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
mShortcutManager = shortcutManager;
|
||||
mContextTracker = contextTracker;
|
||||
mBuilderProvider = builderProvider;
|
||||
mChannelEditorDialogController = channelEditorDialogController;
|
||||
}
|
||||
|
||||
public void setUpWithPresenter(NotificationPresenter presenter,
|
||||
@@ -348,6 +351,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
pmUser,
|
||||
mNotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
packageName,
|
||||
row.getEntry().getChannel(),
|
||||
row.getUniqueChannels(),
|
||||
@@ -390,6 +394,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
notificationInfoView.bindNotification(
|
||||
pmUser,
|
||||
mNotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
packageName,
|
||||
row.getEntry().getChannel(),
|
||||
row.getUniqueChannels(),
|
||||
|
||||
@@ -174,6 +174,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
|
||||
PackageManager pm,
|
||||
INotificationManager iNotificationManager,
|
||||
VisualStabilityManager visualStabilityManager,
|
||||
ChannelEditorDialogController channelEditorDialogController,
|
||||
String pkg,
|
||||
NotificationChannel notificationChannel,
|
||||
Set<NotificationChannel> uniqueChannelsInRow,
|
||||
@@ -187,7 +188,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
|
||||
mINotificationManager = iNotificationManager;
|
||||
mMetricsLogger = Dependency.get(MetricsLogger.class);
|
||||
mVisualStabilityManager = visualStabilityManager;
|
||||
mChannelEditorDialogController = Dependency.get(ChannelEditorDialogController.class);
|
||||
mChannelEditorDialogController = channelEditorDialogController;
|
||||
mPackageName = pkg;
|
||||
mUniqueChannelsInRow = uniqueChannelsInRow;
|
||||
mNumUniqueChannelsInRow = uniqueChannelsInRow.size();
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
package com.android.systemui.statusbar.notification.row;
|
||||
|
||||
import static android.app.Notification.EXTRA_IS_GROUP_CONVERSATION;
|
||||
import static android.app.NotificationManager.IMPORTANCE_LOW;
|
||||
import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
|
||||
|
||||
import static com.android.systemui.Interpolators.FAST_OUT_SLOW_IN;
|
||||
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
@@ -39,10 +35,6 @@ import android.os.Parcelable;
|
||||
import android.os.RemoteException;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.text.TextUtils;
|
||||
import android.transition.ChangeBounds;
|
||||
import android.transition.Fade;
|
||||
import android.transition.TransitionManager;
|
||||
import android.transition.TransitionSet;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
@@ -51,7 +43,6 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||
|
||||
@@ -108,6 +99,7 @@ public class PartialConversationInfo extends LinearLayout implements
|
||||
public void bindNotification(
|
||||
PackageManager pm,
|
||||
INotificationManager iNotificationManager,
|
||||
ChannelEditorDialogController channelEditorDialogController,
|
||||
String pkg,
|
||||
NotificationChannel notificationChannel,
|
||||
Set<NotificationChannel> uniqueChannelsInRow,
|
||||
@@ -127,7 +119,7 @@ public class PartialConversationInfo extends LinearLayout implements
|
||||
mDelegatePkg = mSbn.getOpPkg();
|
||||
mIsDeviceProvisioned = isDeviceProvisioned;
|
||||
mIsNonBlockable = isNonBlockable;
|
||||
mChannelEditorDialogController = Dependency.get(ChannelEditorDialogController.class);
|
||||
mChannelEditorDialogController = channelEditorDialogController;
|
||||
mUniqueChannelsInRow = uniqueChannelsInRow;
|
||||
|
||||
bindHeader();
|
||||
|
||||
@@ -36,12 +36,14 @@ import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.runner.RunWith
|
||||
import org.junit.Test
|
||||
import org.mockito.Answers
|
||||
import org.mockito.ArgumentMatchers.anyBoolean
|
||||
import org.mockito.ArgumentMatchers.eq
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.Mockito.times
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
@SmallTest
|
||||
@@ -59,11 +61,16 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
|
||||
@Mock
|
||||
private lateinit var mockNoMan: INotificationManager
|
||||
@Mock(answer = Answers.RETURNS_SELF)
|
||||
private lateinit var dialogBuilder: ChannelEditorDialog.Builder
|
||||
@Mock
|
||||
private lateinit var dialog: ChannelEditorDialog
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
controller = ChannelEditorDialogController(mContext, mockNoMan)
|
||||
`when`(dialogBuilder.build()).thenReturn(dialog)
|
||||
controller = ChannelEditorDialogController(mContext, mockNoMan, dialogBuilder)
|
||||
|
||||
channel1 = NotificationChannel(TEST_CHANNEL, TEST_CHANNEL_NAME, IMPORTANCE_DEFAULT)
|
||||
channel2 = NotificationChannel(TEST_CHANNEL2, TEST_CHANNEL_NAME2, IMPORTANCE_DEFAULT)
|
||||
@@ -86,7 +93,7 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, clickListener)
|
||||
|
||||
assertEquals(2, controller.providedChannels.size)
|
||||
assertEquals(2, controller.paddedChannels.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -97,7 +104,7 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
setOf(channelDefault), appIcon, clickListener)
|
||||
|
||||
assertEquals("No channels should be shown when there is only the miscellaneous channel",
|
||||
0, controller.providedChannels.size)
|
||||
0, controller.paddedChannels.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -119,7 +126,7 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
setOf(channel1), appIcon, clickListener)
|
||||
|
||||
assertEquals("ChannelEditorDialog should fetch enough channels to show 4",
|
||||
4, controller.providedChannels.size)
|
||||
4, controller.paddedChannels.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -147,7 +154,7 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, clickListener)
|
||||
|
||||
controller.appNotificationsEnabled = false
|
||||
controller.proposeSetAppNotificationsEnabled(false)
|
||||
controller.apply()
|
||||
|
||||
verify(mockNoMan, times(1)).setNotificationsEnabledForPackage(
|
||||
@@ -162,7 +169,7 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, clickListener)
|
||||
controller.appNotificationsEnabled = true
|
||||
controller.proposeSetAppNotificationsEnabled(true)
|
||||
controller.apply()
|
||||
|
||||
verify(mockNoMan, times(1)).setNotificationsEnabledForPackage(
|
||||
@@ -171,12 +178,52 @@ class ChannelEditorDialogControllerTest : SysuiTestCase() {
|
||||
|
||||
@Test
|
||||
fun testSettingsClickListenerNull_noCrash() {
|
||||
// GIVEN editor dialog
|
||||
group.channels = listOf(channel1, channel2)
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, null)
|
||||
|
||||
// WHEN user taps settings
|
||||
// Pass in any old view, it should never actually be used
|
||||
controller.launchSettings(View(context))
|
||||
|
||||
// THEN no crash
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDoneButtonSaysDone_noChanges() {
|
||||
// GIVEN the editor dialog with no changes
|
||||
`when`(dialogBuilder.build()).thenReturn(dialog)
|
||||
|
||||
group.channels = listOf(channel1, channel2)
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, null)
|
||||
|
||||
// WHEN the user proposes a change
|
||||
controller.proposeEditForChannel(channel1, IMPORTANCE_NONE)
|
||||
|
||||
// THEN the "done" button has been updated to "apply"
|
||||
verify(dialog).updateDoneButtonText(true /* hasChanges */)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDoneButtonGoesBackToNormal_changeThenNoChange() {
|
||||
val inOrderDialog = Mockito.inOrder(dialog)
|
||||
// GIVEN the editor dialog with no changes
|
||||
`when`(dialogBuilder.build()).thenReturn(dialog)
|
||||
|
||||
group.channels = listOf(channel1, channel2)
|
||||
controller.prepareDialogForApp(TEST_APP_NAME, TEST_PACKAGE_NAME, TEST_UID,
|
||||
setOf(channel1, channel2), appIcon, null)
|
||||
|
||||
// WHEN the user proposes a change
|
||||
controller.proposeEditForChannel(channel1, IMPORTANCE_NONE)
|
||||
// and WHEN the user sets the importance back to its original value
|
||||
controller.proposeEditForChannel(channel1, channel1.importance)
|
||||
|
||||
// THEN the "done" button has been changed back to done
|
||||
inOrderDialog.verify(dialog, times(1)).updateDoneButtonText(eq(true))
|
||||
inOrderDialog.verify(dialog, times(1)).updateDoneButtonText(eq(false))
|
||||
}
|
||||
|
||||
private val clickListener = object : NotificationInfo.OnSettingsClickListener {
|
||||
|
||||
@@ -123,6 +123,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
@Mock private INotificationManager mINotificationManager;
|
||||
@Mock private LauncherApps mLauncherApps;
|
||||
@Mock private ShortcutManager mShortcutManager;
|
||||
@Mock private ChannelEditorDialogController mChannelEditorDialogController;
|
||||
@Mock private PeopleNotificationIdentifier mPeopleNotificationIdentifier;
|
||||
@Mock private CurrentUserContextTracker mContextTracker;
|
||||
@Mock(answer = Answers.RETURNS_SELF)
|
||||
@@ -144,7 +145,8 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
|
||||
mGutsManager = new NotificationGutsManager(mContext, mVisualStabilityManager,
|
||||
() -> mStatusBar, mHandler, mAccessibilityManager, mHighPriorityProvider,
|
||||
mINotificationManager, mLauncherApps, mShortcutManager, mContextTracker, mProvider);
|
||||
mINotificationManager, mLauncherApps, mShortcutManager,
|
||||
mChannelEditorDialogController, mContextTracker, mProvider);
|
||||
mGutsManager.setUpWithPresenter(mPresenter, mStackScroller,
|
||||
mCheckSaveListener, mOnSettingsClickListener);
|
||||
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||
@@ -350,6 +352,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
any(PackageManager.class),
|
||||
any(INotificationManager.class),
|
||||
eq(mVisualStabilityManager),
|
||||
eq(mChannelEditorDialogController),
|
||||
eq(statusBarNotification.getPackageName()),
|
||||
any(NotificationChannel.class),
|
||||
anySet(),
|
||||
@@ -381,6 +384,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
any(PackageManager.class),
|
||||
any(INotificationManager.class),
|
||||
eq(mVisualStabilityManager),
|
||||
eq(mChannelEditorDialogController),
|
||||
eq(statusBarNotification.getPackageName()),
|
||||
any(NotificationChannel.class),
|
||||
anySet(),
|
||||
@@ -410,6 +414,7 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
any(PackageManager.class),
|
||||
any(INotificationManager.class),
|
||||
eq(mVisualStabilityManager),
|
||||
eq(mChannelEditorDialogController),
|
||||
eq(statusBarNotification.getPackageName()),
|
||||
any(NotificationChannel.class),
|
||||
anySet(),
|
||||
|
||||
@@ -30,17 +30,13 @@ import static junit.framework.Assert.assertEquals;
|
||||
import static junit.framework.Assert.assertFalse;
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.argThat;
|
||||
import static org.mockito.Mockito.any;
|
||||
import static org.mockito.Mockito.anyBoolean;
|
||||
import static org.mockito.Mockito.anyInt;
|
||||
import static org.mockito.Mockito.anyString;
|
||||
import static org.mockito.Mockito.doCallRealMethod;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -53,13 +49,11 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.IBinder;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.PollingCheck;
|
||||
import android.testing.TestableLooper;
|
||||
import android.testing.UiThreadTest;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -68,7 +62,6 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
@@ -120,6 +113,8 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
private PackageManager mMockPackageManager;
|
||||
@Mock
|
||||
private VisualStabilityManager mVisualStabilityManager;
|
||||
@Mock
|
||||
private ChannelEditorDialogController mChannelEditorDialogController;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@@ -185,6 +180,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -208,6 +204,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -227,6 +224,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -257,6 +255,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -277,6 +276,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -304,6 +304,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -326,6 +327,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -345,6 +347,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mDefaultNotificationChannel,
|
||||
mDefaultNotificationChannelSet,
|
||||
@@ -368,6 +371,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mDefaultNotificationChannel,
|
||||
mDefaultNotificationChannelSet,
|
||||
@@ -387,6 +391,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -407,6 +412,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -432,6 +438,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -452,6 +459,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -473,6 +481,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -486,6 +495,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -506,6 +516,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME, mNotificationChannel,
|
||||
createMultipleChannelSet(MULTIPLE_CHANNEL_COUNT),
|
||||
mEntry,
|
||||
@@ -531,6 +542,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
createMultipleChannelSet(MULTIPLE_CHANNEL_COUNT),
|
||||
@@ -552,6 +564,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
createMultipleChannelSet(MULTIPLE_CHANNEL_COUNT),
|
||||
@@ -573,6 +586,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -596,6 +610,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -614,6 +629,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -632,6 +648,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -653,6 +670,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -677,6 +695,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -701,6 +720,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -726,6 +746,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -751,6 +772,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -782,6 +804,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -814,6 +837,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -846,6 +870,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -881,6 +906,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -915,6 +941,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -940,6 +967,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -968,6 +996,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -999,6 +1028,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -1025,6 +1055,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -1056,6 +1087,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -1080,6 +1112,7 @@ public class NotificationInfoTest extends SysuiTestCase {
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mVisualStabilityManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
|
||||
@@ -98,6 +98,8 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
private INotificationManager mMockINotificationManager;
|
||||
@Mock
|
||||
private PackageManager mMockPackageManager;
|
||||
@Mock
|
||||
private ChannelEditorDialogController mChannelEditorDialogController;
|
||||
|
||||
@Mock
|
||||
private Icon mIcon;
|
||||
@@ -160,6 +162,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -181,6 +184,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -207,6 +211,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -223,6 +228,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -250,6 +256,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -267,6 +274,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -291,6 +299,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -310,6 +319,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -327,6 +337,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -349,6 +360,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -365,6 +377,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
@@ -383,6 +396,7 @@ public class PartialConversationInfoTest extends SysuiTestCase {
|
||||
mInfo.bindNotification(
|
||||
mMockPackageManager,
|
||||
mMockINotificationManager,
|
||||
mChannelEditorDialogController,
|
||||
TEST_PACKAGE_NAME,
|
||||
mNotificationChannel,
|
||||
mNotificationChannelSet,
|
||||
|
||||
Reference in New Issue
Block a user