From cf43fb124f90a5d649bed2a713bf2342f50b618c Mon Sep 17 00:00:00 2001 From: William Newman Date: Sun, 31 Jul 2022 13:05:34 -0600 Subject: [PATCH] Fix crash when viewing line/polygons with no form style * Return event default style or app default style for lines and polygons when parsing from form. --- CHANGELOG.md | 7 +++++++ mage/build.gradle | 2 +- .../java/mil/nga/giat/mage/form/FormJson.kt | 2 +- .../nga/giat/mage/map/annotation/ShapeStyle.kt | 17 +++++++++++++---- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cf64f69e..560b89694 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ Adheres to [Semantic Versioning](http://semver.org/). ##### Bug Fixes +## [7.1.6](https://github.com/ngageoint/mage-android/releases/tag/7.1.6) + +##### Features + +##### Bug Fixes +* Return event default style or app default style for lines and polygons when parsing from form. + ## [7.1.5](https://github.com/ngageoint/mage-android/releases/tag/7.1.5) ##### Features diff --git a/mage/build.gradle b/mage/build.gradle index 840511262..cdd90f989 100644 --- a/mage/build.gradle +++ b/mage/build.gradle @@ -11,7 +11,7 @@ plugins { } group 'mil.nga.giat.mage' -version '7.1.5' +version '7.1.6' ext { sourceRefspec = Grgit.open(currentDir: project.rootDir).head().id diff --git a/mage/src/main/java/mil/nga/giat/mage/form/FormJson.kt b/mage/src/main/java/mil/nga/giat/mage/form/FormJson.kt index fbe5eb77a..c627c3862 100644 --- a/mage/src/main/java/mil/nga/giat/mage/form/FormJson.kt +++ b/mage/src/main/java/mil/nga/giat/mage/form/FormJson.kt @@ -35,7 +35,7 @@ class Form( @SerializedName("primaryFeedField") val primaryFeedField: String?, @SerializedName("secondaryFeedField") val secondaryFeedField: String?, @SerializedName("fields") val fields: List>, - @SerializedName("style") val style: JsonObject + @SerializedName("style") val style: JsonObject? ) { companion object { private val gson = GsonBuilder() diff --git a/mage/src/main/java/mil/nga/giat/mage/map/annotation/ShapeStyle.kt b/mage/src/main/java/mil/nga/giat/mage/map/annotation/ShapeStyle.kt index b496d0eb0..3cf5749bc 100644 --- a/mage/src/main/java/mil/nga/giat/mage/map/annotation/ShapeStyle.kt +++ b/mage/src/main/java/mil/nga/giat/mage/map/annotation/ShapeStyle.kt @@ -27,7 +27,7 @@ class ShapeStyle: AnnotationStyle { context.resources.getValue(R.dimen.fill_default_stroke_width, defaultStrokeWidth, true) strokeWidth = defaultStrokeWidth.float * (context.resources.displayMetrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT) - this.strokeColor = 0 + this.strokeColor = Color.BLACK this.fillColor = 0 } @@ -141,7 +141,7 @@ class ShapeStyle: AnnotationStyle { } fun fromForm(formState: FormState?, context: Context): ShapeStyle { - val style = ShapeStyle(context) + var style = ShapeStyle(context) // Check for a style if (formState != null) { @@ -167,7 +167,7 @@ class ShapeStyle: AnnotationStyle { } if (primaryValue != null) { // Check for a type within the style - val primaryElement = jsonStyle[primaryValue.text] + val primaryElement = jsonStyle?.get(primaryValue.text) if (primaryElement != null && !primaryElement.isJsonNull) { // Found the type level style @@ -183,9 +183,18 @@ class ShapeStyle: AnnotationStyle { } } - return fromJson(jsonStyle, context) + if (jsonStyle != null) { + style = fromJson(jsonStyle, context) + } else { + EventHelper.getInstance(context).read(formState.eventId)?.style?.let { jsonStyle -> + JsonParser.parseString(jsonStyle)?.asJsonObjectOrNull()?.let { jsonObject -> + style = fromJson(jsonObject, context) + } + } + } } + return style }