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

Commit f69c3423 authored by Dave Mankoff's avatar Dave Mankoff
Browse files

New Dagger Compiler Validations

1) explicitBindingConflictsWithInject
  Ensures that a class marked with @Inject does not also have an
  @Provides elsewhere. The code had one case of this,
  `UnfoldLatencyTracker`, which has been moved into the subcomponent
  where it is used.

2) strictMultibindingValidation
  Ensures that parent components can't multibind things into their
  children (the opposite is allowable). We had one case where
  `UnfoldTraceLogger` was being multibound into the @SysUISingleton
  scope from the @Singleton scope.

Also split CoroutinesModule into GlobalCoroutinesModule and
SysUICoroutinesModule.
GlobalCoroutinesModule contains our @Application and @Main
related items that are common across the process.

SysUICoroutinesModule contains the @Background related items that are
specific to the SystemUI side of the process.

Flag: NA
Test: built and run
Fixes: 154740484
Change-Id: I0aef5464000d30b27097ddaed9548d128bedccf6
parent 4987500b
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
@@ -24,6 +24,7 @@ import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.plugins.PluginsModule;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
import com.android.systemui.util.kotlin.GlobalCoroutinesModule;

import dagger.Module;
import dagger.Provides;
@@ -47,6 +48,7 @@ import dagger.Provides;
        AndroidInternalsModule.class,
        FrameworkServicesModule.class,
        GlobalConcurrencyModule.class,
        GlobalCoroutinesModule.class,
        UnfoldTransitionModule.class,
        PluginsModule.class,
})
+2 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerIm
import com.android.systemui.statusbar.policy.SensorPrivacyController;
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;
import com.android.systemui.toast.ToastModule;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.volume.dagger.VolumeModule;
import com.android.systemui.wallpapers.dagger.WallpaperModule;

@@ -107,6 +108,7 @@ import javax.inject.Named;
        ShadeModule.class,
        StartCentralSurfacesModule.class,
        SceneContainerFrameworkModule.class,
        UnfoldTransitionModule.Startables.class,
        ToastModule.class,
        VolumeModule.class,
        WallpaperModule.class
+2 −2
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ import com.android.systemui.user.domain.UserDomainLayerModule;
import com.android.systemui.util.EventLogModule;
import com.android.systemui.util.concurrency.SysUIConcurrencyModule;
import com.android.systemui.util.dagger.UtilModule;
import com.android.systemui.util.kotlin.CoroutinesModule;
import com.android.systemui.util.kotlin.SysUICoroutinesModule;
import com.android.systemui.util.reference.ReferenceModule;
import com.android.systemui.util.sensors.SensorModule;
import com.android.systemui.util.settings.SettingsUtilModule;
@@ -182,7 +182,6 @@ import javax.inject.Named;
        ConfigurationControllerModule.class,
        ConnectivityModule.class,
        ControlsModule.class,
        CoroutinesModule.class,
        DemoModeModule.class,
        DeviceEntryModule.class,
        DisableFlagsModule.class,
@@ -228,6 +227,7 @@ import javax.inject.Named;
        StatusBarWindowModule.class,
        SystemPropertiesFlagsModule.class,
        SysUIConcurrencyModule.class,
        SysUICoroutinesModule.class,
        SysUIUnfoldModule.class,
        TelephonyRepositoryModule.class,
        TemporaryDisplayModule.class,
+2 −5
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
@@ -57,7 +56,6 @@ class SysUIUnfoldModule {
        rotationProvider: Optional<NaturalRotationUnfoldProgressProvider>,
        @Named(UNFOLD_STATUS_BAR) scopedProvider: Optional<ScopedUnfoldTransitionProgressProvider>,
        @UnfoldBg bgProvider: Optional<UnfoldTransitionProgressProvider>,
        unfoldLatencyTracker: Lazy<UnfoldLatencyTracker>,
        factory: SysUIUnfoldComponent.Factory
    ): Optional<SysUIUnfoldComponent> {
        val p1 = provider.getOrNull()
@@ -67,7 +65,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))
        }
    }
}
@@ -82,8 +80,7 @@ interface SysUIUnfoldComponent {
            @BindsInstance p1: UnfoldTransitionProgressProvider,
            @BindsInstance p2: NaturalRotationUnfoldProgressProvider,
            @BindsInstance p3: ScopedUnfoldTransitionProgressProvider,
            @BindsInstance @UnfoldBg p4: UnfoldTransitionProgressProvider,
            @BindsInstance p5: UnfoldLatencyTracker,
            @BindsInstance @UnfoldBg p4: UnfoldTransitionProgressProvider
        ): SysUIUnfoldComponent
    }

Loading