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

Commit 400a1a46 authored by Mark Renouf's avatar Mark Renouf
Browse files

Backport fixes and enable new Dagger Validations

This corrects a duplicated binding of UnfoldTransitionModule
which will become an error in future Dagger releases. With
this change, the checks are also raised to error to prevent
further regressions:

dagger.explicitBindingConflictsWithInject=ERROR
dagger.strictMultibindingValidation=enabled

This change unblocks an upgrade of external/dagger2

Test: m SystemUI-core; compiles without error
Test: Treehugger presubmit
Flag: NA (backport of a fix from internal main)
Change-Id: I7a887cf6ac200a9080893dd4dde969aef7ceef5b
Merged-In: I0aef5464000d30b27097ddaed9548d128bedccf6
parent d9884e39
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -214,6 +214,8 @@ android_library {

    javacflags: [
        "-Adagger.fastInit=enabled",
        "-Adagger.explicitBindingConflictsWithInject=ERROR",
        "-Adagger.strictMultibindingValidation=enabled",
        "-Aroom.schemaLocation=frameworks/base/packages/SystemUI/schemas",
    ],
    kotlincflags: ["-Xjvm-default=all"],
+2 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerImpl;
import com.android.systemui.statusbar.policy.SensorPrivacyController;
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.volume.dagger.VolumeModule;
import com.android.systemui.wallpapers.dagger.WallpaperModule;

@@ -99,6 +100,7 @@ import javax.inject.Named;
        RotationLockModule.class,
        SceneContainerFrameworkModule.class,
        StartCentralSurfacesModule.class,
        UnfoldTransitionModule.Startables.class,
        VolumeModule.class,
        WallpaperModule.class,
        KeyboardShortcutsModule.class
+5 −8
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import com.android.systemui.unfold.util.ScopedUnfoldTransitionProgressProvider
import com.android.systemui.unfold.util.UnfoldKeyguardVisibilityManager
import com.android.systemui.util.kotlin.getOrNull
import dagger.BindsInstance
import dagger.Lazy
import dagger.Module
import dagger.Provides
import dagger.Subcomponent
@@ -34,7 +33,9 @@ import java.util.Optional
import javax.inject.Named
import javax.inject.Scope

@Scope @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class SysUIUnfoldScope
@Scope @MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
annotation class SysUIUnfoldScope

/**
 * Creates an injectable [SysUIUnfoldComponent] that provides objects that have been scoped with
@@ -49,7 +50,6 @@ import javax.inject.Scope
 */
@Module(subcomponents = [SysUIUnfoldComponent::class])
class SysUIUnfoldModule {

    @Provides
    @SysUISingleton
    fun provideSysUIUnfoldComponent(
@@ -57,8 +57,7 @@ class SysUIUnfoldModule {
        rotationProvider: Optional<NaturalRotationUnfoldProgressProvider>,
        @Named(UNFOLD_STATUS_BAR) scopedProvider: Optional<ScopedUnfoldTransitionProgressProvider>,
        @UnfoldBg bgProvider: Optional<UnfoldTransitionProgressProvider>,
        unfoldLatencyTracker: Lazy<UnfoldLatencyTracker>,
        factory: SysUIUnfoldComponent.Factory
        factory: SysUIUnfoldComponent.Factory,
    ): Optional<SysUIUnfoldComponent> {
        val p1 = provider.getOrNull()
        val p2 = rotationProvider.getOrNull()
@@ -67,7 +66,7 @@ class SysUIUnfoldModule {
        return if (p1 == null || p2 == null || p3 == null || p4 == null) {
            Optional.empty()
        } else {
            Optional.of(factory.create(p1, p2, p3, p4, unfoldLatencyTracker.get()))
            Optional.of(factory.create(p1, p2, p3, p4))
        }
    }
}
@@ -75,7 +74,6 @@ class SysUIUnfoldModule {
@SysUIUnfoldScope
@Subcomponent
interface SysUIUnfoldComponent {

    @Subcomponent.Factory
    interface Factory {
        fun create(
@@ -83,7 +81,6 @@ interface SysUIUnfoldComponent {
            @BindsInstance p2: NaturalRotationUnfoldProgressProvider,
            @BindsInstance p3: ScopedUnfoldTransitionProgressProvider,
            @BindsInstance @UnfoldBg p4: UnfoldTransitionProgressProvider,
            @BindsInstance p5: UnfoldLatencyTracker,
        ): SysUIUnfoldComponent
    }

+7 −4
Original line number Diff line number Diff line
@@ -170,14 +170,17 @@ class UnfoldTransitionModule {

    @Module
    interface Bindings {
        @Binds fun bindRepository(impl: UnfoldTransitionRepositoryImpl): UnfoldTransitionRepository

        @Binds fun bindInteractor(impl: UnfoldTransitionInteractorImpl): UnfoldTransitionInteractor
    }

    @Module
    interface Startables {
        @Binds
        @IntoMap
        @ClassKey(UnfoldTraceLogger::class)
        fun bindUnfoldTraceLogger(impl: UnfoldTraceLogger): CoreStartable

        @Binds fun bindRepository(impl: UnfoldTransitionRepositoryImpl): UnfoldTransitionRepository

        @Binds fun bindInteractor(impl: UnfoldTransitionInteractorImpl): UnfoldTransitionInteractor
    }
}