diff --git a/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.java b/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.java deleted file mode 100644 index bc34bd8284f..00000000000 --- a/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.odk.collect.android.javarosawrapper; - -import org.odk.collect.android.formentry.audit.AuditConfig; -import org.odk.collect.android.utilities.FormNameUtils; - -/** - * OpenRosa metadata of a form instance. - *
- * Contains the values for the required metadata
- * fields and nothing else.
- *
- * @author mitchellsundt@gmail.com
- */
-public class InstanceMetadata {
- public final String instanceId;
- public final String instanceName;
- public final AuditConfig auditConfig;
-
- public InstanceMetadata(String instanceId, String instanceName, AuditConfig auditConfig) {
- this.instanceId = instanceId;
- this.instanceName = FormNameUtils.normalizeFormName(instanceName, false);
- this.auditConfig = auditConfig;
- }
-}
diff --git a/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.kt b/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.kt
new file mode 100644
index 00000000000..bd602aa9576
--- /dev/null
+++ b/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/InstanceMetadata.kt
@@ -0,0 +1,12 @@
+package org.odk.collect.android.javarosawrapper
+
+import org.odk.collect.android.formentry.audit.AuditConfig
+import org.odk.collect.android.utilities.FormNameUtils
+
+data class InstanceMetadata(
+ @JvmField val instanceId: String?,
+ private val rawInstanceName: String?,
+ @JvmField val auditConfig: AuditConfig?
+) {
+ @JvmField val instanceName: String? = FormNameUtils.normalizeFormName(rawInstanceName, false)
+}
diff --git a/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/JavaRosaFormController.java b/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/JavaRosaFormController.java
index b46fdee5d9b..ab58fda76a8 100644
--- a/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/JavaRosaFormController.java
+++ b/collect_app/src/main/java/org/odk/collect/android/javarosawrapper/JavaRosaFormController.java
@@ -1010,76 +1010,41 @@ public ByteArrayPayload getSubmissionXml() throws IOException {
getSubmissionDataReference());
}
- /**
- * Traverse the submission looking for the first matching tag in depth-first order.
- */
- private TreeElement findDepthFirst(TreeElement parent, String name) {
- int len = parent.getNumChildren();
- for (int i = 0; i < len; ++i) {
- TreeElement e = parent.getChildAt(i);
- if (name.equals(e.getName())) {
- return e;
- } else if (e.getNumChildren() != 0) {
- TreeElement v = findDepthFirst(e, name);
- if (v != null) {
- return v;
- }
- }
- }
- return null;
- }
-
public InstanceMetadata getSubmissionMetadata() {
FormDef formDef = formEntryController.getModel().getForm();
TreeElement rootElement = formDef.getInstance().getRoot();
-
- TreeElement trueSubmissionElement;
- // Determine the information about the submission...
- SubmissionProfile p = formDef.getSubmissionProfile();
- if (p == null || p.getRef() == null) {
- trueSubmissionElement = rootElement;
- } else {
- IDataReference ref = p.getRef();
- trueSubmissionElement = formDef.getInstance().resolveReference(ref);
- // resolveReference returns null if the reference is to the root element...
- if (trueSubmissionElement == null) {
- trueSubmissionElement = rootElement;
- }
- }
-
- // and find the depth-first meta block in this...
- TreeElement e = findDepthFirst(trueSubmissionElement, "meta");
+ TreeElement meta = rootElement.getFirstChild("meta");
String instanceId = null;
String instanceName = null;
AuditConfig auditConfig = null;
- if (e != null) {
- List