From d0e7985716777d9468b2ee6011a42147848206c6 Mon Sep 17 00:00:00 2001 From: toby Date: Mon, 1 Aug 2016 15:34:18 -0400 Subject: [PATCH] add alternative labels in json output --- .idea/misc.xml | 2 +- .../edu/cmu/hcii/sugilite/SugiliteData.java | 13 +++++++++++-- .../json/SugiliteAlternativePairJSON.java | 14 ++++++++++++++ .../json/SugiliteFilterJSON.java | 19 ++++++++++++++----- .../block/SugiliteAvailableFeaturePack.java | 10 ++++++++-- 5 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/edu/cmu/hcii/sugilite/communication/json/SugiliteAlternativePairJSON.java 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;