@@ -94,7 +94,7 @@ class RoomSchemaLocationWorkaround implements Workaround {
94
94
95
95
// Add a command line argument provider to the task-specific list of providers
96
96
task. options. compilerArgumentProviders. add(
97
- new JavaCompilerRoomSchemaLocationArgumentProvider (taskSpecificSchemaDir)
97
+ new JavaCompilerRoomSchemaLocationArgumentProvider (roomExtension . schemaLocationDir, taskSpecificSchemaDir)
98
98
)
99
99
100
100
// Register the generated schemas to be merged back to the original specified schema directory
@@ -118,7 +118,7 @@ class RoomSchemaLocationWorkaround implements Workaround {
118
118
applyToAllAndroidVariants(project) { variant ->
119
119
def variantSpecificSchemaDir = project. objects. directoryProperty()
120
120
variantSpecificSchemaDir. set(getVariantSpecificSchemaDir(project, " kapt${ variant.name.capitalize()} Kotlin" ))
121
- variant. javaCompileOptions. annotationProcessorOptions. compilerArgumentProviders. add(new KaptRoomSchemaLocationArgumentProvider (variantSpecificSchemaDir))
121
+ variant. javaCompileOptions. annotationProcessorOptions. compilerArgumentProviders. add(new KaptRoomSchemaLocationArgumentProvider (roomExtension . schemaLocationDir, variantSpecificSchemaDir))
122
122
123
123
// Register the variant-specific directory with the merge task
124
124
roomExtension. registerOutputDirectory(variantSpecificSchemaDir)
@@ -290,10 +290,14 @@ class RoomSchemaLocationWorkaround implements Workaround {
290
290
}
291
291
292
292
static abstract class RoomSchemaLocationArgumentProvider implements CommandLineArgumentProvider {
293
+ @Internal
294
+ final Provider<Directory > configuredSchemaLocationDir
295
+
293
296
@OutputDirectory
294
- Provider<Directory > schemaLocationDir
297
+ final Provider<Directory > schemaLocationDir
295
298
296
- RoomSchemaLocationArgumentProvider (Provider<Directory > schemaLocationDir ) {
299
+ RoomSchemaLocationArgumentProvider (Provider<Directory > configuredSchemaLocationDir , Provider<Directory > schemaLocationDir ) {
300
+ this . configuredSchemaLocationDir = configuredSchemaLocationDir
297
301
this . schemaLocationDir = schemaLocationDir
298
302
}
299
303
@@ -304,7 +308,7 @@ class RoomSchemaLocationWorkaround implements Workaround {
304
308
305
309
@Override
306
310
Iterable<String > asArguments () {
307
- if (schemaLocationDir . isPresent()) {
311
+ if (configuredSchemaLocationDir . isPresent()) {
308
312
return [" -A${ ROOM_SCHEMA_LOCATION} =${ schemaLocationPath} " as String ]
309
313
} else {
310
314
return []
@@ -313,16 +317,16 @@ class RoomSchemaLocationWorkaround implements Workaround {
313
317
}
314
318
315
319
static class JavaCompilerRoomSchemaLocationArgumentProvider extends RoomSchemaLocationArgumentProvider {
316
- JavaCompilerRoomSchemaLocationArgumentProvider (Provider<Directory > schemaLocationDir ) {
317
- super (schemaLocationDir)
320
+ JavaCompilerRoomSchemaLocationArgumentProvider (Provider<Directory > configuredSchemaLocationDir , Provider< Directory > schemaLocationDir ) {
321
+ super (configuredSchemaLocationDir, schemaLocationDir)
318
322
}
319
323
}
320
324
321
325
static class KaptRoomSchemaLocationArgumentProvider extends RoomSchemaLocationArgumentProvider {
322
326
private Provider<Directory > temporarySchemaLocationDir
323
327
324
- KaptRoomSchemaLocationArgumentProvider (Provider<Directory > schemaLocationDir ) {
325
- super (schemaLocationDir)
328
+ KaptRoomSchemaLocationArgumentProvider (Provider<Directory > configuredSchemaLocationDir , Provider< Directory > schemaLocationDir ) {
329
+ super (configuredSchemaLocationDir, schemaLocationDir)
326
330
this . temporarySchemaLocationDir = schemaLocationDir. map {it. dir(" ../${ it.asFile.name} Temp" ) }
327
331
}
328
332
@@ -333,8 +337,8 @@ class RoomSchemaLocationWorkaround implements Workaround {
333
337
}
334
338
335
339
static class MergeAssociations {
336
- ObjectFactory objectFactory
337
- Map<Provider<Directory > , ConfigurableFileCollection > mergeAssociations = [:]
340
+ final ObjectFactory objectFactory
341
+ final Map<Provider<Directory > , ConfigurableFileCollection > mergeAssociations = [:]
338
342
339
343
@Inject
340
344
MergeAssociations (ObjectFactory objectFactory ) {
0 commit comments