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
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 80656e9..a322b55 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -214,6 +214,8 @@
javacflags: [
"-Adagger.fastInit=enabled",
+ "-Adagger.explicitBindingConflictsWithInject=ERROR",
+ "-Adagger.strictMultibindingValidation=enabled",
"-Aroom.schemaLocation=frameworks/base/packages/SystemUI/schemas",
],
kotlincflags: ["-Xjvm-default=all"],