vendor/lineage: Add support for java source overlays

*) Set JAVA_SOURCE_OVERLAYS in a device makefile as follows:
   # Java sourcefile overlays (for Android.bp built modules only)
   # Format is a whitespace separated set of rules, each of which
   # structured as follows:
   # modulename|overlay directory|glob pattern within overlay dir
   JAVA_SOURCE_OVERLAYS := \
           org.lineageos.hardware|$(LOCAL_PATH)/lineagehw|**/*.java

*) As of this commit, java sources overlays are only allowed for
   module org.lineageos.hardware.

Change-Id: I6be1c12567081357f5231a84df98ac002c0563b4
diff --git a/build/soong/Android.bp b/build/soong/Android.bp
index 21304ee..18e9a84 100644
--- a/build/soong/Android.bp
+++ b/build/soong/Android.bp
@@ -2,6 +2,7 @@
     name: "soong-lineage",
     pkgPath: "lineage/soong/android",
     srcs: [
+        "android/config.go",
         "android/variable.go",
     ],
 }
diff --git a/build/soong/android/config.go b/build/soong/android/config.go
new file mode 100644
index 0000000..e926c9d
--- /dev/null
+++ b/build/soong/android/config.go
@@ -0,0 +1,13 @@
+package android
+
+// Global config used by Lineage soong additions
+var LineageConfig = struct {
+	// List of packages that are permitted
+	// for java source overlays.
+	JavaSourceOverlayModuleWhitelist []string
+}{
+	// JavaSourceOverlayModuleWhitelist
+	[]string{
+		"org.lineageos.hardware",
+	},
+}
diff --git a/build/soong/android/variable.go b/build/soong/android/variable.go
index 5e992ca..27f1e2e 100644
--- a/build/soong/android/variable.go
+++ b/build/soong/android/variable.go
@@ -30,6 +30,7 @@
 type ProductVariables struct {
 	Additional_gralloc_10_usage_bits  *string `json:",omitempty"`
 	Has_legacy_camera_hal1  *bool `json:",omitempty"`
+	Java_Source_Overlays *string `json:",omitempty"`
 	Needs_text_relocations  *bool `json:",omitempty"`
 	Specific_camera_parameter_library  *string `json:",omitempty"`
 	Target_shim_libs  *string `json:",omitempty"`
diff --git a/build/soong/soong_config.mk b/build/soong/soong_config.mk
index accd467..852ee84 100644
--- a/build/soong/soong_config.mk
+++ b/build/soong/soong_config.mk
@@ -5,6 +5,7 @@
 # See build/core/soong_config.mk for the add_json_* functions you can use here.
 $(call add_json_str_omitempty, Additional_gralloc_10_usage_bits, $(TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS))
 $(call add_json_bool, Has_legacy_camera_hal1, $(filter true,$(TARGET_HAS_LEGACY_CAMERA_HAL1)))
+$(call add_json_str, Java_Source_Overlays, $(JAVA_SOURCE_OVERLAYS))
 $(call add_json_bool, Needs_text_relocations, $(filter true,$(TARGET_NEEDS_PLATFORM_TEXT_RELOCATIONS)))
 $(call add_json_str, Specific_camera_parameter_library, $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY))
 $(call add_json_str, Target_shim_libs, $(TARGET_LD_SHIM_LIBS))