Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.kt +5 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.statusbar.notification.collection.provider.SectionSt import com.android.systemui.statusbar.notification.promoted.AutomaticPromotionCoordinator import com.android.systemui.statusbar.notification.shared.NotificationBundleUi import com.android.systemui.statusbar.notification.shared.NotificationMinimalism import com.android.systemui.statusbar.notification.shared.NotificationSummarizationOnboardingUi import javax.inject.Inject /** Loading Loading @@ -67,6 +68,7 @@ constructor( dismissibilityCoordinator: DismissibilityCoordinator, statsLoggerCoordinator: NotificationStatsLoggerCoordinator, bundleCoordinator: BundleCoordinator, summarizationCoordinator: SummarizationCoordinator, automaticPromotionCoordinator: AutomaticPromotionCoordinator, ) : NotifCoordinators { Loading Loading @@ -110,6 +112,9 @@ constructor( if (NotificationBundleUi.isEnabled) { mCoordinators.add(bundleCoordinator) } if (NotificationSummarizationOnboardingUi.isEnabled) { mCoordinators.add(summarizationCoordinator) } mCoordinators.add(statsLoggerCoordinator) // Manually add Ordered Sections if (NotificationMinimalism.isEnabled) { Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SummarizationCoordinator.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.statusbar.notification.collection.coordinator import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.notification.OnboardingAffordanceManager import com.android.systemui.statusbar.notification.Summarization import com.android.systemui.statusbar.notification.collection.NotifPipeline import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Invalidator import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch /** Coordinator for notification summarization features. */ @CoordinatorScope class SummarizationCoordinator @Inject constructor( @Application private val scope: CoroutineScope, @Summarization private val onboardingAffordanceManager: OnboardingAffordanceManager, ) : Coordinator { override fun attach(pipeline: NotifPipeline) { bindOnboardingAffordanceInvalidator(pipeline) } private fun bindOnboardingAffordanceInvalidator(pipeline: NotifPipeline) { val invalidator = object : Invalidator("summarization onboarding") {} pipeline.addPreRenderInvalidator(invalidator) scope.launch { onboardingAffordanceManager.view.collect { invalidator.invalidateList("summarization onboarding view changed") } } } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.kt +5 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.systemui.statusbar.notification.collection.provider.SectionSt import com.android.systemui.statusbar.notification.promoted.AutomaticPromotionCoordinator import com.android.systemui.statusbar.notification.shared.NotificationBundleUi import com.android.systemui.statusbar.notification.shared.NotificationMinimalism import com.android.systemui.statusbar.notification.shared.NotificationSummarizationOnboardingUi import javax.inject.Inject /** Loading Loading @@ -67,6 +68,7 @@ constructor( dismissibilityCoordinator: DismissibilityCoordinator, statsLoggerCoordinator: NotificationStatsLoggerCoordinator, bundleCoordinator: BundleCoordinator, summarizationCoordinator: SummarizationCoordinator, automaticPromotionCoordinator: AutomaticPromotionCoordinator, ) : NotifCoordinators { Loading Loading @@ -110,6 +112,9 @@ constructor( if (NotificationBundleUi.isEnabled) { mCoordinators.add(bundleCoordinator) } if (NotificationSummarizationOnboardingUi.isEnabled) { mCoordinators.add(summarizationCoordinator) } mCoordinators.add(statsLoggerCoordinator) // Manually add Ordered Sections if (NotificationMinimalism.isEnabled) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SummarizationCoordinator.kt 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.statusbar.notification.collection.coordinator import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.statusbar.notification.OnboardingAffordanceManager import com.android.systemui.statusbar.notification.Summarization import com.android.systemui.statusbar.notification.collection.NotifPipeline import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Invalidator import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch /** Coordinator for notification summarization features. */ @CoordinatorScope class SummarizationCoordinator @Inject constructor( @Application private val scope: CoroutineScope, @Summarization private val onboardingAffordanceManager: OnboardingAffordanceManager, ) : Coordinator { override fun attach(pipeline: NotifPipeline) { bindOnboardingAffordanceInvalidator(pipeline) } private fun bindOnboardingAffordanceInvalidator(pipeline: NotifPipeline) { val invalidator = object : Invalidator("summarization onboarding") {} pipeline.addPreRenderInvalidator(invalidator) scope.launch { onboardingAffordanceManager.view.collect { invalidator.invalidateList("summarization onboarding view changed") } } } }