diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/SectionHeaderController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/SectionHeaderController.kt index 498b8e884b17c..1311e3e756dc5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/SectionHeaderController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/SectionHeaderController.kt @@ -17,11 +17,13 @@ package com.android.systemui.statusbar.notification.collection.render import android.annotation.StringRes +import android.content.Intent import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.android.systemui.R -import com.android.systemui.statusbar.notification.dagger.HeaderClick +import com.android.systemui.plugins.ActivityStarter +import com.android.systemui.statusbar.notification.dagger.HeaderClickAction import com.android.systemui.statusbar.notification.dagger.HeaderText import com.android.systemui.statusbar.notification.dagger.NodeLabel import com.android.systemui.statusbar.notification.dagger.SectionHeaderScope @@ -39,11 +41,19 @@ internal class SectionHeaderNodeControllerImpl @Inject constructor( @NodeLabel override val nodeLabel: String, private val layoutInflater: LayoutInflater, @HeaderText @StringRes private val headerTextResId: Int, - @HeaderClick private val onHeaderClickListener: View.OnClickListener + private val activityStarter: ActivityStarter, + @HeaderClickAction private val clickIntentAction: String ) : NodeController, SectionHeaderController { private var _view: SectionHeaderView? = null private var clearAllClickListener: View.OnClickListener? = null + private val onHeaderClickListener = View.OnClickListener { + activityStarter.startActivity( + Intent(clickIntentAction), + true /* onlyProvisioned */, + true /* dismissShade */, + Intent.FLAG_ACTIVITY_SINGLE_TOP) + } override fun reinflateView(parent: ViewGroup) { var oldPos = -1 diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationSectionHeadersModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationSectionHeadersModule.kt index 179d49cb55a17..2a9cfd034dcef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationSectionHeadersModule.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationSectionHeadersModule.kt @@ -17,12 +17,9 @@ package com.android.systemui.statusbar.notification.dagger import android.annotation.StringRes -import android.content.Intent import android.provider.Settings -import android.view.View import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton -import com.android.systemui.plugins.ActivityStarter import com.android.systemui.statusbar.notification.collection.render.NodeController import com.android.systemui.statusbar.notification.collection.render.SectionHeaderController import com.android.systemui.statusbar.notification.collection.render.SectionHeaderNodeControllerImpl @@ -38,18 +35,6 @@ import javax.inject.Scope @Module(subcomponents = [SectionHeaderControllerSubcomponent::class]) object NotificationSectionHeadersModule { - @Provides - @HeaderClick - @JvmStatic fun providesOnHeaderClickListener( - activityStarter: ActivityStarter - ) = View.OnClickListener { - activityStarter.startActivity( - Intent(Settings.ACTION_NOTIFICATION_SETTINGS), - true /* onlyProvisioned */, - true /* dismissShade */, - Intent.FLAG_ACTIVITY_SINGLE_TOP) - } - @Provides @IncomingHeader @SysUISingleton @@ -58,6 +43,7 @@ object NotificationSectionHeadersModule { ) = builder.get() .nodeLabel("incoming header") .headerText(R.string.notification_section_header_incoming) + .clickIntentAction(Settings.ACTION_NOTIFICATION_SETTINGS) .build() @Provides @@ -68,6 +54,7 @@ object NotificationSectionHeadersModule { ) = builder.get() .nodeLabel("alerting header") .headerText(R.string.notification_section_header_alerting) + .clickIntentAction(Settings.ACTION_NOTIFICATION_SETTINGS) .build() @Provides @@ -78,6 +65,7 @@ object NotificationSectionHeadersModule { ) = builder.get() .nodeLabel("people header") .headerText(R.string.notification_section_header_conversations) + .clickIntentAction(Settings.ACTION_CONVERSATION_SETTINGS) .build() @Provides @@ -88,6 +76,7 @@ object NotificationSectionHeadersModule { ) = builder.get() .nodeLabel("silent header") .headerText(R.string.notification_section_header_gentle) + .clickIntentAction(Settings.ACTION_NOTIFICATION_SETTINGS) .build() @Provides @@ -151,6 +140,7 @@ interface SectionHeaderControllerSubcomponent { fun build(): SectionHeaderControllerSubcomponent @BindsInstance fun nodeLabel(@NodeLabel nodeLabel: String): Builder @BindsInstance fun headerText(@HeaderText @StringRes headerText: Int): Builder + @BindsInstance fun clickIntentAction(@HeaderClickAction clickIntentAction: String): Builder } } @@ -188,7 +178,7 @@ annotation class NodeLabel @Qualifier @Retention(AnnotationRetention.BINARY) -annotation class HeaderClick +annotation class HeaderClickAction @Scope @Retention(AnnotationRetention.BINARY)