diff --git a/source/android/adaptivecards/CMakeLists.txt b/source/android/adaptivecards/CMakeLists.txt index af18b9b409..a4d549cb82 100644 --- a/source/android/adaptivecards/CMakeLists.txt +++ b/source/android/adaptivecards/CMakeLists.txt @@ -58,6 +58,8 @@ add_library( # Sets the name of the library. ../../shared/cpp/ObjectModel/DateTimePreparsedToken.cpp ../../shared/cpp/ObjectModel/Util.cpp ../../shared/cpp/ObjectModel/UnknownElement.cpp + ../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp + ../../shared/cpp/ObjectModel/ParseResult.cpp src/main/cpp/objectmodel_wrap.cpp ) diff --git a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i index c3a8d9cfa5..365d007377 100644 --- a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i +++ b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i @@ -83,6 +83,8 @@ struct tm { #include "../../../shared/cpp/ObjectModel/OpenUrlAction.h" #include "../../../shared/cpp/ObjectModel/ShowCardAction.h" #include "../../../shared/cpp/ObjectModel/SubmitAction.h" +#include "../../../shared/cpp/ObjectModel/ParseResult.h" +#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h" #include "../../../shared/cpp/ObjectModel/SharedAdaptiveCard.h" #include "../../../shared/cpp/ObjectModel/AdaptiveCardParseException.h" #include "../../../shared/cpp/ObjectModel/HostConfig.h" @@ -117,6 +119,8 @@ struct tm { %shared_ptr(AdaptiveCards::OpenUrlAction) %shared_ptr(AdaptiveCards::ShowCardAction) %shared_ptr(AdaptiveCards::SubmitAction) +%shared_ptr(AdaptiveCards::AdaptiveCardParseWarning) +%shared_ptr(AdaptiveCards::ParseResult) %shared_ptr(AdaptiveCards::AdaptiveCard) %shared_ptr(AdaptiveCards::ContainerParser) %shared_ptr(AdaptiveCards::TextBlockParser) @@ -278,6 +282,7 @@ namespace Json { } %} +%template(AdaptiveCardParseWarningVector) std::vector >; %template(BaseCardElementVector) std::vector >; %template(ImageVector) std::vector >; %template(FactVector) std::vector >; @@ -567,6 +572,8 @@ namespace Json { %include "../../../shared/cpp/ObjectModel/OpenUrlAction.h" %include "../../../shared/cpp/ObjectModel/ShowCardAction.h" %include "../../../shared/cpp/ObjectModel/SubmitAction.h" +%include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h" +%include "../../../shared/cpp/ObjectModel/ParseResult.h" %include "../../../shared/cpp/ObjectModel/SharedAdaptiveCard.h" %include "../../../shared/cpp/ObjectModel/AdaptiveCardParseException.h" %include "../../../shared/cpp/ObjectModel/HostConfig.h" diff --git a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp index 0bf5845f42..8e361718a7 100644 --- a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp +++ b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp @@ -702,6 +702,8 @@ namespace Swig { #include "../../../shared/cpp/ObjectModel/OpenUrlAction.h" #include "../../../shared/cpp/ObjectModel/ShowCardAction.h" #include "../../../shared/cpp/ObjectModel/SubmitAction.h" +#include "../../../shared/cpp/ObjectModel/ParseResult.h" +#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h" #include "../../../shared/cpp/ObjectModel/SharedAdaptiveCard.h" #include "../../../shared/cpp/ObjectModel/AdaptiveCardParseException.h" #include "../../../shared/cpp/ObjectModel/HostConfig.h" @@ -715,6 +717,20 @@ SWIGINTERN std::string Json_Value_getString(Json::Value *self){ std::string jsonString = fastWriter.write(*self); return jsonString; } +SWIGINTERN std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::const_reference std_vector_Sl_std_shared_ptr_Sl_AdaptiveCards_AdaptiveCardParseWarning_Sg__Sg__get(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *self,int i){ + int size = int(self->size()); + if (i>=0 && i > *self,int i,std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type const &val){ + int size = int(self->size()); + if (i>=0 && i >::const_reference std_vector_Sl_std_shared_ptr_Sl_AdaptiveCards_BaseCardElement_Sg__Sg__get(std::vector< std::shared_ptr< AdaptiveCards::BaseCardElement > > *self,int i){ int size = int(self->size()); if (i>=0 && i > *result = 0 ; + + (void)jenv; + (void)jcls; + result = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *)new std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >(); + *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1AdaptiveCardParseWarningVector_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong jresult = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type arg1 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type)jarg1; + result = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *)new std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >(arg1); + *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jresult = result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1size(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + result = ((std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > const *)arg1)->size(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1capacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + result = ((std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > const *)arg1)->capacity(); + jresult = (jlong)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1reserve(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type arg2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + arg2 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::size_type)jarg2; + (arg1)->reserve(arg2); +} + + +SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1isEmpty(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jboolean jresult = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + bool result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + result = (bool)((std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > const *)arg1)->empty(); + jresult = (jboolean)result; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1clear(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + (arg1)->clear(); +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1add(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type *arg2 = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type tempnull2 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + arg2 = jarg2 ? *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type **)&jarg2 : &tempnull2; + (arg1)->push_back((std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type const &)*arg2); +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + jlong jresult = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + int arg2 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + arg2 = (int)jarg2; + try { + result = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type *) &std_vector_Sl_std_shared_ptr_Sl_AdaptiveCards_AdaptiveCardParseWarning_Sg__Sg__get(arg1,arg2); + } + catch(std::out_of_range &_e) { + SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what()); + return 0; + } + + *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type **)&jresult = *result ? new std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning >(*result) : 0; + return jresult; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarningVector_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2, jlong jarg3, jobject jarg3_) { + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + int arg2 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type *arg3 = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type tempnull3 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg3_; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + arg2 = (int)jarg2; + arg3 = jarg3 ? *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >::value_type **)&jarg3 : &tempnull3; + try { + std_vector_Sl_std_shared_ptr_Sl_AdaptiveCards_AdaptiveCardParseWarning_Sg__Sg__set(arg1,arg2,(std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > const &)*arg3); + } + catch(std::out_of_range &_e) { + SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, (&_e)->what()); + return ; + } + +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1AdaptiveCardParseWarningVector(JNIEnv *jenv, jclass jcls, jlong jarg1) { + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *arg1 = (std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *) 0 ; + + (void)jenv; + (void)jcls; + arg1 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg1; + delete arg1; +} + + SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1BaseCardElementVector_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { jlong jresult = 0 ; std::vector< std::shared_ptr< AdaptiveCards::BaseCardElement > > *result = 0 ; @@ -10332,6 +10516,158 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1AdaptiveCardParseWarning(JNIEnv *jenv, jclass jcls, jint jarg1, jstring jarg2) { + jlong jresult = 0 ; + AdaptiveCards::WarningStatusCode arg1 ; + std::string *arg2 = 0 ; + AdaptiveCards::AdaptiveCardParseWarning *result = 0 ; + + (void)jenv; + (void)jcls; + arg1 = (AdaptiveCards::WarningStatusCode)jarg1; + if(!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string"); + return 0; + } + const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2_pstr) return 0; + std::string arg2_str(arg2_pstr); + arg2 = &arg2_str; + jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); + result = (AdaptiveCards::AdaptiveCardParseWarning *)new AdaptiveCards::AdaptiveCardParseWarning(arg1,(std::string const &)*arg2); + + *(std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning >(result SWIG_NO_NULL_DELETER_1) : 0; + + return jresult; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1AdaptiveCardParseWarning(JNIEnv *jenv, jclass jcls, jlong jarg1) { + AdaptiveCards::AdaptiveCardParseWarning *arg1 = (AdaptiveCards::AdaptiveCardParseWarning *) 0 ; + std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > *smartarg1 = 0 ; + + (void)jenv; + (void)jcls; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > **)&jarg1; + arg1 = (AdaptiveCards::AdaptiveCardParseWarning *)(smartarg1 ? smartarg1->get() : 0); + (void)arg1; delete smartarg1; +} + + +SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarning_1GetStatusCode(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jint jresult = 0 ; + AdaptiveCards::AdaptiveCardParseWarning *arg1 = (AdaptiveCards::AdaptiveCardParseWarning *) 0 ; + std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning const > *smartarg1 = 0 ; + AdaptiveCards::WarningStatusCode result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + + smartarg1 = *(std::shared_ptr< const AdaptiveCards::AdaptiveCardParseWarning > **)&jarg1; + arg1 = (AdaptiveCards::AdaptiveCardParseWarning *)(smartarg1 ? smartarg1->get() : 0); + result = (AdaptiveCards::WarningStatusCode)((AdaptiveCards::AdaptiveCardParseWarning const *)arg1)->GetStatusCode(); + jresult = (jint)result; + return jresult; +} + + +SWIGEXPORT jstring JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCardParseWarning_1GetReason(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jstring jresult = 0 ; + AdaptiveCards::AdaptiveCardParseWarning *arg1 = (AdaptiveCards::AdaptiveCardParseWarning *) 0 ; + std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning const > *smartarg1 = 0 ; + std::string *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + + smartarg1 = *(std::shared_ptr< const AdaptiveCards::AdaptiveCardParseWarning > **)&jarg1; + arg1 = (AdaptiveCards::AdaptiveCardParseWarning *)(smartarg1 ? smartarg1->get() : 0); + result = (std::string *) &((AdaptiveCards::AdaptiveCardParseWarning const *)arg1)->GetReason(); + jresult = jenv->NewStringUTF(result->c_str()); + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1ParseResult(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + jlong jresult = 0 ; + std::shared_ptr< AdaptiveCards::AdaptiveCard > arg1 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > arg2 ; + std::shared_ptr< AdaptiveCards::AdaptiveCard > *argp1 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > *argp2 ; + AdaptiveCards::ParseResult *result = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + argp1 = *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jarg1; + if (argp1) arg1 = *argp1; + argp2 = *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jarg2; + if (!argp2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >"); + return 0; + } + arg2 = *argp2; + result = (AdaptiveCards::ParseResult *)new AdaptiveCards::ParseResult(arg1,arg2); + + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result SWIG_NO_NULL_DELETER_1) : 0; + + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseResult_1GetAdaptiveCard(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + AdaptiveCards::ParseResult *arg1 = (AdaptiveCards::ParseResult *) 0 ; + std::shared_ptr< AdaptiveCards::ParseResult > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jarg1; + arg1 = (AdaptiveCards::ParseResult *)(smartarg1 ? smartarg1->get() : 0); + result = (arg1)->GetAdaptiveCard(); + *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + return jresult; +} + + +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseResult_1GetWarnings(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { + jlong jresult = 0 ; + AdaptiveCards::ParseResult *arg1 = (AdaptiveCards::ParseResult *) 0 ; + std::shared_ptr< AdaptiveCards::ParseResult > *smartarg1 = 0 ; + std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > result; + + (void)jenv; + (void)jcls; + (void)jarg1_; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jarg1; + arg1 = (AdaptiveCards::ParseResult *)(smartarg1 ? smartarg1->get() : 0); + result = (arg1)->GetWarnings(); + *(std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > **)&jresult = new std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > >((const std::vector< std::shared_ptr< AdaptiveCards::AdaptiveCardParseWarning > > &)result); + return jresult; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1ParseResult(JNIEnv *jenv, jclass jcls, jlong jarg1) { + AdaptiveCards::ParseResult *arg1 = (AdaptiveCards::ParseResult *) 0 ; + std::shared_ptr< AdaptiveCards::ParseResult > *smartarg1 = 0 ; + + (void)jenv; + (void)jcls; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jarg1; + arg1 = (AdaptiveCards::ParseResult *)(smartarg1 ? smartarg1->get() : 0); + (void)arg1; delete smartarg1; +} + + SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1AdaptiveCard_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { jlong jresult = 0 ; AdaptiveCards::AdaptiveCard *result = 0 ; @@ -10784,7 +11120,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod std::shared_ptr< AdaptiveCards::ActionParserRegistration > arg4 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; std::shared_ptr< AdaptiveCards::ActionParserRegistration > *argp4 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -10816,7 +11152,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -10827,7 +11163,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod double arg2 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > arg3 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -10856,7 +11192,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -10865,7 +11201,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod jlong jresult = 0 ; std::string *arg1 = 0 ; double arg2 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -10891,7 +11227,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -10904,7 +11240,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod std::shared_ptr< AdaptiveCards::ActionParserRegistration > arg4 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; std::shared_ptr< AdaptiveCards::ActionParserRegistration > *argp4 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -10933,7 +11269,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -10944,7 +11280,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod double arg2 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > arg3 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -10970,7 +11306,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -10979,7 +11315,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod jlong jresult = 0 ; Json::Value *arg1 = 0 ; double arg2 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -11002,7 +11338,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -11015,7 +11351,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod std::shared_ptr< AdaptiveCards::ActionParserRegistration > arg4 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; std::shared_ptr< AdaptiveCards::ActionParserRegistration > *argp4 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -11047,7 +11383,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -11058,7 +11394,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod double arg2 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > arg3 ; std::shared_ptr< AdaptiveCards::ElementParserRegistration > *argp3 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -11087,7 +11423,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } @@ -11096,7 +11432,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod jlong jresult = 0 ; std::string *arg1 = 0 ; double arg2 ; - std::shared_ptr< AdaptiveCards::AdaptiveCard > result; + std::shared_ptr< AdaptiveCards::ParseResult > result; (void)jenv; (void)jcls; @@ -11122,7 +11458,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } } - *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::AdaptiveCard >(result) : 0; + *(std::shared_ptr< AdaptiveCards::ParseResult > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::ParseResult >(result) : 0; return jresult; } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCard.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCard.java index 73854ddf96..9166dc65f8 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCard.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCard.java @@ -107,49 +107,49 @@ public CardElementType GetElementType() { return CardElementType.swigToEnum(AdaptiveCardObjectModelJNI.AdaptiveCard_GetElementType(swigCPtr, this)); } - public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { + public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_0(jsonFile, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { + public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_1(jsonFile, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion) throws java.io.IOException { + public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_2(jsonFile, rendererVersion); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { + public static ParseResult Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_0(JsonValue.getCPtr(json), json, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { + public static ParseResult Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_1(JsonValue.getCPtr(json), json, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion) throws java.io.IOException { + public static ParseResult Deserialize(JsonValue json, double rendererVersion) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_2(JsonValue.getCPtr(json), json, rendererVersion); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { + public static ParseResult DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_0(jsonString, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { + public static ParseResult DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_1(jsonString, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } - public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion) throws java.io.IOException { + public static ParseResult DeserializeFromString(String jsonString, double rendererVersion) throws java.io.IOException { long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_2(jsonString, rendererVersion); - return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + return (cPtr == 0) ? null : new ParseResult(cPtr, true); } public static AdaptiveCard MakeFallbackTextCard(String fallbackText, String language) throws java.io.IOException { diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java index d92e58290d..1f09234387 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java @@ -42,6 +42,17 @@ public class AdaptiveCardObjectModelJNI { public final static native String JsonValue_getString(long jarg1, JsonValue jarg1_); public final static native long new_JsonValue(); public final static native void delete_JsonValue(long jarg1); + public final static native long new_AdaptiveCardParseWarningVector__SWIG_0(); + public final static native long new_AdaptiveCardParseWarningVector__SWIG_1(long jarg1); + public final static native long AdaptiveCardParseWarningVector_size(long jarg1, AdaptiveCardParseWarningVector jarg1_); + public final static native long AdaptiveCardParseWarningVector_capacity(long jarg1, AdaptiveCardParseWarningVector jarg1_); + public final static native void AdaptiveCardParseWarningVector_reserve(long jarg1, AdaptiveCardParseWarningVector jarg1_, long jarg2); + public final static native boolean AdaptiveCardParseWarningVector_isEmpty(long jarg1, AdaptiveCardParseWarningVector jarg1_); + public final static native void AdaptiveCardParseWarningVector_clear(long jarg1, AdaptiveCardParseWarningVector jarg1_); + public final static native void AdaptiveCardParseWarningVector_add(long jarg1, AdaptiveCardParseWarningVector jarg1_, long jarg2, AdaptiveCardParseWarning jarg2_); + public final static native long AdaptiveCardParseWarningVector_get(long jarg1, AdaptiveCardParseWarningVector jarg1_, int jarg2); + public final static native void AdaptiveCardParseWarningVector_set(long jarg1, AdaptiveCardParseWarningVector jarg1_, int jarg2, long jarg3, AdaptiveCardParseWarning jarg3_); + public final static native void delete_AdaptiveCardParseWarningVector(long jarg1); public final static native long new_BaseCardElementVector__SWIG_0(); public final static native long new_BaseCardElementVector__SWIG_1(long jarg1); public final static native long BaseCardElementVector_size(long jarg1, BaseCardElementVector jarg1_); @@ -480,6 +491,14 @@ public class AdaptiveCardObjectModelJNI { public final static native void delete_SubmitAction(long jarg1); public final static native long new_SubmitActionParser(); public final static native void delete_SubmitActionParser(long jarg1); + public final static native long new_AdaptiveCardParseWarning(int jarg1, String jarg2); + public final static native void delete_AdaptiveCardParseWarning(long jarg1); + public final static native int AdaptiveCardParseWarning_GetStatusCode(long jarg1, AdaptiveCardParseWarning jarg1_); + public final static native String AdaptiveCardParseWarning_GetReason(long jarg1, AdaptiveCardParseWarning jarg1_); + public final static native long new_ParseResult(long jarg1, AdaptiveCard jarg1_, long jarg2, AdaptiveCardParseWarningVector jarg2_); + public final static native long ParseResult_GetAdaptiveCard(long jarg1, ParseResult jarg1_); + public final static native long ParseResult_GetWarnings(long jarg1, ParseResult jarg1_); + public final static native void delete_ParseResult(long jarg1); public final static native long new_AdaptiveCard__SWIG_0(); public final static native long new_AdaptiveCard__SWIG_1(String jarg1, String jarg2, String jarg3, int jarg4, String jarg5, String jarg6); public final static native long new_AdaptiveCard__SWIG_2(String jarg1, String jarg2, String jarg3, int jarg4, String jarg5, String jarg6, long jarg7, BaseCardElementVector jarg7_, long jarg8, BaseActionElementVector jarg8_); diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarning.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarning.java new file mode 100644 index 0000000000..7e8088e77b --- /dev/null +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarning.java @@ -0,0 +1,50 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 3.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package io.adaptivecards.objectmodel; + +public class AdaptiveCardParseWarning { + private transient long swigCPtr; + private transient boolean swigCMemOwn; + + protected AdaptiveCardParseWarning(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(AdaptiveCardParseWarning obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + AdaptiveCardObjectModelJNI.delete_AdaptiveCardParseWarning(swigCPtr); + } + swigCPtr = 0; + } + } + + public AdaptiveCardParseWarning(WarningStatusCode statusCode, String message) { + this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarning(statusCode.swigValue(), message), true); + } + + public WarningStatusCode GetStatusCode() { + return WarningStatusCode.swigToEnum(AdaptiveCardObjectModelJNI.AdaptiveCardParseWarning_GetStatusCode(swigCPtr, this)); + } + + public String GetReason() { + return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarning_GetReason(swigCPtr, this); + } + +} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarningVector.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarningVector.java new file mode 100644 index 0000000000..63d1ad35db --- /dev/null +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardParseWarningVector.java @@ -0,0 +1,79 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 3.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package io.adaptivecards.objectmodel; + +public class AdaptiveCardParseWarningVector { + private transient long swigCPtr; + protected transient boolean swigCMemOwn; + + protected AdaptiveCardParseWarningVector(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(AdaptiveCardParseWarningVector obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + AdaptiveCardObjectModelJNI.delete_AdaptiveCardParseWarningVector(swigCPtr); + } + swigCPtr = 0; + } + } + + public AdaptiveCardParseWarningVector() { + this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarningVector__SWIG_0(), true); + } + + public AdaptiveCardParseWarningVector(long n) { + this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarningVector__SWIG_1(n), true); + } + + public long size() { + return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_size(swigCPtr, this); + } + + public long capacity() { + return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_capacity(swigCPtr, this); + } + + public void reserve(long n) { + AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_reserve(swigCPtr, this, n); + } + + public boolean isEmpty() { + return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_isEmpty(swigCPtr, this); + } + + public void clear() { + AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_clear(swigCPtr, this); + } + + public void add(AdaptiveCardParseWarning x) { + AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_add(swigCPtr, this, AdaptiveCardParseWarning.getCPtr(x), x); + } + + public AdaptiveCardParseWarning get(int i) { + long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_get(swigCPtr, this, i); + return (cPtr == 0) ? null : new AdaptiveCardParseWarning(cPtr, true); + } + + public void set(int i, AdaptiveCardParseWarning val) { + AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_set(swigCPtr, this, i, AdaptiveCardParseWarning.getCPtr(val), val); + } + +} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ErrorStatusCode.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ErrorStatusCode.java index 5055653a8a..d332db593f 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ErrorStatusCode.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ErrorStatusCode.java @@ -10,7 +10,6 @@ public enum ErrorStatusCode { InvalidJson(0), - UnsupportedSchemaVersion, RenderFailed, RequiredPropertyMissing, InvalidPropertyValue, diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseResult.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseResult.java new file mode 100644 index 0000000000..119bba8109 --- /dev/null +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseResult.java @@ -0,0 +1,51 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 3.0.12 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package io.adaptivecards.objectmodel; + +public class ParseResult { + private transient long swigCPtr; + private transient boolean swigCMemOwn; + + protected ParseResult(long cPtr, boolean cMemoryOwn) { + swigCMemOwn = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(ParseResult obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwn) { + swigCMemOwn = false; + AdaptiveCardObjectModelJNI.delete_ParseResult(swigCPtr); + } + swigCPtr = 0; + } + } + + public ParseResult(AdaptiveCard adaptiveCard, AdaptiveCardParseWarningVector warnings) { + this(AdaptiveCardObjectModelJNI.new_ParseResult(AdaptiveCard.getCPtr(adaptiveCard), adaptiveCard, AdaptiveCardParseWarningVector.getCPtr(warnings), warnings), true); + } + + public AdaptiveCard GetAdaptiveCard() { + long cPtr = AdaptiveCardObjectModelJNI.ParseResult_GetAdaptiveCard(swigCPtr, this); + return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true); + } + + public AdaptiveCardParseWarningVector GetWarnings() { + return new AdaptiveCardParseWarningVector(AdaptiveCardObjectModelJNI.ParseResult_GetWarnings(swigCPtr, this), true); + } + +} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/WarningStatusCode.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/WarningStatusCode.java index b372e28872..c95ccf5a74 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/WarningStatusCode.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/WarningStatusCode.java @@ -15,7 +15,8 @@ public enum WarningStatusCode { NoRendererForType, InteractivityNotSupported, MaxActionsExceeded, - AssetLoadFailed; + AssetLoadFailed, + UnsupportedSchemaVersion; public final int swigValue() { return swigValue; diff --git a/source/android/mobile/src/main/java/io/adaptivecards/adaptivecardssample/MainActivityAdaptiveCardsSample.java b/source/android/mobile/src/main/java/io/adaptivecards/adaptivecardssample/MainActivityAdaptiveCardsSample.java index 28fcce4580..d0d4c27f68 100644 --- a/source/android/mobile/src/main/java/io/adaptivecards/adaptivecardssample/MainActivityAdaptiveCardsSample.java +++ b/source/android/mobile/src/main/java/io/adaptivecards/adaptivecardssample/MainActivityAdaptiveCardsSample.java @@ -190,10 +190,10 @@ private void renderAdaptiveCard(boolean showErrorToast) CardRendererRegistration.getInstance().registerRenderer("blah", new CustomBlahRenderer()); - AdaptiveCard adaptiveCard = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.VERSION, elementParserRegistration); + ParseResult parseResult = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.VERSION, elementParserRegistration); LinearLayout layout = (LinearLayout) findViewById(R.id.visualAdaptiveCardLayout); layout.removeAllViews(); - RenderedAdaptiveCard renderedCard = AdaptiveCardRenderer.getInstance().render(this, getSupportFragmentManager(), adaptiveCard, this, hostConfig); + RenderedAdaptiveCard renderedCard = AdaptiveCardRenderer.getInstance().render(this, getSupportFragmentManager(), parseResult.GetAdaptiveCard(), this, hostConfig); layout.addView(renderedCard.getView()); } catch (Exception ex) diff --git a/source/ios/AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizer.xcodeproj/project.pbxproj b/source/ios/AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizer.xcodeproj/project.pbxproj index 4aef5aa79c..c1a9c296b2 100644 --- a/source/ios/AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizer.xcodeproj/project.pbxproj +++ b/source/ios/AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizer.xcodeproj/project.pbxproj @@ -63,7 +63,6 @@ F4933D021F79853B00F6EBFD /* InputForm.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CF51F79853B00F6EBFD /* InputForm.json */; }; F4933D031F79853B00F6EBFD /* Inputs.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CF61F79853B00F6EBFD /* Inputs.json */; }; F4933D041F79853B00F6EBFD /* Restaurant.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CF71F79853B00F6EBFD /* Restaurant.json */; }; - F4933D051F79853B00F6EBFD /* SportsGameUpdate.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CF81F79853B00F6EBFD /* SportsGameUpdate.json */; }; F4933D061F79853B00F6EBFD /* StockUpdate.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CF91F79853B00F6EBFD /* StockUpdate.json */; }; F4933D071F79853B00F6EBFD /* WeatherCompact.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CFA1F79853B00F6EBFD /* WeatherCompact.json */; }; F4933D081F79853B00F6EBFD /* WeatherLarge.json in Resources */ = {isa = PBXBuildFile; fileRef = F4933CFB1F79853B00F6EBFD /* WeatherLarge.json */; }; @@ -72,7 +71,6 @@ F4D33E861F04705800941E44 /* ACVTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4D33E851F04705800941E44 /* ACVTableViewController.m */; }; F4D402161F7DB0BF00D0356B /* sample.json in Resources */ = {isa = PBXBuildFile; fileRef = F4D402151F7DB0BF00D0356B /* sample.json */; }; F4F255721F993CD200A80D39 /* CustomActionOpenURLRenderer.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F255711F993CD200A80D39 /* CustomActionOpenURLRenderer.mm */; }; - F4F4484A203FA48700A2F24C /* Container.Style-FixBugs.json in Resources */ = {isa = PBXBuildFile; fileRef = F4F44849203FA48600A2F24C /* Container.Style-FixBugs.json */; }; F4F44B75203FE73D00A2F24C /* CustomInputNumberRenderer.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F44B73203FE73D00A2F24C /* CustomInputNumberRenderer.mm */; }; F4F44B8320478E1100A2F24C /* DateTimeTestTranslation.json in Resources */ = {isa = PBXBuildFile; fileRef = F4F44B8220478E1100A2F24C /* DateTimeTestTranslation.json */; }; F4F44B852048CDB300A2F24C /* AdditionalProperty.json in Resources */ = {isa = PBXBuildFile; fileRef = F4F44B842048CDB300A2F24C /* AdditionalProperty.json */; }; @@ -176,7 +174,6 @@ F4933CF51F79853B00F6EBFD /* InputForm.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = InputForm.json; path = ../../../../samples/v1.0/Scenarios/InputForm.json; sourceTree = ""; }; F4933CF61F79853B00F6EBFD /* Inputs.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = Inputs.json; path = ../../../../samples/v1.0/Scenarios/Inputs.json; sourceTree = ""; }; F4933CF71F79853B00F6EBFD /* Restaurant.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = Restaurant.json; path = ../../../../samples/v1.0/Scenarios/Restaurant.json; sourceTree = ""; }; - F4933CF81F79853B00F6EBFD /* SportsGameUpdate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = SportsGameUpdate.json; path = ../../../../samples/v1.0/Scenarios/SportsGameUpdate.json; sourceTree = ""; }; F4933CF91F79853B00F6EBFD /* StockUpdate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = StockUpdate.json; path = ../../../../samples/v1.0/Scenarios/StockUpdate.json; sourceTree = ""; }; F4933CFA1F79853B00F6EBFD /* WeatherCompact.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = WeatherCompact.json; path = ../../../../samples/v1.0/Scenarios/WeatherCompact.json; sourceTree = ""; }; F4933CFB1F79853B00F6EBFD /* WeatherLarge.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = WeatherLarge.json; path = ../../../../samples/v1.0/Scenarios/WeatherLarge.json; sourceTree = ""; }; @@ -186,7 +183,6 @@ F4D402151F7DB0BF00D0356B /* sample.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = sample.json; path = resources/sample.json; sourceTree = ""; }; F4F255711F993CD200A80D39 /* CustomActionOpenURLRenderer.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CustomActionOpenURLRenderer.mm; sourceTree = ""; }; F4F255731F9946B200A80D39 /* CustomActionOpenURLRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomActionOpenURLRenderer.h; sourceTree = ""; }; - F4F44849203FA48600A2F24C /* Container.Style-FixBugs.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "Container.Style-FixBugs.json"; path = "../../../../samples/v1.0/Elements/Container.Style-FixBugs.json"; sourceTree = ""; }; F4F44B73203FE73D00A2F24C /* CustomInputNumberRenderer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CustomInputNumberRenderer.mm; sourceTree = ""; }; F4F44B74203FE73D00A2F24C /* CustomInputNumberRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomInputNumberRenderer.h; sourceTree = ""; }; F4F44B8220478E1100A2F24C /* DateTimeTestTranslation.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = DateTimeTestTranslation.json; path = ../../../../samples/Tests/DateTimeTestTranslation.json; sourceTree = ""; }; @@ -301,7 +297,6 @@ F4F44BA6204CF97100A2F24C /* CustomParsingTestUsingProgressBar.json */, F4F44B842048CDB300A2F24C /* AdditionalProperty.json */, F4F44B8220478E1100A2F24C /* DateTimeTestTranslation.json */, - F4F44849203FA48600A2F24C /* Container.Style-FixBugs.json */, F4071C821FD63D5300AF4FEA /* Solitaire.json */, F4D402151F7DB0BF00D0356B /* sample.json */, F4933CEF1F79853B00F6EBFD /* ActivityUpdate.json */, @@ -313,7 +308,6 @@ F4933CF51F79853B00F6EBFD /* InputForm.json */, F4933CF61F79853B00F6EBFD /* Inputs.json */, F4933CF71F79853B00F6EBFD /* Restaurant.json */, - F4933CF81F79853B00F6EBFD /* SportsGameUpdate.json */, F4933CF91F79853B00F6EBFD /* StockUpdate.json */, F4933CFA1F79853B00F6EBFD /* WeatherCompact.json */, F4933CFB1F79853B00F6EBFD /* WeatherLarge.json */, @@ -486,10 +480,8 @@ F4933CE91F79852C00F6EBFD /* TextBlock.MaxLines.json in Resources */, F4933CDA1F79852C00F6EBFD /* ImageSet.ImageSize.json in Resources */, F4933CFD1F79853B00F6EBFD /* CalendarReminder.json in Resources */, - F4F4484A203FA48700A2F24C /* Container.Style-FixBugs.json in Resources */, F4933CE31F79852C00F6EBFD /* Stylesheet.json in Resources */, F4933D011F79853B00F6EBFD /* ImageGallery.json in Resources */, - F4933D051F79853B00F6EBFD /* SportsGameUpdate.json in Resources */, F4933D001F79853B00F6EBFD /* FoodOrder.json in Resources */, F4933CE21F79852C00F6EBFD /* Input.Toggle.json in Resources */, F4933CFC1F79853B00F6EBFD /* ActivityUpdate.json in Resources */, diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards.xcodeproj/project.pbxproj b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards.xcodeproj/project.pbxproj index 0327572903..41695e45c1 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards.xcodeproj/project.pbxproj +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards.xcodeproj/project.pbxproj @@ -199,12 +199,19 @@ F4F44B9B204A165F00A2F24C /* ACRIBaseInputHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = F42979361F31438900E89914 /* ACRIBaseInputHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; F4F44B9C204A169D00A2F24C /* ACRErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = F42979401F322C3E00E89914 /* ACRErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; F4F44B9D204A16BC00A2F24C /* ACRTextBlockRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = F42741141EF895AB00399FBB /* ACRTextBlockRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4F6BA29204E107F003741B6 /* UnknownElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA27204E107F003741B6 /* UnknownElement.h */; }; - F4F6BA2A204E107F003741B6 /* UnknownElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA28204E107F003741B6 /* UnknownElement.cpp */; }; F4F44BA0204CED2400A2F24C /* ACRCustomRenderer.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F44B9E204CED2300A2F24C /* ACRCustomRenderer.mm */; }; F4F44BA1204CED2400A2F24C /* ACRCustomRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F44B9F204CED2300A2F24C /* ACRCustomRenderer.h */; }; - F4F44BAD204D344B00A2F24C /* ACRAggregateTarget.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F44BAB204D344A00A2F24C /* ACRAggregateTarget.mm */; }; - F4F44BAE204D344B00A2F24C /* ACRAggregateTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F44BAC204D344B00A2F24C /* ACRAggregateTarget.h */; }; + F4F6BA29204E107F003741B6 /* UnknownElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA27204E107F003741B6 /* UnknownElement.h */; }; + F4F6BA2A204E107F003741B6 /* UnknownElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA28204E107F003741B6 /* UnknownElement.cpp */; }; + F4F6BA2F204F18D8003741B6 /* ParseResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA2B204F18D7003741B6 /* ParseResult.cpp */; }; + F4F6BA30204F18D8003741B6 /* AdaptiveCardParseWarning.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA2C204F18D8003741B6 /* AdaptiveCardParseWarning.h */; }; + F4F6BA31204F18D8003741B6 /* ParseResult.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA2D204F18D8003741B6 /* ParseResult.h */; }; + F4F6BA32204F18D8003741B6 /* AdaptiveCardParseWarning.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA2E204F18D8003741B6 /* AdaptiveCardParseWarning.cpp */; }; + F4F6BA35204F200F003741B6 /* ACRParseWarning.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA33204F200E003741B6 /* ACRParseWarning.mm */; }; + F4F6BA36204F200F003741B6 /* ACRParseWarning.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA34204F200E003741B6 /* ACRParseWarning.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F4F6BA38204F2954003741B6 /* ACRParseWarningPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA37204F2954003741B6 /* ACRParseWarningPrivate.h */; }; + F4F6BA3B204F3109003741B6 /* ACRAggregateTarget.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4F6BA39204F3109003741B6 /* ACRAggregateTarget.mm */; }; + F4F6BA3C204F3109003741B6 /* ACRAggregateTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = F4F6BA3A204F3109003741B6 /* ACRAggregateTarget.h */; }; F4FA2731201FF941005989F9 /* ACRLongPressGestureRecognizerFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4FA272F201FF940005989F9 /* ACRLongPressGestureRecognizerFactory.mm */; }; F4FA2732201FF941005989F9 /* ACRLongPressGestureRecognizerFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = F4FA2730201FF941005989F9 /* ACRLongPressGestureRecognizerFactory.h */; }; F4FE45661F196E7B0071D9E5 /* ACRColumnView.h in Headers */ = {isa = PBXBuildFile; fileRef = F4FE45641F196E7B0071D9E5 /* ACRColumnView.h */; }; @@ -408,12 +415,19 @@ F4F44B7F20478C6F00A2F24C /* Util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Util.cpp; path = ../../../../shared/cpp/ObjectModel/Util.cpp; sourceTree = ""; }; F4F44B882048F82F00A2F24C /* ACOBaseCardElement.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACOBaseCardElement.mm; sourceTree = ""; }; F4F44B8A2048F83F00A2F24C /* ACOBaseCardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACOBaseCardElement.h; sourceTree = ""; }; - F4F6BA27204E107F003741B6 /* UnknownElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnknownElement.h; path = ../../../../shared/cpp/ObjectModel/UnknownElement.h; sourceTree = ""; }; - F4F6BA28204E107F003741B6 /* UnknownElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnknownElement.cpp; path = ../../../../shared/cpp/ObjectModel/UnknownElement.cpp; sourceTree = ""; }; F4F44B9E204CED2300A2F24C /* ACRCustomRenderer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACRCustomRenderer.mm; sourceTree = ""; }; F4F44B9F204CED2300A2F24C /* ACRCustomRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRCustomRenderer.h; sourceTree = ""; }; - F4F44BAB204D344A00A2F24C /* ACRAggregateTarget.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACRAggregateTarget.mm; sourceTree = ""; }; - F4F44BAC204D344B00A2F24C /* ACRAggregateTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRAggregateTarget.h; sourceTree = ""; }; + F4F6BA27204E107F003741B6 /* UnknownElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnknownElement.h; path = ../../../../shared/cpp/ObjectModel/UnknownElement.h; sourceTree = ""; }; + F4F6BA28204E107F003741B6 /* UnknownElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnknownElement.cpp; path = ../../../../shared/cpp/ObjectModel/UnknownElement.cpp; sourceTree = ""; }; + F4F6BA2B204F18D7003741B6 /* ParseResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ParseResult.cpp; path = ../../../../shared/cpp/ObjectModel/ParseResult.cpp; sourceTree = ""; }; + F4F6BA2C204F18D8003741B6 /* AdaptiveCardParseWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AdaptiveCardParseWarning.h; path = ../../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h; sourceTree = ""; }; + F4F6BA2D204F18D8003741B6 /* ParseResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ParseResult.h; path = ../../../../shared/cpp/ObjectModel/ParseResult.h; sourceTree = ""; }; + F4F6BA2E204F18D8003741B6 /* AdaptiveCardParseWarning.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AdaptiveCardParseWarning.cpp; path = ../../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp; sourceTree = ""; }; + F4F6BA33204F200E003741B6 /* ACRParseWarning.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACRParseWarning.mm; sourceTree = ""; }; + F4F6BA34204F200E003741B6 /* ACRParseWarning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRParseWarning.h; sourceTree = ""; }; + F4F6BA37204F2954003741B6 /* ACRParseWarningPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRParseWarningPrivate.h; sourceTree = ""; }; + F4F6BA39204F3109003741B6 /* ACRAggregateTarget.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACRAggregateTarget.mm; sourceTree = ""; }; + F4F6BA3A204F3109003741B6 /* ACRAggregateTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRAggregateTarget.h; sourceTree = ""; }; F4FA272F201FF940005989F9 /* ACRLongPressGestureRecognizerFactory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ACRLongPressGestureRecognizerFactory.mm; sourceTree = ""; }; F4FA2730201FF941005989F9 /* ACRLongPressGestureRecognizerFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRLongPressGestureRecognizerFactory.h; sourceTree = ""; }; F4FE45641F196E7B0071D9E5 /* ACRColumnView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACRColumnView.h; sourceTree = ""; }; @@ -489,6 +503,9 @@ F423C1491EE1FFF100905679 /* ACRViewController.mm */, F4CAE77F1F75AB9000545555 /* ACOAdaptiveCard.h */, F4CAE7801F75AB9000545555 /* ACOAdaptiveCard.mm */, + F4F6BA34204F200E003741B6 /* ACRParseWarning.h */, + F4F6BA37204F2954003741B6 /* ACRParseWarningPrivate.h */, + F4F6BA33204F200E003741B6 /* ACRParseWarning.mm */, F4D4020D1F7DAC2C00D0356B /* ACOAdaptiveCardParseResult.h */, F4D4020E1F7DAC2C00D0356B /* ACOAdaptiveCardParseResult.mm */, F4D4020F1F7DAC2C00D0356B /* ACOHostConfigParseResult.h */, @@ -518,6 +535,10 @@ F423C0D71EE1FF2F00905679 /* SharedLib */ = { isa = PBXGroup; children = ( + F4F6BA2E204F18D8003741B6 /* AdaptiveCardParseWarning.cpp */, + F4F6BA2C204F18D8003741B6 /* AdaptiveCardParseWarning.h */, + F4F6BA2B204F18D7003741B6 /* ParseResult.cpp */, + F4F6BA2D204F18D8003741B6 /* ParseResult.h */, F4F6BA28204E107F003741B6 /* UnknownElement.cpp */, F4F6BA27204E107F003741B6 /* UnknownElement.h */, F4F44B7F20478C6F00A2F24C /* Util.cpp */, @@ -636,8 +657,8 @@ F42979331F30079D00E89914 /* Actions */ = { isa = PBXGroup; children = ( - F4F44BAC204D344B00A2F24C /* ACRAggregateTarget.h */, - F4F44BAB204D344A00A2F24C /* ACRAggregateTarget.mm */, + F4F6BA3A204F3109003741B6 /* ACRAggregateTarget.h */, + F4F6BA39204F3109003741B6 /* ACRAggregateTarget.mm */, F4FA2730201FF941005989F9 /* ACRLongPressGestureRecognizerFactory.h */, F4FA272F201FF940005989F9 /* ACRLongPressGestureRecognizerFactory.mm */, F4CA749F2016B3B9002041DF /* ACRLongPressGestureRecognizerEventHandler.h */, @@ -735,6 +756,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + F4F6BA36204F200F003741B6 /* ACRParseWarning.h in Headers */, F4F44B9D204A16BC00A2F24C /* ACRTextBlockRenderer.h in Headers */, F4F44B9C204A169D00A2F24C /* ACRErrors.h in Headers */, F4F44B9A204A164100A2F24C /* ACRInputToggleRenderer.h in Headers */, @@ -747,7 +769,6 @@ F4F44B95204A159A00A2F24C /* ACRImageSetRenderer.h in Headers */, F4F44B90204A14EF00A2F24C /* ACRColumnRenderer.h in Headers */, F4F44B92204A153D00A2F24C /* ACRContainerRenderer.h in Headers */, - F4F44BA4204CED9400A2F24C /* CustomObjectDelegateForIOS.h in Headers */, F4F44B91204A152100A2F24C /* ACRColumnSetRenderer.h in Headers */, F4F44B94204A157B00A2F24C /* ACRImageRenderer.h in Headers */, F4F44B8D204A11D000A2F24C /* (null) in Headers */, @@ -769,8 +790,10 @@ F44873001EE2261F00FCAFAE /* ChoiceSetInput.h in Headers */, F4C1F6001F2C23FD0018CB78 /* ACRActionShowCardRenderer.h in Headers */, F495FC0F2022AC920093D4DE /* ACRChoiceSetViewDataSourceCompactStyle.h in Headers */, + F4F6BA31204F18D8003741B6 /* ParseResult.h in Headers */, F4C1F5E61F2ABB0E0018CB78 /* ACRActionOpenURLRenderer.h in Headers */, F429793A1F31458800E89914 /* ACRActionSubmitRenderer.h in Headers */, + F4F6BA38204F2954003741B6 /* ACRParseWarningPrivate.h in Headers */, F49683521F6CA24600DF0D3A /* ACRRenderer.h in Headers */, F401A87F1F1045CA006D7AF2 /* ACRContentHoldingUIView.h in Headers */, F427411C1EF8A25200399FBB /* ACRRegistration.h in Headers */, @@ -804,7 +827,9 @@ F4F6BA29204E107F003741B6 /* UnknownElement.h in Headers */, F44872FE1EE2261F00FCAFAE /* ChoiceInput.h in Headers */, F44873261EE2261F00FCAFAE /* TextInput.h in Headers */, + F4F6BA3C204F3109003741B6 /* ACRAggregateTarget.h in Headers */, F4CAE77E1F748AF200545555 /* ACOHostConfigPrivate.h in Headers */, + F4F6BA30204F18D8003741B6 /* AdaptiveCardParseWarning.h in Headers */, F44872F61EE2261F00FCAFAE /* AdaptiveCardParseException.h in Headers */, F44872F81EE2261F00FCAFAE /* BaseActionElement.h in Headers */, F448731D1EE2261F00FCAFAE /* ParseUtil.h in Headers */, @@ -984,7 +1009,6 @@ F4C1F5D61F2187900018CB78 /* ACRInputDateRenderer.mm in Sources */, F44872F71EE2261F00FCAFAE /* BaseActionElement.cpp in Sources */, F44872FB1EE2261F00FCAFAE /* BaseInputElement.cpp in Sources */, - F4F44BA5204CED9400A2F24C /* CustomObjectDelegateForIOS.cpp in Sources */, F42979431F322C3E00E89914 /* ACRErrors.mm in Sources */, F44873251EE2261F00FCAFAE /* TextInput.cpp in Sources */, F44873091EE2261F00FCAFAE /* Enums.cpp in Sources */, @@ -993,6 +1017,7 @@ F49683551F6CA24600DF0D3A /* ACRRenderResult.mm in Sources */, F44873071EE2261F00FCAFAE /* DateInput.cpp in Sources */, F43110461F357487001AAE30 /* ACOHostConfig.mm in Sources */, + F4F6BA2F204F18D8003741B6 /* ParseResult.cpp in Sources */, F4C1F5F21F2BC6840018CB78 /* ACRButton.mm in Sources */, F4F6BA2A204E107F003741B6 /* UnknownElement.cpp in Sources */, F49683531F6CA24600DF0D3A /* ACRRenderer.mm in Sources */, @@ -1001,6 +1026,7 @@ F4D33EA51F06F41B00941E44 /* ACRSeparator.mm in Sources */, F427411D1EF8A25200399FBB /* ACRRegistration.mm in Sources */, F4C1F5FE1F2C235E0018CB78 /* ACRActionShowCardRenderer.mm in Sources */, + F4F6BA35204F200F003741B6 /* ACRParseWarning.mm in Sources */, F4FE45671F196E7B0071D9E5 /* ACRColumnView.mm in Sources */, F44873011EE2261F00FCAFAE /* Column.cpp in Sources */, F448730D1EE2261F00FCAFAE /* FactSet.cpp in Sources */, @@ -1051,11 +1077,13 @@ F427410B1EF864A900399FBB /* ACRBaseCardElementRenderer.mm in Sources */, F43660781F0706D800EBA868 /* SharedAdaptiveCard.cpp in Sources */, F42E517A1FEC3840008F9642 /* MarkDownParser.cpp in Sources */, + F4F6BA3B204F3109003741B6 /* ACRAggregateTarget.mm in Sources */, F42741251EFB274C00399FBB /* ACRColumnRenderer.mm in Sources */, F4F255701F98247600A80D39 /* ACOBaseActionElement.mm in Sources */, F4C1F5DA1F218ABC0018CB78 /* ACRInputTimeRenderer.mm in Sources */, F4D402121F7DAC2C00D0356B /* ACOAdaptiveCardParseResult.mm in Sources */, F43110441F357487001AAE30 /* ACRInputTableView.mm in Sources */, + F4F6BA32204F18D8003741B6 /* AdaptiveCardParseWarning.cpp in Sources */, F4C1F5E41F2A62190018CB78 /* ACRActionOpenURLRenderer.mm in Sources */, F4071C7F1FCCBAEF00AF4FEA /* ElementParserRegistration.cpp in Sources */, F4C1F5EC1F2ABD6B0018CB78 /* ACRBaseActionElementRenderer.mm in Sources */, diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACFramework.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACFramework.h index 67be935676..3332aa2d9f 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACFramework.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACFramework.h @@ -65,6 +65,8 @@ FOUNDATION_EXPORT const unsigned char AdaptiveCarsFrameworkVersionString[]; #import +#import + #import #import diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCard.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCard.mm index e2e3210576..a9526ec069 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCard.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCard.mm @@ -10,6 +10,9 @@ #import "SharedAdaptiveCard.h" #import "ACOAdaptiveCardPrivate.h" #import "AdaptiveCardParseException.h" +#import "AdaptiveCardParseWarning.h" +#import "ACRParseWarningPrivate.h" +#import "ParseResult.h" #import "ACRErrors.h" using namespace AdaptiveCards; @@ -53,8 +56,15 @@ + (ACOAdaptiveCardParseResult *)fromJson:(NSString *)payload; try { ACOAdaptiveCard *card = [[ACOAdaptiveCard alloc] init]; - card->_adaptiveCard = AdaptiveCard::DeserializeFromString(std::string([payload UTF8String]), 1.0); - result = [[ACOAdaptiveCardParseResult alloc] init:card errors:nil]; + std::shared_ptr parseResult = AdaptiveCard::DeserializeFromString(std::string([payload UTF8String]), 1.0); + NSMutableArray *acrParseWarnings; + std::vector> parseWarnings = parseResult->GetWarnings(); + for(const auto &warning : parseWarnings){ + ACRParseWarning *acrParseWarning = [[ACRParseWarning alloc] initWithParseWarning:warning]; + [acrParseWarnings addObject:acrParseWarning]; + } + card->_adaptiveCard = parseResult->GetAdaptiveCard(); + result = [[ACOAdaptiveCardParseResult alloc] init:card errors:nil warnings:acrParseWarnings]; } catch(const AdaptiveCardParseException& e) { @@ -66,7 +76,7 @@ + (ACOAdaptiveCardParseResult *)fromJson:(NSString *)payload; code:errorCode userInfo:nil]; NSArray *errors = @[parseError]; - result = [[ACOAdaptiveCardParseResult alloc] init:nil errors:errors]; + result = [[ACOAdaptiveCardParseResult alloc] init:nil errors:errors warnings:nil]; } } return result; diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.h index de4d060c36..ff58a7d8cb 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.h @@ -6,6 +6,7 @@ // #import +#import "ACRParseWarning.h" @class ACOAdaptiveCard; @@ -14,7 +15,8 @@ @property(readonly) ACOAdaptiveCard *card; @property(readonly) BOOL isValid; @property(readonly) NSArray *parseErrors; +@property(readonly) NSArray *parseWarnings; -- (instancetype)init:(ACOAdaptiveCard *)card errors:(NSArray *)errors; +- (instancetype)init:(ACOAdaptiveCard *)card errors:(NSArray *)errors warnings:(NSArray *)warnings; @end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.mm index 03faa2a014..47584dda01 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACOAdaptiveCardParseResult.mm @@ -9,7 +9,7 @@ @implementation ACOAdaptiveCardParseResult -- (instancetype)init:(ACOAdaptiveCard *)card errors:(NSArray *)errors +- (instancetype)init:(ACOAdaptiveCard *)card errors:(NSArray *)errors warnings:(NSArray *)warnings; { self = [super init]; if(self) @@ -17,6 +17,7 @@ - (instancetype)init:(ACOAdaptiveCard *)card errors:(NSArray *)errors _card = card; _isValid = (_card)? YES : NO; _parseErrors = errors; + _parseWarnings = warnings; } return self; } diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.h new file mode 100644 index 0000000000..8b2b7a39d0 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.h @@ -0,0 +1,28 @@ +// +// ACRParseWarning +// ACRParseWarning.h +// +// Copyright © 2018 Microsoft. All rights reserved. +// + +#import + +typedef NS_ENUM(NSUInteger, ACRParseWarningStatusCode) +{ + ACRUnknownElementType = 0, + ACRUnknownPropertyOnElement, + ACRUnknownEnumValue, + ACRNoRendererForType, + ACRInteractivityNotSupported, + ACRMaxActionsExceeded, + ACRAssetLoadFailed, + ACRUnsupportedSchemaVersion, +}; + +@interface ACRParseWarning:NSObject + +@property (readonly)ACRParseWarningStatusCode statusCode; +@property (readonly)NSString *reason; + +@end + diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.mm new file mode 100644 index 0000000000..7357c346e5 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarning.mm @@ -0,0 +1,27 @@ +// +// ACRParseWarning +// ACRParseWarning.mm +// +// Copyright © 2018 Microsoft. All rights reserved. +// + +#import "ACRParseWarningPrivate.h" + +using namespace AdaptiveCards; + +@implementation ACRParseWarning +{ + std::shared_ptr _parseWarnings; +} + +- (instancetype)initWithParseWarning:(std::shared_ptr const &)parseWarning +{ + self = [super init]; + if(self){ + _statusCode = (ACRParseWarningStatusCode)parseWarning->GetStatusCode(); + _reason = [NSString stringWithCString:parseWarning->GetReason().c_str() encoding:NSUTF8StringEncoding]; + } + return self; +} + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarningPrivate.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarningPrivate.h new file mode 100644 index 0000000000..6f95d7f03f --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/ACRParseWarningPrivate.h @@ -0,0 +1,17 @@ +// +// ACRParseWarningPrivate +// ACRParseWarningPrivate.h +// +// Copyright © 2018 Microsoft. All rights reserved. +// + +#import "AdaptiveCardParseWarning.h" +#import +#import "ACRParseWarning.h" + +@interface ACRParseWarning() + +- (instancetype)initWithParseWarning:(std::shared_ptr const &)parseWarning; + +@end + diff --git a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj index 7ae9197801..b07b559a0a 100644 --- a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj +++ b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj @@ -1,4 +1,4 @@ - + @@ -113,6 +113,7 @@ + @@ -138,6 +139,7 @@ + @@ -153,6 +155,7 @@ + @@ -178,6 +181,7 @@ + diff --git a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj.filters b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj.filters index 3ea8c5752c..e65892a96e 100644 --- a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj.filters +++ b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel/AdaptiveCardsSharedModel.vcxproj.filters @@ -129,6 +129,12 @@ Source Files + + Source Files + + + Source Files + @@ -248,5 +254,11 @@ Source Files + + Header Files + + + Header Files + \ No newline at end of file diff --git a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/AdditionalPropertiesTest.cpp b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/AdditionalPropertiesTest.cpp index dfccfd77b9..593fbd6499 100644 --- a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/AdditionalPropertiesTest.cpp +++ b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/AdditionalPropertiesTest.cpp @@ -33,8 +33,8 @@ namespace AdaptiveCardsSharedModelUnitTest }\ ]\ }"; - std::shared_ptr adaptiveCard = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); - std::shared_ptr elem = adaptiveCard->GetBody().front(); + std::shared_ptr parseResult = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); + std::shared_ptr elem = parseResult->GetAdaptiveCard()->GetBody().front(); Json::Value value = elem->GetAdditionalProperties(); Json::FastWriter fastWriter; std::string jsonString = fastWriter.write(value); diff --git a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/CustomParsingForIOSTest.cpp b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/CustomParsingForIOSTest.cpp index fcab9d5ac1..89ddba9ddb 100644 --- a/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/CustomParsingForIOSTest.cpp +++ b/source/shared/cpp/AdaptiveCardsSharedModel/AdaptiveCardsSharedModelUnitTest/CustomParsingForIOSTest.cpp @@ -31,8 +31,8 @@ namespace AdaptiveCardsSharedModelUnitTest }\ ]\ }"; - std::shared_ptr adaptiveCard = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); - std::shared_ptr elem = adaptiveCard->GetBody().front(); + std::shared_ptr parseResult = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); + std::shared_ptr elem = parseResult->GetAdaptiveCard()->GetBody().front(); std::shared_ptr delegate = std::static_pointer_cast(elem); Json::Value value = delegate->GetAdditionalProperties(); Json::FastWriter fastWriter; @@ -63,8 +63,8 @@ namespace AdaptiveCardsSharedModelUnitTest }\ ]\ }"; - std::shared_ptr adaptiveCard = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); - std::shared_ptr elem = adaptiveCard->GetBody().front(); + std::shared_ptr parseResult = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); + std::shared_ptr elem = parseResult->GetAdaptiveCard()->GetBody().front(); std::shared_ptr delegate = std::static_pointer_cast(elem); Json::Value value = delegate->GetAdditionalProperties(); Json::FastWriter fastWriter; @@ -102,8 +102,8 @@ namespace AdaptiveCardsSharedModelUnitTest }\ ]\ }"; - std::shared_ptr adaptiveCard = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); - std::shared_ptr elem = adaptiveCard->GetBody().front(); + std::shared_ptr parseResult = AdaptiveCard::DeserializeFromString(testJsonString, 1.0); + std::shared_ptr elem = parseResult->GetAdaptiveCard()->GetBody().front(); std::shared_ptr delegate = std::static_pointer_cast(elem); Json::Value value = delegate->GetAdditionalProperties(); Json::FastWriter fastWriter; diff --git a/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp b/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp new file mode 100644 index 0000000000..ece9895547 --- /dev/null +++ b/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp @@ -0,0 +1,21 @@ +#include "AdaptiveCardParseWarning.h" + +using namespace AdaptiveCards; + +AdaptiveCardParseWarning::AdaptiveCardParseWarning(const WarningStatusCode statusCode, const std::string & message) : m_statusCode(statusCode), m_message(message) +{ +} + +AdaptiveCardParseWarning::~AdaptiveCardParseWarning() +{ +} + +const WarningStatusCode AdaptiveCardParseWarning::GetStatusCode() const +{ + return m_statusCode; +} + +const std::string& AdaptiveCardParseWarning::GetReason() const +{ + return m_message; +} \ No newline at end of file diff --git a/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.h b/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.h new file mode 100644 index 0000000000..c85ef5621e --- /dev/null +++ b/source/shared/cpp/ObjectModel/AdaptiveCardParseWarning.h @@ -0,0 +1,23 @@ +#pragma once + +#include "pch.h" +#include "Enums.h" + +namespace AdaptiveCards +{ + +class AdaptiveCardParseWarning +{ +public: + AdaptiveCardParseWarning(const AdaptiveCards::WarningStatusCode statusCode, const std::string& message); + ~AdaptiveCardParseWarning(); + + const AdaptiveCards::WarningStatusCode GetStatusCode() const; + const std::string& GetReason() const; + +private: + const AdaptiveCards::WarningStatusCode m_statusCode; + const std::string m_message; +}; + +} diff --git a/source/shared/cpp/ObjectModel/Enums.h b/source/shared/cpp/ObjectModel/Enums.h index bc79157c04..29c6556468 100644 --- a/source/shared/cpp/ObjectModel/Enums.h +++ b/source/shared/cpp/ObjectModel/Enums.h @@ -282,7 +282,6 @@ enum class ContainerStyle { enum class ErrorStatusCode { InvalidJson = 0, - UnsupportedSchemaVersion, RenderFailed, RequiredPropertyMissing, InvalidPropertyValue, @@ -296,7 +295,8 @@ enum class WarningStatusCode { NoRendererForType, InteractivityNotSupported, MaxActionsExceeded, - AssetLoadFailed + AssetLoadFailed, + UnsupportedSchemaVersion, }; enum class DateTimePreparsedTokenFormat { diff --git a/source/shared/cpp/ObjectModel/ParseResult.cpp b/source/shared/cpp/ObjectModel/ParseResult.cpp new file mode 100644 index 0000000000..070cec5abf --- /dev/null +++ b/source/shared/cpp/ObjectModel/ParseResult.cpp @@ -0,0 +1,23 @@ +#include "ParseResult.h" +#include "ParseResult.h" +#include "SharedAdaptiveCard.h" + +using namespace AdaptiveCards; + +ParseResult::ParseResult( + std::shared_ptr adaptiveCard, + std::vector> warnings) : + m_adaptiveCard(adaptiveCard), + m_warnings(warnings) +{ +} + +std::shared_ptr ParseResult::GetAdaptiveCard() +{ + return m_adaptiveCard; +} + +std::vector> AdaptiveCards::ParseResult::GetWarnings() +{ + return m_warnings; +} diff --git a/source/shared/cpp/ObjectModel/ParseResult.h b/source/shared/cpp/ObjectModel/ParseResult.h new file mode 100644 index 0000000000..c363981f5c --- /dev/null +++ b/source/shared/cpp/ObjectModel/ParseResult.h @@ -0,0 +1,24 @@ +#pragma once + +#include "pch.h" +#include "AdaptiveCardParseWarning.h" + +namespace AdaptiveCards +{ + class AdaptiveCard; + + class ParseResult + { + public: + ParseResult( + std::shared_ptr adaptiveCard, + std::vector> warnings); + + std::shared_ptr GetAdaptiveCard(); + std::vector> GetWarnings(); + + private: + std::shared_ptr m_adaptiveCard; + std::vector> m_warnings; + }; +}; \ No newline at end of file diff --git a/source/shared/cpp/ObjectModel/SharedAdaptiveCard.cpp b/source/shared/cpp/ObjectModel/SharedAdaptiveCard.cpp index 1a187ec86c..20c969e388 100644 --- a/source/shared/cpp/ObjectModel/SharedAdaptiveCard.cpp +++ b/source/shared/cpp/ObjectModel/SharedAdaptiveCard.cpp @@ -3,6 +3,7 @@ #include "Util.h" #include "ShowCardAction.h" #include "TextBlock.h" +#include "AdaptiveCardParseWarning.h" using namespace AdaptiveCards; @@ -44,13 +45,13 @@ AdaptiveCard::AdaptiveCard(std::string version, } #ifdef __ANDROID__ -std::shared_ptr AdaptiveCard::DeserializeFromFile( +std::shared_ptr AdaptiveCard::DeserializeFromFile( const std::string& jsonFile, double rendererVersion, std::shared_ptr elementParserRegistration, std::shared_ptr actionParserRegistration) throw(AdaptiveCards::AdaptiveCardParseException) #else -std::shared_ptr AdaptiveCard::DeserializeFromFile( +std::shared_ptr AdaptiveCard::DeserializeFromFile( const std::string& jsonFile, double rendererVersion, std::shared_ptr elementParserRegistration, @@ -66,13 +67,13 @@ std::shared_ptr AdaptiveCard::DeserializeFromFile( } #ifdef __ANDROID__ -std::shared_ptr AdaptiveCard::Deserialize( +std::shared_ptr AdaptiveCard::Deserialize( const Json::Value& json, double rendererVersion, std::shared_ptr elementParserRegistration, std::shared_ptr actionParserRegistration) throw(AdaptiveCards::AdaptiveCardParseException) #else -std::shared_ptr AdaptiveCard::Deserialize( +std::shared_ptr AdaptiveCard::Deserialize( const Json::Value& json, double rendererVersion, std::shared_ptr elementParserRegistration, @@ -84,6 +85,8 @@ std::shared_ptr AdaptiveCard::Deserialize( // Verify this is an adaptive card ParseUtil::ExpectTypeString(json, CardElementType::AdaptiveCard); + std::vector> warnings; + std::string version = ParseUtil::GetString(json, AdaptiveCardSchemaKey::Version); std::string fallbackText = ParseUtil::GetString(json, AdaptiveCardSchemaKey::FallbackText); std::string language = ParseUtil::GetString(json, AdaptiveCardSchemaKey::Language); @@ -107,7 +110,8 @@ std::shared_ptr AdaptiveCard::Deserialize( fallbackText = "We're sorry, this card couldn't be displayed"; } - return MakeFallbackTextCard(fallbackText, language); + warnings.push_back(std::make_shared(AdaptiveCards::WarningStatusCode::UnsupportedSchemaVersion, "Schema version not supported")); + return std::make_shared(MakeFallbackTextCard(fallbackText, language), warnings); } } @@ -133,17 +137,18 @@ std::shared_ptr AdaptiveCard::Deserialize( auto result = std::make_shared(version, fallbackText, backgroundImage, style, speak, language, body, actions); result->SetLanguage(language); - return result; + + return std::make_shared(result, warnings); } #ifdef __ANDROID__ -std::shared_ptr AdaptiveCard::DeserializeFromString( +std::shared_ptr AdaptiveCard::DeserializeFromString( const std::string& jsonString, double rendererVersion, std::shared_ptr elementParserRegistration, std::shared_ptr actionParserRegistration) throw(AdaptiveCards::AdaptiveCardParseException) #else -std::shared_ptr AdaptiveCard::DeserializeFromString( +std::shared_ptr AdaptiveCard::DeserializeFromString( const std::string& jsonString, double rendererVersion, std::shared_ptr elementParserRegistration, @@ -195,7 +200,6 @@ std::shared_ptr AdaptiveCard::MakeFallbackTextCard( const std::string& fallbackText, const std::string& language) #endif // __ANDROID__ - { std::shared_ptr fallbackCard = std::make_shared("1.0", fallbackText, "", ContainerStyle::Default, "", language); diff --git a/source/shared/cpp/ObjectModel/SharedAdaptiveCard.h b/source/shared/cpp/ObjectModel/SharedAdaptiveCard.h index 847cf8baea..194baa12ed 100644 --- a/source/shared/cpp/ObjectModel/SharedAdaptiveCard.h +++ b/source/shared/cpp/ObjectModel/SharedAdaptiveCard.h @@ -4,6 +4,7 @@ #include "BaseActionElement.h" #include "Enums.h" #include "pch.h" +#include "ParseResult.h" namespace AdaptiveCards { @@ -48,15 +49,15 @@ class AdaptiveCard const CardElementType GetElementType() const; #ifdef __ANDROID__ - static std::shared_ptr DeserializeFromFile(const std::string& jsonFile, + static std::shared_ptr DeserializeFromFile(const std::string& jsonFile, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr) throw(AdaptiveCards::AdaptiveCardParseException); - static std::shared_ptr Deserialize(const Json::Value& json, + static std::shared_ptr Deserialize(const Json::Value& json, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr) throw(AdaptiveCards::AdaptiveCardParseException); - static std::shared_ptr DeserializeFromString(const std::string& jsonString, + static std::shared_ptr DeserializeFromString(const std::string& jsonString, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr) throw(AdaptiveCards::AdaptiveCardParseException); @@ -64,18 +65,18 @@ class AdaptiveCard const std::string& fallbackText, const std::string& language) throw(AdaptiveCards::AdaptiveCardParseException); #else - static std::shared_ptr DeserializeFromFile( + static std::shared_ptr DeserializeFromFile( const std::string& jsonFile, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr); - static std::shared_ptr Deserialize(const Json::Value& json, + static std::shared_ptr Deserialize(const Json::Value& json, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr); - static std::shared_ptr DeserializeFromString(const std::string& jsonString, + static std::shared_ptr DeserializeFromString(const std::string& jsonString, double rendererVersion, std::shared_ptr elementParserRegistration = nullptr, std::shared_ptr actionParserRegistration = nullptr); diff --git a/source/shared/cpp/ObjectModel/ShowCardAction.cpp b/source/shared/cpp/ObjectModel/ShowCardAction.cpp index dda5900db3..8633a40622 100644 --- a/source/shared/cpp/ObjectModel/ShowCardAction.cpp +++ b/source/shared/cpp/ObjectModel/ShowCardAction.cpp @@ -45,7 +45,7 @@ std::shared_ptr ShowCardActionParser::Deserialize( std::shared_ptr showCardAction = BaseActionElement::Deserialize(json); std::string propertyName = AdaptiveCardSchemaKeyToString(AdaptiveCardSchemaKey::Card); - showCardAction->SetCard(AdaptiveCard::Deserialize(json.get(propertyName, Json::Value()), std::numeric_limits::max(), elementParserRegistration, actionParserRegistration)); + showCardAction->SetCard(AdaptiveCard::Deserialize(json.get(propertyName, Json::Value()), std::numeric_limits::max(), elementParserRegistration, actionParserRegistration)->GetAdaptiveCard()); return showCardAction; } diff --git a/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj b/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj index c4d13b4601..d31fb7a324 100644 --- a/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj +++ b/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj @@ -29,6 +29,7 @@ + @@ -47,6 +48,7 @@ + @@ -69,6 +71,7 @@ + @@ -87,6 +90,7 @@ + diff --git a/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj.filters b/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj.filters index b61a0c283b..f8823dbe16 100644 --- a/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj.filters +++ b/source/uwp/ObjectModelProjection/ObjectModelProjection.vcxproj.filters @@ -41,6 +41,8 @@ + + @@ -87,6 +89,8 @@ + + diff --git a/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl b/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl index 71553e4459..069a7ed08a 100644 --- a/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl +++ b/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl @@ -289,7 +289,6 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp [version(NTDDI_WIN10_RS1)] typedef [v1_enum] enum ErrorStatusCode { InvalidJson = 0, - UnsupportedSchemaVersion, RenderFailed, RequiredPropertyMissing, InvalidPropertyValue, @@ -304,7 +303,8 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp NoRendererForType, InteractivityNotSupported, MaxActionsExceeded, - AssetLoadFailed + AssetLoadFailed, + UnsupportedSchemaVersion, } WarningStatusCode; declare @@ -455,6 +455,7 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp { [propget] HRESULT AdaptiveCard([out, retval] AdaptiveCard** value); [propget] HRESULT Errors([out, retval] Windows.Foundation.Collections.IVector** value); + [propget] HRESULT Warnings([out, retval] Windows.Foundation.Collections.IVector** value); }; [ diff --git a/source/uwp/Renderer/lib/AdaptiveCard.cpp b/source/uwp/Renderer/lib/AdaptiveCard.cpp index 01b32614cc..700eec59e0 100644 --- a/source/uwp/Renderer/lib/AdaptiveCard.cpp +++ b/source/uwp/Renderer/lib/AdaptiveCard.cpp @@ -5,6 +5,7 @@ #include "AdaptiveElementParserRegistration.h" #include "AdaptiveCardParseException.h" #include "AdaptiveError.h" +#include "AdaptiveWarning.h" #include #include "Util.h" @@ -90,29 +91,46 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp } } - ComPtr adaptiveParseResult; - RETURN_IF_FAILED(MakeAndInitialize(&adaptiveParseResult)); - try - { - const double c_rendererVersion = 1.0; - std::shared_ptr<::AdaptiveCards::AdaptiveCard> sharedAdaptiveCard = ::AdaptiveCards::AdaptiveCard::DeserializeFromString(jsonString, c_rendererVersion, sharedModelElementParserRegistration, sharedModelActionParserRegistration); - ComPtr adaptiveCard; - RETURN_IF_FAILED(MakeAndInitialize(&adaptiveCard, sharedAdaptiveCard)); - RETURN_IF_FAILED(adaptiveParseResult->put_AdaptiveCard(adaptiveCard.Get())); - return adaptiveParseResult.CopyTo(parseResult); - } - catch (const AdaptiveCardParseException& e) - { - ComPtr> errors; - RETURN_IF_FAILED(adaptiveParseResult->get_Errors(&errors)); - HString errorMessage; - ABI::AdaptiveCards::Rendering::Uwp::ErrorStatusCode statusCode = static_cast(e.GetStatusCode()); - RETURN_IF_FAILED(UTF8ToHString(e.GetReason(), errorMessage.GetAddressOf())); - ComPtr adaptiveError; - RETURN_IF_FAILED(MakeAndInitialize(&adaptiveError, statusCode, errorMessage.Get())); - RETURN_IF_FAILED(errors->Append(adaptiveError.Get())); - return adaptiveParseResult.CopyTo(parseResult); - } + ComPtr adaptiveParseResult; + RETURN_IF_FAILED(MakeAndInitialize(&adaptiveParseResult)); + try + { + const double c_rendererVersion = 1.0; + std::shared_ptr<::AdaptiveCards::ParseResult> sharedParseResult = ::AdaptiveCards::AdaptiveCard::DeserializeFromString(jsonString, c_rendererVersion, sharedModelElementParserRegistration, sharedModelActionParserRegistration); + ComPtr adaptiveCard; + RETURN_IF_FAILED(MakeAndInitialize(&adaptiveCard, sharedParseResult->GetAdaptiveCard())); + RETURN_IF_FAILED(adaptiveParseResult->put_AdaptiveCard(adaptiveCard.Get())); + + ComPtr> warnings; + RETURN_IF_FAILED(adaptiveParseResult->get_Warnings(&warnings)); + + for (auto sharedWarning : sharedParseResult->GetWarnings()) + { + HString warningMessage; + RETURN_IF_FAILED(UTF8ToHString(sharedWarning->GetReason(), warningMessage.GetAddressOf())); + + ABI::AdaptiveCards::Rendering::Uwp::WarningStatusCode statusCode = static_cast(sharedWarning->GetStatusCode()); + + ComPtr adaptiveWarning; + RETURN_IF_FAILED(MakeAndInitialize(&adaptiveWarning, statusCode, warningMessage.Get())); + + RETURN_IF_FAILED(warnings->Append(adaptiveWarning.Get())); + } + + return adaptiveParseResult.CopyTo(parseResult); + } + catch (const AdaptiveCardParseException& e) + { + ComPtr> errors; + RETURN_IF_FAILED(adaptiveParseResult->get_Errors(&errors)); + HString errorMessage; + ABI::AdaptiveCards::Rendering::Uwp::ErrorStatusCode statusCode = static_cast(e.GetStatusCode()); + RETURN_IF_FAILED(UTF8ToHString(e.GetReason(), errorMessage.GetAddressOf())); + ComPtr adaptiveError; + RETURN_IF_FAILED(MakeAndInitialize(&adaptiveError, statusCode, errorMessage.Get())); + RETURN_IF_FAILED(errors->Append(adaptiveError.Get())); + return adaptiveParseResult.CopyTo(parseResult); + } } HRESULT AdaptiveCard::RuntimeClassInitialize() diff --git a/source/uwp/Renderer/lib/AdaptiveCardParseResult.cpp b/source/uwp/Renderer/lib/AdaptiveCardParseResult.cpp index af137fd69b..0999049a8b 100644 --- a/source/uwp/Renderer/lib/AdaptiveCardParseResult.cpp +++ b/source/uwp/Renderer/lib/AdaptiveCardParseResult.cpp @@ -28,6 +28,7 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp HRESULT AdaptiveCardParseResult::RuntimeClassInitialize() { m_errors = Make>(); + m_warnings = Make>(); return S_OK; } @@ -49,6 +50,12 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp return m_errors.CopyTo(value); } + _Use_decl_annotations_ + HRESULT AdaptiveCardParseResult::get_Warnings(ABI::Windows::Foundation::Collections::IVector** value) + { + return m_warnings.CopyTo(value); + } + _Use_decl_annotations_ HRESULT AdaptiveCardParseResult::put_AdaptiveCard(_In_ IAdaptiveCard* value) { diff --git a/source/uwp/Renderer/lib/AdaptiveCardParseResult.h b/source/uwp/Renderer/lib/AdaptiveCardParseResult.h index a47fbbfa44..88cadd41a9 100644 --- a/source/uwp/Renderer/lib/AdaptiveCardParseResult.h +++ b/source/uwp/Renderer/lib/AdaptiveCardParseResult.h @@ -22,10 +22,12 @@ namespace AdaptiveCards { namespace Rendering { namespace Uwp HRESULT put_AdaptiveCard(_In_ ABI::AdaptiveCards::Rendering::Uwp::IAdaptiveCard* value); IFACEMETHODIMP get_Errors(_COM_Outptr_ ABI::Windows::Foundation::Collections::IVector** value); + IFACEMETHODIMP get_Warnings(_COM_Outptr_ ABI::Windows::Foundation::Collections::IVector** value); private: Microsoft::WRL::ComPtr m_adaptiveCard; Microsoft::WRL::ComPtr> m_errors; + Microsoft::WRL::ComPtr> m_warnings; }; ActivatableClass(AdaptiveCardParseResult); diff --git a/source/uwp/Visualizer/ViewModel/DocumentViewModel.cs b/source/uwp/Visualizer/ViewModel/DocumentViewModel.cs index cc8979252e..a1885d6304 100644 --- a/source/uwp/Visualizer/ViewModel/DocumentViewModel.cs +++ b/source/uwp/Visualizer/ViewModel/DocumentViewModel.cs @@ -79,7 +79,9 @@ protected override async void LoadPayload(string payload) JsonObject jsonObject; if (JsonObject.TryParse(payload, out jsonObject)) { - RenderedAdaptiveCard renderResult = _renderer.RenderAdaptiveCardFromJson(jsonObject); + AdaptiveCardParseResult parseResult = AdaptiveCard.FromJson(jsonObject); + + RenderedAdaptiveCard renderResult = _renderer.RenderAdaptiveCard(parseResult.AdaptiveCard); if (renderResult.FrameworkElement != null) { RenderedCard = renderResult.FrameworkElement; @@ -114,6 +116,14 @@ protected override async void LoadPayload(string payload) Type = ErrorViewModelType.Error }); } + foreach (var error in parseResult.Errors) + { + newErrors.Add(new ErrorViewModel() + { + Message = error.Message, + Type = ErrorViewModelType.Error + }); + } foreach (var error in renderResult.Errors) { newErrors.Add(new ErrorViewModel() @@ -122,6 +132,15 @@ protected override async void LoadPayload(string payload) Type = ErrorViewModelType.Error }); } + foreach (var error in parseResult.Warnings) + { + newErrors.Add(new ErrorViewModel() + { + Message = error.Message, + Type = ErrorViewModelType.Warning + }); + } + foreach (var error in renderResult.Warnings) { newErrors.Add(new ErrorViewModel() diff --git a/source/xamarin/AdaptiveCards.Rendering.Xamarin.Android.Sample/MainActivity.cs b/source/xamarin/AdaptiveCards.Rendering.Xamarin.Android.Sample/MainActivity.cs index fd777aca11..40012cd29c 100644 --- a/source/xamarin/AdaptiveCards.Rendering.Xamarin.Android.Sample/MainActivity.cs +++ b/source/xamarin/AdaptiveCards.Rendering.Xamarin.Android.Sample/MainActivity.cs @@ -59,12 +59,12 @@ private void renderAdaptiveCard(string jsonText, bool showErrorToast) { try { - AdaptiveCard adaptiveCard = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.Version); - Toast.MakeText(this, adaptiveCard.Body.Capacity().ToString(), ToastLength.Short).Show(); + ParseResult parseResult = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.Version); + Toast.MakeText(this, parseResult.AdaptiveCard.Body.Capacity().ToString(), ToastLength.Short).Show(); LinearLayout layout = (LinearLayout)FindViewById(Resource.Id.visualAdaptiveCardLayout); layout.RemoveAllViews(); - var renderedCard = AdaptiveCardRenderer.Instance.Render(Application.Context, SupportFragmentManager, adaptiveCard, this, new HostConfig()); + var renderedCard = AdaptiveCardRenderer.Instance.Render(Application.Context, SupportFragmentManager, parseResult.AdaptiveCard, this, new HostConfig()); layout.AddView(renderedCard.View); } catch (Java.IO.IOException ex)