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

Commit 01611f83 authored by Evan Laird's avatar Evan Laird Committed by Android (Google) Code Review
Browse files

Merge "[sb] add some table logging for HomeStatusBarViewModel" into main

parents 302b7e39 1ce7ab39
Loading
Loading
Loading
Loading
+6 −17
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChip
import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel
import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState.Idle
import com.android.systemui.statusbar.featurepods.popups.shared.model.PopupChipModel
import com.android.systemui.statusbar.pipeline.shared.ui.model.SystemInfoCombinedVisibilityModel
import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
@@ -51,28 +53,15 @@ class FakeHomeStatusBarViewModel(
    override val shouldShowOperatorNameView = MutableStateFlow(false)

    override val isClockVisible =
        MutableStateFlow(
            HomeStatusBarViewModel.VisibilityModel(
                visibility = View.GONE,
                shouldAnimateChange = false,
            )
        )
        MutableStateFlow(VisibilityModel(visibility = View.GONE, shouldAnimateChange = false))

    override val isNotificationIconContainerVisible =
        MutableStateFlow(
            HomeStatusBarViewModel.VisibilityModel(
                visibility = View.GONE,
                shouldAnimateChange = false,
            )
        )
        MutableStateFlow(VisibilityModel(visibility = View.GONE, shouldAnimateChange = false))

    override val systemInfoCombinedVis =
        MutableStateFlow(
            HomeStatusBarViewModel.SystemInfoCombinedVisibilityModel(
                HomeStatusBarViewModel.VisibilityModel(
                    visibility = View.GONE,
                    shouldAnimateChange = false,
                ),
            SystemInfoCombinedVisibilityModel(
                VisibilityModel(visibility = View.GONE, shouldAnimateChange = false),
                Idle,
            )
        )
+4 −4
Original line number Diff line number Diff line
@@ -83,12 +83,11 @@ import com.android.systemui.statusbar.phone.SysuiDarkIconDispatcher
import com.android.systemui.statusbar.phone.data.repository.fakeDarkIconRepository
import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarIconBlockList
import com.android.systemui.statusbar.pipeline.shared.domain.interactor.setHomeStatusBarInteractorShowOperatorName
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel.VisibilityModel
import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.emptyFlow
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.UnconfinedTestDispatcher
import org.junit.Before
@@ -423,8 +422,9 @@ class HomeStatusBarViewModelImplTest : SysuiTestCase() {
    fun areNotificationsLightsOut_requiresFlagEnabled() =
        kosmos.runTest {
            assertLogsWtf {
                val flow = underTest.areNotificationsLightsOut
                assertThat(flow).isEqualTo(emptyFlow<Boolean>())
                val latest by collectLastValue(underTest.areNotificationsLightsOut)
                // Nothing is emitted
                assertThat(latest).isNull()
            }
        }

+1 −1
Original line number Diff line number Diff line
@@ -41,8 +41,8 @@ import com.android.systemui.statusbar.notification.icon.ui.viewbinder.ConnectedD
import com.android.systemui.statusbar.notification.shared.NotificationsLiveDataStoreRefactor
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment
import com.android.systemui.statusbar.phone.ongoingcall.StatusBarChipsModernization
import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel.VisibilityModel
import javax.inject.Inject
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
+2 −5
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import com.android.systemui.statusbar.phone.ui.StatusBarIconController
import com.android.systemui.statusbar.pipeline.shared.ui.binder.HomeStatusBarIconBlockListBinder
import com.android.systemui.statusbar.pipeline.shared.ui.binder.HomeStatusBarViewBinder
import com.android.systemui.statusbar.pipeline.shared.ui.binder.StatusBarVisibilityChangeListener
import com.android.systemui.statusbar.pipeline.shared.ui.model.VisibilityModel
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.HomeStatusBarViewModel.HomeStatusBarViewModelFactory
import javax.inject.Inject
@@ -304,11 +305,7 @@ fun StatusBarRoot(
fun Disambiguation(viewModel: HomeStatusBarViewModel) {
    val clockVisibilityModel =
        viewModel.isClockVisible.collectAsStateWithLifecycle(
            initialValue =
                HomeStatusBarViewModel.VisibilityModel(
                    visibility = View.GONE,
                    shouldAnimateChange = false,
                )
            initialValue = VisibilityModel(visibility = View.GONE, shouldAnimateChange = false)
        )
    if (clockVisibilityModel.value.visibility == View.VISIBLE) {
        Box(modifier = Modifier.fillMaxSize().alpha(0.5f), contentAlignment = Alignment.Center) {
+44 −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.pipeline.shared.ui.model

import com.android.systemui.log.table.Diffable
import com.android.systemui.log.table.TableRowLogger
import com.android.systemui.statusbar.events.shared.model.SystemEventAnimationState

/** The combined visibility + animation state for the system info status bar area */
data class SystemInfoCombinedVisibilityModel(
    val baseVisibility: VisibilityModel,
    val animationState: SystemEventAnimationState,
) : Diffable<SystemInfoCombinedVisibilityModel> {
    override fun logDiffs(prevVal: SystemInfoCombinedVisibilityModel, row: TableRowLogger) {
        if (animationState != prevVal.animationState) {
            row.logChange(COL_ANIM, animationState.name)
        }

        baseVisibility.logDiffs(prevVal.baseVisibility, row)
    }

    override fun logFull(row: TableRowLogger) {
        row.logChange(COL_ANIM, animationState.name)
        baseVisibility.logFull(row)
    }

    companion object {
        const val COL_ANIM = "animState"
    }
}
Loading