Loading packages/SystemUI/src/com/android/systemui/flags/Flags.kt +5 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,11 @@ object Flags { // TODO(b/291767565): Tracking bug. @JvmField val MIGRATE_KEYGUARD_STATUS_VIEW = unreleasedFlag("migrate_keyguard_status_view") /** Migrate the status bar view on keyguard from notification panel to keyguard root view. */ // TODO(b/299115332): Tracking Bug. @JvmField val MIGRATE_KEYGUARD_STATUS_BAR_VIEW = unreleasedFlag("migrate_keyguard_status_bar_view") /** Enables preview loading animation in the wallpaper picker. */ // TODO(b/274443705): Tracking Bug @JvmField Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSect import com.android.systemui.keyguard.ui.view.layout.sections.DefaultNotificationStackScrollLayoutSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultSettingsPopupMenuSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultShortcutsSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines import javax.inject.Inject Loading @@ -49,6 +50,7 @@ constructor( defaultAmbientIndicationAreaSection: DefaultAmbientIndicationAreaSection, defaultSettingsPopupMenuSection: DefaultSettingsPopupMenuSection, defaultStatusViewSection: DefaultStatusViewSection, defaultStatusBarSection: DefaultStatusBarSection, defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection, splitShadeGuidelines: SplitShadeGuidelines, aodNotificationIconsSection: AodNotificationIconsSection, Loading @@ -64,6 +66,7 @@ constructor( defaultAmbientIndicationAreaSection, defaultSettingsPopupMenuSection, defaultStatusViewSection, defaultStatusBarSection, defaultNotificationStackScrollLayoutSection, splitShadeGuidelines, aodNotificationIconsSection, Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.keyguard.ui.view.layout.sections.DefaultIndicationAr import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultNotificationStackScrollLayoutSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultSettingsPopupMenuSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines import javax.inject.Inject Loading @@ -41,6 +42,7 @@ constructor( defaultSettingsPopupMenuSection: DefaultSettingsPopupMenuSection, alignShortcutsToUdfpsSection: AlignShortcutsToUdfpsSection, defaultStatusViewSection: DefaultStatusViewSection, defaultStatusBarSection: DefaultStatusBarSection, splitShadeGuidelines: SplitShadeGuidelines, defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection, aodNotificationIconsSection: AodNotificationIconsSection, Loading @@ -55,6 +57,7 @@ constructor( defaultSettingsPopupMenuSection, alignShortcutsToUdfpsSection, defaultStatusViewSection, defaultStatusBarSection, defaultNotificationStackScrollLayoutSection, splitShadeGuidelines, aodNotificationIconsSection, Loading packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultStatusBarSection.kt 0 → 100644 +103 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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.keyguard.ui.view.layout.sections import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.constraintlayout.widget.ConstraintSet.END import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID import androidx.constraintlayout.widget.ConstraintSet.START import androidx.constraintlayout.widget.ConstraintSet.TOP import com.android.keyguard.dagger.KeyguardStatusBarViewComponent import com.android.systemui.R import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.shared.model.KeyguardSection import com.android.systemui.shade.NotificationPanelView import com.android.systemui.shade.ShadeViewStateProvider import com.android.systemui.statusbar.phone.KeyguardStatusBarView import com.android.systemui.util.Utils import javax.inject.Inject /** A section for the status bar displayed at the top of the lockscreen. */ class DefaultStatusBarSection @Inject constructor( private val context: Context, private val featureFlags: FeatureFlags, private val notificationPanelView: NotificationPanelView, private val keyguardStatusBarViewComponentFactory: KeyguardStatusBarViewComponent.Factory, ) : KeyguardSection() { private val statusBarViewId = R.id.keyguard_header override fun addViews(constraintLayout: ConstraintLayout) { if (!featureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_BAR_VIEW)) { return } notificationPanelView.findViewById<View>(statusBarViewId)?.let { (it.parent as ViewGroup).removeView(it) } val view = LayoutInflater.from(constraintLayout.context) .inflate(R.layout.keyguard_status_bar, constraintLayout, false) as KeyguardStatusBarView constraintLayout.addView(view) } override fun bindData(constraintLayout: ConstraintLayout) { if (!featureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_BAR_VIEW)) { return } val statusBarView = constraintLayout.findViewById<KeyguardStatusBarView>(statusBarViewId) ?: return val provider = object : ShadeViewStateProvider { override val lockscreenShadeDragProgress: Float = 0f override val panelViewExpandedHeight: Float = 0f override fun shouldHeadsUpBeVisible(): Boolean { return false } } val statusBarViewComponent = keyguardStatusBarViewComponentFactory.build(statusBarView, provider) val controller = statusBarViewComponent.keyguardStatusBarViewController controller.init() } override fun applyConstraints(constraintSet: ConstraintSet) { constraintSet.apply { constrainHeight(statusBarViewId, Utils.getStatusBarHeaderHeightKeyguard(context)) connect(statusBarViewId, TOP, PARENT_ID, TOP) connect(statusBarViewId, START, PARENT_ID, START) connect(statusBarViewId, END, PARENT_ID, END) } } override fun removeViews(constraintLayout: ConstraintLayout) { constraintLayout.removeView(statusBarViewId) } } packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultStatusViewSection.kt +3 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ constructor( it.requireViewById<ViewGroup>(R.id.status_view_media_container) ) keyguardViewConfigurator.get().keyguardStatusViewController = controller notificationPanelViewController.get().updateStatusBarViewController() notificationPanelViewController.get().updateStatusViewController() } } } Loading @@ -100,6 +100,8 @@ constructor( constraintSet.apply { constrainWidth(statusViewId, MATCH_CONSTRAINT) constrainHeight(statusViewId, WRAP_CONTENT) // TODO(b/296122465): Constrain to the top of [DefaultStatusBarSection] and remove the // extra margin below. connect(statusViewId, TOP, PARENT_ID, TOP) connect(statusViewId, START, PARENT_ID, START) connect(statusViewId, END, PARENT_ID, END) Loading Loading
packages/SystemUI/src/com/android/systemui/flags/Flags.kt +5 −0 Original line number Diff line number Diff line Loading @@ -294,6 +294,11 @@ object Flags { // TODO(b/291767565): Tracking bug. @JvmField val MIGRATE_KEYGUARD_STATUS_VIEW = unreleasedFlag("migrate_keyguard_status_view") /** Migrate the status bar view on keyguard from notification panel to keyguard root view. */ // TODO(b/299115332): Tracking Bug. @JvmField val MIGRATE_KEYGUARD_STATUS_BAR_VIEW = unreleasedFlag("migrate_keyguard_status_bar_view") /** Enables preview loading animation in the wallpaper picker. */ // TODO(b/274443705): Tracking Bug @JvmField Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/DefaultKeyguardBlueprint.kt +3 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSect import com.android.systemui.keyguard.ui.view.layout.sections.DefaultNotificationStackScrollLayoutSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultSettingsPopupMenuSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultShortcutsSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines import javax.inject.Inject Loading @@ -49,6 +50,7 @@ constructor( defaultAmbientIndicationAreaSection: DefaultAmbientIndicationAreaSection, defaultSettingsPopupMenuSection: DefaultSettingsPopupMenuSection, defaultStatusViewSection: DefaultStatusViewSection, defaultStatusBarSection: DefaultStatusBarSection, defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection, splitShadeGuidelines: SplitShadeGuidelines, aodNotificationIconsSection: AodNotificationIconsSection, Loading @@ -64,6 +66,7 @@ constructor( defaultAmbientIndicationAreaSection, defaultSettingsPopupMenuSection, defaultStatusViewSection, defaultStatusBarSection, defaultNotificationStackScrollLayoutSection, splitShadeGuidelines, aodNotificationIconsSection, Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/blueprints/ShortcutsBesideUdfpsKeyguardBlueprint.kt +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.systemui.keyguard.ui.view.layout.sections.DefaultIndicationAr import com.android.systemui.keyguard.ui.view.layout.sections.DefaultLockIconSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultNotificationStackScrollLayoutSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultSettingsPopupMenuSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusBarSection import com.android.systemui.keyguard.ui.view.layout.sections.DefaultStatusViewSection import com.android.systemui.keyguard.ui.view.layout.sections.SplitShadeGuidelines import javax.inject.Inject Loading @@ -41,6 +42,7 @@ constructor( defaultSettingsPopupMenuSection: DefaultSettingsPopupMenuSection, alignShortcutsToUdfpsSection: AlignShortcutsToUdfpsSection, defaultStatusViewSection: DefaultStatusViewSection, defaultStatusBarSection: DefaultStatusBarSection, splitShadeGuidelines: SplitShadeGuidelines, defaultNotificationStackScrollLayoutSection: DefaultNotificationStackScrollLayoutSection, aodNotificationIconsSection: AodNotificationIconsSection, Loading @@ -55,6 +57,7 @@ constructor( defaultSettingsPopupMenuSection, alignShortcutsToUdfpsSection, defaultStatusViewSection, defaultStatusBarSection, defaultNotificationStackScrollLayoutSection, splitShadeGuidelines, aodNotificationIconsSection, Loading
packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultStatusBarSection.kt 0 → 100644 +103 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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.keyguard.ui.view.layout.sections import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.constraintlayout.widget.ConstraintSet.END import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID import androidx.constraintlayout.widget.ConstraintSet.START import androidx.constraintlayout.widget.ConstraintSet.TOP import com.android.keyguard.dagger.KeyguardStatusBarViewComponent import com.android.systemui.R import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.shared.model.KeyguardSection import com.android.systemui.shade.NotificationPanelView import com.android.systemui.shade.ShadeViewStateProvider import com.android.systemui.statusbar.phone.KeyguardStatusBarView import com.android.systemui.util.Utils import javax.inject.Inject /** A section for the status bar displayed at the top of the lockscreen. */ class DefaultStatusBarSection @Inject constructor( private val context: Context, private val featureFlags: FeatureFlags, private val notificationPanelView: NotificationPanelView, private val keyguardStatusBarViewComponentFactory: KeyguardStatusBarViewComponent.Factory, ) : KeyguardSection() { private val statusBarViewId = R.id.keyguard_header override fun addViews(constraintLayout: ConstraintLayout) { if (!featureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_BAR_VIEW)) { return } notificationPanelView.findViewById<View>(statusBarViewId)?.let { (it.parent as ViewGroup).removeView(it) } val view = LayoutInflater.from(constraintLayout.context) .inflate(R.layout.keyguard_status_bar, constraintLayout, false) as KeyguardStatusBarView constraintLayout.addView(view) } override fun bindData(constraintLayout: ConstraintLayout) { if (!featureFlags.isEnabled(Flags.MIGRATE_KEYGUARD_STATUS_BAR_VIEW)) { return } val statusBarView = constraintLayout.findViewById<KeyguardStatusBarView>(statusBarViewId) ?: return val provider = object : ShadeViewStateProvider { override val lockscreenShadeDragProgress: Float = 0f override val panelViewExpandedHeight: Float = 0f override fun shouldHeadsUpBeVisible(): Boolean { return false } } val statusBarViewComponent = keyguardStatusBarViewComponentFactory.build(statusBarView, provider) val controller = statusBarViewComponent.keyguardStatusBarViewController controller.init() } override fun applyConstraints(constraintSet: ConstraintSet) { constraintSet.apply { constrainHeight(statusBarViewId, Utils.getStatusBarHeaderHeightKeyguard(context)) connect(statusBarViewId, TOP, PARENT_ID, TOP) connect(statusBarViewId, START, PARENT_ID, START) connect(statusBarViewId, END, PARENT_ID, END) } } override fun removeViews(constraintLayout: ConstraintLayout) { constraintLayout.removeView(statusBarViewId) } }
packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultStatusViewSection.kt +3 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ constructor( it.requireViewById<ViewGroup>(R.id.status_view_media_container) ) keyguardViewConfigurator.get().keyguardStatusViewController = controller notificationPanelViewController.get().updateStatusBarViewController() notificationPanelViewController.get().updateStatusViewController() } } } Loading @@ -100,6 +100,8 @@ constructor( constraintSet.apply { constrainWidth(statusViewId, MATCH_CONSTRAINT) constrainHeight(statusViewId, WRAP_CONTENT) // TODO(b/296122465): Constrain to the top of [DefaultStatusBarSection] and remove the // extra margin below. connect(statusViewId, TOP, PARENT_ID, TOP) connect(statusViewId, START, PARENT_ID, START) connect(statusViewId, END, PARENT_ID, END) Loading