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

Commit 2e9b7213 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Avoid creating a new StatusBarRootFactory every time

The StatusBarRootFactory was not scoped as PerDisplaySingleton so we were creating a new instance every time it was requested from the component.

This in turns was creating a new instance of DarkIconManager (as a factory was used in StatusBarRootFactory), that was registering a dumpable multiple times, causing a crash.

Bug: 438213567
Test: Dagger bindings are not really testable
Flag: com.android.systemui.shared.status_bar_connected_displays
Change-Id: If2ec51cfcfa58208ef63adfb2062e7d03e940b1b
parent f0e9f95d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ interface PerDisplayCommonModule {
    fun bindsDisplayStateInteractor(impl: DisplayStateInteractorImpl): DisplayStateInteractor

    @Binds
    @PerDisplaySingleton
    @DisplayAware
    fun statusBarRootFactory(statusBarRootFactory: StatusBarRootFactory): StatusBarRootFactory

+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ import com.android.systemui.clock.ui.viewmodel.AmPmStyle
import com.android.systemui.clock.ui.viewmodel.ClockViewModel
import com.android.systemui.compose.modifiers.sysUiResTagContainer
import com.android.systemui.display.dagger.SystemUIDisplaySubcomponent.DisplayAware
import com.android.systemui.display.dagger.SystemUIDisplaySubcomponent.PerDisplaySingleton
import com.android.systemui.lifecycle.WindowLifecycleState
import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.lifecycle.repeatWhenAttached
@@ -116,6 +117,7 @@ import kotlinx.coroutines.DisposableHandle
import kotlinx.coroutines.awaitCancellation

/** Factory to simplify the dependency management for [StatusBarRoot] */
@PerDisplaySingleton
class StatusBarRootFactory
@Inject
constructor(