Split java device properties into separate struct

Prevent host modules from having fields that only make sense for
device modules.

Test: builds
Change-Id: I20278e029a38fb9a6b75ef3c2cf3c1a97cef2b87
diff --git a/java/app.go b/java/app.go
index 3a7025c..f6ccd34 100644
--- a/java/app.go
+++ b/java/app.go
@@ -70,7 +70,7 @@
 
 	var deps []string
 	if !a.properties.No_standard_libraries {
-		switch a.properties.Sdk_version { // TODO: Res_sdk_version?
+		switch a.deviceProperties.Sdk_version { // TODO: Res_sdk_version?
 		case "current", "system_current", "":
 			deps = append(deps, "framework-res")
 		default:
@@ -248,7 +248,7 @@
 		}
 	})
 
-	sdkVersion := a.properties.Sdk_version
+	sdkVersion := a.deviceProperties.Sdk_version
 	if sdkVersion == "" {
 		sdkVersion = ctx.AConfig().PlatformSdkVersion()
 	}
@@ -277,8 +277,10 @@
 func AndroidAppFactory() (blueprint.Module, []interface{}) {
 	module := &AndroidApp{}
 
-	module.properties.Dex = true
+	module.deviceProperties.Dex = true
 
 	return android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon,
-		&module.Module.properties, &module.appProperties)
+		&module.Module.properties,
+		&module.Module.deviceProperties,
+		&module.appProperties)
 }