diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb68289..5d199810 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/java/edu/cmu/hcii/sugilite/SugiliteData.java b/app/src/main/java/edu/cmu/hcii/sugilite/SugiliteData.java
index 62145d6a..cc717a1b 100644
--- a/app/src/main/java/edu/cmu/hcii/sugilite/SugiliteData.java
+++ b/app/src/main/java/edu/cmu/hcii/sugilite/SugiliteData.java
@@ -137,7 +137,11 @@ else if (currentBlock instanceof SugiliteOperationBlock){
messageType, messageBody
-------------------------
"FINISHED_RECORDING", scriptName
-
+ "START_RECORDING_EXCEPTION", exceptionMessage
+ "END_RECORDING_EXCEPTION", exceptionMessage
+ "RUN_SCRIPT_EXCEPTION, exceptionMessage
+ "RUN_JSON_EXCEPTION", exceptionMessage
+ "ADD_JOSON_AS_SCRIPT_EXCEPTION", exceptionMessage
*/
public String callbackString = "";
@@ -146,7 +150,12 @@ public void sendCallbackMsg(String messageType, String messageBody, String callb
intent.putExtra("messageType", messageType);
intent.putExtra("messageBody", messageBody);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
- startActivity(intent);
+ try {
+ startActivity(intent);
+ }
+ catch (Exception e){
+ //do nothing
+ }
}
diff --git a/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteAlternativePairJSON.java b/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteAlternativePairJSON.java
new file mode 100644
index 00000000..581b1238
--- /dev/null
+++ b/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteAlternativePairJSON.java
@@ -0,0 +1,14 @@
+package edu.cmu.hcii.sugilite.communication.json;
+
+/**
+ * @author toby
+ * @date 8/1/16
+ * @time 3:28 PM
+ */
+public class SugiliteAlternativePairJSON {
+ public String type, value;
+ public SugiliteAlternativePairJSON(String type, String value){
+ this.type = type;
+ this.value = value;
+ }
+}
diff --git a/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteFilterJSON.java b/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteFilterJSON.java
index 098a8304..087552c6 100644
--- a/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteFilterJSON.java
+++ b/app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteFilterJSON.java
@@ -2,6 +2,7 @@
import android.graphics.Rect;
+import java.util.AbstractMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -25,8 +26,12 @@ public SugiliteFilterJSON(UIElementMatchingFilter filter){
this.parentFilter = new SugiliteFilterJSON(filter.getParentFilter());
if(filter.getChildFilter() != null)
this.childFilter = new SugiliteFilterJSON(filter.getChildFilter());
- if(filter.alternativeLabels != null && filter.alternativeLabels.size() > 0)
- alternativeLabels = new HashSet<>(filter.alternativeLabels);
+ if(filter.alternativeLabels != null && filter.alternativeLabels.size() > 0) {
+ this.alternativeLabels = new HashSet<>();
+ for(Map.Entry entry : filter.alternativeLabels){
+ this.alternativeLabels.add(new SugiliteAlternativePairJSON(entry.getKey(), entry.getValue()));
+ }
+ }
}
}
public UIElementMatchingFilter toUIElementMatchingFilter(){
@@ -44,11 +49,15 @@ public UIElementMatchingFilter toUIElementMatchingFilter(){
filter.setParentFilter(parentFilter.toUIElementMatchingFilter());
if(childFilter != null)
filter.setChildFilter(childFilter.toUIElementMatchingFilter());
- if(alternativeLabels != null)
- filter.alternativeLabels = new HashSet<>(alternativeLabels);
+ if(alternativeLabels != null) {
+ filter.alternativeLabels = new HashSet<>();
+ for(SugiliteAlternativePairJSON pair : alternativeLabels){
+ filter.alternativeLabels.add(new AbstractMap.SimpleEntry(pair.type, pair.value));
+ }
+ }
return filter;
}
public String text, contentDescription, viewId, packageName, className, boundsInScreen, boundsInParent;
public SugiliteFilterJSON parentFilter, childFilter;
- public Set> alternativeLabels;
+ public Set alternativeLabels;
}
diff --git a/app/src/main/java/edu/cmu/hcii/sugilite/model/block/SugiliteAvailableFeaturePack.java b/app/src/main/java/edu/cmu/hcii/sugilite/model/block/SugiliteAvailableFeaturePack.java
index 8a6a70e3..57e67b47 100644
--- a/app/src/main/java/edu/cmu/hcii/sugilite/model/block/SugiliteAvailableFeaturePack.java
+++ b/app/src/main/java/edu/cmu/hcii/sugilite/model/block/SugiliteAvailableFeaturePack.java
@@ -32,8 +32,14 @@ public SugiliteAvailableFeaturePack(SugiliteAvailableFeaturePack featurePack){
this.parentNode = featurePack.parentNode;
this.childNodes = new ArrayList<>(featurePack.childNodes);
this.allNodes = new ArrayList<>(featurePack.allNodes);
- this.alternativeChildTextList = new HashSet<>(alternativeTextList);
- this.alternativeTextList = new HashSet<>(alternativeTextList);
+ if(featurePack.alternativeChildTextList != null)
+ this.alternativeChildTextList = new HashSet<>(featurePack.alternativeChildTextList);
+ else
+ this.alternativeChildTextList = new HashSet<>();
+ if(featurePack.alternativeTextList != null)
+ this.alternativeTextList = new HashSet<>(featurePack.alternativeTextList);
+ else
+ this.alternativeTextList = new HashSet<>();
}
public String packageName, className, text, contentDescription, viewId, boundsInParent, boundsInScreen;
public boolean isEditable;