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 a5b1191e46..646a9203ed 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 @@ -23,6 +23,7 @@ public enum WarningStatusCode { InvalidColorFormat, InvalidDimensionSpecified, InvalidLanguage, + InvalidValue, CustomWarning; public final int swigValue() { diff --git a/source/shared/cpp/ObjectModel/Enums.h b/source/shared/cpp/ObjectModel/Enums.h index 9ef0d5de79..2fe39e7f99 100644 --- a/source/shared/cpp/ObjectModel/Enums.h +++ b/source/shared/cpp/ObjectModel/Enums.h @@ -392,6 +392,7 @@ namespace AdaptiveSharedNamespace InvalidColorFormat, InvalidDimensionSpecified, InvalidLanguage, + InvalidValue, CustomWarning, }; // No mapping to string needed diff --git a/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl b/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl index 319a2c5f3e..1958334c43 100644 --- a/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl +++ b/source/uwp/Renderer/idl/AdaptiveCards.Rendering.Uwp.idl @@ -313,6 +313,7 @@ AdaptiveNamespaceStart UnsupportedSchemaVersion, UnsupportedMediaType, InvalidMediaMix, + InvalidValue, UnsupportedValue, PerformingFallback, CustomWarning, diff --git a/source/uwp/Renderer/lib/XamlBuilder.cpp b/source/uwp/Renderer/lib/XamlBuilder.cpp index 2f52fbf850..80b3c7197a 100644 --- a/source/uwp/Renderer/lib/XamlBuilder.cpp +++ b/source/uwp/Renderer/lib/XamlBuilder.cpp @@ -2351,14 +2351,15 @@ namespace AdaptiveNamespace EventRegistrationToken eventToken; ComPtr strongParentElement(parentElement); THROW_IF_FAILED(brushAsImageBrush->add_ImageOpened( - Callback([ellipseAsUIElement, ellipsAsFrameworkElement, imageSourceAsBitmap, strongParentElement, isVisible](IInspectable* /*sender*/, IRoutedEventArgs * /*args*/) -> HRESULT { + Callback([ellipseAsUIElement, ellipsAsFrameworkElement, imageSourceAsBitmap, strongParentElement, isVisible]( + IInspectable* /*sender*/, IRoutedEventArgs * /*args*/) -> HRESULT { if (isVisible) { RETURN_IF_FAILED(ellipseAsUIElement->put_Visibility(Visibility::Visibility_Visible)); RETURN_IF_FAILED(SetAutoImageSize(ellipsAsFrameworkElement.Get(), - strongParentElement.Get(), - imageSourceAsBitmap.Get(), - isVisible)); + strongParentElement.Get(), + imageSourceAsBitmap.Get(), + isVisible)); } return S_OK; }) @@ -3693,9 +3694,11 @@ namespace AdaptiveNamespace HString hstringMin; RETURN_IF_FAILED(adaptiveDateInput->get_Min(hstringMin.GetAddressOf())); std::string min = HStringToUTF8(hstringMin.Get()); - if (DateTimePreparser::TryParseSimpleDate(min, year, month, day)) + DateTime minDate{}; + boolean isMinValid{DateTimePreparser::TryParseSimpleDate(min, year, month, day)}; + if (isMinValid) { - DateTime minDate = GetDateTime(year, month, day); + minDate = GetDateTime(year, month, day); RETURN_IF_FAILED(datePicker->put_MinDate(minDate)); } @@ -3706,7 +3709,22 @@ namespace AdaptiveNamespace if (DateTimePreparser::TryParseSimpleDate(max, year, month, day)) { DateTime maxDate = GetDateTime(year, month, day); - RETURN_IF_FAILED(datePicker->put_MaxDate(maxDate)); + if (isMinValid) + { + if (maxDate.UniversalTime > minDate.UniversalTime) + { + RETURN_IF_FAILED(datePicker->put_MaxDate(maxDate)); + } + else + { + renderContext->AddWarning(ABI::AdaptiveNamespace::WarningStatusCode::InvalidValue, + HStringReference(L"Min value must be less than max in Input.Date").Get()); + } + } + else + { + RETURN_IF_FAILED(datePicker->put_MaxDate(maxDate)); + } } RETURN_IF_FAILED(