Loading packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContent.kt +4 −4 Original line number Diff line number Diff line Loading @@ -51,8 +51,8 @@ import com.android.systemui.communal.ui.compose.section.CommunalPopupSection import com.android.systemui.communal.ui.compose.section.HubOnboardingSection import com.android.systemui.communal.ui.view.layout.sections.CommunalAppWidgetSection import com.android.systemui.communal.ui.viewmodel.CommunalViewModel import com.android.systemui.keyguard.ui.composable.element.IndicationAreaElement import com.android.systemui.keyguard.ui.composable.element.LockElement import com.android.systemui.keyguard.ui.composable.elements.IndicationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockIconElementProvider import com.android.systemui.keyguard.ui.composable.layout.LockIconAlignmentLines import com.android.systemui.res.R import com.android.systemui.statusbar.phone.SystemUIDialogFactory Loading @@ -66,8 +66,8 @@ constructor( private val interactionHandler: SmartspaceInteractionHandler, private val communalSettingsInteractor: CommunalSettingsInteractor, private val dialogFactory: SystemUIDialogFactory, private val lockElement: LockElement, private val indicationAreaElement: IndicationAreaElement, private val lockElement: LockIconElementProvider, private val indicationAreaElement: IndicationAreaElementProvider, private val communalPopupSection: CommunalPopupSection, private val widgetSection: CommunalAppWidgetSection, private val hubOnboardingSection: HubOnboardingSection, Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenSceneBlueprintModule.kt +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.systemui.keyguard.ui.composable import com.android.systemui.keyguard.ui.composable.blueprint.CommunalBlueprintModule import com.android.systemui.keyguard.ui.composable.element.OptionalElementModule import com.android.systemui.keyguard.ui.composable.elements.OptionalElementModule import dagger.Module @Module(includes = [CommunalBlueprintModule::class, OptionalElementModule::class]) Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenTouchHandling.kt +4 −4 Original line number Diff line number Diff line Loading @@ -31,20 +31,20 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Rect import androidx.compose.ui.input.pointer.pointerInput import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.plugins.keyguard.VRectF /** Container for lockscreen content that handles inputs including long-press and double tap. */ @Composable fun LockscreenTouchHandling( viewModelFactory: KeyguardTouchHandlingViewModel.Factory, modifier: Modifier = Modifier, content: @Composable BoxScope.(onSettingsMenuPlaces: (coordinates: Rect?) -> Unit) -> Unit, content: @Composable BoxScope.(onSettingsMenuPlaces: (coordinates: VRectF) -> Unit) -> Unit, ) { val viewModel = rememberViewModel("LockscreenLongPress") { viewModelFactory.create() } val (settingsMenuBounds, setSettingsMenuBounds) = remember { mutableStateOf<Rect?>(null) } val (settingsMenuBounds, setSettingsMenuBounds) = remember { mutableStateOf(VRectF.ZERO) } val interactionSource = remember { MutableInteractionSource() } Box( Loading @@ -64,7 +64,7 @@ fun LockscreenTouchHandling( .pointerInput(settingsMenuBounds) { awaitEachGesture { val pointerInputChange = awaitFirstDown() if (settingsMenuBounds?.contains(pointerInputChange.position) == false) { if (!settingsMenuBounds.contains(pointerInputChange.position)) { viewModel.onTouchedOutside() } } Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +66 −88 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.keyguard.ui.composable.blueprint import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue Loading @@ -24,21 +23,22 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.ContentScope import com.android.systemui.keyguard.ui.composable.LockscreenTouchHandling import com.android.systemui.keyguard.ui.composable.element.AmbientIndicationElement import com.android.systemui.keyguard.ui.composable.element.AodNotificationIconsElementProvider import com.android.systemui.keyguard.ui.composable.element.AodPromotedNotificationAreaElementProvider import com.android.systemui.keyguard.ui.composable.element.ClockRegionElementProvider import com.android.systemui.keyguard.ui.composable.element.IndicationAreaElement import com.android.systemui.keyguard.ui.composable.element.LockElement import com.android.systemui.keyguard.ui.composable.element.LockscreenElementFactoryImpl import com.android.systemui.keyguard.ui.composable.element.LockscreenElementFactoryImpl.Companion.createRemembered import com.android.systemui.keyguard.ui.composable.element.LockscreenUpperRegionElementProvider import com.android.systemui.keyguard.ui.composable.element.MediaElementProvider import com.android.systemui.keyguard.ui.composable.element.NotificationStackElementProvider import com.android.systemui.keyguard.ui.composable.element.SettingsMenuElement import com.android.systemui.keyguard.ui.composable.element.ShortcutElement import com.android.systemui.keyguard.ui.composable.element.SmartspaceElementProvider import com.android.systemui.keyguard.ui.composable.element.StatusBarElement import com.android.systemui.keyguard.ui.composable.elements.AmbientIndicationElementProvider import com.android.systemui.keyguard.ui.composable.elements.AodNotificationIconsElementProvider import com.android.systemui.keyguard.ui.composable.elements.AodPromotedNotificationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.ClockRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.IndicationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockIconElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockscreenElementFactoryImpl import com.android.systemui.keyguard.ui.composable.elements.LockscreenElementFactoryImpl.Companion.createRemembered import com.android.systemui.keyguard.ui.composable.elements.LockscreenLowerRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockscreenUpperRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.MediaElementProvider import com.android.systemui.keyguard.ui.composable.elements.NotificationStackElementProvider import com.android.systemui.keyguard.ui.composable.elements.SettingsMenuElementProvider import com.android.systemui.keyguard.ui.composable.elements.ShortcutElementProvider import com.android.systemui.keyguard.ui.composable.elements.SmartspaceElementProvider import com.android.systemui.keyguard.ui.composable.elements.StatusBarElementProvider import com.android.systemui.keyguard.ui.composable.layout.LockscreenSceneLayout import com.android.systemui.keyguard.ui.composable.modifier.burnInAware import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel Loading @@ -55,16 +55,18 @@ class DefaultBlueprint constructor( private val keyguardClockViewModel: KeyguardClockViewModel, private val aodBurnInViewModel: AodBurnInViewModel, private val statusBarElement: StatusBarElement, private val statusBarElementProvider: StatusBarElementProvider, private val upperRegionElementProvider: LockscreenUpperRegionElementProvider, private val lockElement: LockElement, private val ambientIndicationElementOptional: Optional<AmbientIndicationElement>, private val shortcutElement: ShortcutElement, private val indicationAreaElement: IndicationAreaElement, private val settingsMenuElement: SettingsMenuElement, private val notificationStackElementProvider: NotificationStackElementProvider, private val aodNotificationIconElementProvider: AodNotificationIconsElementProvider, private val aodPromotedNotificationElementProvider: AodPromotedNotificationAreaElementProvider, private val lowerRegionElementProvider: LockscreenLowerRegionElementProvider, private val lockIconElementProvider: LockIconElementProvider, private val ambientIndicationElementProviderOptional: Optional<AmbientIndicationElementProvider>, private val shortcutElementProvider: ShortcutElementProvider, private val indicationAreaElementProvider: IndicationAreaElementProvider, private val settingsMenuElementProvider: SettingsMenuElementProvider, private val smartspaceElementProvider: SmartspaceElementProvider, private val clockRegionElementProvider: ClockRegionElementProvider, private val mediaElementProvider: MediaElementProvider, Loading @@ -78,21 +80,33 @@ constructor( val currentClock by keyguardClockViewModel.currentClock.collectAsStateWithLifecycle() val elementFactory = elementFactoryBuilder.createRemembered( upperRegionElementProvider, mediaElementProvider, lockIconElementProvider, shortcutElementProvider, statusBarElementProvider, smartspaceElementProvider, upperRegionElementProvider, lowerRegionElementProvider, clockRegionElementProvider, settingsMenuElementProvider, indicationAreaElementProvider, notificationStackElementProvider, aodNotificationIconElementProvider, aodPromotedNotificationElementProvider, currentClock?.smallClock?.layout, currentClock?.largeClock?.layout, ambientIndicationElementProviderOptional.get(), ) val burnIn = rememberBurnIn(keyguardClockViewModel) LockscreenTouchHandling( viewModelFactory = viewModel.touchHandlingFactory, modifier = modifier, ) { onSettingsMenuPlaced -> val elementContext = LockscreenElementContext( scope = this, scope = this@Content, burnInModifier = Modifier.burnInAware( viewModel = aodBurnInViewModel, Loading @@ -111,56 +125,20 @@ constructor( LockscreenElementKeys.MediaCarousel -> { viewModel.setMediaPlayerBottom(rect.bottom) } LockscreenElementKeys.Shortcuts.Start -> { viewModel.setShortcutTop(rect.top) } }, ) LockscreenTouchHandling( viewModelFactory = viewModel.touchHandlingFactory, modifier = modifier, ) { onSettingsMenuPlaced -> LockscreenSceneLayout( viewModel = viewModel.layout, elementFactory = elementFactory, elementContext = elementContext, statusBar = { with(statusBarElement) { StatusBar(modifier = Modifier.fillMaxWidth()) } }, lockIcon = { with(lockElement) { LockIcon() } }, startShortcut = { with(shortcutElement) { Shortcut( isStart = true, applyPadding = false, onTopChanged = viewModel::setShortcutTop, ) } }, ambientIndication = { if (ambientIndicationElementOptional.isPresent) { with(ambientIndicationElementOptional.get()) { AmbientIndication(modifier = Modifier.fillMaxWidth()) } LockscreenElementKeys.Shortcuts.End -> { viewModel.setShortcutTop(rect.top) } }, bottomIndication = { with(indicationAreaElement) { IndicationArea(modifier = Modifier.fillMaxWidth()) LockscreenElementKeys.SettingsMenu -> { onSettingsMenuPlaced(rect) } }, endShortcut = { with(shortcutElement) { Shortcut( isStart = false, applyPadding = false, onTopChanged = viewModel::setShortcutTop, ) } }, settingsMenu = { with(settingsMenuElement) { SettingsMenu(onPlaced = onSettingsMenuPlaced) } }, ) LockscreenSceneLayout(elementFactory = elementFactory, elementContext = elementContext) } } } packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/element/AmbientIndicationElement.kt→packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/elements/AmbientIndicationElementProvider.kt +3 −7 Original line number Diff line number Diff line Loading @@ -14,13 +14,9 @@ * limitations under the License. */ package com.android.systemui.keyguard.ui.composable.element package com.android.systemui.keyguard.ui.composable.elements import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.android.compose.animation.scene.ContentScope import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementProvider /** Defines interface for classes that can render the ambient indication area. */ interface AmbientIndicationElement { @Composable fun ContentScope.AmbientIndication(modifier: Modifier) } interface AmbientIndicationElementProvider : LockscreenElementProvider Loading
packages/SystemUI/compose/features/src/com/android/systemui/communal/ui/compose/CommunalContent.kt +4 −4 Original line number Diff line number Diff line Loading @@ -51,8 +51,8 @@ import com.android.systemui.communal.ui.compose.section.CommunalPopupSection import com.android.systemui.communal.ui.compose.section.HubOnboardingSection import com.android.systemui.communal.ui.view.layout.sections.CommunalAppWidgetSection import com.android.systemui.communal.ui.viewmodel.CommunalViewModel import com.android.systemui.keyguard.ui.composable.element.IndicationAreaElement import com.android.systemui.keyguard.ui.composable.element.LockElement import com.android.systemui.keyguard.ui.composable.elements.IndicationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockIconElementProvider import com.android.systemui.keyguard.ui.composable.layout.LockIconAlignmentLines import com.android.systemui.res.R import com.android.systemui.statusbar.phone.SystemUIDialogFactory Loading @@ -66,8 +66,8 @@ constructor( private val interactionHandler: SmartspaceInteractionHandler, private val communalSettingsInteractor: CommunalSettingsInteractor, private val dialogFactory: SystemUIDialogFactory, private val lockElement: LockElement, private val indicationAreaElement: IndicationAreaElement, private val lockElement: LockIconElementProvider, private val indicationAreaElement: IndicationAreaElementProvider, private val communalPopupSection: CommunalPopupSection, private val widgetSection: CommunalAppWidgetSection, private val hubOnboardingSection: HubOnboardingSection, Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenSceneBlueprintModule.kt +1 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package com.android.systemui.keyguard.ui.composable import com.android.systemui.keyguard.ui.composable.blueprint.CommunalBlueprintModule import com.android.systemui.keyguard.ui.composable.element.OptionalElementModule import com.android.systemui.keyguard.ui.composable.elements.OptionalElementModule import dagger.Module @Module(includes = [CommunalBlueprintModule::class, OptionalElementModule::class]) Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/LockscreenTouchHandling.kt +4 −4 Original line number Diff line number Diff line Loading @@ -31,20 +31,20 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Rect import androidx.compose.ui.input.pointer.pointerInput import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.plugins.keyguard.VRectF /** Container for lockscreen content that handles inputs including long-press and double tap. */ @Composable fun LockscreenTouchHandling( viewModelFactory: KeyguardTouchHandlingViewModel.Factory, modifier: Modifier = Modifier, content: @Composable BoxScope.(onSettingsMenuPlaces: (coordinates: Rect?) -> Unit) -> Unit, content: @Composable BoxScope.(onSettingsMenuPlaces: (coordinates: VRectF) -> Unit) -> Unit, ) { val viewModel = rememberViewModel("LockscreenLongPress") { viewModelFactory.create() } val (settingsMenuBounds, setSettingsMenuBounds) = remember { mutableStateOf<Rect?>(null) } val (settingsMenuBounds, setSettingsMenuBounds) = remember { mutableStateOf(VRectF.ZERO) } val interactionSource = remember { MutableInteractionSource() } Box( Loading @@ -64,7 +64,7 @@ fun LockscreenTouchHandling( .pointerInput(settingsMenuBounds) { awaitEachGesture { val pointerInputChange = awaitFirstDown() if (settingsMenuBounds?.contains(pointerInputChange.position) == false) { if (!settingsMenuBounds.contains(pointerInputChange.position)) { viewModel.onTouchedOutside() } } Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +66 −88 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.keyguard.ui.composable.blueprint import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue Loading @@ -24,21 +23,22 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.compose.animation.scene.ContentScope import com.android.systemui.keyguard.ui.composable.LockscreenTouchHandling import com.android.systemui.keyguard.ui.composable.element.AmbientIndicationElement import com.android.systemui.keyguard.ui.composable.element.AodNotificationIconsElementProvider import com.android.systemui.keyguard.ui.composable.element.AodPromotedNotificationAreaElementProvider import com.android.systemui.keyguard.ui.composable.element.ClockRegionElementProvider import com.android.systemui.keyguard.ui.composable.element.IndicationAreaElement import com.android.systemui.keyguard.ui.composable.element.LockElement import com.android.systemui.keyguard.ui.composable.element.LockscreenElementFactoryImpl import com.android.systemui.keyguard.ui.composable.element.LockscreenElementFactoryImpl.Companion.createRemembered import com.android.systemui.keyguard.ui.composable.element.LockscreenUpperRegionElementProvider import com.android.systemui.keyguard.ui.composable.element.MediaElementProvider import com.android.systemui.keyguard.ui.composable.element.NotificationStackElementProvider import com.android.systemui.keyguard.ui.composable.element.SettingsMenuElement import com.android.systemui.keyguard.ui.composable.element.ShortcutElement import com.android.systemui.keyguard.ui.composable.element.SmartspaceElementProvider import com.android.systemui.keyguard.ui.composable.element.StatusBarElement import com.android.systemui.keyguard.ui.composable.elements.AmbientIndicationElementProvider import com.android.systemui.keyguard.ui.composable.elements.AodNotificationIconsElementProvider import com.android.systemui.keyguard.ui.composable.elements.AodPromotedNotificationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.ClockRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.IndicationAreaElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockIconElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockscreenElementFactoryImpl import com.android.systemui.keyguard.ui.composable.elements.LockscreenElementFactoryImpl.Companion.createRemembered import com.android.systemui.keyguard.ui.composable.elements.LockscreenLowerRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.LockscreenUpperRegionElementProvider import com.android.systemui.keyguard.ui.composable.elements.MediaElementProvider import com.android.systemui.keyguard.ui.composable.elements.NotificationStackElementProvider import com.android.systemui.keyguard.ui.composable.elements.SettingsMenuElementProvider import com.android.systemui.keyguard.ui.composable.elements.ShortcutElementProvider import com.android.systemui.keyguard.ui.composable.elements.SmartspaceElementProvider import com.android.systemui.keyguard.ui.composable.elements.StatusBarElementProvider import com.android.systemui.keyguard.ui.composable.layout.LockscreenSceneLayout import com.android.systemui.keyguard.ui.composable.modifier.burnInAware import com.android.systemui.keyguard.ui.viewmodel.AodBurnInViewModel Loading @@ -55,16 +55,18 @@ class DefaultBlueprint constructor( private val keyguardClockViewModel: KeyguardClockViewModel, private val aodBurnInViewModel: AodBurnInViewModel, private val statusBarElement: StatusBarElement, private val statusBarElementProvider: StatusBarElementProvider, private val upperRegionElementProvider: LockscreenUpperRegionElementProvider, private val lockElement: LockElement, private val ambientIndicationElementOptional: Optional<AmbientIndicationElement>, private val shortcutElement: ShortcutElement, private val indicationAreaElement: IndicationAreaElement, private val settingsMenuElement: SettingsMenuElement, private val notificationStackElementProvider: NotificationStackElementProvider, private val aodNotificationIconElementProvider: AodNotificationIconsElementProvider, private val aodPromotedNotificationElementProvider: AodPromotedNotificationAreaElementProvider, private val lowerRegionElementProvider: LockscreenLowerRegionElementProvider, private val lockIconElementProvider: LockIconElementProvider, private val ambientIndicationElementProviderOptional: Optional<AmbientIndicationElementProvider>, private val shortcutElementProvider: ShortcutElementProvider, private val indicationAreaElementProvider: IndicationAreaElementProvider, private val settingsMenuElementProvider: SettingsMenuElementProvider, private val smartspaceElementProvider: SmartspaceElementProvider, private val clockRegionElementProvider: ClockRegionElementProvider, private val mediaElementProvider: MediaElementProvider, Loading @@ -78,21 +80,33 @@ constructor( val currentClock by keyguardClockViewModel.currentClock.collectAsStateWithLifecycle() val elementFactory = elementFactoryBuilder.createRemembered( upperRegionElementProvider, mediaElementProvider, lockIconElementProvider, shortcutElementProvider, statusBarElementProvider, smartspaceElementProvider, upperRegionElementProvider, lowerRegionElementProvider, clockRegionElementProvider, settingsMenuElementProvider, indicationAreaElementProvider, notificationStackElementProvider, aodNotificationIconElementProvider, aodPromotedNotificationElementProvider, currentClock?.smallClock?.layout, currentClock?.largeClock?.layout, ambientIndicationElementProviderOptional.get(), ) val burnIn = rememberBurnIn(keyguardClockViewModel) LockscreenTouchHandling( viewModelFactory = viewModel.touchHandlingFactory, modifier = modifier, ) { onSettingsMenuPlaced -> val elementContext = LockscreenElementContext( scope = this, scope = this@Content, burnInModifier = Modifier.burnInAware( viewModel = aodBurnInViewModel, Loading @@ -111,56 +125,20 @@ constructor( LockscreenElementKeys.MediaCarousel -> { viewModel.setMediaPlayerBottom(rect.bottom) } LockscreenElementKeys.Shortcuts.Start -> { viewModel.setShortcutTop(rect.top) } }, ) LockscreenTouchHandling( viewModelFactory = viewModel.touchHandlingFactory, modifier = modifier, ) { onSettingsMenuPlaced -> LockscreenSceneLayout( viewModel = viewModel.layout, elementFactory = elementFactory, elementContext = elementContext, statusBar = { with(statusBarElement) { StatusBar(modifier = Modifier.fillMaxWidth()) } }, lockIcon = { with(lockElement) { LockIcon() } }, startShortcut = { with(shortcutElement) { Shortcut( isStart = true, applyPadding = false, onTopChanged = viewModel::setShortcutTop, ) } }, ambientIndication = { if (ambientIndicationElementOptional.isPresent) { with(ambientIndicationElementOptional.get()) { AmbientIndication(modifier = Modifier.fillMaxWidth()) } LockscreenElementKeys.Shortcuts.End -> { viewModel.setShortcutTop(rect.top) } }, bottomIndication = { with(indicationAreaElement) { IndicationArea(modifier = Modifier.fillMaxWidth()) LockscreenElementKeys.SettingsMenu -> { onSettingsMenuPlaced(rect) } }, endShortcut = { with(shortcutElement) { Shortcut( isStart = false, applyPadding = false, onTopChanged = viewModel::setShortcutTop, ) } }, settingsMenu = { with(settingsMenuElement) { SettingsMenu(onPlaced = onSettingsMenuPlaced) } }, ) LockscreenSceneLayout(elementFactory = elementFactory, elementContext = elementContext) } } }
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/element/AmbientIndicationElement.kt→packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/elements/AmbientIndicationElementProvider.kt +3 −7 Original line number Diff line number Diff line Loading @@ -14,13 +14,9 @@ * limitations under the License. */ package com.android.systemui.keyguard.ui.composable.element package com.android.systemui.keyguard.ui.composable.elements import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.android.compose.animation.scene.ContentScope import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementProvider /** Defines interface for classes that can render the ambient indication area. */ interface AmbientIndicationElement { @Composable fun ContentScope.AmbientIndication(modifier: Modifier) } interface AmbientIndicationElementProvider : LockscreenElementProvider