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

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

Merge changes from topics "keyguard-battery", "shade-header-battery" into main

* changes:
  [sb] Add new battery icon to ShadeHeaderController
  [sb] Add compose battery to keyguard status bar
  [sb] Add new compose battery to HomeStatusBar
parents f886beb4 b9041dfe
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -51,11 +51,13 @@ import com.android.systemui.res.R
import com.android.systemui.shade.ShadeViewStateProvider
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.StatusBarState
import com.android.systemui.statusbar.core.NewStatusBarIcons
import com.android.systemui.statusbar.data.repository.StatusBarContentInsetsProviderStore
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler
import com.android.systemui.statusbar.layout.mockStatusBarContentInsetsProvider
import com.android.systemui.statusbar.phone.ui.StatusBarIconController
import com.android.systemui.statusbar.phone.ui.TintedIconManager
import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.batteryViewModelFactory
import com.android.systemui.statusbar.policy.BatteryController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -85,6 +87,7 @@ import org.mockito.MockitoAnnotations
@SmallTest
@RunWith(AndroidJUnit4::class)
@RunWithLooper(setAsMainLooper = true)
@DisableFlags(NewStatusBarIcons.FLAG_NAME)
class KeyguardStatusBarViewControllerTest : SysuiTestCase() {
    private lateinit var kosmos: Kosmos
    private lateinit var testScope: TestScope
@@ -190,6 +193,7 @@ class KeyguardStatusBarViewControllerTest : SysuiTestCase() {
            statusBarIconController,
            iconManagerFactory,
            batteryMeterViewController,
            kosmos.batteryViewModelFactory,
            shadeViewStateProvider,
            keyguardStateController,
            keyguardBypassController,
+33 −1
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ package com.android.systemui.statusbar.pipeline.shared.ui.viewmodel
import android.graphics.Color
import android.graphics.Rect
import android.view.View
import androidx.compose.runtime.getValue
import com.android.systemui.lifecycle.ExclusiveActivatable
import com.android.systemui.lifecycle.Hydrator
import com.android.systemui.plugins.DarkIconDispatcher
import com.android.systemui.statusbar.chips.mediaprojection.domain.model.MediaProjectionStopDialogModel
import com.android.systemui.statusbar.chips.ui.model.MultipleOngoingActivityChipsModel
@@ -26,15 +29,20 @@ 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.phone.domain.interactor.IsAreaDark
import com.android.systemui.statusbar.pipeline.battery.ui.viewmodel.BatteryViewModel
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
import org.mockito.Mockito.mock

class FakeHomeStatusBarViewModel(
    override val operatorNameViewModel: StatusBarOperatorNameViewModel
) : HomeStatusBarViewModel {
) : HomeStatusBarViewModel, ExclusiveActivatable() {
    private val hydrator = Hydrator("FakeHomeStatusBarViewModel.hydrator")

    override val areNotificationsLightsOut = MutableStateFlow(false)

    override val isTransitioningFromLockscreenToOccluded = MutableStateFlow(false)
@@ -56,6 +64,11 @@ class FakeHomeStatusBarViewModel(

    override val isHomeStatusBarAllowedByScene = MutableStateFlow(false)

    override val batteryViewModelFactory: BatteryViewModel.Factory =
        object : BatteryViewModel.Factory {
            override fun create(): BatteryViewModel = mock(BatteryViewModel::class.java)
        }

    override val shouldShowOperatorNameView = MutableStateFlow(false)

    override val isClockVisible =
@@ -80,6 +93,7 @@ class FakeHomeStatusBarViewModel(

    var darkIconTint = Color.BLACK
    var lightIconTint = Color.WHITE
    var darkIntensity = 0f

    override val areaTint: Flow<StatusBarTintColor> =
        MutableStateFlow(
@@ -91,4 +105,22 @@ class FakeHomeStatusBarViewModel(
                }
            }
        )

    val isAreaDarkSource =
        MutableStateFlow(
            IsAreaDark { viewBounds ->
                if (DarkIconDispatcher.isInAreas(darkRegions, viewBounds)) {
                    darkIntensity < 0.5f
                } else {
                    false
                }
            }
        )

    override val areaDark: IsAreaDark by
        hydrator.hydratedStateOf(traceName = "areaDark", source = isAreaDarkSource)

    override suspend fun onActivated(): Nothing {
        hydrator.activate()
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ frame when animating QS <-> QQS transition
                android:id="@+id/batteryRemainingIcon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                app:textAppearance="@style/TextAppearance.QS.Status" />
        </LinearLayout>
    </FrameLayout>
+6 −1
Original line number Diff line number Diff line
@@ -34,12 +34,17 @@
        android:orientation="horizontal"/>

    <!-- PaddingEnd is added to balance hover padding, compensating for paddingStart in statusIcons.
         See b/339589733 -->
         See b/339589733.

         Default visibility is now "gone" to make space for the new battery icon
         -->
    <com.android.systemui.battery.BatteryMeterView android:id="@+id/battery"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:clipToPadding="false"
        android:clipChildren="false"
        android:paddingEnd="@dimen/status_bar_battery_end_padding"
        android:visibility="gone"
        systemui:textAppearance="@style/TextAppearance.StatusBar.Clock" />

</LinearLayout>
+4 −1
Original line number Diff line number Diff line
@@ -46,7 +46,10 @@ import java.io.PrintWriter;

import javax.inject.Inject;

/** Controller for {@link BatteryMeterView}. **/
/**
 * Controller for {@link BatteryMeterView}.
 * @deprecated once [NewStatusBarIcons] is rolled out, this class is no longer needed
 */
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
    private final ConfigurationController mConfigurationController;
    private final TunerService mTunerService;
Loading