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

Commit 15b2811e authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Move PerDisplayRepository from SystemUI to displaylib

This moved PerDisplayRepository to displaylib, making it available to places outside of sysui.

A thing worth noticing is that the factory is not actually generated from the dagger component of displaylib, as we can't directly expose an element with a generic constructor.

The way this works is that PerDisplayRepository takes part in the dagger graph of systemui (or any other project compiling this).

For this reason, the @DisplayLibBackground annotation has been introduced, to allow systemui to provide a coroutine scope usable from PerDisplayRepositoryImpl.Factory.

Tests are untouched, and still in SystemUI (by purpose, to prove the behavior didn't change)

In a follow up I'll remove the displaylib dagger component (not strictly needed here), and move the tests to displaylib.

Bug: 401305290
Test: PerDisplayInstanceRepositoryImplTest, builds and runs successfully
Flag: NONE - Just moving code around
Change-Id: I262d0c6aca5edb94fee39b863ae8ce1a16a1a1e1
parent ac508b99
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.display.data.repository
import android.view.Display
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.app.displaylib.PerDisplayInstanceRepositoryImpl
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.dumpManager
import com.android.systemui.kosmos.testScope
+1 −1
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@
package com.android.systemui.common.domain.interactor

import android.util.Log
import com.android.app.displaylib.PerDisplayRepository
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.display.data.repository.DisplayRepository
import com.android.systemui.display.data.repository.PerDisplayRepository
import com.android.systemui.model.StateChange
import com.android.systemui.model.SysUiState
import javax.inject.Inject
+3 −3
Original line number Diff line number Diff line
@@ -16,9 +16,9 @@

package com.android.systemui.dagger

import com.android.systemui.display.data.repository.DefaultDisplayOnlyInstanceRepositoryImpl
import com.android.systemui.display.data.repository.PerDisplayInstanceRepositoryImpl
import com.android.systemui.display.data.repository.PerDisplayRepository
import com.android.app.displaylib.DefaultDisplayOnlyInstanceRepositoryImpl
import com.android.app.displaylib.PerDisplayInstanceRepositoryImpl
import com.android.app.displaylib.PerDisplayRepository
import com.android.systemui.model.SysUIStateInstanceProvider
import com.android.systemui.model.SysUiState
import com.android.systemui.shade.shared.flag.ShadeWindowGoesAround
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.demomode.dagger.DemoModeModule;
import com.android.systemui.deviceentry.DeviceEntryModule;
import com.android.systemui.display.DisplayModule;
import com.android.systemui.display.data.repository.PerDisplayRepository;
import com.android.app.displaylib.PerDisplayRepository;
import com.android.systemui.doze.dagger.DozeComponent;
import com.android.systemui.dreams.dagger.DreamModule;
import com.android.systemui.flags.FeatureFlags;
+6 −1
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ package com.android.systemui.display

import android.hardware.display.DisplayManager
import android.os.Handler
import com.android.app.displaylib.DisplayLibBackground
import com.android.app.displaylib.DisplayLibComponent
import com.android.app.displaylib.PerDisplayRepository
import com.android.app.displaylib.createDisplayLibComponent
import com.android.systemui.CoreStartable
import com.android.systemui.dagger.SysUISingleton
@@ -34,7 +36,6 @@ import com.android.systemui.display.data.repository.DisplayWindowPropertiesRepos
import com.android.systemui.display.data.repository.FocusedDisplayRepository
import com.android.systemui.display.data.repository.FocusedDisplayRepositoryImpl
import com.android.systemui.display.data.repository.PerDisplayRepoDumpHelper
import com.android.systemui.display.data.repository.PerDisplayRepository
import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractor
import com.android.systemui.display.domain.interactor.ConnectedDisplayInteractorImpl
import com.android.systemui.display.domain.interactor.DisplayWindowPropertiesInteractorModule
@@ -85,6 +86,10 @@ interface DisplayModule {
    @Binds
    fun dumpRegistrationLambda(helper: PerDisplayRepoDumpHelper): PerDisplayRepository.InitCallback

    @Binds
    @DisplayLibBackground
    fun bindDisplayLibBackground(@Background bgScope: CoroutineScope): CoroutineScope

    companion object {
        @Provides
        @SysUISingleton
Loading