Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8474198 authored by Sherry Zhou's avatar Sherry Zhou Committed by Android (Google) Code Review
Browse files

Merge "Reland "Fix there's no padding between time and date in large weather...

Merge "Reland "Fix there's no padding between time and date in large weather clock in AOD"" into main
parents 9bddfad3 b0e32440
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -233,6 +233,7 @@
    <item type="id" name="smart_space_barrier_bottom" />
    <item type="id" name="small_clock_guideline_top" />
    <item type="id" name="weather_clock_date_and_icons_barrier_bottom" />
    <item type="id" name="weather_clock_bc_smartspace_bottom" />
    <item type="id" name="accessibility_actions_view" />

    <!-- Privacy dialog -->
+16 −7
Original line number Diff line number Diff line
@@ -37,6 +37,10 @@ import com.android.systemui.keyguard.ui.viewmodel.KeyguardRootViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.plugins.clocks.AodClockBurnInModel
import com.android.systemui.plugins.clocks.ClockController
import com.android.systemui.util.ui.value
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch

object KeyguardClockViewBinder {
@@ -99,11 +103,16 @@ object KeyguardClockViewBinder {

                launch {
                    if (!MigrateClocksToBlueprint.isEnabled) return@launch
                    viewModel.isAodIconsVisible.collect {
                    combine(
                            viewModel.hasAodIcons,
                            rootViewModel.isNotifIconContainerVisible.map { it.value }
                        ) { hasIcon, isVisible ->
                            hasIcon && isVisible
                        }
                        .distinctUntilChanged()
                        .collect { _ ->
                            viewModel.currentClock.value?.let {
                            if (
                                viewModel.isLargeClockVisible.value && it.config.useCustomClockScene
                            ) {
                                if (it.config.useCustomClockScene) {
                                    blueprintInteractor.refreshBlueprint(Type.DefaultTransition)
                                }
                            }
+24 −17
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.plugins.clocks.ClockController
import com.android.systemui.plugins.clocks.ClockFaceLayout
import com.android.systemui.res.R
import com.android.systemui.shared.R as sharedR
import com.android.systemui.util.ui.value
import dagger.Lazy
import javax.inject.Inject

@@ -70,6 +71,7 @@ constructor(
    private val rootViewModel: KeyguardRootViewModel,
) : KeyguardSection() {
    override fun addViews(constraintLayout: ConstraintLayout) {}

    override fun bindData(constraintLayout: ConstraintLayout) {
        if (!MigrateClocksToBlueprint.isEnabled) {
            return
@@ -121,38 +123,42 @@ constructor(
    private fun getTargetClockFace(clock: ClockController): ClockFaceLayout =
        if (keyguardClockViewModel.isLargeClockVisible.value) clock.largeClock.layout
        else clock.smallClock.layout

    private fun getNonTargetClockFace(clock: ClockController): ClockFaceLayout =
        if (keyguardClockViewModel.isLargeClockVisible.value) clock.smallClock.layout
        else clock.largeClock.layout

    fun constrainWeatherClockDateIconsBarrier(constraints: ConstraintSet) {
        constraints.apply {
            if (keyguardClockViewModel.isAodIconsVisible.value) {
            createBarrier(
                    R.id.weather_clock_date_and_icons_barrier_bottom,
                R.id.weather_clock_bc_smartspace_bottom,
                Barrier.BOTTOM,
                    0,
                    *intArrayOf(sharedR.id.bc_smartspace_view, R.id.aod_notification_icon_container)
                getDimen(ENHANCED_SMARTSPACE_HEIGHT),
                (custR.id.weather_clock_time)
            )
            } else {
                if (smartspaceViewModel.bcSmartspaceVisibility.value == VISIBLE) {
            if (
                rootViewModel.isNotifIconContainerVisible.value.value &&
                    keyguardClockViewModel.hasAodIcons.value
            ) {
                createBarrier(
                    R.id.weather_clock_date_and_icons_barrier_bottom,
                    Barrier.BOTTOM,
                    0,
                        (sharedR.id.bc_smartspace_view)
                    *intArrayOf(
                        R.id.aod_notification_icon_container,
                        R.id.weather_clock_bc_smartspace_bottom
                    )
                )
            } else {
                createBarrier(
                    R.id.weather_clock_date_and_icons_barrier_bottom,
                    Barrier.BOTTOM,
                        getDimen(ENHANCED_SMARTSPACE_HEIGHT),
                        (R.id.lockscreen_clock_view)
                    0,
                    *intArrayOf(R.id.weather_clock_bc_smartspace_bottom)
                )
            }
        }
    }
    }

    open fun applyDefaultConstraints(constraints: ConstraintSet) {
        val guideline =
@@ -198,6 +204,7 @@ constructor(
    companion object {
        private const val DATE_WEATHER_VIEW_HEIGHT = "date_weather_view_height"
        private const val ENHANCED_SMARTSPACE_HEIGHT = "enhanced_smartspace_height"

        fun getDimen(context: Context, name: String): Int {
            val res = context.packageManager.getResourcesForApplication(context.packageName)
            val id = res.getIdentifier(name, "dimen", context.packageName)
+11 −15
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import com.android.systemui.keyguard.shared.model.ClockSizeSetting
import com.android.systemui.res.R
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.shade.shared.model.ShadeMode
import com.android.systemui.statusbar.notification.domain.interactor.NotificationsKeyguardInteractor
import com.android.systemui.statusbar.notification.icon.ui.viewmodel.NotificationIconContainerAlwaysOnDisplayViewModel
import com.android.systemui.statusbar.ui.SystemBarUtilsProxy
import javax.inject.Inject
@@ -50,7 +49,6 @@ constructor(
    keyguardClockInteractor: KeyguardClockInteractor,
    @Application private val applicationScope: CoroutineScope,
    aodNotificationIconViewModel: NotificationIconContainerAlwaysOnDisplayViewModel,
    notifsKeyguardInteractor: NotificationsKeyguardInteractor,
    @get:VisibleForTesting val shadeInteractor: ShadeInteractor,
    private val systemBarUtils: SystemBarUtilsProxy,
    configurationInteractor: ConfigurationInteractor,
@@ -90,14 +88,13 @@ constructor(
                currentClock?.let { clock ->
                    val face = if (isLargeClock) clock.largeClock else clock.smallClock
                    face.config.hasCustomWeatherDataDisplay
                }
                    ?: false
                } ?: false
            }
            .stateIn(
                scope = applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = currentClock.value?.largeClock?.config?.hasCustomWeatherDataDisplay
                        ?: false
                initialValue =
                    currentClock.value?.largeClock?.config?.hasCustomWeatherDataDisplay ?: false
            )

    val clockShouldBeCentered: StateFlow<Boolean> =
@@ -109,11 +106,10 @@ constructor(

    // To translate elements below smartspace in weather clock to avoid overlapping between date
    // element in weather clock and aod icons
    val isAodIconsVisible: StateFlow<Boolean> = combine(aodNotificationIconViewModel.icons.map {
        it.visibleIcons.isNotEmpty()
    }, notifsKeyguardInteractor.areNotificationsFullyHidden) { hasIcons, visible ->
        hasIcons && visible
    }.stateIn(
    val hasAodIcons: StateFlow<Boolean> =
        aodNotificationIconViewModel.icons
            .map { it.visibleIcons.isNotEmpty() }
            .stateIn(
                scope = applicationScope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = false
+0 −2
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.shade.domain.interactor.shadeInteractor
import com.android.systemui.statusbar.notification.icon.ui.viewmodel.notificationIconContainerAlwaysOnDisplayViewModel
import com.android.systemui.statusbar.notification.stack.domain.interactor.notificationsKeyguardInteractor
import com.android.systemui.statusbar.ui.systemBarUtilsProxy

val Kosmos.keyguardClockViewModel by
@@ -32,7 +31,6 @@ val Kosmos.keyguardClockViewModel by
            keyguardClockInteractor = keyguardClockInteractor,
            applicationScope = applicationCoroutineScope,
            aodNotificationIconViewModel = notificationIconContainerAlwaysOnDisplayViewModel,
            notifsKeyguardInteractor = notificationsKeyguardInteractor,
            shadeInteractor = shadeInteractor,
            systemBarUtils = systemBarUtilsProxy,
            configurationInteractor = configurationInteractor,