diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000000..9d11d0e9a8
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,30 @@
+---
+# this file work is a derivative of .clang-format which follows
+# https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md
+#
+Language: Cpp
+BasedOnStyle: Microsoft
+AccessModifierOffset: -4
+AlignAfterOpenBracket: AlwaysBreak
+AlignEscapedNewlines: DontAlign
+AlwaysBreakBeforeMultilineStrings: true
+AlwaysBreakTemplateDeclarations: Yes
+BinPackArguments: false
+BinPackParameters: false
+BraceWrapping:
+ AfterCaseLabel: true
+ AfterUnion: true
+ AfterExternBlock: false
+BreakConstructorInitializers: AfterColon
+CompactNamespaces: true
+IncludeBlocks: Regroup
+IncludeCategories:
+ - Regex: '^"(stdafx.h|pch.h|precomp.h)"$'
+ Priority: -1
+NamespaceIndentation: Inner
+PenaltyExcessCharacter: 1
+PointerAlignment: Left
+SortIncludes: false
+Standard: Cpp11
+UseTab: Never
+...
diff --git a/.editorconfig b/.editorconfig
index 93f26da269..12cb1e43fd 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,6 +1,6 @@
root = true
-[**.{cpp,h,java,mm,cs,ts,js}]
+[**.{cpp,h,java,mm,cs}]
indent_style = spaces
indent_size = 4
charset = utf-8
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index dd691565ff..ee5ece0e4d 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,4 +1,4 @@
-blank_issues_enabled: false
+blank_issues_enabled: true
contact_links:
- name: Question
about: Please ask questions on GitHub Discussions
diff --git a/.gitignore b/.gitignore
index 1a55e94ba9..11fc5dda13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
## files generated by popular Visual Studio add-ons.
.gitconfig
+scripts/hooks/pre-commit
+
# User-specific files
*.suo
*.user
@@ -276,6 +278,8 @@ product.pbxproj
**/.DS_Store
.build/
xcuserdata/
+Pods/
+Podfile.lock
#Generated header from MIDL
**/UWP/Renderer/AdaptiveCards.Rendering.Uwp.h
diff --git a/.pipelines/android-ci.yml b/.pipelines/android-ci.yml
index d237f83a57..41adbd7089 100644
--- a/.pipelines/android-ci.yml
+++ b/.pipelines/android-ci.yml
@@ -17,7 +17,7 @@ trigger:
pool:
name: Azure Pipelines
- vmImage: macOS-10.14
+ vmImage: macOS-latest
steps:
- task: Gradle@2
diff --git a/.pipelines/clang-format-ci.yml b/.pipelines/clang-format-ci.yml
new file mode 100644
index 0000000000..ce02de6555
--- /dev/null
+++ b/.pipelines/clang-format-ci.yml
@@ -0,0 +1,61 @@
+name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r)
+
+pr:
+ branches:
+ include:
+ - main
+
+pool:
+ vmImage: ubuntu-latest
+
+steps:
+- task: NodeTool@0
+ inputs:
+ versionSpec: '14.x'
+ displayName: 'Install Node.js'
+
+- script: |
+ npm i -g npm@latest
+ displayName: 'npm i -g npm@latest'
+ workingDirectory: source/nodejs
+
+- script: |
+ npm install
+ displayName: 'npm install'
+ workingDirectory: source/nodejs
+
+- script: |
+ npm run verify --verbose
+ displayName: 'npm run verify --verbose'
+ workingDirectory: source/nodejs
+
+- bash: |
+ echo "##[command]Three ways to fix the format problem"
+ echo '##[command]1. powershell -ExecutionPolicy Bypass scripts\FormatSource.ps1 -ModifiedOnly $False'
+ echo "##[command]2. or cd source\nodejs, then npm run format --verbse"
+ echo "##[command]3. or download format.patch from pippeline, then git apply format.patch"
+ displayName: 'How to fix the format problem'
+ condition: failed()
+
+- script: |
+ npm run format --verbose
+ displayName: 'npm run format --verbose'
+ workingDirectory: source/nodejs
+ condition: failed()
+
+- script: |
+ git diff > format.patch
+ displayName: 'create format.patch'
+ condition: failed()
+
+- task: CopyFiles@2
+ inputs:
+ contents: 'format.patch'
+ targetFolder: $(Build.ArtifactStagingDirectory)
+ condition: failed()
+
+- task: PublishBuildArtifacts@1
+ inputs:
+ pathToPublish: $(Build.ArtifactStagingDirectory)
+ artifactName: drop
+ condition: failed()
\ No newline at end of file
diff --git a/.pipelines/ios-ci.yml b/.pipelines/ios-ci.yml
new file mode 100644
index 0000000000..14b631f767
--- /dev/null
+++ b/.pipelines/ios-ci.yml
@@ -0,0 +1,25 @@
+# Xcode
+# Build, test, and archive an Xcode workspace on macOS.
+# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more:
+# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode
+
+name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r)
+
+pr:
+ branches:
+ include:
+ - main
+ - feature/*
+ - release/*
+
+schedules:
+ - cron: "0 0 * * 6"
+ displayName: testing
+ branches:
+ include:
+ - main
+pool:
+ vmImage: 'macos-latest'
+
+steps:
+ - template: templates/ios-ci-template.yml
diff --git a/.pipelines/ios-heartbeat.yml b/.pipelines/ios-heartbeat.yml
new file mode 100644
index 0000000000..f593913af2
--- /dev/null
+++ b/.pipelines/ios-heartbeat.yml
@@ -0,0 +1,65 @@
+name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r)
+
+pr: none
+trigger: none
+
+schedules:
+ - cron: "1 7 1,15 * *"
+ displayName: Send Heartbeat
+ branches:
+ include:
+ - main
+jobs:
+ - job: specLint
+ displayName: 'check podspec health'
+ pool:
+ vmImage: 'macos-latest'
+ steps:
+ - template: templates/ios-spec-lint-template.yml
+
+ - job: unitTest
+ displayName: 'check code health'
+ pool:
+ vmImage: 'macos-latest'
+ steps:
+ - template: templates/ios-ci-template.yml
+
+ - job: certificateCheck
+ displayName: 'check certificate health'
+ pool:
+ vmImage: 'macos-latest'
+ steps:
+ - template: templates/ios-install-cert-template.yml
+
+ - job:
+ pool:
+ vmImage: 'windows-latest'
+ displayName: 'collect result'
+ dependsOn:
+ - specLint
+ - unitTest
+ - certificateCheck
+ condition: always()
+ variables:
+ j1: $[dependencies.specLint.result]
+ j2: $[dependencies.unitTest.result]
+ j3: $[dependencies.certificateCheck.result]
+ steps:
+ - task: PkgESSendMail@10
+ inputs:
+ to: 'adaptivecardscore@microsoft.com'
+ subject: 'iOS Release Pipeline Health Check'
+ bodyType: 'string'
+ body: |
+
+
+
+ iOS Release Pipeline Health Check Report
+
+ - spec linting check has $(j1)
+ - code health check has $(j2)
+ - certificate check has $(j3)
+
+
+
+ isHtml: true
diff --git a/.pipelines/js-ci.yml b/.pipelines/js-ci.yml
new file mode 100644
index 0000000000..1307472fef
--- /dev/null
+++ b/.pipelines/js-ci.yml
@@ -0,0 +1,99 @@
+name: $(date:yyMM).$(date:dd)$(rev:rrr)
+
+pr:
+ branches:
+ include:
+ - main
+ paths:
+ include:
+ - source/nodejs
+
+pool:
+ name: Azure Pipelines
+ vmImage: windows-2019
+ demands:
+ - npm
+
+parameters:
+- name: target_packages
+ displayName: "Which packages is going to be built."
+ type: object
+ default:
+ - adaptivecards
+ - adaptivecards-controls
+ - adaptivecards-designer
+ - adaptivecards-templating
+ - adaptivecards-react
+
+- name: test_apps
+ displayName: "Which project is going to be consume the built npm packages."
+ type: object
+ default:
+ - adaptivecards-ui-testapp
+ - adaptivecards-react-testapp
+
+- name: test_projects
+ displayName: "project in tests/."
+ type: object
+ default:
+ # - test-adaptive-card-schema # bug https://github.com/microsoft/AdaptiveCards/issues/6882
+ # - ui-tests # bug https://github.com/microsoft/AdaptiveCards/issues/6885
+ - unit-tests
+
+steps:
+- task: NodeTool@0
+ name: NodeTool1
+ displayName: Use Node 14.x
+ inputs:
+ versionSpec: 14.x
+
+- bash: |
+ npm i -g npm@latest
+ npm ci
+ npx lerna bootstrap --ci
+ npx lerna run release
+ workingDirectory: source/nodejs
+ displayName: 'Bash - lerna bootstrap'
+
+- bash: |
+ npx lerna run test
+ workingDirectory: source/nodejs
+ displayName: 'Run all tests'
+ condition: failed() # This is disabled because of issue 6874
+
+- ${{ each target_package in parameters.target_packages }}:
+ - task: Npm@1
+ displayName: '[${{ target_package }}] npm pack'
+ inputs:
+ command: custom
+ customCommand: pack
+ workingDir: source/nodejs/${{ target_package }}
+
+ - task: CopyFiles@2
+ inputs:
+ sourceFolder: source/nodejs/${{ target_package }}
+ contents: '${{ target_package }}*.tgz'
+ targetFolder: ../
+ displayName: 'Copy tgz to ../'
+
+- ${{ each test_project in parameters.test_projects }}:
+ - bash: |
+ npm i
+ npm run build-and-test
+ workingDirectory: source/nodejs/tests/${{ test_project }}
+ displayName: 'Build and run test in tests/[${{ test_project }}]'
+
+- bash: |
+ git clean -dxf
+ npm i
+ workingDirectory: source/nodejs
+ displayName: 'clean and re-install the package'
+
+- ${{ each test_app in parameters.test_apps }}:
+ - bash: |
+ npm i ../../../../*.tgz --force
+ cat package.json
+ npm i
+ npm run build
+ workingDirectory: source/nodejs/${{ test_app }}
+ displayName: 'Install the built package and build the [${{ test_app }}]'
\ No newline at end of file
diff --git a/.pipelines/js-release.yml b/.pipelines/js-release.yml
index 31261f19ce..b76b0db105 100644
--- a/.pipelines/js-release.yml
+++ b/.pipelines/js-release.yml
@@ -18,6 +18,8 @@ parameters:
- adaptivecards-controls
- adaptivecards-designer
- adaptivecards-templating
+ - adaptivecards-react
+
- name: dry_run
displayName: "Dry run without pushing to npmjs"
type: object
diff --git a/.pipelines/templates/ios-build-template.yml b/.pipelines/templates/ios-build-template.yml
new file mode 100644
index 0000000000..8ae3f24c10
--- /dev/null
+++ b/.pipelines/templates/ios-build-template.yml
@@ -0,0 +1,37 @@
+parameters:
+ - name: 'sdk'
+ default: 'iphonesimulator'
+ type: string
+
+ - name: 'signingOption'
+ default: 'default'
+ type: string
+
+ - name: 'packageApp'
+ default: false
+ type: boolean
+
+ - name: 'configuration'
+ default: 'Debug'
+ type: string
+
+steps:
+- task: CocoaPods@0
+ displayName: 'Installing dependency via pod'
+ inputs:
+ workingDirectory: 'source/ios/AdaptiveCards'
+ forceRepoUpdate: false
+
+- task: Xcode@5
+ displayName: 'Compiling...'
+ inputs:
+ actions: 'build'
+ xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
+ scheme: 'ADCIOSVisualizer'
+ xcodeVersion: '12'
+ packageApp: ${{ parameters.packageApp }}
+ signingOption: ${{ parameters.signingOption }}
+ sdk: ${{ parameters.sdk }}
+ configuration: ${{ parameters.configuration }}
+ destinationPlatformOption: 'iOS'
+ destinationSimulators: 'iPhone 12'
diff --git a/.pipelines/templates/ios-ci-template.yml b/.pipelines/templates/ios-ci-template.yml
new file mode 100644
index 0000000000..2e54f36777
--- /dev/null
+++ b/.pipelines/templates/ios-ci-template.yml
@@ -0,0 +1,29 @@
+steps:
+- template: ios-build-template.yml
+
+- task: Xcode@5
+ displayName: 'Sample App Unit Test'
+ inputs:
+ actions: 'test'
+ xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
+ scheme: 'ADCIOSVisualizer'
+ xcodeVersion: '12'
+ packageApp: false
+ signingOption: 'default'
+ sdk: 'iphonesimulator'
+ destinationPlatformOption: 'iOS'
+ destinationSimulators: 'iPhone 12'
+
+- task: Xcode@5
+
+ displayName: 'Framework Unit Test'
+ inputs:
+ actions: 'test'
+ xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
+ scheme: 'AdaptiveCards'
+ xcodeVersion: '12'
+ packageApp: false
+ signingOption: 'default'
+ sdk: 'iphonesimulator'
+ destinationPlatformOption: 'iOS'
+ destinationSimulators: 'iPhone 12'
diff --git a/.pipelines/templates/ios-install-cert-template.yml b/.pipelines/templates/ios-install-cert-template.yml
new file mode 100644
index 0000000000..ddbb532b8d
--- /dev/null
+++ b/.pipelines/templates/ios-install-cert-template.yml
@@ -0,0 +1,20 @@
+steps:
+- task: InstallAppleCertificate@2
+ displayName: 'Install Certificates'
+ inputs:
+ certSecureFile: 'Certificates_Nov_19_B.p12'
+ certPwd: '$(P12password)'
+ keychain: 'temp'
+
+- task: InstallAppleProvisioningProfile@1
+ displayName: 'Install Provisioning Profile'
+ inputs:
+ provisioningProfileLocation: 'secureFiles'
+ provProfileSecureFile: 'a5e2ba07-6d9f-4254-abf0-ad59b7effefa.mobileprovision'
+
+- template: ios-build-template.yml
+ parameters:
+ sdk: iphoneos
+ signingOption: auto
+ packageApp: true
+ configuration: Release
diff --git a/.pipelines/templates/ios-spec-lint-template.yml b/.pipelines/templates/ios-spec-lint-template.yml
new file mode 100644
index 0000000000..465fa6f7b2
--- /dev/null
+++ b/.pipelines/templates/ios-spec-lint-template.yml
@@ -0,0 +1,8 @@
+steps:
+- task: Bash@3
+ displayName: 'Spec Lint'
+ inputs:
+ targetType: 'inline'
+ script: |
+ # Write your commands here
+ pod spec lint ./source/ios/tools/AdaptiveCards.podspec --allow-warnings
diff --git a/.pipelines/uwp-ci.yml b/.pipelines/uwp-ci.yml
index 176a95df2d..086a4a2662 100644
--- a/.pipelines/uwp-ci.yml
+++ b/.pipelines/uwp-ci.yml
@@ -54,13 +54,15 @@ steps:
- task: VSTest@2
displayName: 'VsTest - Unit Tests'
inputs:
+ testRunTitle: 'UWP Unit Tests'
+ searchFolder: '$(System.DefaultWorkingDirectory)\source\uwp'
testAssemblyVer2: |
**\Release\UWPUnitTests.build.appxrecipe
!**\obj\**
otherConsoleOptions: '/Framework:FrameworkUap10'
runInParallel: true
runTestsInIsolation: true
- codeCoverageEnabled: false
+ codeCoverageEnabled: true
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
diagnosticsEnabled: True
@@ -69,12 +71,14 @@ steps:
- task: VSTest@2
displayName: 'VsTest - UI Tests'
inputs:
+ testRunTitle: 'UWP UI Tests'
+ searchFolder: '$(System.DefaultWorkingDirectory)\source\uwp'
testAssemblyVer2: |
**\Release\netcoreapp2.1\UWPUITests.dll
!**\obj\**
uiTests: true
runTestsInIsolation: true
- codeCoverageEnabled: false
+ codeCoverageEnabled: true
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
diagnosticsEnabled: True
diff --git a/README.md b/README.md
index dfa68ea1b9..2fe347f6e4 100644
--- a/README.md
+++ b/README.md
@@ -29,23 +29,68 @@ PS: Latest Build Status is against `main` branch.
| iOS | [](https://cocoapods.org/pods/AdaptiveCards) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/ios) | [Docs](https://docs.microsoft.com/en-us/adaptive-cards/display/libraries/ios) |  |
| Card Designer | [](https://www.npmjs.com/package/adaptivecards-designer) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/nodejs/adaptivecards-designer)| [Docs](https://www.npmjs.com/package/adaptivecards-designer) |  |
-#### End User License Agreement for our binary packages
+## Code format
+
+We require the C++ code inside this project to follow the clang-format. If you change them, please make sure your changed files are formatted correctly.
+
+Make sure clang-format version 12.0.0 and above version is used.
+
+### IDE integration
+ClangFormat describes a set of tools that are built on top of LibFormat. It can support your workflow in a variety of ways including a standalone tool and editor integrations. For details, refer to https://clang.llvm.org/docs/ClangFormat.html
+
+### Format with script
+Two scripts are provided to help you format files.
+- Windows user only: use FormatSource.ps1. This script use clang-format.exe which is built into Visual Studio by default.
+
+ Execute below command in the root folder of the project
+
+ ```
+ PowerShell.exe -ExecutionPolicy Bypass scripts\FormatSource.ps1 -ModifiedOnly $False
+ ```
+
+If it's the first time to run the script, make sure clang-format version 12.0.0 or above in the output. Otherwise you may need to upgrade Visual Studio or use your own clang-format binaries.
+```
+[clang-format] Version is:
+clang-format version 12.0.0
+```
+
+- Both Windows and MAC users: Use clang-format npmjs package
+
+ Execute below command in source/nodejs
+
+ ```
+ npm run format
+ ```
+
+Make sure `npm install` is run before.
+
+### Use Git pre-commit hook
+`git pre-commit hook` is an optional process. When you run `git commit`, it will automatically do the format check and auto fix the format if error detected.
+
+First make sure clang-format binary is installed in your dev enviroment.
+Then modify scripts/hooks/pre-commit to make sure clangFormat is point to the correct path.
+And finally setup the git hook.
+
+Two ways to setup the hook:
+1. Copy `scripts/hooks/pre-commit` to `.git/hooks`
+2. `git config --local core.hooksPath scripts/hooks`
+
+## End User License Agreement for our binary packages
Consumption of the AdaptiveCards binary packages are subject to the Microsoft EULA (End User License Agreement). Please see the relevant terms as listed below:
- [UWP/.NET](https://github.com/microsoft/AdaptiveCards/blob/main/source/EULA-Windows.txt)
- [Android/iOS](https://github.com/microsoft/AdaptiveCards/blob/main/source/EULA-Non-Windows.txt)
NOTE: All of the source code, itself, made available in this repo as well as our NPM packages, continue to be governed by the open source [MIT license](https://github.com/microsoft/AdaptiveCards/blob/main/LICENSE).
+
### Community SDKs
The following SDKs are lovingly maintained by the Adaptive Cards community. Their contributions are sincerely appreciated! 🎉
-|Platform|Install|Build|Docs|Status|Maintainer|
-|---|---|---|---|---|---|
-| ReactNative | [](https://www.npmjs.com/package/adaptivecards-reactnative) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/community/reactnative)| [Docs](https://github.com/Microsoft/AdaptiveCards/blob/main/source/community/reactnative/README.md) | [](https://dev.azure.com/microsoft/AdaptiveCards/_build/latest?definitionId=38416) | [BigThinkCode](https://github.com/BigThinkcode)
-| Pic2Card | | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/pic2card) | [Docs](https://github.com/Microsoft/AdaptiveCards/blob/main/source/pic2card/README.md) |  | [BigThinkCode](https://github.com/BigThinkcode)
-| Vue.js | [](https://www.npmjs.com/package/adaptivecards-vue) | [Source](https://github.com/DeeJayTC/adaptivecards-vue)| [Docs](https://github.com/DeeJayTC/adaptivecards-vue/blob/master/README.md) | OK | [Tim Cadenbach](https://github.com/DeeJayTC)
-
-
+|Platform|Install|Repo|Maintainer|
+|---|---|---|---|
+| ReactNative | [](https://www.npmjs.com/package/adaptivecards-reactnative) | [GitHub](https://github.com/BigThinkcode/AdaptiveCards) | [BigThinkCode](https://github.com/BigThinkcode) |
+| Pic2Card | | [GitHub](https://github.com/BigThinkcode/AdaptiveCards/blob/main/source/pic2card/README.md) | [BigThinkCode](https://github.com/BigThinkcode) |
+| Vue.js | [](https://www.npmjs.com/package/adaptivecards-vue) | [GitHub](https://github.com/DeeJayTC/adaptivecards-vue)| [Tim Cadenbach](https://github.com/DeeJayTC)
## Contribute
diff --git a/custom.props b/custom.props
index 714a36326d..ade8060f1d 100644
--- a/custom.props
+++ b/custom.props
@@ -1,10 +1,10 @@
- 2
- 7
+ 3
+ 0
- 2.7.0
+ 3.0.0
AdaptiveCards
diff --git a/samples/ConsolidatedElementSamples/Input.Toggle.json b/samples/ConsolidatedElementSamples/Input.Toggle.json
new file mode 100644
index 0000000000..13516a2784
--- /dev/null
+++ b/samples/ConsolidatedElementSamples/Input.Toggle.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.0",
+ "body": [
+ {
+ "type": "Input.Toggle",
+ "id": "acceptTerms",
+ "title": "I accept the terms and agreements",
+ "value": "true",
+ "valueOn": "true",
+ "valueOff": "false",
+ "label": "Please check the box below to accept the terms and agreements:",
+ "isRequired": true,
+ "errorMessage": "You must accept the terms to continue."
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "OK"
+ }
+ ]
+}
diff --git a/samples/HostConfig/berlin-dark.json b/samples/HostConfig/berlin-dark.json
new file mode 100644
index 0000000000..23cee56486
--- /dev/null
+++ b/samples/HostConfig/berlin-dark.json
@@ -0,0 +1,95 @@
+{
+ "supportsInteractivity": true,
+ "spacing": {
+ "small": 8,
+ "default": 12,
+ "medium": 16,
+ "large": 20,
+ "extraLarge": 24,
+ "padding": 16
+ },
+ "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ },
+ "fontTypes": {
+ "default": {
+ "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ }
+ },
+ "monospace": {
+ "fontFamily": "'Courier New', Courier, monospace",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ }
+ }
+ },
+ "containerStyles": {
+ "default": {
+ "foregroundColors": {
+ "default": {
+ "default": "#FFFFFF",
+ "subtle": "#FFFFFF"
+ },
+ "accent": {
+ "default": "#60CDFF",
+ "subtle": "#60CDFF"
+ },
+ "dark": {
+ "default": "#FFFFFFC8",
+ "subtle": "#FFFFFFC8"
+ }
+ }
+ }
+ },
+ "textStyles": {
+ "heading": {
+ "fontType": "default",
+ "size": "large",
+ "weight": "bolder",
+ "color": "default",
+ "isSubtle": false
+ }
+ },
+ "textBlock": {
+ "headingLevel": 2
+ },
+ "imageSizes": {
+ "small": 32,
+ "medium": 52,
+ "large": 100
+ },
+ "separator": {
+ "lineThickness": 1,
+ "lineColor": "#FFFFFF"
+ }
+}
diff --git a/samples/HostConfig/berlin-light.json b/samples/HostConfig/berlin-light.json
new file mode 100644
index 0000000000..13e35cb0d6
--- /dev/null
+++ b/samples/HostConfig/berlin-light.json
@@ -0,0 +1,95 @@
+{
+ "supportsInteractivity": true,
+ "spacing": {
+ "small": 8,
+ "default": 12,
+ "medium": 16,
+ "large": 20,
+ "extraLarge": 24,
+ "padding": 16
+ },
+ "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ },
+ "fontTypes": {
+ "default": {
+ "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ }
+ },
+ "monospace": {
+ "fontFamily": "'Courier New', Courier, monospace",
+ "fontSizes": {
+ "small": 12,
+ "default": 12,
+ "medium": 14,
+ "large": 20,
+ "extraLarge": 40
+ },
+ "fontWeights": {
+ "lighter": 400,
+ "default": 400,
+ "bolder": 600
+ }
+ }
+ },
+ "containerStyles": {
+ "default": {
+ "foregroundColors": {
+ "default": {
+ "default": "#000000",
+ "subtle": "#000000"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#000000"
+ },
+ "accent": {
+ "default": "#005FB8",
+ "subtle": "#005FB8"
+ }
+ }
+ }
+ },
+ "imageSizes": {
+ "small": 32,
+ "medium": 52,
+ "large": 100
+ },
+ "textStyles": {
+ "heading": {
+ "fontType": "default",
+ "size": "large",
+ "weight": "bolder",
+ "color": "default",
+ "isSubtle": false
+ }
+ },
+ "textBlock": {
+ "maxWidth": "252px"
+ },
+ "separator": {
+ "lineThickness": 1,
+ "lineColor": "#333333"
+ }
+}
diff --git a/samples/HostConfig/viva-connections.json b/samples/HostConfig/viva-connections.json
new file mode 100644
index 0000000000..0bd82008dd
--- /dev/null
+++ b/samples/HostConfig/viva-connections.json
@@ -0,0 +1,289 @@
+{
+ "preExpandSingleShowCardAction": true,
+ "supportsInteractivity": true,
+ "spacing": {
+ "small": 4,
+ "default": 8,
+ "medium": 16,
+ "large": 24,
+ "extraLarge": 32,
+ "padding": 16
+ },
+ "separator": {
+ "lineThickness": 1,
+ "lineColor": "#EDEBE9"
+ },
+ "imageSizes": {
+ "small": 72,
+ "medium": 164,
+ "large": 256
+ },
+ "fontTypes": {
+ "default": {
+ "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif",
+ "fontSizes": {
+ "small": 12,
+ "default": 14,
+ "medium": 18,
+ "large": 24,
+ "extraLarge": 32
+ },
+ "fontWeights": {
+ "lighter": 300,
+ "default": 400,
+ "bolder": 600
+ }
+ },
+ "monospace": {
+ "fontFamily": "'Courier New', Courier, monospace",
+ "fontSizes": {
+ "small": 12,
+ "default": 14,
+ "medium": 18,
+ "large": 24,
+ "extraLarge": 32
+ },
+ "fontWeights": {
+ "lighter": 300,
+ "default": 400,
+ "bolder": 600
+ }
+ }
+ },
+ "containerStyles": {
+ "default": {
+ "backgroundColor": "#FFFFFF",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ },
+ "emphasis": {
+ "backgroundColor": "#FAF9F8",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ },
+ "accent": {
+ "backgroundColor": "#E2E2F6",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ },
+ "good": {
+ "backgroundColor": "#DFF6DD",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ },
+ "attention": {
+ "backgroundColor": "#FED9CC",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ },
+ "warning": {
+ "backgroundColor": "#FFF4CE",
+ "foregroundColors": {
+ "default": {
+ "default": "#323130",
+ "subtle": "#8A8886"
+ },
+ "dark": {
+ "default": "#000000",
+ "subtle": "#605E5C"
+ },
+ "light": {
+ "default": "#F3F2F1",
+ "subtle": "#E1DFDD"
+ },
+ "accent": {
+ "default": "#6264A7",
+ "subtle": "#A6A7DC"
+ },
+ "attention": {
+ "default": "#A80000",
+ "subtle": "#A3A80000"
+ },
+ "good": {
+ "default": "#107C10",
+ "subtle": "#A3107C10"
+ },
+ "warning": {
+ "default": "#797673",
+ "subtle": "#A19F9D"
+ }
+ }
+ }
+ },
+ "actions": {
+ "maxActions": 5,
+ "spacing": "Default",
+ "buttonSpacing": 10,
+ "showCard": {
+ "actionMode": "Inline",
+ "inlineTopMargin": 16
+ },
+ "actionsOrientation": "Horizontal",
+ "actionAlignment": "Left"
+ },
+ "adaptiveCard": {
+ "allowCustomStyle": true
+ },
+ "imageSet": {
+ "imageSize": "Medium",
+ "maxImageHeight": 100
+ },
+ "factSet": {
+ "title": {
+ "color": "Default",
+ "size": "Default",
+ "isSubtle": false,
+ "weight": "Bolder",
+ "wrap": true,
+ "maxWidth": 150
+ },
+ "value": {
+ "color": "Default",
+ "size": "Default",
+ "isSubtle": false,
+ "weight": "Default",
+ "wrap": true
+ },
+ "spacing": 8
+ }
+}
diff --git a/samples/Templates/Scenarios/ApplicationLogin.data.json b/samples/Templates/Scenarios/ApplicationLogin.data.json
new file mode 100644
index 0000000000..656696940d
--- /dev/null
+++ b/samples/Templates/Scenarios/ApplicationLogin.data.json
@@ -0,0 +1,5 @@
+{
+ "ApplicationInfo": {
+ "title": "Application Login"
+ }
+}
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/ApplicationLogin.template.json b/samples/Templates/Scenarios/ApplicationLogin.template.json
new file mode 100644
index 0000000000..171f17fa14
--- /dev/null
+++ b/samples/Templates/Scenarios/ApplicationLogin.template.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "Medium",
+ "weight": "Bolder",
+ "text": " ${ApplicationInfo.title}",
+ "horizontalAlignment": "Center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Username",
+ "wrap": true
+ },
+ {
+ "type": "Input.Text",
+ "style": "text",
+ "id": "UserVal",
+ "isRequired": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Password",
+ "wrap": true
+ },
+ {
+ "type": "Input.Text",
+ "id": "PassVal",
+ "style": "password",
+ "isRequired": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Login",
+ "data": {
+ "id": "LoginVal"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/FlightUpdateTable.data.json b/samples/Templates/Scenarios/FlightUpdateTable.data.json
new file mode 100644
index 0000000000..ec41d2bb08
--- /dev/null
+++ b/samples/Templates/Scenarios/FlightUpdateTable.data.json
@@ -0,0 +1,40 @@
+{
+ "@context": "http://schema.org",
+ "@type": "FlightReservation",
+ "reservationId": "RXJ34P",
+ "reservationStatus": "http://schema.org/ReservationConfirmed",
+ "passengerPriorityStatus": "Fast Track",
+ "passengerSequenceNumber": "ABC123",
+ "securityScreening": "TSA PreCheck",
+ "underName": {
+ "@type": "Person",
+ "name": "Sarah Hum"
+ },
+ "reservationFor": {
+ "@type": "Flight",
+ "flightNumber": "KL605",
+ "provider": {
+ "@type": "Airline",
+ "name": "KLM",
+ "iataCode": "KL",
+ "boardingPolicy": "http://schema.org/ZoneBoardingPolicy"
+ },
+ "seller": {
+ "@type": "Airline",
+ "name": "KLM",
+ "iataCode": "KL"
+ },
+ "departureAirport": {
+ "@type": "Airport",
+ "name": "Amsterdam Airport",
+ "iataCode": "AMS"
+ },
+ "departureTime": "2017-03-04T09:20:00-01:00",
+ "arrivalAirport": {
+ "@type": "Airport",
+ "name": "San Francisco Airport",
+ "iataCode": "SFO"
+ },
+ "arrivalTime": "2017-03-05T08:20:00+04:00"
+ }
+ }
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/FlightUpdateTable.template.json b/samples/Templates/Scenarios/FlightUpdateTable.template.json
new file mode 100644
index 0000000000..23f9d50199
--- /dev/null
+++ b/samples/Templates/Scenarios/FlightUpdateTable.template.json
@@ -0,0 +1,261 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "Table",
+ "columns": [
+ {
+ "width": 1
+ },
+ {
+ "width": 1
+ },
+ {
+ "width": 1
+ }
+ ],
+ "rows": [
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "Image",
+ "size": "Small",
+ "url": "https://adaptivecards.io/content/airplane.png"
+ }
+ ]
+ },
+ {
+ "type": "TableCell"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Flight Status",
+ "horizontalAlignment": "Right",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "DELAYED",
+ "horizontalAlignment": "Right",
+ "spacing": "None",
+ "size": "Large",
+ "color": "Attention",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Passengers",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true,
+ "spacing": "None"
+ },
+ {
+ "type": "TextBlock",
+ "text": "${underName.name}",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Jeremy Goldberg",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Evan Litvak",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Seat",
+ "horizontalAlignment": "Right",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14A",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14B",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14C",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Flight",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "${reservationFor.flightNumber}",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Departs",
+ "isSubtle": true,
+ "horizontalAlignment": "Center",
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "{{TIME(${string(reservationFor.departureTime)})}}",
+ "color": "Attention",
+ "weight": "Bolder",
+ "horizontalAlignment": "Center",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Arrives",
+ "isSubtle": true,
+ "horizontalAlignment": "Right",
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "{{TIME(${string(reservationFor.arrivalTime)})}}",
+ "color": "Attention",
+ "horizontalAlignment": "Right",
+ "weight": "Bolder",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "${reservationFor.departureAirport.name}",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "${reservationFor.departureAirport.iataCode}",
+ "size": "ExtraLarge",
+ "color": "Accent",
+ "spacing": "None",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/airplane.png",
+ "horizontalAlignment": "Center",
+ "size": "Small"
+ }
+ ],
+ "verticalContentAlignment": "Center"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "${reservationFor.arrivalAirport.name}",
+ "isSubtle": true,
+ "horizontalAlignment": "Right",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "${reservationFor.arrivalAirport.iataCode}",
+ "horizontalAlignment": "Right",
+ "size": "ExtraLarge",
+ "color": "Accent",
+ "spacing": "None",
+ "wrap": true
+ }
+ ]
+ }
+ ],
+ "spacing": "None"
+ }
+ ],
+ "showGridLines": false
+ }
+ ]
+}
diff --git a/samples/Templates/Scenarios/InputFormWithRTL.data.json b/samples/Templates/Scenarios/InputFormWithRTL.data.json
new file mode 100644
index 0000000000..b51e425de5
--- /dev/null
+++ b/samples/Templates/Scenarios/InputFormWithRTL.data.json
@@ -0,0 +1,6 @@
+{
+ "FormInfo":{
+ "titleENG":"Registration Form",
+ "titleARA":"إستمارة تسجيل"
+ }
+}
diff --git a/samples/Templates/Scenarios/InputFormWithRTL.template.json b/samples/Templates/Scenarios/InputFormWithRTL.template.json
new file mode 100644
index 0000000000..5049729d99
--- /dev/null
+++ b/samples/Templates/Scenarios/InputFormWithRTL.template.json
@@ -0,0 +1,116 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please select your language:"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "English",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "medium",
+ "weight": "bolder",
+ "text": " ${FormInfo.titleENG}",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Name",
+ "style": "text",
+ "id": "SimpleValENG",
+ "isRequired": true,
+ "errorMessage": "Name is required"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Email",
+ "style": "email",
+ "id": "EmailValENG"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Phone",
+ "style": "tel",
+ "id": "TelValENG"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Comments",
+ "style": "text",
+ "isMultiline": true,
+ "id": "MultiLineValENG"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Submit"
+ }
+ ]
+ }
+ },
+ {
+ "type": "Action.ShowCard",
+ "title": "عربي",
+ "card": {
+ "type": "AdaptiveCard",
+ "rtl": true,
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "medium",
+ "weight": "bolder",
+ "text": " ${FormInfo.titleARA}",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "Input.Text",
+ "label": "اسم",
+ "style": "text",
+ "id": "SimpleValARA",
+ "isRequired": true,
+ "errorMessage": "مطلوب اسم"
+ },
+ {
+ "type": "Input.Text",
+ "label": "بريد الالكتروني",
+ "style": "email",
+ "id": "EmailValARA"
+ },
+ {
+ "type": "Input.Text",
+ "label": "هاتف",
+ "style": "tel",
+ "id": "TelValARA"
+ },
+ {
+ "type": "Input.Text",
+ "label": "تعليقات",
+ "style": "text",
+ "isMultiline": true,
+ "id": "MultiLineValARA"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "يقدم"
+ }
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/OrderConfirmation.data.json b/samples/Templates/Scenarios/OrderConfirmation.data.json
new file mode 100644
index 0000000000..4b7e4ef7d7
--- /dev/null
+++ b/samples/Templates/Scenarios/OrderConfirmation.data.json
@@ -0,0 +1,9 @@
+{
+ "title": "Please confirm your order:",
+ "customer": [{
+ "firstName": "John",
+ "lastName": "Smith",
+ "phone": "(555) 555-5555"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/OrderConfirmation.template.json b/samples/Templates/Scenarios/OrderConfirmation.template.json
new file mode 100644
index 0000000000..f96f961908
--- /dev/null
+++ b/samples/Templates/Scenarios/OrderConfirmation.template.json
@@ -0,0 +1,68 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "${title}",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "Name",
+ "value": "${customer[0].firstName} ${customer[0].lastName}"
+ },
+ {
+ "title": "Phone number",
+ "value": "${customer[0].phone}"
+ }
+ ]
+ },
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "1x",
+ "value": "Steak"
+ },
+ {
+ "title": "2x",
+ "value": "Side Rice"
+ },
+ {
+ "title": "1x",
+ "value": "Soft Drink"
+ }
+ ],
+ "spacing": "Small"
+ }
+ ],
+ "spacing": "Small"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Place Order"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Edit Order",
+ "data": "edit",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Save Order",
+ "data": "save",
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/Templates/Scenarios/OrderDelivery.data.json b/samples/Templates/Scenarios/OrderDelivery.data.json
new file mode 100644
index 0000000000..057b2deee9
--- /dev/null
+++ b/samples/Templates/Scenarios/OrderDelivery.data.json
@@ -0,0 +1,18 @@
+{
+ "name": "Malt \u0026 Vine",
+ "address": {
+ "addressLocality": "Redmond",
+ "addressRegion": "WA",
+ "streetAddress": "16851 Redmond Way",
+ "postalCode": "98052",
+ "addressCountry": "US"
+ },
+ "review": [{
+ "reviewRating": {
+ "ratingValue": 4
+ },
+ "datePublished": "2014-11-28",
+ "description": "Great concept and a wide selection of beers both on tap and bottled! Smaller wine selection than I wanted, but the variety of beers certainly made up for that. Although I didn't order anything, my boyfriend got a beer and he loved it. Their prices are fair too. \n\nThe concept is really awesome. It's a bar/store that you can bring outside food into. The place was pretty packed tonight. I wish we had stayed for more than one drink. I would have loved to sample everything!",
+ "author": "Blaire S."
+ }]
+}
\ No newline at end of file
diff --git a/samples/Templates/Scenarios/OrderDelivery.template.json b/samples/Templates/Scenarios/OrderDelivery.template.json
new file mode 100644
index 0000000000..9c9f01c03e
--- /dev/null
+++ b/samples/Templates/Scenarios/OrderDelivery.template.json
@@ -0,0 +1,70 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": 2,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "${address.addressLocality}, ${address.addressRegion}",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "${name}",
+ "weight": "bolder",
+ "size": "extraLarge",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "4.5 stars (176 reviews) · mid-priced",
+ "isSubtle": true,
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "**${review[0].author}** said \"${review[0].description}\"",
+ "size": "small",
+ "wrap": true,
+ "maxLines": 3
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": 1,
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://picsum.photos/300?image=882",
+ "size": "auto",
+ "altText": "Seated guest drinking a cup of coffee"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Pickup",
+ "tooltip": "Schedule order for pickup"
+ },
+ {
+ "type": "Action.Submit",
+ "title": "Delivery",
+ "isEnabled": false,
+ "tooltip": "Your location is too far for delivery"
+ }
+ ]
+}
diff --git a/samples/Templates/Scenarios/RestaurantOrder.data.json b/samples/Templates/Scenarios/RestaurantOrder.data.json
new file mode 100644
index 0000000000..b7510ccbb9
--- /dev/null
+++ b/samples/Templates/Scenarios/RestaurantOrder.data.json
@@ -0,0 +1,76 @@
+{
+ "FormInfo": {
+ "title": "Malt & Vine Order Form"
+ },
+ "Order": {
+ "questions": [
+ {
+ "question": "Which entree would you like?",
+ "items": [
+ {
+ "choice": "Steak",
+ "value": "1"
+ },
+ {
+ "choice": "Chicken",
+ "value": "2"
+ },
+ {
+ "choice": "Tofu",
+ "value": "3"
+ }
+ ]
+ },
+ {
+ "question": "Which side would you like?",
+ "items": [
+ {
+ "choice": "Baked Potato",
+ "value": "1"
+ },
+ {
+ "choice": "Rice",
+ "value": "2"
+ },
+ {
+ "choice": "Vegetables",
+ "value": "3"
+ },
+ {
+ "choice": "Noodles",
+ "value": "4"
+ },
+ {
+ "choice": "No Side",
+ "value": "5"
+ }
+ ]
+ },
+ {
+ "question": "Which drink would you like?",
+ "items": [
+ {
+ "choice": "Water",
+ "value": "1"
+ },
+ {
+ "choice": "Soft Drink",
+ "value": "2"
+ },
+ {
+ "choice": "Coffee",
+ "value": "3"
+ },
+ {
+ "choice": "Natural Juice",
+ "value": "4"
+ },
+ {
+ "choice": "No Drink",
+ "value": "5"
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/Templates/Scenarios/RestaurantOrder.template.json b/samples/Templates/Scenarios/RestaurantOrder.template.json
new file mode 100644
index 0000000000..88a41ff09b
--- /dev/null
+++ b/samples/Templates/Scenarios/RestaurantOrder.template.json
@@ -0,0 +1,68 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "${FormInfo.title}",
+ "size": "Large",
+ "wrap": true,
+ "weight": "Bolder"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "EntreeSelectVal",
+ "label": "${Order.questions[0].question}",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "$data": "${Order.questions[0].items}",
+ "title": "${choice}",
+ "value": "${value}"
+ }
+ ]
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "SideVal",
+ "label": "${Order.questions[1].question}",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "$data": "${Order.questions[1].items}",
+ "title": "${choice}",
+ "value": "${value}"
+ }
+ ]
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "DrinkVal",
+ "label": "${Order.questions[2].question}",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "$data": "${Order.questions[2].items}",
+ "title": "${choice}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Place Order"
+ }
+ ]
+}
diff --git a/samples/v1.0/Elements/Action.ShowCard.json b/samples/v1.0/Elements/Action.ShowCard.json
index b22e3f7321..2795e882da 100644
--- a/samples/v1.0/Elements/Action.ShowCard.json
+++ b/samples/v1.0/Elements/Action.ShowCard.json
@@ -23,7 +23,10 @@
"actions": [
{
"type": "Action.Submit",
- "title": "Neat!"
+ "title": "Neat!",
+ "data": {
+ "neat": "true"
+ }
}
]
}
diff --git a/samples/v1.0/Elements/Column.SelectAction.json b/samples/v1.0/Elements/Column.SelectAction.json
index cb2b98f990..7512e694ec 100644
--- a/samples/v1.0/Elements/Column.SelectAction.json
+++ b/samples/v1.0/Elements/Column.SelectAction.json
@@ -25,7 +25,7 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "title": "cool link",
+ "tooltip": "cool link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
},
@@ -43,7 +43,7 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "title": "cool link",
+ "tooltip": "another cool link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
},
@@ -61,7 +61,7 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "title": "cool link",
+ "tooltip": "a third cool link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
}
diff --git a/samples/v1.0/Elements/ColumnSet.SelectAction.json b/samples/v1.0/Elements/ColumnSet.SelectAction.json
index 034766ee5a..0253b6749b 100644
--- a/samples/v1.0/Elements/ColumnSet.SelectAction.json
+++ b/samples/v1.0/Elements/ColumnSet.SelectAction.json
@@ -41,7 +41,8 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "url": "https://www.msn.com"
+ "url": "https://www.msn.com",
+ "tooltip": "View a map of Silver Star Mountain"
}
},
{
@@ -78,7 +79,8 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "url": "https://www.AdaptiveCards.io"
+ "url": "https://www.AdaptiveCards.io",
+ "tooltip": "Remodel your kitchen with our new cabinet styles!"
}
},
{
@@ -114,7 +116,8 @@
],
"selectAction": {
"type": "Action.OpenUrl",
- "url": "https://www.outlook.com"
+ "url": "https://www.outlook.com",
+ "tooltip": "Watch the newest episode today!"
}
}
],
diff --git a/samples/v1.0/Elements/Container.SelectAction.json b/samples/v1.0/Elements/Container.SelectAction.json
index 630acbf58d..9975aa7d24 100644
--- a/samples/v1.0/Elements/Container.SelectAction.json
+++ b/samples/v1.0/Elements/Container.SelectAction.json
@@ -1,50 +1 @@
-{
- "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
- "type": "AdaptiveCard",
- "version": "1.0",
- "body": [
- {
- "type": "Container",
- "items": [
- {
- "type": "TextBlock",
- "text": "Cool link"
- }
- ],
- "selectAction": {
- "type": "Action.OpenUrl",
- "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
- }
- },
- {
- "type": "Container",
- "style": "emphasis",
- "items": [
- {
- "type": "TextBlock",
- "text": "Emphasis link"
- }
- ],
- "selectAction": {
- "type": "Action.OpenUrl",
- "url": "https://msn.com"
- }
- },
- {
- "type": "Container",
- "items": [
- {
- "type": "TextBlock",
- "text": "Submit action"
- }
- ],
- "selectAction": {
- "type": "Action.Submit",
- "title": "Submit action",
- "data": {
- "info": "My submit action data"
- }
- }
- }
- ]
-}
+{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Cool link"
}
],
"selectAction": {
"type": "Action.OpenUrl",
"tooltip": "Go to a url",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
},
{
"type": "Container",
"style": "emphasis",
"items": [
{
"type": "TextBlock",
"text": "Emphasis link"
}
],
"selectAction": {
"type": "Action.OpenUrl",
"tooltip": "Go to a different url",
"url": "https://msn.com"
}
},
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "Submit action"
}
],
"selectAction": {
"type": "Action.Submit",
"tooltip": "Submit action",
"data": {
"info": "My submit action data"
}
}
}
]
}
\ No newline at end of file
diff --git a/samples/v1.0/Elements/Image.SelectAction.json b/samples/v1.0/Elements/Image.SelectAction.json
index e9b175f293..d4acdd60e3 100644
--- a/samples/v1.0/Elements/Image.SelectAction.json
+++ b/samples/v1.0/Elements/Image.SelectAction.json
@@ -13,7 +13,7 @@
"url": "https://adaptivecards.io/content/cats/1.png",
"selectAction": {
"type": "Action.OpenUrl",
- "title": "cool link",
+ "tooltip": "cool link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
}
diff --git a/samples/v1.0/Elements/Input.Text.Style.json b/samples/v1.0/Elements/Input.Text.Style.json
index 25ed208f2c..5da4ffb9cf 100644
--- a/samples/v1.0/Elements/Input.Text.Style.json
+++ b/samples/v1.0/Elements/Input.Text.Style.json
@@ -5,43 +5,38 @@
"body": [
{
"type": "TextBlock",
- "text": "Specify the type of text being requested"
+ "text": "Specify the type of text being requested:",
+ "style": "heading"
},
{
"type": "Input.Text",
"id": "myComment",
- "placeholder": "text",
+ "label": "style: text",
"style": "text"
},
- {
- "type": "TextBlock",
- "text": "style: email"
- },
{
"type": "Input.Text",
"id": "myEmail",
- "placeholder": "email",
+ "label": "style: email",
"style": "email"
},
- {
- "type": "TextBlock",
- "text": "style: tel"
- },
{
"type": "Input.Text",
"id": "myTel",
- "placeholder": "tel",
+ "label": "style: tel",
"style": "tel"
},
- {
- "type": "TextBlock",
- "text": "style: url"
- },
{
"type": "Input.Text",
"id": "myUrl",
- "placeholder": "url",
+ "label": "style: url",
"style": "url"
+ },
+ {
+ "type": "Input.Text",
+ "id": "myPassword",
+ "label": "style: password",
+ "style": "password"
}
],
"actions": [
diff --git a/samples/v1.0/Scenarios/WeatherLarge.json b/samples/v1.0/Scenarios/WeatherLarge.json
index c8d2abeee6..ae4e3b8eeb 100644
--- a/samples/v1.0/Scenarios/WeatherLarge.json
+++ b/samples/v1.0/Scenarios/WeatherLarge.json
@@ -64,7 +64,7 @@
{
"type": "TextBlock",
"horizontalAlignment": "center",
- "wrap": false,
+ "wrap": true,
"text": "Wednesday"
},
{
@@ -101,7 +101,7 @@
{
"type": "TextBlock",
"horizontalAlignment": "center",
- "wrap": false,
+ "wrap": true,
"text": "Thursday"
},
{
@@ -137,7 +137,7 @@
{
"type": "TextBlock",
"horizontalAlignment": "center",
- "wrap": false,
+ "wrap": true,
"text": "Friday"
},
{
@@ -173,7 +173,7 @@
{
"type": "TextBlock",
"horizontalAlignment": "center",
- "wrap": false,
+ "wrap": true,
"text": "Saturday"
},
{
diff --git a/samples/v1.2/Elements/Input.Text.InlineAction.json b/samples/v1.2/Elements/Input.Text.InlineAction.json
index 4444fe5f18..2ad2a63d74 100644
--- a/samples/v1.2/Elements/Input.Text.InlineAction.json
+++ b/samples/v1.2/Elements/Input.Text.InlineAction.json
@@ -3,30 +3,24 @@
"type": "AdaptiveCard",
"version": "1.2",
"body": [
- {
- "type": "TextBlock",
- "text": "Text input with an inline action"
- },
{
"type": "Input.Text",
"id": "iconInlineActionId",
+ "label": "Text input with an inline action",
"inlineAction": {
"type": "Action.Submit",
"iconUrl": "https://adaptivecards.io/content/send.png",
- "title": "Send"
+ "tooltip": "Send"
}
},
- {
- "type": "TextBlock",
- "text": "Text input with an inline action with no icon",
- "wrap": true
- },
{
"type": "Input.Text",
+ "label": "Text input with an inline action with no icon",
"id": "textInlineActionId",
"inlineAction": {
"type": "Action.OpenUrl",
"title": "Reply",
+ "tooltip": "Reply to this message",
"url": "https://adaptivecards.io"
}
}
diff --git a/samples/v1.2/Scenarios/FlightDetails.json b/samples/v1.2/Scenarios/FlightDetails.json
index 0331f7c37c..a3e589f985 100644
--- a/samples/v1.2/Scenarios/FlightDetails.json
+++ b/samples/v1.2/Scenarios/FlightDetails.json
@@ -57,8 +57,7 @@
"height": "stretch"
}
],
- "width": 45,
- "height": "stretch"
+ "width": 45
},
{
"type": "Column",
@@ -143,8 +142,7 @@
{
"type": "TextRun",
"text": "Sat, Mar 4, 2017\n",
- "isSubtle": true,
- "wrap": true
+ "isSubtle": true
},
{
"type": "TextRun",
@@ -171,8 +169,7 @@
{
"type": "TextRun",
"text": "Sat, Mar 4, 2017\n",
- "isSubtle": true,
- "wrap": true
+ "isSubtle": true
},
{
"type": "TextRun",
diff --git a/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json b/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json
index 471349da6b..9ea978a095 100644
--- a/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json
+++ b/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json
@@ -48,7 +48,7 @@
"selectAction": {
"type": "Action.OpenUrl",
"url": "https://adaptivecards.io",
- "title": "Default"
+ "tooltip": "Default"
}
},
{
@@ -62,7 +62,7 @@
"color": "warning",
"selectAction": {
"type": "Action.Submit",
- "title": "Action.Submit",
+ "tooltip": "Action.Submit",
"data": {
"x": "hello world!"
}
@@ -79,7 +79,7 @@
"color": "accent",
"selectAction": {
"type": "Action.ToggleVisibility",
- "title": "Toggle!",
+ "tooltip": "Toggle!",
"targetElements": [ "textToToggle", "imageToToggle", "imageToToggle2" ]
}
}
diff --git a/samples/v1.5/Elements/Action.Execute.IsEnabled.json b/samples/v1.5/Elements/Action.Execute.IsEnabled.json
new file mode 100644
index 0000000000..02f5ddcaac
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Execute.IsEnabled.json
@@ -0,0 +1,23 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Disabled Execute Button",
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Enabled"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Disabled",
+ "isEnabled": false
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.Execute.Mode.json b/samples/v1.5/Elements/Action.Execute.Mode.json
new file mode 100644
index 0000000000..4f3d59cd08
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Execute.Mode.json
@@ -0,0 +1,48 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please confirm your data:",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "First Name",
+ "value": "John"
+ },
+ {
+ "title": "Last Name",
+ "value": "Smith"
+ },
+ {
+ "title": "Phone number ",
+ "value": "(555) 555-5555"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Confirm data"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Edit data",
+ "data": "edit",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Delete data",
+ "data": "delete",
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.Execute.Tooltip.json b/samples/v1.5/Elements/Action.Execute.Tooltip.json
new file mode 100644
index 0000000000..f65e971d82
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Execute.Tooltip.json
@@ -0,0 +1,19 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "label": "Please enter your name below:",
+ "type": "Input.Text",
+ "id": "name"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Submit",
+ "tooltip": "Click here to add your name to the waiting list."
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json b/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json
new file mode 100644
index 0000000000..a6e7282b2f
--- /dev/null
+++ b/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json
@@ -0,0 +1,25 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Disabled OpenUrl Button",
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.OpenUrl",
+ "title": "Enabled",
+ "url": "https://adaptivecards.io/"
+ },
+ {
+ "type": "Action.OpenUrl",
+ "title": "Disabled",
+ "isEnabled": false,
+ "url": "https://adaptivecards.io/"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.Mode.json b/samples/v1.5/Elements/Action.OpenUrl.Mode.json
similarity index 100%
rename from samples/v1.5/Elements/Action.Mode.json
rename to samples/v1.5/Elements/Action.OpenUrl.Mode.json
diff --git a/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json b/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json
new file mode 100644
index 0000000000..c177518430
--- /dev/null
+++ b/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json
@@ -0,0 +1,20 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Check out our website!",
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.OpenUrl",
+ "title": "Click Here!",
+ "tooltip": "Adaptive Cards website",
+ "url": "https://adaptivecards.io/"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json b/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json
new file mode 100644
index 0000000000..ed33a53f2c
--- /dev/null
+++ b/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json
@@ -0,0 +1,43 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Disabled Show Card",
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "Enabled",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "You can see this show card!",
+ "wrap": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "Action.ShowCard",
+ "title": "Disabled",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "You cannot see this show card.",
+ "wrap": true
+ }
+ ]
+ },
+ "isEnabled": false
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.ShowCard.Mode.json b/samples/v1.5/Elements/Action.ShowCard.Mode.json
new file mode 100644
index 0000000000..b9fea08d34
--- /dev/null
+++ b/samples/v1.5/Elements/Action.ShowCard.Mode.json
@@ -0,0 +1,63 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please confirm your data:",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "First Name",
+ "value": "John"
+ },
+ {
+ "title": "Last Name",
+ "value": "Smith"
+ },
+ {
+ "title": "Phone number ",
+ "value": "(555) 555-5555"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Confirm data"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Edit data",
+ "data": "edit",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Delete data",
+ "data": "delete",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.ShowCard",
+ "title": "More information",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "The data shown above is what we have on file for you. Please confirm whether this data is correct.",
+ "wrap": true
+ }
+ ]
+ },
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.ShowCard.Tooltip.json b/samples/v1.5/Elements/Action.ShowCard.Tooltip.json
new file mode 100644
index 0000000000..7aa395eb1d
--- /dev/null
+++ b/samples/v1.5/Elements/Action.ShowCard.Tooltip.json
@@ -0,0 +1,31 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Our new product is awesome!",
+ "wrap": true,
+ "size": "ExtraLarge"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "Terms and Conditions",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Here's some fine print for you to read. Don't break any laws! We will also not break any laws!",
+ "wrap": true,
+ "size": "Small"
+ }
+ ]
+ },
+ "tooltip": "Click here to view the details of our terms and conditions."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.5/Elements/Action.Submit.IsEnabled.json b/samples/v1.5/Elements/Action.Submit.IsEnabled.json
new file mode 100644
index 0000000000..8ab5029ae0
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Submit.IsEnabled.json
@@ -0,0 +1,23 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Disabled Submit Button",
+ "wrap": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Enabled"
+ },
+ {
+ "type": "Action.Submit",
+ "title": "Disabled",
+ "isEnabled": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.5/Elements/Action.Submit.Mode.json b/samples/v1.5/Elements/Action.Submit.Mode.json
new file mode 100644
index 0000000000..1d074599d8
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Submit.Mode.json
@@ -0,0 +1,48 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please confirm your data:",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "First Name",
+ "value": "John"
+ },
+ {
+ "title": "Last Name",
+ "value": "Smith"
+ },
+ {
+ "title": "Phone number ",
+ "value": "(555) 555-5555"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Confirm data"
+ },
+ {
+ "type": "Action.Submit",
+ "title": "Edit data",
+ "data": "edit",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.Submit",
+ "title": "Delete data",
+ "data": "delete",
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Action.Submit.Tooltip.json b/samples/v1.5/Elements/Action.Submit.Tooltip.json
new file mode 100644
index 0000000000..bea8251acf
--- /dev/null
+++ b/samples/v1.5/Elements/Action.Submit.Tooltip.json
@@ -0,0 +1,19 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "label": "Please enter your name below:",
+ "type": "Input.Text",
+ "id": "name"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Submit",
+ "tooltip": "Click here to add your name to the waiting list."
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/AdaptiveCard.Rtl.json b/samples/v1.5/Elements/AdaptiveCard.Rtl.json
new file mode 100644
index 0000000000..60b5bf2c47
--- /dev/null
+++ b/samples/v1.5/Elements/AdaptiveCard.Rtl.json
@@ -0,0 +1,23 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "rtl": true,
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "هذه كتلة نص",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "זהו בלוק טקסט",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "This is a text block",
+ "wrap": true
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Input.Text.PasswordStyle.json b/samples/v1.5/Elements/Input.Text.PasswordStyle.json
new file mode 100644
index 0000000000..d372524201
--- /dev/null
+++ b/samples/v1.5/Elements/Input.Text.PasswordStyle.json
@@ -0,0 +1,21 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "Input.Text",
+ "id": "id0",
+ "style": "password",
+ "label": "Input.Text With Password Style",
+ "regex": "^.{8,20}$",
+ "errorMessage": "Password must be between 8 and 20 characters"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "OK"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/Table.json b/samples/v1.5/Elements/Table.json
index 826ffe0225..d82415212d 100644
--- a/samples/v1.5/Elements/Table.json
+++ b/samples/v1.5/Elements/Table.json
@@ -63,7 +63,7 @@
"cells": [
{
"type": "TableCell",
- "style": "good",
+ "style": "good",
"items": [
{
"type": "TextBlock",
@@ -74,7 +74,7 @@
},
{
"type": "TableCell",
- "style": "warning",
+ "style": "warning",
"items": [
{
"type": "TextBlock",
@@ -85,7 +85,7 @@
},
{
"type": "TableCell",
- "style": "accent",
+ "style": "accent",
"items": [
{
"type": "TextBlock",
@@ -101,7 +101,7 @@
"cells": [
{
"type": "TableCell",
- "style": "good",
+ "style": "good",
"items": [
{
"type": "TextBlock",
@@ -112,7 +112,7 @@
},
{
"type": "TableCell",
- "style": "accent",
+ "style": "accent",
"items": [
{
"type": "TextBlock",
@@ -123,7 +123,7 @@
},
{
"type": "TableCell",
- "style": "attention",
+ "style": "attention",
"items": [
{
"type": "TextBlock",
@@ -135,140 +135,140 @@
]
}
]
- },
- {
- "type": "Table",
- "gridStyle": "accent",
- "firstRowAsHeaders": true,
- "showGridLines" : false,
- "columns": [
- {
- "width": 1
- },
- {
- "width": 1
- },
- {
- "width": 3
- }
- ],
- "rows": [
- {
- "type": "TableRow",
- "cells": [
- {
- "type": "TableCell",
- "items": [
- {
- "type": "TextBlock",
- "text": "Name",
- "wrap": true,
- "weight": "Bolder"
- }
- ]
- },
- {
- "type": "TableCell",
- "items": [
- {
- "type": "TextBlock",
- "text": "Type",
- "wrap": true,
- "weight": "Bolder"
- }
- ]
- },
- {
- "type": "TableCell",
- "items": [
- {
- "type": "TextBlock",
- "text": "Description",
- "wrap": true,
- "weight": "Bolder"
- }
- ]
- }
- ],
- "style": "accent"
- },
- {
- "type": "TableRow",
- "cells": [
- {
- "type": "TableCell",
- "style": "good",
- "items": [
- {
- "type": "TextBlock",
- "text": "columns",
- "wrap": true
- }
- ]
- },
- {
- "type": "TableCell",
- "style": "warning",
- "items": [
- {
- "type": "TextBlock",
- "text": "ColumnDefinition[]",
- "wrap": true
- }
- ]
- },
- {
- "type": "TableCell",
- "style": "accent",
- "items": [
- {
- "type": "TextBlock",
- "text": "Defines the table's columns (number of columns, and column sizes).",
- "wrap": true
- }
- ]
- }
- ]
- },
- {
- "type": "TableRow",
- "cells": [
- {
- "type": "TableCell",
- "style": "good",
- "items": [
- {
- "type": "TextBlock",
- "text": "rows",
- "wrap": true
- }
- ]
- },
- {
- "type": "TableCell",
- "style": "accent",
- "items": [
- {
- "type": "TextBlock",
- "text": "TableRow[]",
- "wrap": true
- }
- ]
- },
- {
- "type": "TableCell",
- "style": "attention",
- "items": [
- {
- "type": "TextBlock",
- "text": "Defines the rows of the Table, each being a collection of cells. Rows are not required, which allows empty Tables to be generated via templating without breaking the rendering of the whole card.",
- "wrap": true
- }
- ]
- }
- ]
- }
- ]
- }
+ },
+ {
+ "type": "Table",
+ "gridStyle": "accent",
+ "firstRowAsHeaders": true,
+ "showGridLines" : false,
+ "columns": [
+ {
+ "width": 1
+ },
+ {
+ "width": 1
+ },
+ {
+ "width": 3
+ }
+ ],
+ "rows": [
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Name",
+ "wrap": true,
+ "weight": "Bolder"
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Type",
+ "wrap": true,
+ "weight": "Bolder"
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Description",
+ "wrap": true,
+ "weight": "Bolder"
+ }
+ ]
+ }
+ ],
+ "style": "accent"
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "style": "good",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "columns",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "style": "warning",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "ColumnDefinition[]",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "style": "accent",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Defines the table's columns (number of columns, and column sizes).",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "style": "good",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "rows",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "style": "accent",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "TableRow[]",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "style": "attention",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Defines the rows of the Table, each being a collection of cells. Rows are not required, which allows empty Tables to be generated via templating without breaking the rendering of the whole card.",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
]
}
diff --git a/samples/v1.5/Scenarios/ApplicationLogin.json b/samples/v1.5/Scenarios/ApplicationLogin.json
new file mode 100644
index 0000000000..cdd212e18c
--- /dev/null
+++ b/samples/v1.5/Scenarios/ApplicationLogin.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "Medium",
+ "weight": "Bolder",
+ "text": "Application Login",
+ "horizontalAlignment": "Center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Username",
+ "wrap": true
+ },
+ {
+ "type": "Input.Text",
+ "style": "text",
+ "id": "UserVal",
+ "isRequired": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Password",
+ "wrap": true
+ },
+ {
+ "type": "Input.Text",
+ "id": "PassVal",
+ "style": "password",
+ "isRequired": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Login",
+ "data": {
+ "id": "LoginVal"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.5/Scenarios/FlightUpdateTable.json b/samples/v1.5/Scenarios/FlightUpdateTable.json
new file mode 100644
index 0000000000..6017a23ff3
--- /dev/null
+++ b/samples/v1.5/Scenarios/FlightUpdateTable.json
@@ -0,0 +1,261 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "Table",
+ "columns": [
+ {
+ "width": 1
+ },
+ {
+ "width": 1
+ },
+ {
+ "width": 1
+ }
+ ],
+ "rows": [
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "Image",
+ "size": "Small",
+ "url": "https://adaptivecards.io/content/airplane.png"
+ }
+ ]
+ },
+ {
+ "type": "TableCell"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Flight Status",
+ "horizontalAlignment": "Right",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "DELAYED",
+ "horizontalAlignment": "Right",
+ "spacing": "None",
+ "size": "Large",
+ "color": "Attention",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Passengers",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true,
+ "spacing": "None"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Sarah Hum",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Jeremy Goldberg",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Evan Litvak",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Seat",
+ "horizontalAlignment": "Right",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14A",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14B",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "14C",
+ "horizontalAlignment": "Right",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Flight",
+ "isSubtle": true,
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "KL605",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Departs",
+ "isSubtle": true,
+ "horizontalAlignment": "Center",
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "2:20 AM",
+ "color": "Attention",
+ "weight": "Bolder",
+ "horizontalAlignment": "Center",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Arrives",
+ "isSubtle": true,
+ "horizontalAlignment": "Right",
+ "weight": "Bolder",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "8:20 PM",
+ "color": "Attention",
+ "horizontalAlignment": "Right",
+ "weight": "Bolder",
+ "spacing": "Small",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableRow",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Amsterdam Airport",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "AMS",
+ "size": "ExtraLarge",
+ "color": "Accent",
+ "spacing": "None",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/airplane.png",
+ "horizontalAlignment": "Center",
+ "size": "Small"
+ }
+ ],
+ "verticalContentAlignment": "Center"
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "San Francisco Airport",
+ "isSubtle": true,
+ "horizontalAlignment": "Right",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "SFO",
+ "horizontalAlignment": "Right",
+ "size": "ExtraLarge",
+ "color": "Accent",
+ "spacing": "None",
+ "wrap": true
+ }
+ ]
+ }
+ ],
+ "spacing": "None"
+ }
+ ],
+ "showGridLines": false
+ }
+ ]
+}
diff --git a/samples/v1.5/Scenarios/InputFormWithLabels.json b/samples/v1.5/Scenarios/InputFormWithLabels.json
deleted file mode 100644
index 336d301016..0000000000
--- a/samples/v1.5/Scenarios/InputFormWithLabels.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
- "type": "AdaptiveCard",
- "version": "1.0",
- "body": [
- {
- "type": "ColumnSet",
- "columns": [
- {
- "type": "Column",
- "width": 2,
- "items": [
- {
- "type": "TextBlock",
- "text": "Tell us about yourself",
- "weight": "bolder",
- "style" : "heading",
- "size": "medium",
- "wrap": true
- },
- {
- "type": "TextBlock",
- "text": "We just need a few more details to get you booked for the trip of a lifetime!",
- "isSubtle": true,
- "wrap": true
- },
- {
- "type": "TextBlock",
- "text": "Don't worry, we'll never share or sell your information.",
- "isSubtle": true,
- "wrap": true,
- "size": "small"
- },
- {
- "type": "Input.Text",
- "id": "myName",
- "label": "Your name (Last, First)",
- "isRequired": true,
- "regex": "^[A-Z][a-z]+, [A-Z][a-z]+$",
- "errorMessage": "Please enter your name in the specified format"
- },
- {
- "type": "Input.Text",
- "id": "myEmail",
- "label": "Your email",
- "regex": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+[.][A-Za-z0-9-]{2,4}$",
- "isRequired": true,
- "errorMessage": "Please enter a valid email address",
- "style": "email"
- },
- {
- "type": "Input.Text",
- "id": "myTel",
- "label": "Phone Number (xxx-xxx-xxxx)",
- "regex": "^[0-9]{3}-[0-9]{3}-[0-9]{4}$",
- "errorMessage": "Invalid phone number. Use the specified format: 3 numbers, hyphen, 3 numbers, hyphen and 4 numbers",
- "style": "tel"
- }
- ]
- },
- {
- "type": "Column",
- "width": 1,
- "items": [
- {
- "type": "Image",
- "url": "https://upload.wikimedia.org/wikipedia/commons/b/b2/Diver_Silhouette%2C_Great_Barrier_Reef.jpg",
- "size": "auto",
- "altText": "Diver in the Great Barrier Reef"
- }
- ]
- }
- ]
- }
- ],
- "actions": [
- {
- "type": "Action.Submit",
- "title": "Submit"
- }
- ]
-}
diff --git a/samples/v1.5/Scenarios/InputFormWithRTL.json b/samples/v1.5/Scenarios/InputFormWithRTL.json
new file mode 100644
index 0000000000..3ef5ccecb6
--- /dev/null
+++ b/samples/v1.5/Scenarios/InputFormWithRTL.json
@@ -0,0 +1,116 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please select your language:"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "English",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "medium",
+ "weight": "bolder",
+ "text": "Registration Form",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Name",
+ "style": "text",
+ "id": "SimpleValENG",
+ "isRequired": true,
+ "errorMessage": "Name is required"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Email",
+ "style": "email",
+ "id": "EmailValENG"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Phone",
+ "style": "tel",
+ "id": "TelValENG"
+ },
+ {
+ "type": "Input.Text",
+ "label": "Comments",
+ "style": "text",
+ "isMultiline": true,
+ "id": "MultiLineValENG"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Submit"
+ }
+ ]
+ }
+ },
+ {
+ "type": "Action.ShowCard",
+ "title": "عربي",
+ "card": {
+ "type": "AdaptiveCard",
+ "rtl": true,
+ "body": [
+ {
+ "type": "TextBlock",
+ "size": "medium",
+ "weight": "bolder",
+ "text": "إستمارة تسجيل",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "Input.Text",
+ "label": "اسم",
+ "style": "text",
+ "id": "SimpleValARA",
+ "isRequired": true,
+ "errorMessage": "مطلوب اسم"
+ },
+ {
+ "type": "Input.Text",
+ "label": "بريد الالكتروني",
+ "style": "email",
+ "id": "EmailValARA"
+ },
+ {
+ "type": "Input.Text",
+ "label": "هاتف",
+ "style": "tel",
+ "id": "TelValARA"
+ },
+ {
+ "type": "Input.Text",
+ "label": "تعليقات",
+ "style": "text",
+ "isMultiline": true,
+ "id": "MultiLineValARA"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "يقدم"
+ }
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.5/Scenarios/OrderConfirmation.json b/samples/v1.5/Scenarios/OrderConfirmation.json
new file mode 100644
index 0000000000..eb104c2ede
--- /dev/null
+++ b/samples/v1.5/Scenarios/OrderConfirmation.json
@@ -0,0 +1,68 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Please confirm your order:",
+ "wrap": true,
+ "style": "heading"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "Name",
+ "value": "John Smith"
+ },
+ {
+ "title": "Phone number",
+ "value": "(555) 555-5555"
+ }
+ ]
+ },
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "1x",
+ "value": "Steak"
+ },
+ {
+ "title": "2x",
+ "value": "Side Rice"
+ },
+ {
+ "title": "1x",
+ "value": "Soft Drink"
+ }
+ ],
+ "spacing": "Small"
+ }
+ ],
+ "spacing": "Small"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Execute",
+ "title": "Place Order"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Edit Order",
+ "data": "edit",
+ "mode": "secondary"
+ },
+ {
+ "type": "Action.Execute",
+ "title": "Save Order",
+ "data": "save",
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/v1.5/Scenarios/OrderDelivery.json b/samples/v1.5/Scenarios/OrderDelivery.json
new file mode 100644
index 0000000000..68aef928f6
--- /dev/null
+++ b/samples/v1.5/Scenarios/OrderDelivery.json
@@ -0,0 +1,70 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": 2,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Redmond, WA",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Malt & Vine",
+ "weight": "bolder",
+ "size": "extraLarge",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "4.5 stars (176 reviews) · mid-priced",
+ "isSubtle": true,
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "**Blaire S.** said \"Great concept and a wide selection of beers both on tap and bottled! Smaller wine selection than I wanted, but the variety of beers certainly made up for that. Although I didn't order anything, my boyfriend got a beer and he loved it. Their prices are fair too. \n\nThe concept is really awesome. It's a bar/store that you can bring outside food into. The place was pretty packed tonight. I wish we had stayed for more than one drink. I would have loved to sample everything!\"",
+ "size": "small",
+ "wrap": true,
+ "maxLines": 3
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": 1,
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://picsum.photos/300?image=882",
+ "size": "auto",
+ "altText": "Seated guest drinking a cup of coffee"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Pickup",
+ "tooltip": "Schedule order for pickup"
+ },
+ {
+ "type": "Action.Submit",
+ "title": "Delivery",
+ "isEnabled": false,
+ "tooltip": "Your location is too far for delivery"
+ }
+ ]
+}
diff --git a/samples/v1.5/Scenarios/RestaurantOrder.json b/samples/v1.5/Scenarios/RestaurantOrder.json
new file mode 100644
index 0000000000..ffbd915679
--- /dev/null
+++ b/samples/v1.5/Scenarios/RestaurantOrder.json
@@ -0,0 +1,105 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Malt & Vine Order Form",
+ "size": "Large",
+ "wrap": true,
+ "weight": "Bolder"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "EntreeSelectVal",
+ "label": "Which entree would you like?",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "title": "Steak",
+ "value": "1"
+ },
+ {
+ "title": "Chicken",
+ "value": "2"
+ },
+ {
+ "title": "Tofu",
+ "value": "3"
+ }
+ ]
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "SideVal",
+ "label": "Which side would you like?",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "title": "Baked Potato",
+ "value": "1"
+ },
+ {
+ "title": "Rice",
+ "value": "2"
+ },
+ {
+ "title": "Vegetables",
+ "value": "3"
+ },
+ {
+ "title": "Noodles",
+ "value": "4"
+ },
+ {
+ "title": "No Side",
+ "value": "5"
+ }
+ ]
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "DrinkVal",
+ "label": "Which drink would you like?",
+ "style": "filtered",
+ "isRequired": true,
+ "errorMessage": "This is a required input",
+ "placeholder": "Please choose",
+ "choices": [
+ {
+ "title": "Water",
+ "value": "1"
+ },
+ {
+ "title": "Soft Drink",
+ "value": "2"
+ },
+ {
+ "title": "Coffee",
+ "value": "3"
+ },
+ {
+ "title": "Natural Juice",
+ "value": "4"
+ },
+ {
+ "title": "No Drink",
+ "value": "5"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Place Order"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.5/Elements/Action.IsEnabled.json b/samples/v1.5/Test/Action.IsEnabled.json
similarity index 100%
rename from samples/v1.5/Elements/Action.IsEnabled.json
rename to samples/v1.5/Test/Action.IsEnabled.json
diff --git a/samples/v1.5/Elements/Image.SelectAction.IsEnabled.json b/samples/v1.5/Test/Image.SelectAction.IsEnabled.json
similarity index 100%
rename from samples/v1.5/Elements/Image.SelectAction.IsEnabled.json
rename to samples/v1.5/Test/Image.SelectAction.IsEnabled.json
diff --git a/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json b/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json
new file mode 100644
index 0000000000..f31834054a
--- /dev/null
+++ b/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json
@@ -0,0 +1,124 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "Input.ChoiceSet",
+ "choices": [
+ {
+ "title": "Apple Cider",
+ "value": "1"
+ },
+ {
+ "title": "Grape Juice",
+ "value": "2"
+ },
+ {
+ "title": "Banana Smoothie",
+ "value": "3"
+ },
+ {
+ "title": "Orange Juice",
+ "value": "4"
+ }
+ ],
+ "value": "Banana Smoothie",
+ "label": "1.0 Compact Style",
+ "placeholder": "Click On Expand",
+ "id": "1"
+ },
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "Input.ChoiceSet",
+ "choices": [
+ {
+ "title": "Apple Cider",
+ "value": "1"
+ },
+ {
+ "title": "Grape Juice",
+ "value": "2"
+ },
+ {
+ "title": "Banana Smoothie",
+ "value": "3"
+ },
+ {
+ "title": "Orange Juice",
+ "value": "4"
+ }
+ ],
+ "placeholder": "Type Some To Expand",
+ "style": "filtered",
+ "label": "1.5 Filtered Style",
+ "id": "2"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "choices": [
+ {
+ "title": "Should be able to type anything",
+ "value": "1"
+ },
+ {
+ "title": "Validation should fail if typed input doesn't match choices",
+ "value": "2"
+ },
+ {
+ "title": "Typing 'O' should show Banana Smoothie and Orange Juice.",
+ "value": "3"
+ }
+ ],
+ "placeholder": "Placeholder text",
+ "isMultiSelect": true,
+ "style": "expanded",
+ "wrap": true,
+ "label": "Check Lists",
+ "id": "7",
+ "isRequired": true
+ }
+ ]
+ },
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "id": "4",
+ "text": "Setting both filtered style and multiline will ignore the style as this example"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "choices": [
+ {
+ "title": "Apple Cider",
+ "value": "1"
+ },
+ {
+ "title": "Grape Juice",
+ "value": "2"
+ },
+ {
+ "title": "Banana Smoothie",
+ "value": "3"
+ },
+ {
+ "title": "Orange Juice",
+ "value": "4"
+ }
+ ],
+ "placeholder": "Placeholder text",
+ "style": "filtered",
+ "isMultiSelect": true,
+ "id": "3"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "id": "6",
+ "title": "Check"
+ }
+ ]
+}
diff --git a/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json b/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json
new file mode 100644
index 0000000000..6b273a8a96
--- /dev/null
+++ b/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json
@@ -0,0 +1,33 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Both Input.Text elements should look the same as multiline is ignored for password",
+ "wrap": true
+ },
+ {
+ "type": "Input.Text",
+ "id": "id0",
+ "placeholder": "password",
+ "style": "password",
+ "label": "Regular Input.Text With Password Style"
+ },
+ {
+ "type": "Input.Text",
+ "id": "id1",
+ "placeholder": "password",
+ "style": "password",
+ "label": "Multiline Input.Text With Password Style",
+ "isMultiline": true
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "OK"
+ }
+ ]
+}
diff --git a/samples/v1.5/Test/PrimarySecondaryShowCards.json b/samples/v1.5/Test/PrimarySecondaryShowCards.json
new file mode 100644
index 0000000000..6f24a53f39
--- /dev/null
+++ b/samples/v1.5/Test/PrimarySecondaryShowCards.json
@@ -0,0 +1,36 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "Primary Show Card Action",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Primary Show Card",
+ "wrap": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "Action.ShowCard",
+ "title": "Secondary Show Card Action",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Secondary Show Card",
+ "wrap": true
+ }
+ ]
+ },
+ "mode": "secondary"
+ }
+ ]
+}
diff --git a/samples/v1.5/Elements/RichTextBlock.TextRun.SelectAction.IsEnabled.json b/samples/v1.5/Test/RichTextBlock.TextRun.SelectAction.IsEnabled.json
similarity index 100%
rename from samples/v1.5/Elements/RichTextBlock.TextRun.SelectAction.IsEnabled.json
rename to samples/v1.5/Test/RichTextBlock.TextRun.SelectAction.IsEnabled.json
diff --git a/samples/v1.5/Test/StandaloneTableRow.json b/samples/v1.5/Test/StandaloneTableRow.json
new file mode 100644
index 0000000000..a66e440584
--- /dev/null
+++ b/samples/v1.5/Test/StandaloneTableRow.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Below this is an empty TableRow not parented to a Table.",
+ "wrap": true
+ },
+ {
+ "type": "TableRow",
+ "horizontalContentAlignment": "center"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Below this is a TableRow containing a cell, all of which is not parented to a Table.",
+ "wrap": true
+ },
+ {
+ "type": "TableRow",
+ "horizontalContentAlignment": "center",
+ "cells": [
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "TableCell inside an orphaned TableRow",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "TableCell",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Inside an orphaned TableCell",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+}
diff --git a/samples/v1.5/Test/TableImpliedType.json b/samples/v1.5/Test/TableImpliedType.json
new file mode 100644
index 0000000000..7b2efb8c71
--- /dev/null
+++ b/samples/v1.5/Test/TableImpliedType.json
@@ -0,0 +1,29 @@
+{
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "Table",
+ "columns": [
+ {
+ "width": 1
+ }
+ ],
+ "rows": [
+ {
+ "cells": [
+ {
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Text goes here."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/samples/v1.5/Test/TooltipTestCard.json b/samples/v1.5/Test/TooltipTestCard.json
index 4941f684e8..7c79a33432 100644
--- a/samples/v1.5/Test/TooltipTestCard.json
+++ b/samples/v1.5/Test/TooltipTestCard.json
@@ -220,6 +220,107 @@
"tooltip": "Tooltip",
"title": "Title"
}
+ },
+ {
+ "type": "RichTextBlock",
+ "inlines": [
+ {
+ "type": "TextRun",
+ "text": "RichTextBlock with SelectAction, Action has title and tooltip (tooltip should be used as tooltip).",
+ "color": "good",
+ "selectAction": {
+ "type": "Action.Submit",
+ "tooltip": "Tooltip",
+ "title": "Title"
+ }
+ },
+ {
+ "type": "TextRun",
+ "text": " -Should not trigger any actions- ",
+ "weight": "bolder"
+ },
+ {
+ "type": "TextRun",
+ "text": "RichTextBlock with SelectAction, Action has title and no tooltip (title should be used as tooltip).",
+ "color": "warning",
+ "selectAction": {
+ "type": "Action.Submit",
+ "title": "title",
+ "data": {
+ "x": "hello world!"
+ }
+ }
+ },
+ {
+ "type": "TextRun",
+ "text": " -Should not trigger any actions- ",
+ "weight": "bolder"
+ }
+ ]
+ },
+ {
+ "type": "TextBlock",
+ "text": "Image has SelectAction. No title or tooltip (no tooltip)",
+ "weight": "bolder",
+ "wrap": true
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/1.png",
+ "size": "Large",
+ "altText": "Image Alt Text.",
+ "tooltip": "tooltip",
+ "selectAction": {
+ "type": "Action.Submit"
+ }
+ },
+ {
+ "type": "TextBlock",
+ "text": "Image has SelectAction. Action has title and tooltip. (tooltip should be used as tooltip)",
+ "weight": "bolder",
+ "wrap": true
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/1.png",
+ "size": "Large",
+ "altText": "Image Alt Text.",
+ "tooltip": "tooltip",
+ "selectAction": {
+ "type": "Action.Submit",
+ "title": "title",
+ "tooltip": "tooltip"
+ }
+ },
+ {
+ "type": "TextBlock",
+ "text": "Image has SelectAction. Action has title. (title should be used as tooltip)",
+ "weight": "bolder",
+ "wrap": true
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/1.png",
+ "size": "Large",
+ "altText": "Image Alt Text.",
+ "selectAction": {
+ "type": "Action.Submit",
+ "title": "title"
+ }
+ },
+ {
+ "type": "TextBlock",
+ "text": "Adaptive Card has SelectAction Action has tooltip. (tooltip should appear)",
+ "weight": "bolder",
+ "wrap": true
}
- ]
+ ],
+ "selectAction": {
+ "type": "Action.Submit",
+ "title": "title",
+ "data": {
+ "Card Level Action?": "Yes"
+ },
+ "tooltip": "Card Level Tooltip"
+ }
}
diff --git a/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json b/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json
new file mode 100644
index 0000000000..5d630432bb
--- /dev/null
+++ b/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json
@@ -0,0 +1,464 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "timer": 5000,
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "Click for more information about the first carousel page!",
+ "url": "https://adaptivecards.io/"
+ },
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "size": "medium",
+ "altText": "Shades cat team emblem"
+ },
+ {
+ "type": "TextBlock",
+ "text": "SHADES",
+ "horizontalAlignment": "center",
+ "weight": "bolder",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "separator": true,
+ "spacing": "medium",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Sat, Aug 31, 2019",
+ "horizontalAlignment": "center",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Final",
+ "spacing": "none",
+ "horizontalAlignment": "center",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "45 - 7",
+ "size": "extraLarge",
+ "horizontalAlignment": "center",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "separator": true,
+ "spacing": "medium",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/2.png",
+ "size": "medium",
+ "horizontalAlignment": "center",
+ "altText": "Skins cat team emblem"
+ },
+ {
+ "type": "TextBlock",
+ "text": "SKINS",
+ "horizontalAlignment": "center",
+ "weight": "bolder",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "theSecondCarouselPage",
+ "items": [
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Microsoft Corporation",
+ "size": "Medium",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Nasdaq Global Select: MSFT",
+ "isSubtle": true,
+ "spacing": "None",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Fri, May 3, 2019 1:00 PM",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Container",
+ "spacing": "none",
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "128.90",
+ "size": "extraLarge",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "▲ 2.69 USD (2.13%)",
+ "color": "good",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "Open",
+ "value": "127.42"
+ },
+ {
+ "title": "High",
+ "value": "129.43"
+ },
+ {
+ "title": "Low",
+ "value": "127.25"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "last-carousel-page",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Redmond, WA",
+ "size": "large",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Mon, Nov 4, 2019 6:21 PM",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "size": "small",
+ "altText": "Mostly cloudy weather"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "46",
+ "size": "extraLarge",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "°F",
+ "weight": "bolder",
+ "spacing": "small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Hi 50",
+ "horizontalAlignment": "left",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Lo 41",
+ "horizontalAlignment": "left",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "theFourthCarouselPage",
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "35",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "size": "stretch",
+ "altText": "Mostly cloudy weather"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "65",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Tue, Nov 5, 2019",
+ "weight": "bolder",
+ "size": "large",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "32 / 50",
+ "size": "medium",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "31% chance of rain",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Winds 4.4 mph SSE",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Wednesday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Drizzle-Square.png",
+ "altText": "Drizzly weather"
+ },
+ {
+ "type": "FactSet",
+ "horizontalAlignment": "right",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Wednesday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Thursday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Thursday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Friday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "59"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Friday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Saturday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Saturday",
+ "url": "https://www.microsoft.com"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/v1.6/Elements/Carousel.ScenarioCards.json b/samples/v1.6/Elements/Carousel.ScenarioCards.json
new file mode 100644
index 0000000000..0b6761f181
--- /dev/null
+++ b/samples/v1.6/Elements/Carousel.ScenarioCards.json
@@ -0,0 +1,463 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "Click for more information about the first carousel page!",
+ "url": "https://adaptivecards.io/"
+ },
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "size": "medium",
+ "altText": "Shades cat team emblem"
+ },
+ {
+ "type": "TextBlock",
+ "text": "SHADES",
+ "horizontalAlignment": "center",
+ "weight": "bolder",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "separator": true,
+ "spacing": "medium",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Sat, Aug 31, 2019",
+ "horizontalAlignment": "center",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Final",
+ "spacing": "none",
+ "horizontalAlignment": "center",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "45 - 7",
+ "size": "extraLarge",
+ "horizontalAlignment": "center",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "separator": true,
+ "spacing": "medium",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/2.png",
+ "size": "medium",
+ "horizontalAlignment": "center",
+ "altText": "Skins cat team emblem"
+ },
+ {
+ "type": "TextBlock",
+ "text": "SKINS",
+ "horizontalAlignment": "center",
+ "weight": "bolder",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "theSecondCarouselPage",
+ "items": [
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Microsoft Corporation",
+ "size": "Medium",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Nasdaq Global Select: MSFT",
+ "isSubtle": true,
+ "spacing": "None",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Fri, May 3, 2019 1:00 PM",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Container",
+ "spacing": "none",
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "128.90",
+ "size": "extraLarge",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "▲ 2.69 USD (2.13%)",
+ "color": "good",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "Open",
+ "value": "127.42"
+ },
+ {
+ "title": "High",
+ "value": "129.43"
+ },
+ {
+ "title": "Low",
+ "value": "127.25"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "last-carousel-page",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Redmond, WA",
+ "size": "large",
+ "isSubtle": true,
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Mon, Nov 4, 2019 6:21 PM",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "size": "small",
+ "altText": "Mostly cloudy weather"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "auto",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "46",
+ "size": "extraLarge",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "°F",
+ "weight": "bolder",
+ "spacing": "small",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Hi 50",
+ "horizontalAlignment": "left",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Lo 41",
+ "horizontalAlignment": "left",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "theFourthCarouselPage",
+ "items": [
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "35",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "size": "stretch",
+ "altText": "Mostly cloudy weather"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "65",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Tue, Nov 5, 2019",
+ "weight": "bolder",
+ "size": "large",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "32 / 50",
+ "size": "medium",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "31% chance of rain",
+ "spacing": "none",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Winds 4.4 mph SSE",
+ "spacing": "none",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Wednesday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Drizzle-Square.png",
+ "altText": "Drizzly weather"
+ },
+ {
+ "type": "FactSet",
+ "horizontalAlignment": "right",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Wednesday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Thursday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Thursday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Friday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "59"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Friday",
+ "url": "https://www.microsoft.com"
+ }
+ },
+ {
+ "type": "Column",
+ "width": "20",
+ "items": [
+ {
+ "type": "TextBlock",
+ "horizontalAlignment": "center",
+ "wrap": true,
+ "text": "Saturday"
+ },
+ {
+ "type": "Image",
+ "size": "auto",
+ "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png",
+ "altText": "Mostly cloudy weather"
+ },
+ {
+ "type": "FactSet",
+ "facts": [
+ {
+ "title": "High",
+ "value": "50"
+ },
+ {
+ "title": "Low",
+ "value": "32"
+ }
+ ]
+ }
+ ],
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "View Saturday",
+ "url": "https://www.microsoft.com"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/v1.6/Elements/Carousel.json b/samples/v1.6/Elements/Carousel.json
new file mode 100644
index 0000000000..7e8c5dd29c
--- /dev/null
+++ b/samples/v1.6/Elements/Carousel.json
@@ -0,0 +1,62 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "timer": 5000,
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "Click for more information about the first carousel page!",
+ "url": "https://adaptivecards.io/"
+ },
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/1.png",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "theSecondCarouselPage",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/2.png",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "last-carousel-page",
+ "items": [
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ }
+ ]
+ },
+ "actions": [
+ {
+ "type": "Action.OpenUrl",
+ "title": "See more",
+ "url": "https://adaptivecards.io"
+ },
+ {
+ "type": "Action.OpenUrl",
+ "title": "Another action",
+ "url": "https://adaptivecards.io"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/samples/v1.6/Tests/Carousel.ForbiddenActions.json b/samples/v1.6/Tests/Carousel.ForbiddenActions.json
new file mode 100644
index 0000000000..a15231a29d
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.ForbiddenActions.json
@@ -0,0 +1,202 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "items": [
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "There should be no actions rendered below",
+ "wrap": true,
+ "id": "id1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "secondCarouselPage",
+ "items": [
+ {
+ "type": "RichTextBlock",
+ "inlines": [
+ "No action should be rendered here ",
+ {
+ "type": "TextRun",
+ "text": "this is a showcard action,",
+ "selectAction": {
+ "type": "Action.ShowCard",
+ "title": "Action.ShowCard",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "What do you think?"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Neat!"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "TextRun",
+ "text": " and this is a toggle visibility action. ",
+ "selectAction": {
+ "type": "Action.ToggleVisibility",
+ "title": "Show!",
+ "targetElements": [
+ "id1"
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "thirdCarouselPage",
+ "items": [
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "text": "This card has Containers & Columns with SelectActions that should not be honoured"
+ },
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "text": "This is a container with ShowCard action"
+ }
+ ],
+ "selectAction": {
+ "type": "Action.ShowCard",
+ "title": "Action.ShowCard",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "What do you think?"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "text": "This is a container with ToggleVisibility action"
+ }
+ ],
+ "selectAction": {
+ "type": "Action.ToggleVisibility",
+ "title": "Show!",
+ "targetElements": [
+ "id1"
+ ]
+ }
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "items": [
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "text": "This is a container with ShowCard action"
+ }
+ ],
+ "selectAction": {
+ "type": "Action.ShowCard",
+ "title": "Action.ShowCard",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "What do you think?"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "items": [
+ {
+ "type": "TextBlock",
+ "wrap": true,
+ "text": "This is a container with ToggleVisibility action"
+ }
+ ],
+ "selectAction": {
+ "type": "Action.ToggleVisibility",
+ "title": "Show!",
+ "targetElements": [
+ "id1"
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "actions": [
+ {
+ "type": "Action.ShowCard",
+ "title": "Action.ShowCard",
+ "card": {
+ "type": "AdaptiveCard",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "What do you think?"
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Neat!"
+ }
+ ]
+ }
+ },
+ {
+ "type": "Action.ToggleVisibility",
+ "title": "Action.ToggleVisibility",
+ "targetElements": [
+ "id1"
+ ]
+ }
+ ]
+}
diff --git a/samples/v1.6/Tests/Carousel.ForbiddenElements.json b/samples/v1.6/Tests/Carousel.ForbiddenElements.json
new file mode 100644
index 0000000000..2790653811
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.ForbiddenElements.json
@@ -0,0 +1,95 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "List of forbidden items, no elements should be shown below besides TextBlock",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Text"
+ },
+ {
+ "type": "Input.Text",
+ "id": "id1"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Number"
+ },
+ {
+ "type": "Input.Number",
+ "id": "id2"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.ChoiceSet"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "id3",
+ "choices": [
+ {
+ "title": "Red",
+ "value": "1"
+ },
+ {
+ "title": "Green",
+ "value": "2"
+ }
+ ]
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Date"
+ },
+ {
+ "type": "Input.Date",
+ "id": "id4"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Toggle"
+ },
+ {
+ "type": "Input.Toggle",
+ "id": "id5",
+ "title": "I accept the terms and agreements"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Time"
+ },
+ {
+ "type": "Input.Time",
+ "id": "id6"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Media"
+ },
+ {
+ "type": "Media",
+ "poster": "https://adaptivecards.io/content/poster-video.png",
+ "id": "id7",
+ "sources": [
+ {
+ "mimeType": "video/mp4",
+ "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/v1.6/Tests/Carousel.HostConfig.json b/samples/v1.6/Tests/Carousel.HostConfig.json
new file mode 100644
index 0000000000..18cb7a6ed4
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.HostConfig.json
@@ -0,0 +1,204 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "timer": 100,
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "0",
+ "selectAction": {
+ "type": "Action.OpenUrl",
+ "title": "Click for more information about the first carousel page!",
+ "url": "https://adaptivecards.io/"
+ },
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "0, min timer value of host config will override the 100ms timer value of this card",
+ "wrap" : true
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/1.png",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "1",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "1"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/2.png",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "2",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "2"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "3",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "3"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "4",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "4"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "5",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "5"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "6",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "6"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "7",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "7"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "8",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "8"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "9",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "9, this will be the last carousel page if the default host config value, 10 is used.",
+ "wrap" : true
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "page10",
+ "items": [
+ {
+ "type" : "TextBlock",
+ "text" : "10"
+ },
+ {
+ "type": "Image",
+ "url": "https://adaptivecards.io/content/cats/3.png",
+ "altText": "That's a cool cat!",
+ "size": "medium"
+ }
+ ]
+ }
+ ]
+ },
+ "actions": [
+ {
+ "type": "Action.OpenUrl",
+ "title": "See more",
+ "url": "https://adaptivecards.io"
+ },
+ {
+ "type": "Action.OpenUrl",
+ "title": "Another action",
+ "url": "https://adaptivecards.io"
+ }
+ ]
+}
diff --git a/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json b/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json
new file mode 100644
index 0000000000..31a0c41858
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json
@@ -0,0 +1,198 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "items": [
+ {
+ "type": "Container",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "List of forbidden items, no elements should be shown below besides TextBlock",
+ "wrap": true
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Text"
+ },
+ {
+ "type": "Input.Text",
+ "id": "id1"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Number"
+ },
+ {
+ "type": "Input.Number",
+ "id": "id2"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.ChoiceSet"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "id3",
+ "choices": [
+ {
+ "title": "Red",
+ "value": "1"
+ },
+ {
+ "title": "Green",
+ "value": "2"
+ }
+ ]
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Date"
+ },
+ {
+ "type": "Input.Date",
+ "id": "id4"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Toggle"
+ },
+ {
+ "type": "Input.Toggle",
+ "id": "id5",
+ "title": "I accept the terms and agreements"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Time"
+ },
+ {
+ "type": "Input.Time",
+ "id": "id6"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Media"
+ },
+ {
+ "type": "Media",
+ "poster": "https://adaptivecards.io/content/poster-video.png",
+ "sources": [
+ {
+ "mimeType": "video/mp4",
+ "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "List of forbidden items, no elements should be shown below besides TextBlock",
+ "wrap": true
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Input.Text"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Number"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.ChoiceSet"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Date"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Toggle"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Input.Time"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Media"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "items": [
+ {
+ "type": "Input.Text",
+ "id": "id1"
+ },
+ {
+ "type": "Input.Number",
+ "id": "id2"
+ },
+ {
+ "type": "Input.ChoiceSet",
+ "id": "id3",
+ "choices": [
+ {
+ "title": "Red",
+ "value": "1"
+ },
+ {
+ "title": "Green",
+ "value": "2"
+ }
+ ]
+ },
+ {
+ "type": "Input.Date",
+ "id": "id4"
+ },
+ {
+ "type": "Input.Toggle",
+ "id": "id5",
+ "title": "I accept the terms and agreements"
+ },
+ {
+ "type": "Input.Time",
+ "id": "id6"
+ },
+ {
+ "type": "Media",
+ "poster": "https://adaptivecards.io/content/poster-video.png",
+ "sources": [
+ {
+ "mimeType": "video/mp4",
+ "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/v1.6/Tests/Carousel.Properties.json b/samples/v1.6/Tests/Carousel.Properties.json
new file mode 100644
index 0000000000..13ee6b843b
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.Properties.json
@@ -0,0 +1,51 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "body": {
+ "type": "Carousel",
+ "style": "warning",
+ "isVisible" : false,
+ "verticalContentAlignment" : "Bottom",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "1. Carousel Pages **does not** support *style*, *bleed*, *isVisible*.\r 2. Carousel support *Vertical Content Alignment* Try change the value\r 3. Flip through pages to test",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "secondCarouselPage",
+ "style": "good",
+ "bleed": true,
+ "isVisible" : false,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "Carousel Pages has style `good`, bleed `true`, isVisible `false`. Since Carousel Doesn't support such properties, it should not change the look",
+ "wrap": true
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "thirdCarouselPage",
+ "style": "warning",
+ "isVisible" : false,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "This Carousel Page has style `warning` and bleed `false` by default, expect no style change with first Carousel Page",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/samples/v1.6/Tests/Carousel.rtl.json b/samples/v1.6/Tests/Carousel.rtl.json
new file mode 100644
index 0000000000..66058b527d
--- /dev/null
+++ b/samples/v1.6/Tests/Carousel.rtl.json
@@ -0,0 +1,68 @@
+{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "version": "1.6",
+ "rtl": true,
+ "body": {
+ "type": "Carousel",
+ "pages": [
+ {
+ "type": "CarouselPage",
+ "id": "firstCarouselPage",
+ "rtl": true,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "1. Expected: RTL: *true*"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Carousel Page has set Explicit RTL"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "secondCarouselPage",
+ "rtl": false,
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "2. Expected: RTL: *false*"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Carousel Page has set Explicit LTL"
+ }
+ ]
+ },
+ {
+ "type": "CarouselPage",
+ "id": "thirdCarouselPage",
+ "items": [
+ {
+ "type": "TextBlock",
+ "text": "3. Expected: RTL: *true*"
+ },
+ {
+ "type": "TextBlock",
+ "text": "Carousel Page get Explicit RTL from its parent *Carousel* \rActions' direction should be RTL as AdaptiveCards has explicit RTL",
+ "wrap": true
+ }
+ ]
+ }
+ ]
+ },
+ "actions": [
+ {
+ "type": "Action.OpenUrl",
+ "title": "See more",
+ "url": "https://adaptivecards.io"
+ },
+ {
+ "type": "Action.OpenUrl",
+ "title": "Another action",
+ "url": "https://adaptivecards.io"
+ }
+ ]
+}
diff --git a/schemas/1.4.0/adaptive-card.json b/schemas/1.4.0/adaptive-card.json
index 2ce9b6dd75..a65f7af69e 100644
--- a/schemas/1.4.0/adaptive-card.json
+++ b/schemas/1.4.0/adaptive-card.json
@@ -1706,7 +1706,7 @@
]
},
"AuthCardButton": {
- "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).",
+ "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).",
"version": "1.4",
"properties": {
"type": {
@@ -1734,7 +1734,7 @@
]
},
"Authentication": {
- "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)",
+ "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)",
"version": "1.4",
"properties": {
"type": {
@@ -1826,7 +1826,7 @@
"additionalProperties": false
},
"TokenExchangeResource": {
- "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)",
+ "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)",
"version": "1.4",
"properties": {
"type": {
diff --git a/schemas/1.5.0/adaptive-card.json b/schemas/1.5.0/adaptive-card.json
index 986bd37b4f..8301d0efef 100644
--- a/schemas/1.5.0/adaptive-card.json
+++ b/schemas/1.5.0/adaptive-card.json
@@ -39,6 +39,7 @@
"fallback": {},
"tooltip": {},
"isEnabled": {},
+ "mode": {},
"requires": {}
},
"type": "object",
@@ -70,6 +71,7 @@
"fallback": {},
"tooltip": {},
"isEnabled": {},
+ "mode": {},
"requires": {}
},
"type": "object",
@@ -103,6 +105,7 @@
"fallback": {},
"tooltip": {},
"isEnabled": {},
+ "mode": {},
"requires": {}
},
"type": "object",
@@ -146,6 +149,7 @@
"fallback": {},
"tooltip": {},
"isEnabled": {},
+ "mode": {},
"requires": {}
},
"type": "object",
@@ -180,6 +184,7 @@
"fallback": {},
"tooltip": {},
"isEnabled": {},
+ "mode": {},
"requires": {}
},
"type": "object",
@@ -309,6 +314,18 @@
2293
]
},
+ "rtl": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.",
+ "version": "1.5"
+ },
"speak": {
"type": "string",
"description": "Specifies what should be spoken for this entire card. This is simple text or SSML fragment."
@@ -442,8 +459,8 @@
"type": "null"
}
],
- "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
- "version": "vNext"
+ "description": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
+ "version": "1.5"
},
"separator": {
"type": "boolean",
@@ -670,7 +687,7 @@
}
],
"description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
- "version": "vNext"
+ "version": "1.5"
},
"fallback": {},
"height": {},
@@ -1484,7 +1501,7 @@
"items": {
"$ref": "#/definitions/TableColumnDefinition"
},
- "description": "Defines the number of columns in the table, their sizes ans more."
+ "description": "Defines the number of columns in the table, their sizes, and more."
},
"rows": {
"type": "array",
@@ -1556,8 +1573,6 @@
"TableCell": {
"description": "Represents a cell within a row of a Table element.",
"version": "1.5",
- "type": "object",
- "additionalProperties": false,
"properties": {
"type": {
"enum": [
@@ -1565,26 +1580,91 @@
],
"description": "Must be `TableCell`"
},
- "items": {},
- "selectAction": {},
- "style": {},
- "verticalContentAlignment": {},
- "bleed": {},
- "backgroundImage": {},
- "minHeight": {},
- "rtl?": {},
- "fallback": {},
- "height": {},
- "separator": {},
- "spacing": {},
- "id": {},
- "isVisible": {},
- "requires": {}
- },
- "allOf": [
- {
- "$ref": "#/definitions/Extendable.Container"
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImplementationsOf.Element"
+ },
+ "description": "The card elements to render inside the `TableCell`."
+ },
+ "selectAction": {
+ "$ref": "#/definitions/ImplementationsOf.ISelectAction",
+ "description": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.",
+ "version": "1.1"
+ },
+ "style": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/ContainerStyle"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Style hint for `TableCell`."
+ },
+ "verticalContentAlignment": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/VerticalContentAlignment"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
+ "version": "1.1"
+ },
+ "bleed": {
+ "type": "boolean",
+ "description": "Determines whether the element should bleed through its parent's padding.",
+ "version": "1.2",
+ "features": [
+ 2109
+ ]
+ },
+ "backgroundImage": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/BackgroundImage"
+ },
+ {
+ "type": "string",
+ "format": "uri-reference",
+ "description": "The URL (or data url) to use as the background image. Supports data URI."
+ }
+ ],
+ "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
+ "version": "1.2"
+ },
+ "minHeight": {
+ "type": "string",
+ "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.",
+ "examples": [
+ "50px"
+ ],
+ "version": "1.2",
+ "features": [
+ 2293
+ ]
+ },
+ "rtl?": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
+ "version": "1.5"
}
+ },
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "items"
]
},
"TableColumnDefinition": {
@@ -1684,22 +1764,10 @@
}
],
"description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level."
- },
- "fallback": {},
- "height": {},
- "separator": {},
- "spacing": {},
- "id": {},
- "isVisible": {},
- "requires": {}
+ }
},
"type": "object",
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/definitions/Extendable.Element"
- }
- ]
+ "additionalProperties": false
},
"TextBlock": {
"description": "Displays text, allowing control over font sizes, weight, and color.",
@@ -1822,6 +1890,24 @@
}
]
},
+ "ActionMode": {
+ "description": "Determines whether an action is displayed with a button or is moved to the overflow menu.",
+ "features": [
+ 4715
+ ],
+ "version": "1.5",
+ "anyOf": [
+ {
+ "enum": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "pattern": "^([p|P][r|R][i|I][m|M][a|A][r|R][y|Y])|([s|S][e|E][c|C][o|O][n|N][d|D][a|A][r|R][y|Y])$"
+ }
+ ]
+ },
"ActionStyle": {
"description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.",
"features": [
@@ -2074,11 +2160,12 @@
"text",
"tel",
"url",
- "email"
+ "email",
+ "password"
]
},
{
- "pattern": "^([t|T][e|E][x|X][t|T])|([t|T][e|E][l|L])|([u|U][r|R][l|L])|([e|E][m|M][a|A][i|I][l|L])$"
+ "pattern": "^([t|T][e|E][x|X][t|T])|([t|T][e|E][l|L])|([u|U][r|R][l|L])|([e|E][m|M][a|A][i|I][l|L])|([p|P][a|A][s|S][s|S][w|W][o|O][r|R][d|D])$"
}
]
},
@@ -2111,7 +2198,7 @@
]
},
"AuthCardButton": {
- "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).",
+ "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).",
"version": "1.4",
"properties": {
"type": {
@@ -2139,7 +2226,7 @@
]
},
"Authentication": {
- "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)",
+ "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)",
"version": "1.4",
"properties": {
"type": {
@@ -2231,7 +2318,7 @@
"additionalProperties": false
},
"TokenExchangeResource": {
- "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)",
+ "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)",
"version": "1.4",
"properties": {
"type": {
@@ -2527,26 +2614,6 @@
}
]
},
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableCell"
- }
- ]
- },
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableRow"
- }
- ]
- },
{
"required": [
"type"
@@ -2755,26 +2822,6 @@
}
]
},
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableCell"
- }
- ]
- },
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableRow"
- }
- ]
- },
{
"required": [
"type"
@@ -2949,26 +2996,6 @@
}
]
},
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableCell"
- }
- ]
- },
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableRow"
- }
- ]
- },
{
"required": [
"type"
@@ -3059,30 +3086,6 @@
}
]
},
- "ImplementationsOf.Container": {
- "anyOf": [
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/Container"
- }
- ]
- },
- {
- "required": [
- "type"
- ],
- "allOf": [
- {
- "$ref": "#/definitions/TableCell"
- }
- ]
- }
- ]
- },
"Extendable.Action": {
"properties": {
"title": {
@@ -3127,119 +3130,18 @@
"default": true,
"version": "1.5"
},
- "requires": {}
- },
- "type": "object",
- "allOf": [
- {
- "$ref": "#/definitions/Extendable.Item"
- }
- ]
- },
- "Extendable.Container": {
- "description": "Containers group items together.",
- "properties": {
- "type": {
- "enum": [
- "Container"
- ],
- "description": "Must be `Container`"
- },
- "items": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/ImplementationsOf.Element"
- },
- "description": "The card elements to render inside the `Container`."
+ "mode": {
+ "$ref": "#/definitions/ActionMode",
+ "description": "Determines whether the action should be displayed as a button or in the overflow menu.",
+ "version": "1.5",
+ "default": "primary"
},
- "selectAction": {
- "$ref": "#/definitions/ImplementationsOf.ISelectAction",
- "description": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.",
- "version": "1.1"
- },
- "style": {
- "anyOf": [
- {
- "$ref": "#/definitions/ContainerStyle"
- },
- {
- "type": "null"
- }
- ],
- "description": "Style hint for `Container`."
- },
- "verticalContentAlignment": {
- "anyOf": [
- {
- "$ref": "#/definitions/VerticalContentAlignment"
- },
- {
- "type": "null"
- }
- ],
- "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
- "version": "1.1"
- },
- "bleed": {
- "type": "boolean",
- "description": "Determines whether the element should bleed through its parent's padding.",
- "version": "1.2",
- "features": [
- 2109
- ]
- },
- "backgroundImage": {
- "anyOf": [
- {
- "$ref": "#/definitions/BackgroundImage"
- },
- {
- "type": "string",
- "format": "uri-reference",
- "description": "The URL (or data url) to use as the background image. Supports data URI."
- }
- ],
- "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
- "version": "1.2"
- },
- "minHeight": {
- "type": "string",
- "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.",
- "examples": [
- "50px"
- ],
- "version": "1.2",
- "features": [
- 2293
- ]
- },
- "rtl?": {
- "anyOf": [
- {
- "type": "boolean"
- },
- {
- "type": "null"
- }
- ],
- "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
- "version": "vNext"
- },
- "fallback": {},
- "height": {},
- "separator": {},
- "spacing": {},
- "id": {},
- "isVisible": {},
"requires": {}
},
"type": "object",
- "required": [
- "items"
- ],
"allOf": [
{
- "$ref": "#/definitions/Extendable.Element"
+ "$ref": "#/definitions/Extendable.Item"
}
]
},
diff --git a/schemas/README.md b/schemas/README.md
index ce0fa261f1..0fb92b701c 100644
--- a/schemas/README.md
+++ b/schemas/README.md
@@ -1,11 +1,15 @@
# Schema files
Are you looking to make schema changes and don't know where to start? Make sure to check out our [contribution guidelines](https://github.com/Microsoft/AdaptiveCards/blob/main/.github/CONTRIBUTING.md) to get started.
+
## AdaptiveCard schema
### Referenceable versions
-Here's a list of the schema URLs you can reference
+Here's a list of the schema URLs you can reference:
+* https://adaptivecards.io/schemas/1.5.0/adaptive-card.json
+* https://adaptivecards.io/schemas/1.4.0/adaptive-card.json
+* https://adaptivecards.io/schemas/1.3.0/adaptive-card.json
* https://adaptivecards.io/schemas/1.2.0/adaptive-card.json
* https://adaptivecards.io/schemas/1.1.0/adaptive-card.json
@@ -15,7 +19,11 @@ The Adaptive Card schema is generated from "typed schema" files located in the `
Our schema explorer on the website is also generated from the typed schema files in the `src` folder.
-To generate the schema, see `../source/nodejs/ac-typed-schema`.
+To generate the schema, see [ac-typed-schema](../source/nodejs/ac-typed-schema). Once built (see the nodejs [README](../source/nodejs/README.md)), run `npm run generate-adaptive-schema`. This will output the generated schema as `schemas/adaptive-card.json` (which should not be checked in). From here, the file should be copied into the version-appropriate subfolder (e.g. `cd schemas && cp adaptive-card.json 1.4.0/adaptive-card.json`).
+
+### Generating the schema spec markdown
+
+Once the schema itself is generating correctly, the markdown specs need to be generated as well, at least for testing (the markdown files are automatically generated by a PR builds). The tool you need is [spec-generator](../source/nodejs/spec-generator). Once built, issue the command `npm run run` (yes, really), which will generate the various markdown files you can find in the [specs folder](../specs). More details can be found in the specs README.
### Non-extensible schema
@@ -25,4 +33,4 @@ If you want to run automated tests using the schema in your CI but have to use h
### Versioned schema
-We keep a version history of the schema, and we only support referencing a specific version of the schema. That's because you really don't want the schema randomly changing on you! Updating the schema must be a conscious decision.
\ No newline at end of file
+We keep a version history of the schema, and we only support referencing a specific version of the schema. That's because you really don't want the schema randomly changing on you! Updating the schema must be a conscious decision.
diff --git a/schemas/host-config.json b/schemas/host-config.json
index 70ea2d6e0a..22131afeb1 100644
--- a/schemas/host-config.json
+++ b/schemas/host-config.json
@@ -1,5 +1,16 @@
{
"definitions": {
+ "AdaptiveCardConfig": {
+ "type": "object",
+ "description": "Toplevel options for `AdaptiveCards`",
+ "properties": {
+ "allowCustomStyle": {
+ "type": "boolean",
+ "description": "Controls whether custom styling is allowed",
+ "default": true
+ }
+ }
+ },
"ActionsConfig": {
"type": "object",
"description": "Options for `Action`s",
@@ -67,17 +78,6 @@
}
}
},
- "AdaptiveCardConfig": {
- "type": "object",
- "description": "Toplevel options for `AdaptiveCards`",
- "properties": {
- "allowCustomStyle": {
- "type": "boolean",
- "description": "Controls whether custom styling is allowed",
- "default": true
- }
- }
- },
"ContainerStyleConfig": {
"type": "object",
"description": "Controls styling of a container",
@@ -671,7 +671,7 @@
},
"TextStylesConfig": {
"type": "object",
- "description": "Configuration settings for TextBocks",
+ "description": "Sets default properties for text of a given style",
"properties": {
"heading": {
"$ref": "#/definitions/TextStyleConfig",
@@ -682,67 +682,92 @@
"fontType": "default",
"isSubtle": false
}
+ },
+ "columnHeader": {
+ "$ref": "#/definitions/TextStyleConfig",
+ "default": {
+ "weight": "bolder",
+ "size": "default",
+ "color": "default",
+ "fontType": "default",
+ "isSubtle": false
+ }
}
}
},
- "type": "object",
- "properties": {
- "supportsInteractivity": {
- "type": "boolean",
- "description": "Control whether interactive `Action`s are allowed to be invoke",
- "default": true
- },
- "imageBaseUrl": {
- "type": "string",
- "format": "uri",
- "description": "Base URL to be used when loading resources"
- },
- "fontFamily": {
- "type": "string",
- "description": "Font face to use when rendering text",
- "default": "Calibri"
- },
- "actions": {
- "$ref": "#/definitions/ActionsConfig"
- },
- "adaptiveCard": {
- "$ref": "#/definitions/AdaptiveCardConfig"
- },
- "containerStyles": {
- "$ref": "#/definitions/ContainerStylesConfig"
- },
- "imageSizes": {
- "$ref": "#/definitions/ImageSizesConfig"
- },
- "imageSet": {
- "$ref": "#/definitions/ImageSetConfig"
- },
- "factSet": {
- "$ref": "#/definitions/FactSetConfig"
- },
- "fontSizes": {
- "$ref": "#/definitions/FontSizesConfig"
- },
- "fontWeights": {
- "$ref": "#/definitions/FontWeightsConfig"
- },
- "spacing": {
- "$ref": "#/definitions/SpacingsConfig"
- },
- "separator": {
- "$ref": "#/definitions/SeparatorConfig"
- },
- "media": {
- "$ref": "#/definitions/MediaConfig"
- },
- "inputs": {
- "$ref": "#/definitions/InputsConfig"
- },
- "textBlock": {
- "$ref": "#/definitions/TextBlockConfig"
- },
- "textStyles": {
- "$ref": "#/definitions/TextStylesConfig"
+ "TextBlockConfig": {
+ "type": "object",
+ "description": "Configuration settings for TextBlocks",
+ "properties": {
+ "headingLevel": {
+ "type": "integer",
+ "description": "When displaying a `TextBlock` element with the `heading` style, this is the heading level exposed to accessibility tools.",
+ "default": 2
+ }
+ }
+ },
+ "HostConfig": {
+ "type": "object",
+ "description": "Contains host-configurable settings",
+ "properties": {
+ "supportsInteractivity": {
+ "type": "boolean",
+ "description": "Control whether interactive `Action`s are allowed to be invoked",
+ "default": true
+ },
+ "imageBaseUrl": {
+ "type": "string",
+ "format": "uri",
+ "description": "Base URL to be used when loading resources"
+ },
+ "fontFamily": {
+ "type": "string",
+ "description": "Font face to use when rendering text",
+ "default": "Calibri"
+ },
+ "actions": {
+ "$ref": "#/definitions/ActionsConfig"
+ },
+ "adaptiveCard": {
+ "$ref": "#/definitions/AdaptiveCardConfig"
+ },
+ "containerStyles": {
+ "$ref": "#/definitions/ContainerStylesConfig"
+ },
+ "imageSizes": {
+ "$ref": "#/definitions/ImageSizesConfig"
+ },
+ "imageSet": {
+ "$ref": "#/definitions/ImageSetConfig"
+ },
+ "factSet": {
+ "$ref": "#/definitions/FactSetConfig"
+ },
+ "fontSizes": {
+ "$ref": "#/definitions/FontSizesConfig"
+ },
+ "fontWeights": {
+ "$ref": "#/definitions/FontWeightsConfig"
+ },
+ "spacing": {
+ "$ref": "#/definitions/SpacingsConfig"
+ },
+ "separator": {
+ "$ref": "#/definitions/SeparatorConfig"
+ },
+ "media": {
+ "$ref": "#/definitions/MediaConfig"
+ },
+ "inputs": {
+ "$ref": "#/definitions/InputsConfig"
+ },
+ "textBlock": {
+ "$ref": "#/definitions/TextBlockConfig"
+ },
+ "textStyles": {
+ "$ref": "#/definitions/TextStylesConfig"
+ }
}
}
}
+}
diff --git a/schemas/src/AdaptiveCard.json b/schemas/src/AdaptiveCard.json
index cbd2edc9f6..351b53d439 100644
--- a/schemas/src/AdaptiveCard.json
+++ b/schemas/src/AdaptiveCard.json
@@ -61,6 +61,11 @@
2293
]
},
+ "rtl": {
+ "type": "boolean?",
+ "description": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.",
+ "version": "1.5"
+ },
"speak": {
"type": "string",
"description": "Specifies what should be spoken for this entire card. This is simple text or SSML fragment."
@@ -84,4 +89,4 @@
"description": "The Adaptive Card schema."
}
}
-}
\ No newline at end of file
+}
diff --git a/schemas/src/actions/Action.OpenUrl.json b/schemas/src/actions/Action.OpenUrl.json
index 75b2a52eb6..ffcd087b8e 100644
--- a/schemas/src/actions/Action.OpenUrl.json
+++ b/schemas/src/actions/Action.OpenUrl.json
@@ -1,12 +1,12 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Action, ISelectAction",
- "description": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.",
- "properties": {
- "url": {
- "type": "uri-reference",
- "description": "The URL to open.",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Action, ISelectAction",
+ "description": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.",
+ "properties": {
+ "url": {
+ "type": "uri-reference",
+ "description": "The URL to open.",
+ "required": true
+ }
+ }
+}
diff --git a/schemas/src/actions/Action.ShowCard.json b/schemas/src/actions/Action.ShowCard.json
index cd6c62cb6b..30c842043c 100644
--- a/schemas/src/actions/Action.ShowCard.json
+++ b/schemas/src/actions/Action.ShowCard.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Action",
- "description": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.",
- "properties": {
- "card": {
- "type": "AdaptiveCard",
- "description": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Action",
+ "description": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.",
+ "properties": {
+ "card": {
+ "type": "AdaptiveCard",
+ "description": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details."
+ }
+ }
+}
diff --git a/schemas/src/actions/Action.ToggleVisibility.json b/schemas/src/actions/Action.ToggleVisibility.json
index 2017dc44eb..d0c82a1b75 100644
--- a/schemas/src/actions/Action.ToggleVisibility.json
+++ b/schemas/src/actions/Action.ToggleVisibility.json
@@ -1,13 +1,13 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Action, ISelectAction",
- "description": "An action that toggles the visibility of associated card elements.",
- "version": "1.2",
- "properties": {
- "targetElements": {
- "type": "TargetElement[]",
- "description": "The array of TargetElements. It is not recommended to include Input elements with validation under Action.Toggle due to confusion that can arise from invalid inputs that are not currently visible. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more information.",
- "required": true
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Action, ISelectAction",
+ "description": "An action that toggles the visibility of associated card elements.",
+ "version": "1.2",
+ "properties": {
+ "targetElements": {
+ "type": "TargetElement[]",
+ "description": "The array of TargetElements. It is not recommended to include Input elements with validation under Action.Toggle due to confusion that can arise from invalid inputs that are not currently visible. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more information.",
+ "required": true
+ }
+ }
}
diff --git a/schemas/src/actions/Action.json b/schemas/src/actions/Action.json
index 18426665cd..c03a0b255f 100644
--- a/schemas/src/actions/Action.json
+++ b/schemas/src/actions/Action.json
@@ -36,6 +36,12 @@
"description": "Determines whether the action should be enabled.",
"default": true,
"version": "1.5"
+ },
+ "mode": {
+ "type": "ActionMode",
+ "description": "Determines whether the action should be displayed as a button or in the overflow menu.",
+ "version": "1.5",
+ "default": "primary"
}
}
}
diff --git a/schemas/src/actions/ISelectAction.json b/schemas/src/actions/ISelectAction.json
index 19a849031a..825b447adb 100644
--- a/schemas/src/actions/ISelectAction.json
+++ b/schemas/src/actions/ISelectAction.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "isAbstract": true,
- "description": "Marker interface for static actions (everything except Action.ShowCard)."
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "isAbstract": true,
+ "description": "Marker interface for static actions (everything except Action.ShowCard)."
+}
diff --git a/schemas/src/actions/TargetElement.json b/schemas/src/actions/TargetElement.json
index 83646d92e8..d17d8773e2 100644
--- a/schemas/src/actions/TargetElement.json
+++ b/schemas/src/actions/TargetElement.json
@@ -1,16 +1,16 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Represents an entry for Action.ToggleVisibility's targetElements property",
- "properties": {
- "elementId": {
- "type": "string",
- "description": "Element ID of element to toggle",
- "required": true
- },
- "isVisible": {
- "type": "boolean?",
- "description": "If `true`, always show target element. If `false`, always hide target element. If not supplied, toggle target element's visibility. "
- }
- },
- "shorthand": "elementId"
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Represents an entry for Action.ToggleVisibility's targetElements property",
+ "properties": {
+ "elementId": {
+ "type": "string",
+ "description": "Element ID of element to toggle",
+ "required": true
+ },
+ "isVisible": {
+ "type": "boolean?",
+ "description": "If `true`, always show target element. If `false`, always hide target element. If not supplied, toggle target element's visibility. "
+ }
+ },
+ "shorthand": "elementId"
+}
diff --git a/schemas/src/elements/ActionSet.json b/schemas/src/elements/ActionSet.json
index efa194864e..af7c36b0f8 100644
--- a/schemas/src/elements/ActionSet.json
+++ b/schemas/src/elements/ActionSet.json
@@ -1,13 +1,13 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Displays a set of actions.",
- "properties": {
- "actions": {
- "type": "Action[]",
- "description": "The array of `Action` elements to show.",
- "required": true
- }
- },
- "version": "1.2"
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Displays a set of actions.",
+ "properties": {
+ "actions": {
+ "type": "Action[]",
+ "description": "The array of `Action` elements to show.",
+ "required": true
+ }
+ },
+ "version": "1.2"
}
diff --git a/schemas/src/elements/Column.json b/schemas/src/elements/Column.json
index eeef9fca0d..e01b88c232 100644
--- a/schemas/src/elements/Column.json
+++ b/schemas/src/elements/Column.json
@@ -44,8 +44,8 @@
},
"rtl": {
"type": "boolean?",
- "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
- "version": "vNext"
+ "description": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
+ "version": "1.5"
},
"separator": {
"type": "boolean",
diff --git a/schemas/src/elements/ColumnSet.json b/schemas/src/elements/ColumnSet.json
index 67eb612c50..c91d29e0a0 100644
--- a/schemas/src/elements/ColumnSet.json
+++ b/schemas/src/elements/ColumnSet.json
@@ -41,4 +41,4 @@
"description": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
}
}
-}
\ No newline at end of file
+}
diff --git a/schemas/src/elements/Container.json b/schemas/src/elements/Container.json
index 7cc7eeb2d4..c72cfcfce2 100644
--- a/schemas/src/elements/Container.json
+++ b/schemas/src/elements/Container.json
@@ -55,7 +55,7 @@
"rtl?": {
"type": "boolean?",
"description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
- "version": "vNext"
+ "version": "1.5"
}
}
}
diff --git a/schemas/src/elements/Element.json b/schemas/src/elements/Element.json
index 2e815172d5..e052d3af3a 100644
--- a/schemas/src/elements/Element.json
+++ b/schemas/src/elements/Element.json
@@ -1,25 +1,25 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "ToggleableItem",
- "isAbstract": true,
- "properties": {
- "fallback": {
- "type": "Element|FallbackOption",
- "description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
- "version": "1.2"
- },
- "height": {
- "type": "BlockElementHeight",
- "description": "Specifies the height of the element.",
- "version": "1.1"
- },
- "separator": {
- "type": "boolean",
- "description": "When `true`, draw a separating line at the top of the element."
- },
- "spacing": {
- "type": "Spacing",
- "description": "Controls the amount of spacing between this element and the preceding element."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "ToggleableItem",
+ "isAbstract": true,
+ "properties": {
+ "fallback": {
+ "type": "Element|FallbackOption",
+ "description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.",
+ "version": "1.2"
+ },
+ "height": {
+ "type": "BlockElementHeight",
+ "description": "Specifies the height of the element.",
+ "version": "1.1"
+ },
+ "separator": {
+ "type": "boolean",
+ "description": "When `true`, draw a separating line at the top of the element."
+ },
+ "spacing": {
+ "type": "Spacing",
+ "description": "Controls the amount of spacing between this element and the preceding element."
+ }
+ }
+}
diff --git a/schemas/src/elements/Fact.json b/schemas/src/elements/Fact.json
index de2d6eed7d..5a50c19e0f 100644
--- a/schemas/src/elements/Fact.json
+++ b/schemas/src/elements/Fact.json
@@ -1,16 +1,16 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Describes a Fact in a FactSet as a key/value pair.",
- "properties": {
- "title": {
- "type": "string",
- "description": "The title of the fact.",
- "required": true
- },
- "value": {
- "type": "string",
- "description": "The value of the fact.",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Describes a Fact in a FactSet as a key/value pair.",
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "The title of the fact.",
+ "required": true
+ },
+ "value": {
+ "type": "string",
+ "description": "The value of the fact.",
+ "required": true
+ }
+ }
+}
diff --git a/schemas/src/elements/FactSet.json b/schemas/src/elements/FactSet.json
index 073cec0f3b..1d4a5c158b 100644
--- a/schemas/src/elements/FactSet.json
+++ b/schemas/src/elements/FactSet.json
@@ -5,8 +5,8 @@
"properties": {
"facts": {
"type": "Fact[]",
- "description": "The array of `Fact`'s.",
- "required": true
+ "description": "The array of `Fact`'s.",
+ "required": true
}
}
-}
\ No newline at end of file
+}
diff --git a/schemas/src/elements/Image.json b/schemas/src/elements/Image.json
index 2d8b1c16e3..fde4389224 100644
--- a/schemas/src/elements/Image.json
+++ b/schemas/src/elements/Image.json
@@ -1,57 +1,57 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Displays an image. Acceptable formats are PNG, JPEG, and GIF",
- "properties": {
- "url": {
- "type": "uri-reference",
- "description": "The URL to the image. Supports data URI in version 1.2+",
- "required": true
- },
- "altText": {
- "type": "string",
- "description": "Alternate text describing the image."
- },
- "backgroundColor": {
- "type": "string",
- "description": "Applies a background to a transparent image. This property will respect the image style.",
- "example": "#DDDDDD",
- "version": "1.1"
- },
- "height": {
- "type": "string|BlockElementHeight",
- "description": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.",
- "examples": [
- "50px"
- ],
- "default": "auto",
- "override": true,
- "version": "1.1"
- },
- "horizontalAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
- },
- "selectAction": {
- "type": "ISelectAction",
- "description": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.",
- "version": "1.1"
- },
- "size": {
- "type": "ImageSize",
- "description": "Controls the approximate size of the image. The physical dimensions will vary per host."
- },
- "style": {
- "type": "ImageStyle",
- "description": "Controls how this `Image` is displayed."
- },
- "width": {
- "type": "string",
- "description": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.",
- "examples": [
- "50px"
- ],
- "version": "1.1"
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Displays an image. Acceptable formats are PNG, JPEG, and GIF",
+ "properties": {
+ "url": {
+ "type": "uri-reference",
+ "description": "The URL to the image. Supports data URI in version 1.2+",
+ "required": true
+ },
+ "altText": {
+ "type": "string",
+ "description": "Alternate text describing the image."
+ },
+ "backgroundColor": {
+ "type": "string",
+ "description": "Applies a background to a transparent image. This property will respect the image style.",
+ "example": "#DDDDDD",
+ "version": "1.1"
+ },
+ "height": {
+ "type": "string|BlockElementHeight",
+ "description": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.",
+ "examples": [
+ "50px"
+ ],
+ "default": "auto",
+ "override": true,
+ "version": "1.1"
+ },
+ "horizontalAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
+ },
+ "selectAction": {
+ "type": "ISelectAction",
+ "description": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.",
+ "version": "1.1"
+ },
+ "size": {
+ "type": "ImageSize",
+ "description": "Controls the approximate size of the image. The physical dimensions will vary per host."
+ },
+ "style": {
+ "type": "ImageStyle",
+ "description": "Controls how this `Image` is displayed."
+ },
+ "width": {
+ "type": "string",
+ "description": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.",
+ "examples": [
+ "50px"
+ ],
+ "version": "1.1"
+ }
+ }
}
diff --git a/schemas/src/elements/Media.json b/schemas/src/elements/Media.json
index aa32bf022f..c4cc853013 100644
--- a/schemas/src/elements/Media.json
+++ b/schemas/src/elements/Media.json
@@ -1,24 +1,24 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Displays a media player for audio or video content.",
- "version": "1.1",
- "features": [
- 196
- ],
- "properties": {
- "sources": {
- "type": "MediaSource[]",
- "description": "Array of media sources to attempt to play.",
- "required": true
- },
- "poster": {
- "type": "uri-reference",
- "description": "URL of an image to display before playing. Supports data URI in version 1.2+"
- },
- "altText": {
- "type": "string",
- "description": "Alternate text describing the audio or video."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Displays a media player for audio or video content.",
+ "version": "1.1",
+ "features": [
+ 196
+ ],
+ "properties": {
+ "sources": {
+ "type": "MediaSource[]",
+ "description": "Array of media sources to attempt to play.",
+ "required": true
+ },
+ "poster": {
+ "type": "uri-reference",
+ "description": "URL of an image to display before playing. Supports data URI in version 1.2+"
+ },
+ "altText": {
+ "type": "string",
+ "description": "Alternate text describing the audio or video."
+ }
+ }
+}
diff --git a/schemas/src/elements/MediaSource.json b/schemas/src/elements/MediaSource.json
index b4daf62b0f..993e43a80d 100644
--- a/schemas/src/elements/MediaSource.json
+++ b/schemas/src/elements/MediaSource.json
@@ -1,20 +1,20 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines a source for a Media element",
- "version": "1.1",
- "features": [
- 196
- ],
- "properties": {
- "mimeType": {
- "type": "string",
- "description": "Mime type of associated media (e.g. `\"video/mp4\"`).",
- "required": true
- },
- "url": {
- "type": "uri-reference",
- "description": "URL to media. Supports data URI in version 1.2+",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines a source for a Media element",
+ "version": "1.1",
+ "features": [
+ 196
+ ],
+ "properties": {
+ "mimeType": {
+ "type": "string",
+ "description": "Mime type of associated media (e.g. `\"video/mp4\"`).",
+ "required": true
+ },
+ "url": {
+ "type": "uri-reference",
+ "description": "URL to media. Supports data URI in version 1.2+",
+ "required": true
+ }
+ }
+}
diff --git a/schemas/src/elements/RichTextBlock.json b/schemas/src/elements/RichTextBlock.json
index 366801f743..36b7dec714 100644
--- a/schemas/src/elements/RichTextBlock.json
+++ b/schemas/src/elements/RichTextBlock.json
@@ -1,20 +1,20 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Defines an array of inlines, allowing for inline text formatting.",
- "version": "1.2",
- "features": [
- 1933
- ],
- "properties": {
- "inlines": {
- "type": "Inline[]",
- "description": "The array of inlines.",
- "required": true
- },
- "horizontalAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Defines an array of inlines, allowing for inline text formatting.",
+ "version": "1.2",
+ "features": [
+ 1933
+ ],
+ "properties": {
+ "inlines": {
+ "type": "Inline[]",
+ "description": "The array of inlines.",
+ "required": true
+ },
+ "horizontalAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
+ }
+ }
+}
diff --git a/schemas/src/elements/Table.json b/schemas/src/elements/Table.json
index 22a05170c0..2bc73d9074 100644
--- a/schemas/src/elements/Table.json
+++ b/schemas/src/elements/Table.json
@@ -1,39 +1,39 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Provides a way to display data in a tabular form.",
- "version": "1.5",
- "properties": {
- "columns": {
- "type": "TableColumnDefinition[]",
- "description": "Defines the number of columns in the table, their sizes, and more."
- },
- "rows": {
- "type": "TableRow[]",
- "description": "Defines the rows of the table."
- },
- "firstRowAsHeader": {
- "type": "boolean",
- "description": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.",
- "default": true
- },
- "showGridLines": {
- "type": "boolean",
- "description": "Specifies whether grid lines should be displayed.",
- "default": true
- },
- "gridStyle": {
- "type": "ContainerStyle?",
- "description": "Defines the style of the grid. This property currently only controls the grid's color.",
- "default": "default"
- },
- "horizontalCellContentAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis."
- },
- "verticalCellContentAlignment": {
- "type": "VerticalAlignment?",
- "description": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis."
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Provides a way to display data in a tabular form.",
+ "version": "1.5",
+ "properties": {
+ "columns": {
+ "type": "TableColumnDefinition[]",
+ "description": "Defines the number of columns in the table, their sizes, and more."
+ },
+ "rows": {
+ "type": "TableRow[]",
+ "description": "Defines the rows of the table."
+ },
+ "firstRowAsHeader": {
+ "type": "boolean",
+ "description": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.",
+ "default": true
+ },
+ "showGridLines": {
+ "type": "boolean",
+ "description": "Specifies whether grid lines should be displayed.",
+ "default": true
+ },
+ "gridStyle": {
+ "type": "ContainerStyle?",
+ "description": "Defines the style of the grid. This property currently only controls the grid's color.",
+ "default": "default"
+ },
+ "horizontalCellContentAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis."
+ },
+ "verticalCellContentAlignment": {
+ "type": "VerticalAlignment?",
+ "description": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis."
+ }
+ }
}
diff --git a/schemas/src/elements/TableCell.json b/schemas/src/elements/TableCell.json
index c88453506e..d33781319f 100644
--- a/schemas/src/elements/TableCell.json
+++ b/schemas/src/elements/TableCell.json
@@ -1,6 +1,61 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Represents a cell within a row of a Table element.",
- "extends": "Container",
- "version": "1.5"
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Represents a cell within a row of a Table element.",
+ "version": "1.5",
+ "properties": {
+ "items": {
+ "type": "Element[]",
+ "description": "The card elements to render inside the `TableCell`.",
+ "required": true
+ },
+ "selectAction": {
+ "type": "ISelectAction",
+ "description": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.",
+ "version": "1.1"
+ },
+ "style": {
+ "type": "ContainerStyle?",
+ "description": "Style hint for `TableCell`."
+ },
+ "verticalContentAlignment": {
+ "type": "VerticalContentAlignment?",
+ "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.",
+ "version": "1.1"
+ },
+ "bleed": {
+ "type": "boolean",
+ "description": "Determines whether the element should bleed through its parent's padding.",
+ "version": "1.2",
+ "features": [
+ 2109
+ ]
+ },
+ "backgroundImage": {
+ "type": "BackgroundImage",
+ "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF",
+ "version": "1.2",
+ "shorthands": [
+ {
+ "type": "uri-reference",
+ "description": "The URL (or data url) to use as the background image. Supports data URI."
+ }
+ ]
+ },
+ "minHeight": {
+ "type": "string",
+ "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.",
+ "examples": [
+ "50px"
+ ],
+ "version": "1.2",
+ "features": [
+ 2293
+ ]
+ },
+ "rtl?": {
+ "type": "boolean?",
+ "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.",
+ "version": "1.5"
+ }
+ }
+}
diff --git a/schemas/src/elements/TableColumnDefinition.json b/schemas/src/elements/TableColumnDefinition.json
index fcf38df385..77a0519073 100644
--- a/schemas/src/elements/TableColumnDefinition.json
+++ b/schemas/src/elements/TableColumnDefinition.json
@@ -1,20 +1,20 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines the characteristics of a column in a Table element.",
- "version": "1.5",
- "properties": {
- "width": {
- "type": "string|number",
- "description": "Specifies the width of the column. If expressed as a number, width represents the weight a the column relative to the other columns in the table. If expressed as a string, width must by in the format \"px\" (for instance, \"50px\") and represents an explicit number of pixels.",
- "default": 1
- },
- "horizontalCellContentAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls how the content of all cells in the column is horizontally aligned by default. When specified, this value overrides the setting at the table level. When not specified, horizontal alignment is defined at the table, row or cell level."
- },
- "verticalCellContentAlignment": {
- "type": "VerticalAlignment?",
- "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table level. When not specified, vertical alignment is defined at the table, row or cell level."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines the characteristics of a column in a Table element.",
+ "version": "1.5",
+ "properties": {
+ "width": {
+ "type": "string|number",
+ "description": "Specifies the width of the column. If expressed as a number, width represents the weight a the column relative to the other columns in the table. If expressed as a string, width must by in the format \"px\" (for instance, \"50px\") and represents an explicit number of pixels.",
+ "default": 1
+ },
+ "horizontalCellContentAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls how the content of all cells in the column is horizontally aligned by default. When specified, this value overrides the setting at the table level. When not specified, horizontal alignment is defined at the table, row or cell level."
+ },
+ "verticalCellContentAlignment": {
+ "type": "VerticalAlignment?",
+ "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table level. When not specified, vertical alignment is defined at the table, row or cell level."
+ }
+ }
+}
diff --git a/schemas/src/elements/TableRow.json b/schemas/src/elements/TableRow.json
index 59962db412..a07fbfa834 100644
--- a/schemas/src/elements/TableRow.json
+++ b/schemas/src/elements/TableRow.json
@@ -1,24 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Represents a row of cells within a Table element.",
- "extends": "Element",
- "version": "1.5",
- "properties": {
- "cells": {
- "type": "TableCell[]",
- "description": "The cells in this row. If a row contains more cells than there are columns defined on the Table element, the extra cells are ignored."
- },
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Represents a row of cells within a Table element.",
+ "version": "1.5",
+ "properties": {
+ "cells": {
+ "type": "TableCell[]",
+ "description": "The cells in this row. If a row contains more cells than there are columns defined on the Table element, the extra cells are ignored."
+ },
"style": {
"type": "ContainerStyle?",
"description": "Defines the style of the entire row."
},
- "horizontalCellContentAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls how the content of all cells in the row is horizontally aligned by default. When specified, this value overrides both the setting at the table and columns level. When not specified, horizontal alignment is defined at the table, column or cell level."
- },
- "verticalCellContentAlignment": {
- "type": "VerticalAlignment?",
- "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level."
- }
- }
-}
\ No newline at end of file
+ "horizontalCellContentAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls how the content of all cells in the row is horizontally aligned by default. When specified, this value overrides both the setting at the table and columns level. When not specified, horizontal alignment is defined at the table, column or cell level."
+ },
+ "verticalCellContentAlignment": {
+ "type": "VerticalAlignment?",
+ "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level."
+ }
+ }
+}
diff --git a/schemas/src/elements/TextBlock.json b/schemas/src/elements/TextBlock.json
index 2cb2750b1e..60399dc4dd 100644
--- a/schemas/src/elements/TextBlock.json
+++ b/schemas/src/elements/TextBlock.json
@@ -1,52 +1,52 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Element",
- "description": "Displays text, allowing control over font sizes, weight, and color.",
- "properties": {
- "text": {
- "type": "string",
- "description": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)",
- "required": true
- },
- "color": {
- "type": "Colors?",
- "description": "Controls the color of `TextBlock` elements."
- },
- "fontType": {
- "type": "FontType?",
- "description": "Type of font to use for rendering",
- "version": "1.2"
- },
- "horizontalAlignment": {
- "type": "HorizontalAlignment?",
- "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
- },
- "isSubtle": {
- "type": "boolean?",
- "description": "If `true`, displays text slightly toned down to appear less prominent.",
- "default": false
- },
- "maxLines": {
- "type": "number",
- "description": "Specifies the maximum number of lines to display."
- },
- "size": {
- "type": "FontSize?",
- "description": "Controls size of text."
- },
- "weight": {
- "type": "FontWeight?",
- "description": "Controls the weight of `TextBlock` elements."
- },
- "wrap": {
- "type": "boolean",
- "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
- "default": false
- },
- "style": {
- "type": "TextBlockStyle?",
- "description": "The style of this TextBlock for accessibility purposes.",
- "default": "default"
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Element",
+ "description": "Displays text, allowing control over font sizes, weight, and color.",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)",
+ "required": true
+ },
+ "color": {
+ "type": "Colors?",
+ "description": "Controls the color of `TextBlock` elements."
+ },
+ "fontType": {
+ "type": "FontType?",
+ "description": "Type of font to use for rendering",
+ "version": "1.2"
+ },
+ "horizontalAlignment": {
+ "type": "HorizontalAlignment?",
+ "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left."
+ },
+ "isSubtle": {
+ "type": "boolean?",
+ "description": "If `true`, displays text slightly toned down to appear less prominent.",
+ "default": false
+ },
+ "maxLines": {
+ "type": "number",
+ "description": "Specifies the maximum number of lines to display."
+ },
+ "size": {
+ "type": "FontSize?",
+ "description": "Controls size of text."
+ },
+ "weight": {
+ "type": "FontWeight?",
+ "description": "Controls the weight of `TextBlock` elements."
+ },
+ "wrap": {
+ "type": "boolean",
+ "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
+ "default": false
+ },
+ "style": {
+ "type": "TextBlockStyle?",
+ "description": "The style of this TextBlock for accessibility purposes.",
+ "default": "default"
+ }
+ }
+}
diff --git a/schemas/src/elements/inlines/Inline.json b/schemas/src/elements/inlines/Inline.json
index f4538382ba..d9ac1e53a7 100644
--- a/schemas/src/elements/inlines/Inline.json
+++ b/schemas/src/elements/inlines/Inline.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "isAbstract": true,
- "description": "Marker interface for inlines"
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "isAbstract": true,
+ "description": "Marker interface for inlines"
+}
diff --git a/schemas/src/elements/inlines/TextRun.json b/schemas/src/elements/inlines/TextRun.json
index bc4531efbf..aebc1fb7f1 100644
--- a/schemas/src/elements/inlines/TextRun.json
+++ b/schemas/src/elements/inlines/TextRun.json
@@ -1,56 +1,56 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Inline",
- "description": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.",
- "version": "1.2",
- "properties": {
- "text": {
- "type": "string",
- "description": "Text to display. Markdown is not supported.",
- "required": true
- },
- "color": {
- "type": "Colors?",
- "description": "Controls the color of the text."
- },
- "fontType": {
- "type": "FontType?",
- "description": "The type of font to use"
- },
- "highlight": {
- "type": "boolean",
- "description": "If `true`, displays the text highlighted."
- },
- "isSubtle": {
- "type": "boolean?",
- "description": "If `true`, displays text slightly toned down to appear less prominent.",
- "default": false
- },
- "italic": {
- "type": "boolean",
- "description": "If `true`, displays the text using italic font."
- },
- "selectAction": {
- "type": "ISelectAction",
- "description": "Action to invoke when this text run is clicked. Visually changes the text run into a hyperlink. `Action.ShowCard` is not supported."
- },
- "size": {
- "type": "FontSize?",
- "description": "Controls size of text."
- },
- "strikethrough": {
- "type": "boolean",
- "description": "If `true`, displays the text with strikethrough."
- },
- "underline": {
- "type": "boolean",
- "description": "If `true`, displays the text with an underline.",
- "version":"1.3"
- },
- "weight": {
- "type": "FontWeight?",
- "description": "Controls the weight of the text."
- }
- },
- "shorthand": "text"
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Inline",
+ "description": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.",
+ "version": "1.2",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Text to display. Markdown is not supported.",
+ "required": true
+ },
+ "color": {
+ "type": "Colors?",
+ "description": "Controls the color of the text."
+ },
+ "fontType": {
+ "type": "FontType?",
+ "description": "The type of font to use"
+ },
+ "highlight": {
+ "type": "boolean",
+ "description": "If `true`, displays the text highlighted."
+ },
+ "isSubtle": {
+ "type": "boolean?",
+ "description": "If `true`, displays text slightly toned down to appear less prominent.",
+ "default": false
+ },
+ "italic": {
+ "type": "boolean",
+ "description": "If `true`, displays the text using italic font."
+ },
+ "selectAction": {
+ "type": "ISelectAction",
+ "description": "Action to invoke when this text run is clicked. Visually changes the text run into a hyperlink. `Action.ShowCard` is not supported."
+ },
+ "size": {
+ "type": "FontSize?",
+ "description": "Controls size of text."
+ },
+ "strikethrough": {
+ "type": "boolean",
+ "description": "If `true`, displays the text with strikethrough."
+ },
+ "underline": {
+ "type": "boolean",
+ "description": "If `true`, displays the text with an underline.",
+ "version":"1.3"
+ },
+ "weight": {
+ "type": "FontWeight?",
+ "description": "Controls the weight of the text."
+ }
+ },
+ "shorthand": "text"
}
diff --git a/schemas/src/elements/inputs/Input.Choice.json b/schemas/src/elements/inputs/Input.Choice.json
index 0061968032..f2c3a975ea 100644
--- a/schemas/src/elements/inputs/Input.Choice.json
+++ b/schemas/src/elements/inputs/Input.Choice.json
@@ -1,16 +1,16 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Describes a choice for use in a ChoiceSet.",
- "properties": {
- "title": {
- "type": "string",
- "description": "Text to display.",
- "required": true
- },
- "value": {
- "type": "string",
- "description": "The raw value for the choice. **NOTE:** do not use a `,` in the value, since a `ChoiceSet` with `isMultiSelect` set to `true` returns a comma-delimited string of choice values.",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Describes a choice for use in a ChoiceSet.",
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Text to display.",
+ "required": true
+ },
+ "value": {
+ "type": "string",
+ "description": "The raw value for the choice. **NOTE:** do not use a `,` in the value, since a `ChoiceSet` with `isMultiSelect` set to `true` returns a comma-delimited string of choice values.",
+ "required": true
+ }
+ }
+}
diff --git a/schemas/src/elements/inputs/Input.ChoiceSet.json b/schemas/src/elements/inputs/Input.ChoiceSet.json
index b2a254affe..76aaf94e83 100644
--- a/schemas/src/elements/inputs/Input.ChoiceSet.json
+++ b/schemas/src/elements/inputs/Input.ChoiceSet.json
@@ -1,32 +1,32 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Input",
- "description": "Allows a user to input a Choice.",
- "properties": {
- "choices": {
- "type": "Input.Choice[]",
- "description": "`Choice` options."
- },
- "isMultiSelect": {
- "type": "boolean",
- "description": "Allow multiple choices to be selected.",
- "default": false
- },
- "style": {
- "type": "ChoiceInputStyle"
- },
- "value": {
- "type": "string",
- "description": "The initial choice (or set of choices) that should be selected. For multi-select, specify a comma-separated string of values."
- },
- "placeholder": {
- "type": "string",
- "description": "Description of the input desired. Only visible when no selection has been made, the `style` is `compact` and `isMultiSelect` is `false`"
- },
- "wrap": {
- "type": "boolean",
- "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
- "version": "1.2"
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Input",
+ "description": "Allows a user to input a Choice.",
+ "properties": {
+ "choices": {
+ "type": "Input.Choice[]",
+ "description": "`Choice` options."
+ },
+ "isMultiSelect": {
+ "type": "boolean",
+ "description": "Allow multiple choices to be selected.",
+ "default": false
+ },
+ "style": {
+ "type": "ChoiceInputStyle"
+ },
+ "value": {
+ "type": "string",
+ "description": "The initial choice (or set of choices) that should be selected. For multi-select, specify a comma-separated string of values."
+ },
+ "placeholder": {
+ "type": "string",
+ "description": "Description of the input desired. Only visible when no selection has been made, the `style` is `compact` and `isMultiSelect` is `false`"
+ },
+ "wrap": {
+ "type": "boolean",
+ "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
+ "version": "1.2"
+ }
+ }
}
diff --git a/schemas/src/elements/inputs/Input.Date.json b/schemas/src/elements/inputs/Input.Date.json
index 4555baff97..44fcb4074e 100644
--- a/schemas/src/elements/inputs/Input.Date.json
+++ b/schemas/src/elements/inputs/Input.Date.json
@@ -1,23 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Input",
- "description": "Lets a user choose a date.",
- "properties": {
- "max": {
- "type": "string",
- "description": "Hint of maximum value expressed in YYYY-MM-DD(may be ignored by some clients)."
- },
- "min": {
- "type": "string",
- "description": "Hint of minimum value expressed in YYYY-MM-DD(may be ignored by some clients)."
- },
- "placeholder": {
- "type": "string",
- "description": "Description of the input desired. Displayed when no selection has been made."
- },
- "value": {
- "type": "string",
- "description": "The initial value for this field expressed in YYYY-MM-DD."
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Input",
+ "description": "Lets a user choose a date.",
+ "properties": {
+ "max": {
+ "type": "string",
+ "description": "Hint of maximum value expressed in YYYY-MM-DD(may be ignored by some clients)."
+ },
+ "min": {
+ "type": "string",
+ "description": "Hint of minimum value expressed in YYYY-MM-DD(may be ignored by some clients)."
+ },
+ "placeholder": {
+ "type": "string",
+ "description": "Description of the input desired. Displayed when no selection has been made."
+ },
+ "value": {
+ "type": "string",
+ "description": "The initial value for this field expressed in YYYY-MM-DD."
+ }
+ }
}
diff --git a/schemas/src/elements/inputs/Input.Number.json b/schemas/src/elements/inputs/Input.Number.json
index 5956a3e2b7..15266598f2 100644
--- a/schemas/src/elements/inputs/Input.Number.json
+++ b/schemas/src/elements/inputs/Input.Number.json
@@ -1,23 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Input",
- "description": "Allows a user to enter a number.",
- "properties": {
- "max": {
- "type": "number",
- "description": "Hint of maximum value (may be ignored by some clients)."
- },
- "min": {
- "type": "number",
- "description": "Hint of minimum value (may be ignored by some clients)."
- },
- "placeholder": {
- "type": "string",
- "description": "Description of the input desired. Displayed when no selection has been made."
- },
- "value": {
- "type": "number",
- "description": "Initial value for this field."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Input",
+ "description": "Allows a user to enter a number.",
+ "properties": {
+ "max": {
+ "type": "number",
+ "description": "Hint of maximum value (may be ignored by some clients)."
+ },
+ "min": {
+ "type": "number",
+ "description": "Hint of minimum value (may be ignored by some clients)."
+ },
+ "placeholder": {
+ "type": "string",
+ "description": "Description of the input desired. Displayed when no selection has been made."
+ },
+ "value": {
+ "type": "number",
+ "description": "Initial value for this field."
+ }
+ }
+}
diff --git a/schemas/src/elements/inputs/Input.Time.json b/schemas/src/elements/inputs/Input.Time.json
index e38a11a0e9..e1c2ca3f5c 100644
--- a/schemas/src/elements/inputs/Input.Time.json
+++ b/schemas/src/elements/inputs/Input.Time.json
@@ -1,23 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Input",
- "description": "Lets a user select a time.",
- "properties": {
- "max": {
- "type": "string",
- "description": "Hint of maximum value expressed in HH:MM (may be ignored by some clients)."
- },
- "min": {
- "type": "string",
- "description": "Hint of minimum value expressed in HH:MM (may be ignored by some clients)."
- },
- "placeholder": {
- "type": "string",
- "description": "Description of the input desired. Displayed when no time has been selected."
- },
- "value": {
- "type": "string",
- "description": "The initial value for this field expressed in HH:MM."
- }
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Input",
+ "description": "Lets a user select a time.",
+ "properties": {
+ "max": {
+ "type": "string",
+ "description": "Hint of maximum value expressed in HH:MM (may be ignored by some clients)."
+ },
+ "min": {
+ "type": "string",
+ "description": "Hint of minimum value expressed in HH:MM (may be ignored by some clients)."
+ },
+ "placeholder": {
+ "type": "string",
+ "description": "Description of the input desired. Displayed when no time has been selected."
+ },
+ "value": {
+ "type": "string",
+ "description": "The initial value for this field expressed in HH:MM."
+ }
+ }
}
diff --git a/schemas/src/elements/inputs/Input.Toggle.json b/schemas/src/elements/inputs/Input.Toggle.json
index 122751f415..1cdf7f7692 100644
--- a/schemas/src/elements/inputs/Input.Toggle.json
+++ b/schemas/src/elements/inputs/Input.Toggle.json
@@ -1,32 +1,32 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Input",
- "description": "Lets a user choose between two options.",
- "properties": {
- "title": {
- "type": "string",
- "description": "Title for the toggle",
- "required": true
- },
- "value": {
- "type": "string",
- "description": "The initial selected value. If you want the toggle to be initially on, set this to the value of `valueOn`'s value.",
- "default": "false"
- },
- "valueOff": {
- "type": "string",
- "description": "The value when toggle is off",
- "default": "false"
- },
- "valueOn": {
- "type": "string",
- "description": "The value when toggle is on",
- "default": "true"
- },
- "wrap": {
- "type": "boolean",
- "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
- "version": "1.2"
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Input",
+ "description": "Lets a user choose between two options.",
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Title for the toggle",
+ "required": true
+ },
+ "value": {
+ "type": "string",
+ "description": "The initial selected value. If you want the toggle to be initially on, set this to the value of `valueOn`'s value.",
+ "default": "false"
+ },
+ "valueOff": {
+ "type": "string",
+ "description": "The value when toggle is off",
+ "default": "false"
+ },
+ "valueOn": {
+ "type": "string",
+ "description": "The value when toggle is on",
+ "default": "true"
+ },
+ "wrap": {
+ "type": "boolean",
+ "description": "If `true`, allow text to wrap. Otherwise, text is clipped.",
+ "version": "1.2"
+ }
+ }
+}
diff --git a/schemas/src/elements/inputs/Input.json b/schemas/src/elements/inputs/Input.json
index 0c21e95acf..89eaacb903 100644
--- a/schemas/src/elements/inputs/Input.json
+++ b/schemas/src/elements/inputs/Input.json
@@ -27,4 +27,4 @@
}
}
}
-
\ No newline at end of file
+
diff --git a/schemas/src/enums/ActionMode.json b/schemas/src/enums/ActionMode.json
new file mode 100644
index 0000000000..c61910b6bb
--- /dev/null
+++ b/schemas/src/enums/ActionMode.json
@@ -0,0 +1,19 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Determines whether an action is displayed with a button or is moved to the overflow menu.",
+ "features": [
+ 4715
+ ],
+ "version": "1.5",
+ "values": [
+ {
+ "value": "primary",
+ "description": "Action is displayed as a button."
+ },
+ {
+ "value": "secondary",
+ "description": "Action is placed in an overflow menu (typically a popup menu under a `...` button)."
+ }
+ ]
+}
diff --git a/schemas/src/enums/ActionStyle.json b/schemas/src/enums/ActionStyle.json
index 8146a87492..4d1584524f 100644
--- a/schemas/src/enums/ActionStyle.json
+++ b/schemas/src/enums/ActionStyle.json
@@ -1,23 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.",
- "features": [
- 861
- ],
- "version": "1.2",
- "values": [
- {
- "value": "default",
- "description": "Action is displayed as normal"
- },
- {
- "value": "positive",
- "description": "Action is displayed with a positive style (typically the button becomes accent color)"
- },
- {
- "value": "destructive",
- "description": "Action is displayed with a destructive style (typically the button becomes red)"
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.",
+ "features": [
+ 861
+ ],
+ "version": "1.2",
+ "values": [
+ {
+ "value": "default",
+ "description": "Action is displayed as normal"
+ },
+ {
+ "value": "positive",
+ "description": "Action is displayed with a positive style (typically the button becomes accent color)"
+ },
+ {
+ "value": "destructive",
+ "description": "Action is displayed with a destructive style (typically the button becomes red)"
+ }
+ ]
+}
diff --git a/schemas/src/enums/BlockElementHeight.json b/schemas/src/enums/BlockElementHeight.json
index d6a22e085d..839c7d269b 100644
--- a/schemas/src/enums/BlockElementHeight.json
+++ b/schemas/src/enums/BlockElementHeight.json
@@ -1,14 +1,14 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- {
- "value": "auto",
- "description": "The height of the container will be determined by the height of its contents."
- },
- {
- "value": "stretch",
- "description": "The container will stretch its height to the available remaining height of the parent container."
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ {
+ "value": "auto",
+ "description": "The height of the container will be determined by the height of its contents."
+ },
+ {
+ "value": "stretch",
+ "description": "The container will stretch its height to the available remaining height of the parent container."
+ }
+ ]
+}
diff --git a/schemas/src/enums/ChoiceInputStyle.json b/schemas/src/enums/ChoiceInputStyle.json
index 19c39192f3..4a38898186 100644
--- a/schemas/src/enums/ChoiceInputStyle.json
+++ b/schemas/src/enums/ChoiceInputStyle.json
@@ -1,9 +1,14 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Style hint for `Input.ChoiceSet`.",
- "values": [
- "compact",
- "expanded"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Style hint for `Input.ChoiceSet`.",
+ "values": [
+ "compact",
+ "expanded",
+ {
+ "value": "filtered",
+ "description": "Allows users to filter choices in a choice set.",
+ "version": "1.5"
+ }
+ ]
+}
diff --git a/schemas/src/enums/Colors.json b/schemas/src/enums/Colors.json
index 0124e228c3..8e29d41484 100644
--- a/schemas/src/enums/Colors.json
+++ b/schemas/src/enums/Colors.json
@@ -1,13 +1,13 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "default",
- "dark",
- "light",
- "accent",
- "good",
- "warning",
- "attention"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "default",
+ "dark",
+ "light",
+ "accent",
+ "good",
+ "warning",
+ "attention"
+ ]
+}
diff --git a/schemas/src/enums/ContainerStyle.json b/schemas/src/enums/ContainerStyle.json
index 9512dc6531..2db0286f57 100644
--- a/schemas/src/enums/ContainerStyle.json
+++ b/schemas/src/enums/ContainerStyle.json
@@ -1,24 +1,24 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "default",
- "emphasis",
- {
- "value": "good",
- "version": "1.2"
- },
- {
- "value": "attention",
- "version": "1.2"
- },
- {
- "value": "warning",
- "version": "1.2"
- },
- {
- "value": "accent",
- "version": "1.2"
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "default",
+ "emphasis",
+ {
+ "value": "good",
+ "version": "1.2"
+ },
+ {
+ "value": "attention",
+ "version": "1.2"
+ },
+ {
+ "value": "warning",
+ "version": "1.2"
+ },
+ {
+ "value": "accent",
+ "version": "1.2"
+ }
+ ]
+}
diff --git a/schemas/src/enums/FallbackOption.json b/schemas/src/enums/FallbackOption.json
index 2a729eec92..1a460c75f9 100644
--- a/schemas/src/enums/FallbackOption.json
+++ b/schemas/src/enums/FallbackOption.json
@@ -1,10 +1,10 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- {
- "value": "drop",
- "description": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher."
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ {
+ "value": "drop",
+ "description": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher."
+ }
+ ]
+}
diff --git a/schemas/src/enums/FontSize.json b/schemas/src/enums/FontSize.json
index 3adaa603aa..2207d53f16 100644
--- a/schemas/src/enums/FontSize.json
+++ b/schemas/src/enums/FontSize.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "default",
- "small",
- "medium",
- "large",
- "extraLarge"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "default",
+ "small",
+ "medium",
+ "large",
+ "extraLarge"
+ ]
+}
diff --git a/schemas/src/enums/FontType.json b/schemas/src/enums/FontType.json
index 8bce7c8a93..17fe902e93 100644
--- a/schemas/src/enums/FontType.json
+++ b/schemas/src/enums/FontType.json
@@ -1,8 +1,8 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "default",
- "monospace"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "default",
+ "monospace"
+ ]
+}
diff --git a/schemas/src/enums/FontWeight.json b/schemas/src/enums/FontWeight.json
index 7046d69367..dcecb9c6bc 100644
--- a/schemas/src/enums/FontWeight.json
+++ b/schemas/src/enums/FontWeight.json
@@ -1,9 +1,9 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "default",
- "lighter",
- "bolder"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "default",
+ "lighter",
+ "bolder"
+ ]
+}
diff --git a/schemas/src/enums/HorizontalAlignment.json b/schemas/src/enums/HorizontalAlignment.json
index 50980f07bd..168c234ef3 100644
--- a/schemas/src/enums/HorizontalAlignment.json
+++ b/schemas/src/enums/HorizontalAlignment.json
@@ -1,10 +1,10 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Controls how content is horizontally positioned within its container.",
- "values": [
- "left",
- "center",
- "right"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Controls how content is horizontally positioned within its container.",
+ "values": [
+ "left",
+ "center",
+ "right"
+ ]
+}
diff --git a/schemas/src/enums/ImageFillMode.json b/schemas/src/enums/ImageFillMode.json
index 86656fdb0b..87c40f2137 100644
--- a/schemas/src/enums/ImageFillMode.json
+++ b/schemas/src/enums/ImageFillMode.json
@@ -1,22 +1,22 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- {
- "value": "cover",
- "description": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model."
- },
- {
- "value": "repeatHorizontally",
- "description": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored."
- },
- {
- "value": "repeatVertically",
- "description": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**)."
- },
- {
- "value": "repeat",
- "description": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**)."
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ {
+ "value": "cover",
+ "description": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model."
+ },
+ {
+ "value": "repeatHorizontally",
+ "description": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored."
+ },
+ {
+ "value": "repeatVertically",
+ "description": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**)."
+ },
+ {
+ "value": "repeat",
+ "description": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**)."
+ }
+ ]
+}
diff --git a/schemas/src/enums/ImageSize.json b/schemas/src/enums/ImageSize.json
index b7bc3eee64..1e5b67cfe1 100644
--- a/schemas/src/enums/ImageSize.json
+++ b/schemas/src/enums/ImageSize.json
@@ -1,27 +1,27 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Controls the approximate size of the image. The physical dimensions will vary per host. Every option preserves aspect ratio.",
- "values": [
- {
- "value": "auto",
- "description": "Image will scale down to fit if needed, but will not scale up to fill the area."
- },
- {
- "value": "stretch",
- "description": "Image with both scale down and up to fit as needed."
- },
- {
- "value": "small",
- "description": "Image is displayed with a fixed small width, where the width is determined by the host."
- },
- {
- "value": "medium",
- "description": "Image is displayed with a fixed medium width, where the width is determined by the host."
- },
- {
- "value": "large",
- "description": "Image is displayed with a fixed large width, where the width is determined by the host."
- }
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Controls the approximate size of the image. The physical dimensions will vary per host. Every option preserves aspect ratio.",
+ "values": [
+ {
+ "value": "auto",
+ "description": "Image will scale down to fit if needed, but will not scale up to fill the area."
+ },
+ {
+ "value": "stretch",
+ "description": "Image with both scale down and up to fit as needed."
+ },
+ {
+ "value": "small",
+ "description": "Image is displayed with a fixed small width, where the width is determined by the host."
+ },
+ {
+ "value": "medium",
+ "description": "Image is displayed with a fixed medium width, where the width is determined by the host."
+ },
+ {
+ "value": "large",
+ "description": "Image is displayed with a fixed large width, where the width is determined by the host."
+ }
+ ]
+}
diff --git a/schemas/src/enums/ImageStyle.json b/schemas/src/enums/ImageStyle.json
index 0f3238be38..0a75f137ab 100644
--- a/schemas/src/enums/ImageStyle.json
+++ b/schemas/src/enums/ImageStyle.json
@@ -1,9 +1,9 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Controls how this `Image` is displayed.",
- "values": [
- "default",
- "person"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Controls how this `Image` is displayed.",
+ "values": [
+ "default",
+ "person"
+ ]
+}
diff --git a/schemas/src/enums/Spacing.json b/schemas/src/enums/Spacing.json
index 0ebb6560e3..7bcdc9140a 100644
--- a/schemas/src/enums/Spacing.json
+++ b/schemas/src/enums/Spacing.json
@@ -1,14 +1,14 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Specifies how much spacing. Hosts pick the exact pixel amounts for each of these.",
- "values": [
- "default",
- "none",
- "small",
- "medium",
- "large",
- "extraLarge",
- "padding"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Specifies how much spacing. Hosts pick the exact pixel amounts for each of these.",
+ "values": [
+ "default",
+ "none",
+ "small",
+ "medium",
+ "large",
+ "extraLarge",
+ "padding"
+ ]
+}
diff --git a/schemas/src/enums/TextBlockStyle.json b/schemas/src/enums/TextBlockStyle.json
index 34a1dc163f..d0ca4a6f0e 100644
--- a/schemas/src/enums/TextBlockStyle.json
+++ b/schemas/src/enums/TextBlockStyle.json
@@ -1,16 +1,16 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Controls how a TextBlock behaves.",
- "version": "1.5",
- "values": [
- {
- "value": "default",
- "description": "This is the default style which provide no special styling or behavior."
- },
- {
- "value": "heading",
- "description": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity."
- }
- ]
- }
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Controls how a TextBlock behaves.",
+ "version": "1.5",
+ "values": [
+ {
+ "value": "default",
+ "description": "This is the default style which provide no special styling or behavior."
+ },
+ {
+ "value": "heading",
+ "description": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity."
+ }
+ ]
+ }
diff --git a/schemas/src/enums/TextInputStyle.json b/schemas/src/enums/TextInputStyle.json
index 2af3cceb18..ea5182e96b 100644
--- a/schemas/src/enums/TextInputStyle.json
+++ b/schemas/src/enums/TextInputStyle.json
@@ -1,11 +1,16 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "description": "Style hint for text input.",
- "values": [
- "text",
- "tel",
- "url",
- "email"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "description": "Style hint for text input.",
+ "values": [
+ "text",
+ "tel",
+ "url",
+ "email",
+ {
+ "value": "password",
+ "description": "Display input text with password masking.",
+ "version": "1.5"
+ }
+ ]
+}
diff --git a/schemas/src/enums/VerticalAlignment.json b/schemas/src/enums/VerticalAlignment.json
index e22a0a8029..7f87b3d509 100644
--- a/schemas/src/enums/VerticalAlignment.json
+++ b/schemas/src/enums/VerticalAlignment.json
@@ -1,9 +1,9 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "top",
- "center",
- "bottom"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "top",
+ "center",
+ "bottom"
+ ]
+}
diff --git a/schemas/src/enums/VerticalContentAlignment.json b/schemas/src/enums/VerticalContentAlignment.json
index e22a0a8029..7f87b3d509 100644
--- a/schemas/src/enums/VerticalContentAlignment.json
+++ b/schemas/src/enums/VerticalContentAlignment.json
@@ -1,9 +1,9 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "classType": "Enum",
- "values": [
- "top",
- "center",
- "bottom"
- ]
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "classType": "Enum",
+ "values": [
+ "top",
+ "center",
+ "bottom"
+ ]
+}
diff --git a/schemas/src/shared/AuthCardButton.json b/schemas/src/shared/AuthCardButton.json
index ec2879a1bf..9dca974d33 100644
--- a/schemas/src/shared/AuthCardButton.json
+++ b/schemas/src/shared/AuthCardButton.json
@@ -1,25 +1,25 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).",
- "version": "1.4",
- "properties": {
- "type": {
- "type": "string",
- "description": "The type of the button.",
- "required": true
- },
- "title": {
- "type": "string",
- "description": "The caption of the button."
- },
- "image": {
- "type": "string",
- "description": "A URL to an image to display alongside the button's caption."
- },
- "value": {
- "type": "string",
- "description": "The value associated with the button. The meaning of value depends on the button's type.",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).",
+ "version": "1.4",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "The type of the button.",
+ "required": true
+ },
+ "title": {
+ "type": "string",
+ "description": "The caption of the button."
+ },
+ "image": {
+ "type": "string",
+ "description": "A URL to an image to display alongside the button's caption."
+ },
+ "value": {
+ "type": "string",
+ "description": "The value associated with the button. The meaning of value depends on the button's type.",
+ "required": true
+ }
+ }
+}
diff --git a/schemas/src/shared/Authentication.json b/schemas/src/shared/Authentication.json
index ce0ba80a33..8e0d8fdcc5 100644
--- a/schemas/src/shared/Authentication.json
+++ b/schemas/src/shared/Authentication.json
@@ -1,23 +1,23 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)",
- "version": "1.4",
- "properties": {
- "text": {
- "type": "string",
- "description": "Text that can be displayed to the end user when prompting them to authenticate."
- },
- "connectionName": {
- "type": "string",
- "description": "The identifier for registered OAuth connection setting information."
- },
- "tokenExchangeResource": {
- "type": "TokenExchangeResource",
- "description": "Provides information required to enable on-behalf-of single sign-on user authentication."
- },
- "buttons": {
- "type": "AuthCardButton[]",
- "description": "Buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type \"signin\". Other button types are not currently supported."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)",
+ "version": "1.4",
+ "properties": {
+ "text": {
+ "type": "string",
+ "description": "Text that can be displayed to the end user when prompting them to authenticate."
+ },
+ "connectionName": {
+ "type": "string",
+ "description": "The identifier for registered OAuth connection setting information."
+ },
+ "tokenExchangeResource": {
+ "type": "TokenExchangeResource",
+ "description": "Provides information required to enable on-behalf-of single sign-on user authentication."
+ },
+ "buttons": {
+ "type": "AuthCardButton[]",
+ "description": "Buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type \"signin\". Other button types are not currently supported."
+ }
+ }
+}
diff --git a/schemas/src/shared/BackgroundImage.json b/schemas/src/shared/BackgroundImage.json
index 56d3e16486..468f76e616 100644
--- a/schemas/src/shared/BackgroundImage.json
+++ b/schemas/src/shared/BackgroundImage.json
@@ -1,24 +1,24 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF",
- "properties": {
- "url": {
- "type": "uri-reference",
- "description": "The URL (or data url) of the image. Acceptable formats are PNG, JPEG, and GIF",
- "required": true
- },
- "fillMode": {
- "type": "ImageFillMode",
- "description": "Describes how the image should fill the area."
- },
- "horizontalAlignment": {
- "type": "HorizontalAlignment",
- "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode."
- },
- "verticalAlignment": {
- "type": "VerticalAlignment",
- "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode."
- }
- },
- "version": "1.2"
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF",
+ "properties": {
+ "url": {
+ "type": "uri-reference",
+ "description": "The URL (or data url) of the image. Acceptable formats are PNG, JPEG, and GIF",
+ "required": true
+ },
+ "fillMode": {
+ "type": "ImageFillMode",
+ "description": "Describes how the image should fill the area."
+ },
+ "horizontalAlignment": {
+ "type": "HorizontalAlignment",
+ "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode."
+ },
+ "verticalAlignment": {
+ "type": "VerticalAlignment",
+ "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode."
+ }
+ },
+ "version": "1.2"
}
diff --git a/schemas/src/shared/Item.json b/schemas/src/shared/Item.json
index 6256c71c08..f58b25aa9a 100644
--- a/schemas/src/shared/Item.json
+++ b/schemas/src/shared/Item.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "isAbstract": true,
- "properties": {
- "requires": {
- "type": "Dictionary",
- "description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.",
- "version": "1.2"
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "isAbstract": true,
+ "properties": {
+ "requires": {
+ "type": "Dictionary",
+ "description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.",
+ "version": "1.2"
+ }
+ }
+}
diff --git a/schemas/src/shared/Refresh.json b/schemas/src/shared/Refresh.json
index 96ea0de9a9..d7d99e825c 100644
--- a/schemas/src/shared/Refresh.json
+++ b/schemas/src/shared/Refresh.json
@@ -1,15 +1,15 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines how a card can be refreshed by making a request to the target Bot.",
- "version": "1.4",
- "properties": {
- "action": {
- "type": "Action.Execute",
- "description": "The action to be executed to refresh the card. Clients can run this refresh action automatically or can provide an affordance for users to trigger it manually."
- },
- "userIds": {
- "type": "string[]",
- "description": "A list of user Ids informing the client for which users should the refresh action should be run automatically. Some clients will not run the refresh action automatically unless this property is specified. Some clients may ignore this property and always run the refresh action automatically."
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines how a card can be refreshed by making a request to the target Bot.",
+ "version": "1.4",
+ "properties": {
+ "action": {
+ "type": "Action.Execute",
+ "description": "The action to be executed to refresh the card. Clients can run this refresh action automatically or can provide an affordance for users to trigger it manually."
+ },
+ "userIds": {
+ "type": "string[]",
+ "description": "A list of user Ids informing the client for which users should the refresh action should be run automatically. Some clients will not run the refresh action automatically unless this property is specified. Some clients may ignore this property and always run the refresh action automatically."
+ }
+ }
+}
diff --git a/schemas/src/shared/ToggleableItem.json b/schemas/src/shared/ToggleableItem.json
index 6d53cacd62..f147bfdab1 100644
--- a/schemas/src/shared/ToggleableItem.json
+++ b/schemas/src/shared/ToggleableItem.json
@@ -1,17 +1,17 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "extends": "Item",
- "isAbstract": true,
- "properties": {
- "id": {
- "type": "string",
- "description": "A unique identifier associated with the item."
- },
- "isVisible": {
- "type": "boolean",
- "description": "If `false`, this item will be removed from the visual tree.",
- "default": true,
- "version": "1.2"
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "extends": "Item",
+ "isAbstract": true,
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "A unique identifier associated with the item."
+ },
+ "isVisible": {
+ "type": "boolean",
+ "description": "If `false`, this item will be removed from the visual tree.",
+ "default": true,
+ "version": "1.2"
+ }
+ }
+}
diff --git a/schemas/src/shared/TokenExchangeResource.json b/schemas/src/shared/TokenExchangeResource.json
index 62182b4929..c5c31f338e 100644
--- a/schemas/src/shared/TokenExchangeResource.json
+++ b/schemas/src/shared/TokenExchangeResource.json
@@ -1,22 +1,22 @@
{
- "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
- "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)",
- "version": "1.4",
- "properties": {
- "id": {
- "type": "string",
- "description": "The unique identified of this token exchange instance.",
- "required": true
- },
- "uri": {
- "type": "string",
- "description": "An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.",
- "required": true
- },
- "providerId": {
- "type": "string",
- "description": "An identifier for the identity provider with which to attempt a token exchange.",
- "required": true
- }
- }
-}
\ No newline at end of file
+ "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json",
+ "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)",
+ "version": "1.4",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The unique identified of this token exchange instance.",
+ "required": true
+ },
+ "uri": {
+ "type": "string",
+ "description": "An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.",
+ "required": true
+ },
+ "providerId": {
+ "type": "string",
+ "description": "An identifier for the identity provider with which to attempt a token exchange.",
+ "required": true
+ }
+ }
+}
diff --git a/scripts/FormatSource.ps1 b/scripts/FormatSource.ps1
new file mode 100644
index 0000000000..a8fa0c1192
--- /dev/null
+++ b/scripts/FormatSource.ps1
@@ -0,0 +1,293 @@
+<#
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See LICENSE in the project root for license information.
+
+this file work is a derivative of https://github.com/microsoft/MixedReality-GraphicsTools-Unreal/blob/main/Tools/scripts/Common.psm1
+#>
+
+<#
+.SYNOPSIS
+ Run clang-format on all source files.
+.PARAMETER Path
+ Path to the directory (or file) to be processed recursively. By default scans the entire repo.
+.PARAMETER ClangFormat
+ Path to clang-format executable, e.g. "C:\Tools\clang-format.exe"
+.PARAMETER ModifiedOnly
+ Scan only files modified in current git checkout.
+.PARAMETER Staged
+ Check only files staged for commit
+.PARAMETER ChangesFile
+ Scan only files listed in provided txt file (one path per line). Paths need to be relative to repo root.
+.PARAMETER Verify
+ Whether to fail if files are not formatted (instead of applying changes).
+.PARAMETER UseVS2019
+ Use ClangFormat provided with Visual Studio 2019. This version will take precedence over -ClangFormat parameter
+ and PATH variable.
+.PARAMETER NoFail`
+ Do not set RC=1 when errors found, i.e. only report errors in output.
+#>
+[CmdletBinding()]
+param (
+ [string]$Path = $null,
+ [string]$ClangFormat = $null,
+ [boolean]$ModifiedOnly = $True,
+ [boolean]$Staged = $false,
+ [string]$ChangesFile = $null,
+ [boolean]$Verify = $false,
+ [boolean]$UseVS2019 = $true,
+ [boolean]$NoFail = $false
+)
+
+# Only check source files
+$FilePatterns = "\.(h|cpp|hpp|c|m|mm)$"
+
+#PerfApp is C++/Cx project and not supported
+$IgnoreFolders = "(Generated Files|include|PerfApp|pic2card|android|uwp|nodejs|vscode|community|dotnet|node_modules|out|.git|.vs|.vscode|bin|CMakeFiles|generated|debug|x64)$"
+
+$RepoRoot = (Resolve-Path "$PSScriptRoot\..")
+
+<#
+.SYNOPSIS
+ Given the path to the list of raw git changes, returns an array of
+ those changes rooted in the git root directory.
+.DESCRIPTION
+ For example, the raw git changes will contain lines like:
+
+ Assets/File.cs
+
+ This function will return a list of paths that look like (assuming
+ that RepoRoot is C:\repo):
+
+ C:\repo\Assets\File.cs
+#>
+function GetChangedFiles {
+ [CmdletBinding()]
+ param(
+ [string]$Filename,
+ [string]$RepoRoot
+ )
+ process {
+ $rawContent = Get-Content -Path $Filename
+ $processedContent = @()
+ foreach ($line in $rawContent) {
+ $joinedPath = Join-Path -Path $RepoRoot -ChildPath $line
+ $processedContent += $joinedPath
+ }
+ $processedContent
+ }
+}
+
+if ([string]::IsNullOrEmpty($Path))
+{
+ $Path = $RepoRoot
+}
+
+$ModifiedFiles = $null
+
+if ($ChangesFile)
+{
+ if (-not (Test-Path -Path $ChangesFile -PathType Leaf))
+ {
+ Write-Host -ForegroundColor Red "ChangesFile not found: $ChangesFile"
+ Write-Host "Checking all source files"
+ }
+ else
+ {
+ $ModifiedFiles = GetChangedFiles -Filename $ChangesFile -RepoRoot $RepoRoot
+ if (($null -eq $ModifiedFiles) -or ($ModifiedFiles.Count -eq 0))
+ {
+ Write-Host -ForegroundColor Green "No modified files to format."
+ exit 0
+ }
+ }
+}
+elseif ($ModifiedOnly -or $Staged)
+{
+ $ModifiedFiles = @()
+ Push-Location -Path $RepoRoot
+ $Success = $False
+ try
+ {
+ if ($Staged)
+ {
+ $Status = (& git diff-index --cached --name-only HEAD)
+ $Success = ($LASTEXITCODE -eq 0)
+ $Status | ForEach-Object {
+ $FullPath = Resolve-Path $_ -ErrorAction SilentlyContinue
+ $FileName = Split-Path -Leaf -Path $FullPath
+ if ($FileName -match $FilePatterns)
+ {
+ $ModifiedFiles += $FullPath
+ }
+ }
+ }
+ else
+ {
+ $Status = (& git status --porcelain)
+ $Success = ($LASTEXITCODE -eq 0)
+ $Status | ForEach-Object {
+ $FullPath = (Resolve-Path ($_.Trim() -split " ",2)[-1] -ErrorAction SilentlyContinue)
+ $FileName = Split-Path -Leaf -Path $FullPath
+ if ($FileName -match $FilePatterns)
+ {
+ $ModifiedFiles += $FullPath
+ }
+ }
+ }
+ }
+ catch
+ {
+ # empty
+ }
+ if (-not $Success)
+ {
+ Write-Host -ForegroundColor Red "Could not get the list of modified files. Check if git is configured correctly."
+ exit 1
+ }
+ Pop-Location
+ if (($null -eq $ModifiedFiles) -or ($ModifiedFiles.Count -eq 0))
+ {
+ Write-Host -ForegroundColor Green "No modified files to format."
+ exit 0
+ }
+}
+
+if ($UseVS2019)
+{
+ # Attempt to use clang-format from Visual Studio 2019 if available
+ $LLVMDirs = @("${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm",
+ "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm",
+ "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm")
+ foreach ($LLVMDir in $LLVMDirs)
+ {
+ $VS2019ClangFormatX64 = "$LLVMDir\x64\bin\clang-format.exe"
+ $VS2019ClangFormatX86 = "$LLVMDir\bin\clang-format.exe"
+ if (Test-Path -Type Leaf -Path $VS2019ClangFormatX64)
+ {
+ $ClangFormat = $VS2019ClangFormatX64
+ break
+ }
+ elseif (Test-Path -Type Leaf -Path $VS2019ClangFormatX86)
+ {
+ $ClangFormat = $VS2019ClangFormatX86
+ break
+ }
+ }
+}
+elseif ([string]::IsNullOrEmpty($ClangFormat) -or (-not (Test-Path -Type Leaf -Path $ClangFormat)))
+{
+ # Check for clang-format in PATH
+ $ClangFormat = (Get-Command -Name "clang-format.exe" -ErrorAction SilentlyContinue)
+}
+
+if ([string]::IsNullOrEmpty($ClangFormat))
+{
+ Write-Host -ForegroundColor Red "clang-format.exe not found. Please install VS2019 or make sure clang-format.exe is in PATH."
+ exit 1
+}
+
+Write-Host "[clang-format] Path is $ClangFormat"
+Write-Host "[clang-format] Version is: "
+ & $ClangFormat --version
+
+function Format-Directory
+{
+ [CmdletBinding()]
+ param (
+ [Parameter(Mandatory=$True)]
+ [string]$Path,
+ [Parameter(Mandatory=$True)]
+ [string]$ClangFormat,
+ [string]$RepoRoot = $null,
+ [AllowEmptyString()][string]$FilePatterns = $null,
+ [string[]]$ModifiedFiles = $null,
+ [boolean]$Verify = $false
+ )
+ process
+ {
+ if (-not (Test-Path -Path $Path))
+ {
+ Write-Host -ForegroundColor Red "Item not found: $Path"
+ return $False
+ }
+ if ($null -eq $FilePatterns)
+ {
+ $FilePatterns = ""
+ }
+ $Path = Resolve-Path $Path
+ $Success = $True
+ $FilesToFormat = @()
+ if ((Get-Item -Path $Path) -is [System.IO.DirectoryInfo])
+ {
+ Get-ChildItem -Path $Path -File `
+ | Where-Object { $_ -match $FilePatterns } `
+ | ForEach-Object {
+ $FilePath = "$Path\$_"
+ if (($null -eq $ModifiedFiles) -or ($ModifiedFiles -contains $FilePath))
+ {
+ if (!($FilePath -match "Intermediate"))
+ {
+ $FilesToFormat += $FilePath
+ }
+ }
+ }
+ Get-ChildItem -Path $Path -Directory `
+ | Where-Object { $_ -notmatch $IgnoreFolders } `
+ | ForEach-Object {
+ $SubResult = (Format-Directory -Path "$Path\$_" `
+ -ClangFormat $ClangFormat `
+ -RepoRoot $RepoRoot `
+ -FilePatterns $FilePatterns `
+ -ModifiedFiles $ModifiedFiles `
+ -Verify $Verify)
+ $Success = $SubResult -and $Success
+ }
+ }
+ else
+ {
+ $FilesToFormat += $Path
+ }
+ $FilesToFormat | ForEach-Object {
+ if ($Verify)
+ {
+ Write-Host "[clang-format] Checking formatting: $_"
+ & $ClangFormat --style=file -Werror --dry-run $_
+ }
+ else
+ {
+ Write-Host "[clang-format] Formatting $_"
+ & $ClangFormat --style=file -Werror -i $_
+ }
+ $Success = (0 -eq $LASTEXITCODE) -and $Success
+ }
+ return $Success
+ }
+}
+
+$Success = (Format-Directory -Path $Path `
+ -ClangFormat $ClangFormat `
+ -FilePatterns $FilePatterns `
+ -ModifiedFiles $ModifiedFiles `
+ -RepoRoot $RepoRoot `
+ -Verify $Verify)
+
+if ($Success)
+{
+ Write-Host "Done."
+ exit 0
+}
+else
+{
+ Write-Host "You may need to update Visual studio and have the correct clang-format version in your local machine"
+ Write-Host -ForegroundColor Red "Errors found (see output). Please make sure to resolve all issues before opening a Pull Request."
+ Write-Host -ForegroundColor Red "Formatting can be applied by running:"
+ Write-Host -ForegroundColor Red " PowerShell.exe -ExecutionPolicy Bypass $PSCommandPath -ModifiedOnly `$False` [-Path ]"
+ Write-Host -ForegroundColor Red "or run below command in source/nodejs "
+ Write-Host -ForegroundColor Red " npm run format"
+
+ if ($NoFail)
+ {
+ exit 0 # do not prevent commit when used in pre-commit hook
+ }
+ exit 1
+}
\ No newline at end of file
diff --git a/scripts/hooks/clangFormatFunc b/scripts/hooks/clangFormatFunc
new file mode 100644
index 0000000000..5b536f1c8a
--- /dev/null
+++ b/scripts/hooks/clangFormatFunc
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+
+endWith='\.(cpp|cc|h|hpp)$'
+ignoreFolder='/(PerfApp|android|ios|nodejs|vscode|community|dotnet)/'
+
+function checkFormat() {
+ GIT_ROOT=`git rev-parse --show-toplevel`
+ git diff-index --cached --name-only HEAD | grep -iE "${endWith}" | grep -iE -v "${ignoreFolder}" | xargs -I _ -P 0 "$clangFormat" --dry-run -Werror --ferror-limit=1 --verbose "$GIT_ROOT/_"
+ return $?
+}
+
+function fixFormat() {
+
+ GIT_ROOT=`git rev-parse --show-toplevel`
+ git diff-index --cached --name-only HEAD | grep -iE "${endWith}" | grep -iE -v "${ignoreFolder}" | xargs -I _ -P 0 "$clangFormat" --style=file -Werror -i --verbose "$GIT_ROOT/_"
+ return $?
+}
diff --git a/scripts/hooks/pre-commit b/scripts/hooks/pre-commit
new file mode 100644
index 0000000000..ebbb71a719
--- /dev/null
+++ b/scripts/hooks/pre-commit
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+
+# clangFormat="c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin\clang-format.exe"
+if [ -z "$clangFormat" ]; then
+ clangFormat="clang-format"
+else
+ if [[ ! -f "$clangFormat" ]]; then
+ echo "Can't find the binary $clangFormat"
+ exit 1
+ fi
+fi
+
+"$clangFormat" --version
+if [ "$?" -ne "0" ]; then
+ echo "'git commit' aborted! Please make sure clangFormat is set correctly in pre-commit."
+ exit 1
+fi
+
+. "scripts/hooks/clangFormatFunc"
+
+checkFormat
+
+if [ "$?" -ne "0" ]; then
+ echo "start auto fix clang-format"
+ fixFormat
+ if [ "$?" -ne "0" ]; then
+ echo "'git commit' aborted! Clang-format auto fix failed, and you have to manually fix the format issue."
+ else
+ echo "'git commit' aborted! But clang-format auto fix success, please re-run 'git add' and 'git commit'."
+ fi
+ exit 1
+else
+ echo "clang-format check passed, and will continue the commit"
+fi
diff --git a/source/EULA-Xamarin.txt b/source/EULA-Xamarin.txt
deleted file mode 100644
index b337afae72..0000000000
--- a/source/EULA-Xamarin.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-MICROSOFT SOFTWARE LICENSE TERMS
-ADAPTIVECARDS.RENDERING.XAMARIN
-________________________________________
-IF YOU LIVE IN (OR ARE A BUSINESS WITH A PRINCIPAL PLACE OF BUSINESS IN) THE UNITED STATES, PLEASE READ THE “BINDING ARBITRATION AND CLASS ACTION WAIVER” SECTION BELOW. IT AFFECTS HOW DISPUTES ARE RESOLVED.
-________________________________________
-
-These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft’s rights relating to pre-updated software or services).
-
-IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.
-
-1. INSTALLATION AND USE RIGHTS.
-a) General. Subject to the terms of this agreement, you may install and use any number of copies of the software to develop and test your applications, solely for use on Windows.
-b) Included Microsoft Applications. The software may include other Microsoft applications. These license terms apply to those included applications, if any, unless other license terms are provided with the other Microsoft applications.
-c) Microsoft Platforms. The software may include components from Microsoft Windows. These components are governed by separate agreements and their own product support policies, as described in the license terms found in the installation directory for that component or in the “Licenses” folder accompanying the software.
-2. TIME-SENSITIVE SOFTWARE.
-a) Period. This agreement is effective on your acceptance and terminates on the earlier of (i) 30 days following first availability of a commercial release of the software or (ii) upon termination by Microsoft. Microsoft may extend this agreement in its discretion.
-b) Access to data. You may not be able to access data used in the software when it stops running.
-3. DATA.
-a) Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the product documentation. There are also some features in the software that may enable you to collect data from users of your applications. If you use these features to enable data collection in your applications, you must comply with applicable law, including providing appropriate notices to users of your applications. You can learn more about data collection and use in the help documentation and the privacy statement at https://aka.ms/privacy. Your use of the software operates as your consent to these practices.
-b) Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr.
-4. PRE-RELEASE SOFTWARE. The software is a pre-release version. It may not operate correctly. It may be different from the commercially released version.
-5. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to):
-a) work around any technical limitations in the software that only allow you to use it in certain ways;
-b) reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software;
-c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software;
-d) use the software in any way that is against the law or to create or propagate malware; or
-e) share, publish, distribute, or lease the software, provide the software as a stand-alone offering for others to use, or transfer the software or this agreement to any third party.
-6. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting.
-7. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is “as is”, “with all faults”, and without warranty of any kind.
-8. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices.
-9. BINDING ARBITRATION AND CLASS ACTION WAIVER. This Section applies if you live in (or, if a business, your principal place of business is in) the United States. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can’t, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act (“FAA”), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms.
-10. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.
-11. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).
-12. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:
-a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.
-b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software.
-c) Germany and Austria.
-i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.
-ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law.
-Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.
-13. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-14. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.
-This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.
-It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.
diff --git a/source/android/README.md b/source/android/README.md
index a463007fa8..cdc644d881 100644
--- a/source/android/README.md
+++ b/source/android/README.md
@@ -39,8 +39,11 @@ If you get a build failure similar to "UnsupportedClassVersionError 52.0" then f
compile 'io.adaptivecards:adaptivecards-android:1.2.0'
For more information, please go to http://search.maven.org/ and search adaptivecards-android
-# To test
-1. Follow steps 1 and 2 from [To compile](#to-compile) section
-2. Select "mobile" or "mobilechatapp" project
-3. Click "Run" button and select device (physical or virtual)
- 3.1 If running the mobile app, you must copy the samples to the device
+## Testing
+
+The Android Renderer currently supports the following type of testing:
+
+| Type | Project | Location |
+| --- | --- | --- |
+| Unit tests | adaptivecards | [Location](./adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/) |
+| UI tests | uitestapp | [Location](./uitestapp/src/androidTest/java/io.adaptivecards.uitestapp) |
\ No newline at end of file
diff --git a/source/android/adaptivecards/CMakeLists.txt b/source/android/adaptivecards/CMakeLists.txt
index b51f45366e..48e9f8196c 100644
--- a/source/android/adaptivecards/CMakeLists.txt
+++ b/source/android/adaptivecards/CMakeLists.txt
@@ -25,22 +25,22 @@ add_library( # Sets the name of the library.
# file are automatically included.
../../shared/cpp/ObjectModel/jsoncpp.cpp
../../shared/cpp/ObjectModel/ActionParserRegistration.cpp
- ../../shared/cpp/ObjectModel/AdaptiveBase64Util.cpp
../../shared/cpp/ObjectModel/ActionSet.cpp
+ ../../shared/cpp/ObjectModel/AdaptiveBase64Util.cpp
../../shared/cpp/ObjectModel/AdaptiveCardParseException.cpp
../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp
../../shared/cpp/ObjectModel/AuthCardButton.cpp
../../shared/cpp/ObjectModel/Authentication.cpp
- ../../shared/cpp/ObjectModel/BaseActionElement.cpp
../../shared/cpp/ObjectModel/BackgroundImage.cpp
+ ../../shared/cpp/ObjectModel/BaseActionElement.cpp
../../shared/cpp/ObjectModel/BaseCardElement.cpp
../../shared/cpp/ObjectModel/BaseElement.cpp
../../shared/cpp/ObjectModel/BaseInputElement.cpp
../../shared/cpp/ObjectModel/ChoiceInput.cpp
../../shared/cpp/ObjectModel/ChoiceSetInput.cpp
+ ../../shared/cpp/ObjectModel/CollectionCoreElement.cpp
../../shared/cpp/ObjectModel/Column.cpp
../../shared/cpp/ObjectModel/ColumnSet.cpp
- ../../shared/cpp/ObjectModel/CollectionTypeElement.cpp
../../shared/cpp/ObjectModel/Container.cpp
../../shared/cpp/ObjectModel/DateInput.cpp
../../shared/cpp/ObjectModel/DateTimePreparsedToken.cpp
@@ -72,6 +72,7 @@ add_library( # Sets the name of the library.
../../shared/cpp/ObjectModel/SemanticVersion.cpp
../../shared/cpp/ObjectModel/SharedAdaptiveCard.cpp
../../shared/cpp/ObjectModel/ShowCardAction.cpp
+ ../../shared/cpp/ObjectModel/StyledCollectionElement.cpp
../../shared/cpp/ObjectModel/SubmitAction.cpp
../../shared/cpp/ObjectModel/Table.cpp
../../shared/cpp/ObjectModel/TableCell.cpp
@@ -86,8 +87,8 @@ add_library( # Sets the name of the library.
../../shared/cpp/ObjectModel/ToggleVisibilityAction.cpp
../../shared/cpp/ObjectModel/ToggleVisibilityTarget.cpp
../../shared/cpp/ObjectModel/TokenExchangeResource.cpp
- ../../shared/cpp/ObjectModel/UnknownElement.cpp
../../shared/cpp/ObjectModel/UnknownAction.cpp
+ ../../shared/cpp/ObjectModel/UnknownElement.cpp
../../shared/cpp/ObjectModel/Util.cpp
src/main/cpp/objectmodel_wrap.cpp
)
diff --git a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i
index da0d1683c6..5cb276b04d 100644
--- a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i
+++ b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i
@@ -112,7 +112,8 @@ STD_OPTIONAL(AdaptiveCards::VerticalContentAlignment, StdOptionalVerticalContent
#include "../../../shared/cpp/ObjectModel/BaseCardElement.h"
#include "../../../shared/cpp/ObjectModel/BaseActionElement.h"
#include "../../../shared/cpp/ObjectModel/BaseInputElement.h"
-#include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h"
+#include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h"
+#include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h"
#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h"
#include "../../../shared/cpp/ObjectModel/ActionParserRegistration.h"
#include "../../../shared/cpp/ObjectModel/ElementParserRegistration.h"
@@ -183,7 +184,8 @@ STD_OPTIONAL(AdaptiveCards::VerticalContentAlignment, StdOptionalVerticalContent
%shared_ptr(AdaptiveCards::BaseCardElementParser)
%shared_ptr(AdaptiveCards::ActionElementParserWrapper)
%shared_ptr(AdaptiveCards::BaseCardElementParserWrapper)
-%shared_ptr(AdaptiveCards::CollectionTypeElement)
+%shared_ptr(AdaptiveCards::CollectionCoreElement)
+%shared_ptr(AdaptiveCards::StyledCollectionElement)
%shared_ptr(AdaptiveCards::FeatureRegistration)
%shared_ptr(AdaptiveCards::BackgroundImage)
%shared_ptr(AdaptiveCards::Container)
@@ -901,7 +903,8 @@ namespace Json {
%include "../../../shared/cpp/ObjectModel/BaseActionElement.h"
%include "../../../shared/cpp/ObjectModel/BaseInputElement.h"
%include "../../../shared/cpp/ObjectModel/BackgroundImage.h"
-%include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h"
+%include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h"
+%include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h"
%include "../../../shared/cpp/ObjectModel/FeatureRegistration.h"
%include "../../../shared/cpp/ObjectModel/SemanticVersion.h"
%include "../../../shared/cpp/ObjectModel/Container.h"
diff --git a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java
index dfeb35c0a0..c10d64b067 100644
--- a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java
+++ b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java
@@ -235,6 +235,7 @@ public void TextInputStyleTest() throws Exception
tests.add(new Pair<>(TextInputStyle.Tel, String.format(inputTextPlaceholderTemplate, "Tel")));
tests.add(new Pair<>(TextInputStyle.Url, String.format(inputTextPlaceholderTemplate, "Url")));
tests.add(new Pair<>(TextInputStyle.Email, String.format(inputTextPlaceholderTemplate, "Email")));
+ tests.add(new Pair<>(TextInputStyle.Password, String.format(inputTextPlaceholderTemplate, "Password")));
for (Pair test : tests)
{
diff --git a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java
index 24efeaa7ae..39502e0aac 100644
--- a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java
+++ b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java
@@ -45,6 +45,21 @@ private TextInput createTextInputWithValidationProperties(String regex, int maxL
return textInput;
}
+ private TextInput createPasswordInputWithValidationProperties(String regex, int maxLength)
+ {
+ return createPasswordInputWithValidationProperties(regex, maxLength, false);
+ }
+
+ private TextInput createPasswordInputWithValidationProperties(String regex, int maxLength, boolean isRequired)
+ {
+ TextInput textInput = TestUtil.createMockTextInput();
+ textInput.SetTextInputStyle(TextInputStyle.Password);
+ textInput.SetRegex(regex);
+ textInput.SetMaxLength(maxLength);
+ textInput.SetIsRequired(isRequired);
+ return textInput;
+ }
+
private TextInputHandler createTextInputHandler(TextInput textInput)
{
TextInputHandler textInputHandler = new TextInputHandler(textInput);
@@ -615,4 +630,116 @@ public void VerifyRequiredRegexMaxLengthValidationFailsWithInvalidValues()
TestUtil.runValidationTests(invalidHexColors, false, validationExecutor);
}
+ /**
+ * VerifyPasswordValidationSucceedsWithNoSetValue
+ * @testDescription Verifies that a not required input will succeed when no value has been set
+ */
+ @Test
+ public void VerifyPasswordValidationSucceedsWithNoSetValue()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", 0);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ Assert.assertTrue(textInputHandler.isValid());
+ }
+
+ /**
+ * VerifyPasswordValidationSucceedsWithSetValue
+ * @testDescription Verifies that a not required input will succeed with any value set
+ */
+ @Test
+ public void VerifyPasswordValidationSucceedsWithSetValue()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", 0, true);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.GeneralValidationExecutor validationExecutor = new TestUtil.GeneralValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(TestUtil.concat(String.class, c_regexValidValues, c_regexInvalidValues, c_shortStrings, c_longStrings), true, validationExecutor);
+ }
+
+ /**
+ * VerifyIsRequiredValidationFailsWithNoSetValue
+ * @testDescription Verifies that a required input will fail when no value has been set
+ */
+ @Test
+ public void VerifyIsRequiredPasswordValidationFailsWithNoSetValue()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", 0, true);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ Assert.assertFalse(textInputHandler.isValid());
+ }
+
+ /**
+ * VerifyIsRequiredPasswordValidationSucceedsWithSetValue
+ * @testDescription Verifies that a required input will succeed with any value set
+ */
+ @Test
+ public void VerifyIsRequiredPasswordValidationSucceedsWithSetValue()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", 0, true);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.GeneralValidationExecutor validationExecutor = new TestUtil.GeneralValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(TestUtil.concat(String.class, c_regexValidValues, c_regexInvalidValues, c_shortStrings, c_longStrings), true, validationExecutor);
+ }
+
+ /**
+ * VerifySpecificRegexPasswordValidationFailsWithNonCompliantValues
+ * @testDescription Verifies that the regex validation (isValidOnSpecifics) fails when a value doesn't
+ * comply with the regex
+ */
+ @Test
+ public void VerifySpecificRegexPasswordValidationFailsWithNonCompliantValues()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties(testRegexHexColor, 0);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.SpecificsValidationExecutor regexValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(c_regexInvalidValues, false, regexValidationExecutor);
+ }
+
+ /**
+ * VerifySpecificRegexPasswordValidationSucceedsWithCompliantValues
+ * @testDescription Verifies that the min validation (isValidOnSpecifics) succeeds when a value
+ * complies with the regex
+ */
+ @Test
+ public void VerifySpecificRegexPasswordValidationSucceedsWithCompliantValues()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties(testRegexHexColor, 0);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.SpecificsValidationExecutor regexValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(c_regexValidValues, true, regexValidationExecutor);
+ }
+
+ /**
+ * VerifySpecificMaxLengthPasswordValidationSucceedsWithShortValues
+ * @testDescription Verifies that the maxLength validation (isValidOnSpecifics) succeeds when a short value has been set
+ */
+ @Test
+ public void VerifySpecificMaxLengthPasswordValidationSucceedsWithShortValues()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", testMaxLength);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.SpecificsValidationExecutor maxValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(c_shortStrings, true, maxValidationExecutor);
+ }
+
+ /**
+ * VerifySpecificMaxLengthPasswordValidationFailsWithLongValues
+ * @testDescription Verifies that the maxLength validation (isValidOnSpecifics) fails when a long value has been set
+ */
+ @Test
+ public void VerifySpecificMaxLengthPasswordValidationFailsWithLongValues()
+ {
+ TextInput textInput = createPasswordInputWithValidationProperties("", testMaxLength);
+ TextInputHandler textInputHandler = createTextInputHandler(textInput);
+
+ TestUtil.SpecificsValidationExecutor maxValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler);
+ TestUtil.runValidationTests(c_longStrings, false, maxValidationExecutor);
+ }
+
}
diff --git a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp
index b2dda753bd..c73d3b5b67 100644
--- a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp
+++ b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp
@@ -773,7 +773,8 @@ namespace Swig {
#include "../../../shared/cpp/ObjectModel/BaseCardElement.h"
#include "../../../shared/cpp/ObjectModel/BaseActionElement.h"
#include "../../../shared/cpp/ObjectModel/BaseInputElement.h"
-#include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h"
+#include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h"
+#include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h"
#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h"
#include "../../../shared/cpp/ObjectModel/ActionParserRegistration.h"
#include "../../../shared/cpp/ObjectModel/ElementParserRegistration.h"
@@ -11610,9 +11611,9 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1SaveContextForCollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1SaveContextForStyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
AdaptiveCards::ParseContext *arg1 = (AdaptiveCards::ParseContext *) 0 ;
- AdaptiveCards::CollectionTypeElement *arg2 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg2 = 0 ;
std::shared_ptr< AdaptiveCards::ParseContext > *smartarg1 = 0 ;
(void)jenv;
@@ -11623,18 +11624,18 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1;
arg1 = (AdaptiveCards::ParseContext *)(smartarg1 ? smartarg1->get() : 0);
- arg2 = (AdaptiveCards::CollectionTypeElement *)((*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2)->get() : 0);
+ arg2 = (AdaptiveCards::StyledCollectionElement *)((*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2)->get() : 0);
if (!arg2) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::CollectionTypeElement const & reference is null");
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::StyledCollectionElement const & reference is null");
return ;
}
- (arg1)->SaveContextForCollectionTypeElement((AdaptiveCards::CollectionTypeElement const &)*arg2);
+ (arg1)->SaveContextForStyledCollectionElement((AdaptiveCards::StyledCollectionElement const &)*arg2);
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1RestoreContextForCollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1RestoreContextForStyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
AdaptiveCards::ParseContext *arg1 = (AdaptiveCards::ParseContext *) 0 ;
- AdaptiveCards::CollectionTypeElement *arg2 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg2 = 0 ;
std::shared_ptr< AdaptiveCards::ParseContext > *smartarg1 = 0 ;
(void)jenv;
@@ -11645,12 +11646,12 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1;
arg1 = (AdaptiveCards::ParseContext *)(smartarg1 ? smartarg1->get() : 0);
- arg2 = (AdaptiveCards::CollectionTypeElement *)((*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2)->get() : 0);
+ arg2 = (AdaptiveCards::StyledCollectionElement *)((*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2)->get() : 0);
if (!arg2) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::CollectionTypeElement const & reference is null");
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::StyledCollectionElement const & reference is null");
return ;
}
- (arg1)->RestoreContextForCollectionTypeElement((AdaptiveCards::CollectionTypeElement const &)*arg2);
+ (arg1)->RestoreContextForStyledCollectionElement((AdaptiveCards::StyledCollectionElement const &)*arg2);
}
@@ -11754,13 +11755,13 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_InternalId_1Hash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
AdaptiveCards::InternalId *arg1 = (AdaptiveCards::InternalId *) 0 ;
- std::size_t result;
+ unsigned int result;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(AdaptiveCards::InternalId **)&jarg1;
- result = ((AdaptiveCards::InternalId const *)arg1)->Hash();
+ result = (unsigned int)((AdaptiveCards::InternalId const *)arg1)->Hash();
jresult = (jlong)result;
return jresult;
}
@@ -14197,75 +14198,117 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1CollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1CollectionCoreElement(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ AdaptiveCards::CollectionCoreElement *arg1 = (AdaptiveCards::CollectionCoreElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::CollectionCoreElement > *smartarg1 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1;
+ arg1 = (AdaptiveCards::CollectionCoreElement *)(smartarg1 ? smartarg1->get() : 0);
+ (void)arg1; delete smartarg1;
+}
+
+
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionCoreElement_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ AdaptiveCards::CollectionCoreElement *arg1 = (AdaptiveCards::CollectionCoreElement *) 0 ;
+ AdaptiveCards::ParseContext *arg2 = 0 ;
+ Json::Value *arg3 = 0 ;
+ std::shared_ptr< AdaptiveCards::CollectionCoreElement > *smartarg1 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1;
+ arg1 = (AdaptiveCards::CollectionCoreElement *)(smartarg1 ? smartarg1->get() : 0);
+
+ arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
+ return ;
+ }
+ arg3 = *(Json::Value **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
+ return ;
+ }
+ (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3);
+}
+
+
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1StyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
(void)arg1; delete smartarg1;
}
-SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
AdaptiveCards::ContainerStyle result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (AdaptiveCards::ContainerStyle)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetStyle();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (AdaptiveCards::ContainerStyle)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetStyle();
jresult = (jint)result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
AdaptiveCards::ContainerStyle arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = (AdaptiveCards::ContainerStyle)jarg2;
(arg1)->SetStyle(arg2);
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
std::optional< AdaptiveCards::VerticalContentAlignment > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetVerticalContentAlignment();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetVerticalContentAlignment();
*(std::optional< AdaptiveCards::VerticalContentAlignment > **)&jresult = new std::optional< AdaptiveCards::VerticalContentAlignment >((const std::optional< AdaptiveCards::VerticalContentAlignment > &)result);
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
std::optional< AdaptiveCards::VerticalContentAlignment > arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
std::optional< AdaptiveCards::VerticalContentAlignment > const *argp2 ;
(void)jenv;
@@ -14273,8 +14316,8 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
argp2 = *(std::optional< AdaptiveCards::VerticalContentAlignment > **)&jarg2;
if (!argp2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::optional< AdaptiveCards::VerticalContentAlignment > const");
@@ -14285,122 +14328,122 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
bool result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetPadding();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetPadding();
jresult = (jboolean)result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
bool arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = jarg2 ? true : false;
(arg1)->SetPadding(arg2);
}
-SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
bool result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBleed();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBleed();
jresult = (jboolean)result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
bool arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = jarg2 ? true : false;
(arg1)->SetBleed(arg2);
}
-SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetCanBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetCanBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
bool result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetCanBleed();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetCanBleed();
jresult = (jboolean)result;
return jresult;
}
-SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBleedDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBleedDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
AdaptiveCards::ContainerBleedDirection result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (AdaptiveCards::ContainerBleedDirection)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBleedDirection();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (AdaptiveCards::ContainerBleedDirection)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBleedDirection();
jresult = (jint)result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1ConfigForContainerStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1ConfigForContainerStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
AdaptiveCards::ParseContext *arg2 = 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< const AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
if (!arg2) {
@@ -14411,18 +14454,18 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
AdaptiveCards::InternalId *arg2 = 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = *(AdaptiveCards::InternalId **)&jarg2;
if (!arg2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::InternalId const & reference is null");
@@ -14432,46 +14475,46 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
AdaptiveCards::InternalId result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetParentalId();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetParentalId();
*(AdaptiveCards::InternalId **)&jresult = new AdaptiveCards::InternalId((const AdaptiveCards::InternalId &)result);
return jresult;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
std::shared_ptr< AdaptiveCards::BaseActionElement > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetSelectAction();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetSelectAction();
*(std::shared_ptr< AdaptiveCards::BaseActionElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseActionElement >(result) : 0;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
std::shared_ptr< AdaptiveCards::BaseActionElement > arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
std::shared_ptr< AdaptiveCards::BaseActionElement > const *argp2 ;
(void)jenv;
@@ -14479,36 +14522,36 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
argp2 = *(std::shared_ptr< AdaptiveCards::BaseActionElement > **)&jarg2;
if (argp2) arg2 = *argp2;
(arg1)->SetSelectAction(arg2);
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
std::shared_ptr< AdaptiveCards::BackgroundImage > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBackgroundImage();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBackgroundImage();
*(std::shared_ptr< AdaptiveCards::BackgroundImage > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BackgroundImage >(result) : 0;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
std::shared_ptr< AdaptiveCards::BackgroundImage > arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
std::shared_ptr< AdaptiveCards::BackgroundImage > const *argp2 ;
(void)jenv;
@@ -14516,90 +14559,61 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
argp2 = *(std::shared_ptr< AdaptiveCards::BackgroundImage > **)&jarg2;
if (argp2) arg2 = *argp2;
(arg1)->SetBackgroundImage(arg2);
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
unsigned int result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = (unsigned int)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetMinHeight();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = (unsigned int)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetMinHeight();
jresult = (jlong)result;
return jresult;
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
unsigned int arg2 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
arg2 = (unsigned int)jarg2;
(arg1)->SetMinHeight(arg2);
}
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- AdaptiveCards::ParseContext *arg2 = 0 ;
- Json::Value *arg3 = 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ;
-
- (void)jenv;
- (void)jcls;
- (void)jarg1_;
- (void)jarg2_;
- (void)jarg3_;
-
- smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
-
- arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
- if (!arg2) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
- return ;
- }
- arg3 = *(Json::Value **)&jarg3;
- if (!arg3) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
- return ;
- }
- (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3);
-}
-
-
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
- AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ;
+ AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ;
Json::Value result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1;
- arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0);
- result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->SerializeToJsonValue();
+ smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0);
+ result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->SerializeToJsonValue();
*(Json::Value **)&jresult = new Json::Value((const Json::Value &)result);
return jresult;
}
@@ -29424,120 +29438,59 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableCellParser_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
- jlong jresult = 0 ;
- AdaptiveCards::TableCellParser *result = 0 ;
-
- (void)jenv;
- (void)jcls;
- result = (AdaptiveCards::TableCellParser *)new AdaptiveCards::TableCellParser();
-
- *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCellParser >(result SWIG_NO_NULL_DELETER_1) : 0;
-
- return jresult;
-}
-
-
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableCellParser_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCell_1DeserializeTableCellFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
jlong jresult = 0 ;
- AdaptiveCards::TableCellParser *arg1 = 0 ;
- AdaptiveCards::TableCellParser *result = 0 ;
+ AdaptiveCards::ParseContext *arg1 = 0 ;
+ std::string *arg2 = 0 ;
+ std::shared_ptr< AdaptiveCards::TableCell > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = (AdaptiveCards::TableCellParser *)((*(std::shared_ptr< const AdaptiveCards::TableCellParser > **)&jarg1) ? (*(std::shared_ptr< const AdaptiveCards::TableCellParser > **)&jarg1)->get() : 0);
+ arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0);
if (!arg1) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::TableCellParser const & reference is null");
- return 0;
- }
- result = (AdaptiveCards::TableCellParser *)new AdaptiveCards::TableCellParser((AdaptiveCards::TableCellParser const &)*arg1);
-
- *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCellParser >(result SWIG_NO_NULL_DELETER_1) : 0;
-
- return jresult;
-}
-
-
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1TableCellParser(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ;
- std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ;
-
- (void)jenv;
- (void)jcls;
-
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0);
- (void)arg1; delete smartarg1;
-}
-
-
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1Deserialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
- jlong jresult = 0 ;
- AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ;
- AdaptiveCards::ParseContext *arg2 = 0 ;
- Json::Value *arg3 = 0 ;
- std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ;
- std::shared_ptr< AdaptiveCards::BaseCardElement > result;
-
- (void)jenv;
- (void)jcls;
- (void)jarg1_;
- (void)jarg2_;
- (void)jarg3_;
-
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0);
-
- arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
- if (!arg2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
return 0;
}
- arg3 = *(Json::Value **)&jarg3;
- if (!arg3) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
+ if(!jarg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return 0;
- }
- result = (arg1)->Deserialize(*arg2,(Json::Value const &)*arg3);
- *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 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::TableCell::DeserializeTableCellFromString(*arg1,(std::string const &)*arg2);
+ *(std::shared_ptr< AdaptiveCards::TableCell > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCell >(result) : 0;
return jresult;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1DeserializeFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCell_1DeserializeTableCell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
jlong jresult = 0 ;
- AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ;
- AdaptiveCards::ParseContext *arg2 = 0 ;
- std::string *arg3 = 0 ;
- std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ;
- std::shared_ptr< AdaptiveCards::BaseCardElement > result;
+ AdaptiveCards::ParseContext *arg1 = 0 ;
+ Json::Value *arg2 = 0 ;
+ std::shared_ptr< AdaptiveCards::TableCell > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0);
-
- arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
- if (!arg2) {
+ arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0);
+ if (!arg1) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
return 0;
}
- if(!jarg3) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
+ arg2 = *(Json::Value **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
return 0;
- }
- const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
- if (!arg3_pstr) return 0;
- std::string arg3_str(arg3_pstr);
- arg3 = &arg3_str;
- jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
- result = (arg1)->DeserializeFromString(*arg2,(std::string const &)*arg3);
- *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0;
+ }
+ result = AdaptiveCards::TableCell::DeserializeTableCell(*arg1,(Json::Value const &)*arg2);
+ *(std::shared_ptr< AdaptiveCards::TableCell > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCell >(result) : 0;
return jresult;
}
@@ -29609,6 +29562,35 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
}
+SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
+ AdaptiveCards::Table *arg1 = (AdaptiveCards::Table *) 0 ;
+ AdaptiveCards::ParseContext *arg2 = 0 ;
+ Json::Value *arg3 = 0 ;
+ std::shared_ptr< AdaptiveCards::Table > *smartarg1 = 0 ;
+
+ (void)jenv;
+ (void)jcls;
+ (void)jarg1_;
+ (void)jarg2_;
+ (void)jarg3_;
+
+ smartarg1 = *(std::shared_ptr< AdaptiveCards::Table > **)&jarg1;
+ arg1 = (AdaptiveCards::Table *)(smartarg1 ? smartarg1->get() : 0);
+
+ arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
+ return ;
+ }
+ arg3 = *(Json::Value **)&jarg3;
+ if (!arg3) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
+ return ;
+ }
+ (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3);
+}
+
+
SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1GetShowGridLines(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
AdaptiveCards::Table *arg1 = (AdaptiveCards::Table *) 0 ;
@@ -30519,120 +30501,59 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableRowParser_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRow_1DeserializeTableRowFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
jlong jresult = 0 ;
- AdaptiveCards::TableRowParser *result = 0 ;
-
- (void)jenv;
- (void)jcls;
- result = (AdaptiveCards::TableRowParser *)new AdaptiveCards::TableRowParser();
-
- *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRowParser >(result SWIG_NO_NULL_DELETER_1) : 0;
-
- return jresult;
-}
-
-
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableRowParser_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
- jlong jresult = 0 ;
- AdaptiveCards::TableRowParser *arg1 = 0 ;
- AdaptiveCards::TableRowParser *result = 0 ;
+ AdaptiveCards::ParseContext *arg1 = 0 ;
+ std::string *arg2 = 0 ;
+ std::shared_ptr< AdaptiveCards::TableRow > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
- arg1 = (AdaptiveCards::TableRowParser *)((*(std::shared_ptr< const AdaptiveCards::TableRowParser > **)&jarg1) ? (*(std::shared_ptr< const AdaptiveCards::TableRowParser > **)&jarg1)->get() : 0);
+ arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0);
if (!arg1) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::TableRowParser const & reference is null");
- return 0;
- }
- result = (AdaptiveCards::TableRowParser *)new AdaptiveCards::TableRowParser((AdaptiveCards::TableRowParser const &)*arg1);
-
- *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRowParser >(result SWIG_NO_NULL_DELETER_1) : 0;
-
- return jresult;
-}
-
-
-SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1TableRowParser(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ;
- std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ;
-
- (void)jenv;
- (void)jcls;
-
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0);
- (void)arg1; delete smartarg1;
-}
-
-
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1Deserialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
- jlong jresult = 0 ;
- AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ;
- AdaptiveCards::ParseContext *arg2 = 0 ;
- Json::Value *arg3 = 0 ;
- std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ;
- std::shared_ptr< AdaptiveCards::BaseCardElement > result;
-
- (void)jenv;
- (void)jcls;
- (void)jarg1_;
- (void)jarg2_;
- (void)jarg3_;
-
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0);
-
- arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
- if (!arg2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
return 0;
}
- arg3 = *(Json::Value **)&jarg3;
- if (!arg3) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
+ if(!jarg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return 0;
- }
- result = (arg1)->Deserialize(*arg2,(Json::Value const &)*arg3);
- *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 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::TableRow::DeserializeTableRowFromString(*arg1,(std::string const &)*arg2);
+ *(std::shared_ptr< AdaptiveCards::TableRow > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRow >(result) : 0;
return jresult;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1DeserializeFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRow_1DeserializeTableRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
jlong jresult = 0 ;
- AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ;
- AdaptiveCards::ParseContext *arg2 = 0 ;
- std::string *arg3 = 0 ;
- std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ;
- std::shared_ptr< AdaptiveCards::BaseCardElement > result;
+ AdaptiveCards::ParseContext *arg1 = 0 ;
+ Json::Value *arg2 = 0 ;
+ std::shared_ptr< AdaptiveCards::TableRow > result;
(void)jenv;
(void)jcls;
(void)jarg1_;
(void)jarg2_;
- smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1;
- arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0);
-
- arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0);
- if (!arg2) {
+ arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0);
+ if (!arg1) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null");
return 0;
}
- if(!jarg3) {
- SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
+ arg2 = *(Json::Value **)&jarg2;
+ if (!arg2) {
+ SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null");
return 0;
- }
- const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0);
- if (!arg3_pstr) return 0;
- std::string arg3_str(arg3_pstr);
- arg3 = &arg3_str;
- jenv->ReleaseStringUTFChars(jarg3, arg3_pstr);
- result = (arg1)->DeserializeFromString(*arg2,(std::string const &)*arg3);
- *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0;
+ }
+ result = AdaptiveCards::TableRow::DeserializeTableRow(*arg1,(Json::Value const &)*arg2);
+ *(std::shared_ptr< AdaptiveCards::TableRow > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRow >(result) : 0;
return jresult;
}
@@ -34720,23 +34641,33 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
return baseptr;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionCoreElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
jlong baseptr = 0;
- std::shared_ptr< AdaptiveCards::CollectionTypeElement > *argp1;
+ std::shared_ptr< AdaptiveCards::CollectionCoreElement > *argp1;
(void)jenv;
(void)jcls;
- argp1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1;
+ argp1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1;
*(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(*argp1) : 0;
return baseptr;
}
+SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+ jlong baseptr = 0;
+ std::shared_ptr< AdaptiveCards::StyledCollectionElement > *argp1;
+ (void)jenv;
+ (void)jcls;
+ argp1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1;
+ *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionCoreElement >(*argp1) : 0;
+ return baseptr;
+}
+
SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Container_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
jlong baseptr = 0;
std::shared_ptr< AdaptiveCards::Container > *argp1;
(void)jenv;
(void)jcls;
argp1 = *(std::shared_ptr< AdaptiveCards::Container > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0;
+ *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0;
return baseptr;
}
@@ -34796,7 +34727,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
(void)jenv;
(void)jcls;
argp1 = *(std::shared_ptr< AdaptiveCards::Column > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0;
+ *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0;
return baseptr;
}
@@ -34816,7 +34747,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
(void)jenv;
(void)jcls;
argp1 = *(std::shared_ptr< AdaptiveCards::ColumnSet > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0;
+ *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0;
return baseptr;
}
@@ -35068,23 +34999,13 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
return baseptr;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- jlong baseptr = 0;
- std::shared_ptr< AdaptiveCards::TableCellParser > *argp1;
- (void)jenv;
- (void)jcls;
- argp1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::ContainerParser > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::ContainerParser >(*argp1) : 0;
- return baseptr;
-}
-
SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
jlong baseptr = 0;
std::shared_ptr< AdaptiveCards::Table > *argp1;
(void)jenv;
(void)jcls;
argp1 = *(std::shared_ptr< AdaptiveCards::Table > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(*argp1) : 0;
+ *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionCoreElement >(*argp1) : 0;
return baseptr;
}
@@ -35108,16 +35029,6 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod
return baseptr;
}
-SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
- jlong baseptr = 0;
- std::shared_ptr< AdaptiveCards::TableRowParser > *argp1;
- (void)jenv;
- (void)jcls;
- argp1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1;
- *(std::shared_ptr< AdaptiveCards::BaseCardElementParser > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElementParser >(*argp1) : 0;
- return baseptr;
-}
-
SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TextBlock_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
jlong baseptr = 0;
std::shared_ptr< AdaptiveCards::TextBlock > *argp1;
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 17f41b8654..232efdb276 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
@@ -516,8 +516,8 @@ public class AdaptiveCardObjectModelJNI {
public final static native int ParseContext_GetParentalContainerStyle(long jarg1, ParseContext jarg1_);
public final static native void ParseContext_SetParentalContainerStyle(long jarg1, ParseContext jarg1_, int jarg2);
public final static native long ParseContext_PaddingParentInternalId(long jarg1, ParseContext jarg1_);
- public final static native void ParseContext_SaveContextForCollectionTypeElement(long jarg1, ParseContext jarg1_, long jarg2, CollectionTypeElement jarg2_);
- public final static native void ParseContext_RestoreContextForCollectionTypeElement(long jarg1, ParseContext jarg1_, long jarg2, CollectionTypeElement jarg2_);
+ public final static native void ParseContext_SaveContextForStyledCollectionElement(long jarg1, ParseContext jarg1_, long jarg2, StyledCollectionElement jarg2_);
+ public final static native void ParseContext_RestoreContextForStyledCollectionElement(long jarg1, ParseContext jarg1_, long jarg2, StyledCollectionElement jarg2_);
public final static native int ParseContext_GetBleedDirection(long jarg1, ParseContext jarg1_);
public final static native void ParseContext_PushBleedDirection(long jarg1, ParseContext jarg1_, int jarg2);
public final static native void ParseContext_PopBleedDirection(long jarg1, ParseContext jarg1_);
@@ -653,28 +653,29 @@ public class AdaptiveCardObjectModelJNI {
public final static native long BackgroundImage_Deserialize(long jarg1, JsonValue jarg1_);
public final static native long BackgroundImage_DeserializeFromString(String jarg1);
public final static native void delete_BackgroundImage(long jarg1);
- public final static native void delete_CollectionTypeElement(long jarg1);
- public final static native int CollectionTypeElement_GetStyle(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetStyle(long jarg1, CollectionTypeElement jarg1_, int jarg2);
- public final static native long CollectionTypeElement_GetVerticalContentAlignment(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetVerticalContentAlignment(long jarg1, CollectionTypeElement jarg1_, long jarg2, StdOptionalVerticalContentAlignment jarg2_);
- public final static native boolean CollectionTypeElement_GetPadding(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetPadding(long jarg1, CollectionTypeElement jarg1_, boolean jarg2);
- public final static native boolean CollectionTypeElement_GetBleed(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetBleed(long jarg1, CollectionTypeElement jarg1_, boolean jarg2);
- public final static native boolean CollectionTypeElement_GetCanBleed(long jarg1, CollectionTypeElement jarg1_);
- public final static native int CollectionTypeElement_GetBleedDirection(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_ConfigForContainerStyle(long jarg1, CollectionTypeElement jarg1_, long jarg2, ParseContext jarg2_);
- public final static native void CollectionTypeElement_SetParentalId(long jarg1, CollectionTypeElement jarg1_, long jarg2, InternalId jarg2_);
- public final static native long CollectionTypeElement_GetParentalId(long jarg1, CollectionTypeElement jarg1_);
- public final static native long CollectionTypeElement_GetSelectAction(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetSelectAction(long jarg1, CollectionTypeElement jarg1_, long jarg2, BaseActionElement jarg2_);
- public final static native long CollectionTypeElement_GetBackgroundImage(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetBackgroundImage(long jarg1, CollectionTypeElement jarg1_, long jarg2, BackgroundImage jarg2_);
- public final static native long CollectionTypeElement_GetMinHeight(long jarg1, CollectionTypeElement jarg1_);
- public final static native void CollectionTypeElement_SetMinHeight(long jarg1, CollectionTypeElement jarg1_, long jarg2);
- public final static native void CollectionTypeElement_DeserializeChildren(long jarg1, CollectionTypeElement jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_);
- public final static native long CollectionTypeElement_SerializeToJsonValue(long jarg1, CollectionTypeElement jarg1_);
+ public final static native void delete_CollectionCoreElement(long jarg1);
+ public final static native void CollectionCoreElement_DeserializeChildren(long jarg1, CollectionCoreElement jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_);
+ public final static native void delete_StyledCollectionElement(long jarg1);
+ public final static native int StyledCollectionElement_GetStyle(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetStyle(long jarg1, StyledCollectionElement jarg1_, int jarg2);
+ public final static native long StyledCollectionElement_GetVerticalContentAlignment(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetVerticalContentAlignment(long jarg1, StyledCollectionElement jarg1_, long jarg2, StdOptionalVerticalContentAlignment jarg2_);
+ public final static native boolean StyledCollectionElement_GetPadding(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetPadding(long jarg1, StyledCollectionElement jarg1_, boolean jarg2);
+ public final static native boolean StyledCollectionElement_GetBleed(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetBleed(long jarg1, StyledCollectionElement jarg1_, boolean jarg2);
+ public final static native boolean StyledCollectionElement_GetCanBleed(long jarg1, StyledCollectionElement jarg1_);
+ public final static native int StyledCollectionElement_GetBleedDirection(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_ConfigForContainerStyle(long jarg1, StyledCollectionElement jarg1_, long jarg2, ParseContext jarg2_);
+ public final static native void StyledCollectionElement_SetParentalId(long jarg1, StyledCollectionElement jarg1_, long jarg2, InternalId jarg2_);
+ public final static native long StyledCollectionElement_GetParentalId(long jarg1, StyledCollectionElement jarg1_);
+ public final static native long StyledCollectionElement_GetSelectAction(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetSelectAction(long jarg1, StyledCollectionElement jarg1_, long jarg2, BaseActionElement jarg2_);
+ public final static native long StyledCollectionElement_GetBackgroundImage(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetBackgroundImage(long jarg1, StyledCollectionElement jarg1_, long jarg2, BackgroundImage jarg2_);
+ public final static native long StyledCollectionElement_GetMinHeight(long jarg1, StyledCollectionElement jarg1_);
+ public final static native void StyledCollectionElement_SetMinHeight(long jarg1, StyledCollectionElement jarg1_, long jarg2);
+ public final static native long StyledCollectionElement_SerializeToJsonValue(long jarg1, StyledCollectionElement jarg1_);
public final static native String c_adaptiveCardsFeature_get();
public final static native String ToLowercase(String jarg1);
public final static native long new_CaseInsensitiveKeyHash();
@@ -1454,15 +1455,13 @@ public class AdaptiveCardObjectModelJNI {
public final static native long new_TableCell__SWIG_0();
public final static native long new_TableCell__SWIG_1(long jarg1, TableCell jarg1_);
public final static native void delete_TableCell(long jarg1);
- public final static native long new_TableCellParser__SWIG_0();
- public final static native long new_TableCellParser__SWIG_1(long jarg1, TableCellParser jarg1_);
- public final static native void delete_TableCellParser(long jarg1);
- public final static native long TableCellParser_Deserialize(long jarg1, TableCellParser jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_);
- public final static native long TableCellParser_DeserializeFromString(long jarg1, TableCellParser jarg1_, long jarg2, ParseContext jarg2_, String jarg3);
+ public final static native long TableCell_DeserializeTableCellFromString(long jarg1, ParseContext jarg1_, String jarg2);
+ public final static native long TableCell_DeserializeTableCell(long jarg1, ParseContext jarg1_, long jarg2, JsonValue jarg2_);
public final static native long new_Table__SWIG_0();
public final static native long new_Table__SWIG_1(long jarg1, Table jarg1_);
public final static native void delete_Table(long jarg1);
public final static native long Table_SerializeToJsonValue(long jarg1, Table jarg1_);
+ public final static native void Table_DeserializeChildren(long jarg1, Table jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_);
public final static native boolean Table_GetShowGridLines(long jarg1, Table jarg1_);
public final static native void Table_SetShowGridLines(long jarg1, Table jarg1_, boolean jarg2);
public final static native boolean Table_GetFirstRowAsHeaders(long jarg1, Table jarg1_);
@@ -1509,11 +1508,8 @@ public class AdaptiveCardObjectModelJNI {
public final static native void TableRow_SetHorizontalCellContentAlignment(long jarg1, TableRow jarg1_, long jarg2, StdOptionalHorizontalAlignment jarg2_);
public final static native int TableRow_GetStyle(long jarg1, TableRow jarg1_);
public final static native void TableRow_SetStyle(long jarg1, TableRow jarg1_, int jarg2);
- public final static native long new_TableRowParser__SWIG_0();
- public final static native long new_TableRowParser__SWIG_1(long jarg1, TableRowParser jarg1_);
- public final static native void delete_TableRowParser(long jarg1);
- public final static native long TableRowParser_Deserialize(long jarg1, TableRowParser jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_);
- public final static native long TableRowParser_DeserializeFromString(long jarg1, TableRowParser jarg1_, long jarg2, ParseContext jarg2_, String jarg3);
+ public final static native long TableRow_DeserializeTableRowFromString(long jarg1, ParseContext jarg1_, String jarg2);
+ public final static native long TableRow_DeserializeTableRow(long jarg1, ParseContext jarg1_, long jarg2, JsonValue jarg2_);
public final static native long new_TextBlock__SWIG_0();
public final static native long new_TextBlock__SWIG_1(long jarg1, TextBlock jarg1_);
public final static native void delete_TextBlock(long jarg1);
@@ -1718,7 +1714,8 @@ public class AdaptiveCardObjectModelJNI {
public final static native long BaseCardElement_SWIGSmartPtrUpcast(long jarg1);
public final static native long BaseActionElement_SWIGSmartPtrUpcast(long jarg1);
public final static native long BaseInputElement_SWIGSmartPtrUpcast(long jarg1);
- public final static native long CollectionTypeElement_SWIGSmartPtrUpcast(long jarg1);
+ public final static native long CollectionCoreElement_SWIGSmartPtrUpcast(long jarg1);
+ public final static native long StyledCollectionElement_SWIGSmartPtrUpcast(long jarg1);
public final static native long Container_SWIGSmartPtrUpcast(long jarg1);
public final static native long ContainerParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long Image_SWIGSmartPtrUpcast(long jarg1);
@@ -1753,11 +1750,9 @@ public class AdaptiveCardObjectModelJNI {
public final static native long FactSet_SWIGSmartPtrUpcast(long jarg1);
public final static native long FactSetParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long TableCell_SWIGSmartPtrUpcast(long jarg1);
- public final static native long TableCellParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long Table_SWIGSmartPtrUpcast(long jarg1);
public final static native long TableParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long TableRow_SWIGSmartPtrUpcast(long jarg1);
- public final static native long TableRowParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long TextBlock_SWIGSmartPtrUpcast(long jarg1);
public final static native long TextBlockParser_SWIGSmartPtrUpcast(long jarg1);
public final static native long Media_SWIGSmartPtrUpcast(long jarg1);
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java
new file mode 100644
index 0000000000..af96c73aea
--- /dev/null
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java
@@ -0,0 +1,50 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 4.0.2
+ *
+ * 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 CollectionCoreElement extends BaseCardElement {
+ private transient long swigCPtr;
+ private transient boolean swigCMemOwnDerived;
+
+ protected CollectionCoreElement(long cPtr, boolean cMemoryOwn) {
+ super(AdaptiveCardObjectModelJNI.CollectionCoreElement_SWIGSmartPtrUpcast(cPtr), true);
+ swigCMemOwnDerived = cMemoryOwn;
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(CollectionCoreElement obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected void swigSetCMemOwn(boolean own) {
+ swigCMemOwnDerived = own;
+ super.swigSetCMemOwn(own);
+ }
+
+ @SuppressWarnings("deprecation")
+ protected void finalize() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwnDerived) {
+ swigCMemOwnDerived = false;
+ AdaptiveCardObjectModelJNI.delete_CollectionCoreElement(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ super.delete();
+ }
+
+ public void DeserializeChildren(ParseContext context, JsonValue value) {
+ AdaptiveCardObjectModelJNI.CollectionCoreElement_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value);
+ }
+
+}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java
index 532d53ac3f..58f3675cb4 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java
@@ -8,7 +8,7 @@
package io.adaptivecards.objectmodel;
-public class Column extends CollectionTypeElement {
+public class Column extends StyledCollectionElement {
private transient long swigCPtr;
private transient boolean swigCMemOwnDerived;
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java
index 6b2c7dbaa1..11c06c66ac 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java
@@ -8,7 +8,7 @@
package io.adaptivecards.objectmodel;
-public class ColumnSet extends CollectionTypeElement {
+public class ColumnSet extends StyledCollectionElement {
private transient long swigCPtr;
private transient boolean swigCMemOwnDerived;
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java
index 43a7cae013..bcddba6b11 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java
@@ -8,7 +8,7 @@
package io.adaptivecards.objectmodel;
-public class Container extends CollectionTypeElement {
+public class Container extends StyledCollectionElement {
private transient long swigCPtr;
private transient boolean swigCMemOwnDerived;
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java
index 24eb21722c..d0b2977d2d 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java
@@ -115,12 +115,12 @@ public InternalId PaddingParentInternalId() {
return new InternalId(AdaptiveCardObjectModelJNI.ParseContext_PaddingParentInternalId(swigCPtr, this), true);
}
- public void SaveContextForCollectionTypeElement(CollectionTypeElement current) {
- AdaptiveCardObjectModelJNI.ParseContext_SaveContextForCollectionTypeElement(swigCPtr, this, CollectionTypeElement.getCPtr(current), current);
+ public void SaveContextForStyledCollectionElement(StyledCollectionElement current) {
+ AdaptiveCardObjectModelJNI.ParseContext_SaveContextForStyledCollectionElement(swigCPtr, this, StyledCollectionElement.getCPtr(current), current);
}
- public void RestoreContextForCollectionTypeElement(CollectionTypeElement current) {
- AdaptiveCardObjectModelJNI.ParseContext_RestoreContextForCollectionTypeElement(swigCPtr, this, CollectionTypeElement.getCPtr(current), current);
+ public void RestoreContextForStyledCollectionElement(StyledCollectionElement current) {
+ AdaptiveCardObjectModelJNI.ParseContext_RestoreContextForStyledCollectionElement(swigCPtr, this, StyledCollectionElement.getCPtr(current), current);
}
public ContainerBleedDirection GetBleedDirection() {
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java
similarity index 50%
rename from source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java
rename to source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java
index 946eae6a13..03ffd4d5ff 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java
@@ -8,17 +8,17 @@
package io.adaptivecards.objectmodel;
-public class CollectionTypeElement extends BaseCardElement {
+public class StyledCollectionElement extends CollectionCoreElement {
private transient long swigCPtr;
private transient boolean swigCMemOwnDerived;
- protected CollectionTypeElement(long cPtr, boolean cMemoryOwn) {
- super(AdaptiveCardObjectModelJNI.CollectionTypeElement_SWIGSmartPtrUpcast(cPtr), true);
+ protected StyledCollectionElement(long cPtr, boolean cMemoryOwn) {
+ super(AdaptiveCardObjectModelJNI.StyledCollectionElement_SWIGSmartPtrUpcast(cPtr), true);
swigCMemOwnDerived = cMemoryOwn;
swigCPtr = cPtr;
}
- protected static long getCPtr(CollectionTypeElement obj) {
+ protected static long getCPtr(StyledCollectionElement obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}
@@ -36,7 +36,7 @@ public synchronized void delete() {
if (swigCPtr != 0) {
if (swigCMemOwnDerived) {
swigCMemOwnDerived = false;
- AdaptiveCardObjectModelJNI.delete_CollectionTypeElement(swigCPtr);
+ AdaptiveCardObjectModelJNI.delete_StyledCollectionElement(swigCPtr);
}
swigCPtr = 0;
}
@@ -44,93 +44,89 @@ public synchronized void delete() {
}
public ContainerStyle GetStyle() {
- return ContainerStyle.swigToEnum(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetStyle(swigCPtr, this));
+ return ContainerStyle.swigToEnum(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetStyle(swigCPtr, this));
}
public void SetStyle(ContainerStyle value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetStyle(swigCPtr, this, value.swigValue());
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetStyle(swigCPtr, this, value.swigValue());
}
public @androidx.annotation.Nullable VerticalContentAlignment GetVerticalContentAlignment() {
- StdOptionalVerticalContentAlignment optvalue = new StdOptionalVerticalContentAlignment(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetVerticalContentAlignment(swigCPtr, this), false);
+ StdOptionalVerticalContentAlignment optvalue = new StdOptionalVerticalContentAlignment(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetVerticalContentAlignment(swigCPtr, this), false);
return optvalue.has_value() ? optvalue.value() : null;
}
public void SetVerticalContentAlignment(@androidx.annotation.Nullable VerticalContentAlignment value) {
StdOptionalVerticalContentAlignment optvalue = (value == null) ? new StdOptionalVerticalContentAlignment() : new StdOptionalVerticalContentAlignment(value);
{
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetVerticalContentAlignment(swigCPtr, this, StdOptionalVerticalContentAlignment.getCPtr(optvalue), optvalue);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetVerticalContentAlignment(swigCPtr, this, StdOptionalVerticalContentAlignment.getCPtr(optvalue), optvalue);
}
}
public boolean GetPadding() {
- return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetPadding(swigCPtr, this);
+ return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetPadding(swigCPtr, this);
}
public void SetPadding(boolean value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetPadding(swigCPtr, this, value);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetPadding(swigCPtr, this, value);
}
public boolean GetBleed() {
- return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBleed(swigCPtr, this);
+ return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBleed(swigCPtr, this);
}
public void SetBleed(boolean value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetBleed(swigCPtr, this, value);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetBleed(swigCPtr, this, value);
}
public boolean GetCanBleed() {
- return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetCanBleed(swigCPtr, this);
+ return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetCanBleed(swigCPtr, this);
}
public ContainerBleedDirection GetBleedDirection() {
- return ContainerBleedDirection.swigToEnum(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBleedDirection(swigCPtr, this));
+ return ContainerBleedDirection.swigToEnum(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBleedDirection(swigCPtr, this));
}
public void ConfigForContainerStyle(ParseContext context) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_ConfigForContainerStyle(swigCPtr, this, ParseContext.getCPtr(context), context);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_ConfigForContainerStyle(swigCPtr, this, ParseContext.getCPtr(context), context);
}
public void SetParentalId(InternalId id) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetParentalId(swigCPtr, this, InternalId.getCPtr(id), id);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetParentalId(swigCPtr, this, InternalId.getCPtr(id), id);
}
public InternalId GetParentalId() {
- return new InternalId(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetParentalId(swigCPtr, this), true);
+ return new InternalId(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetParentalId(swigCPtr, this), true);
}
public BaseActionElement GetSelectAction() {
- long cPtr = AdaptiveCardObjectModelJNI.CollectionTypeElement_GetSelectAction(swigCPtr, this);
+ long cPtr = AdaptiveCardObjectModelJNI.StyledCollectionElement_GetSelectAction(swigCPtr, this);
return (cPtr == 0) ? null : new BaseActionElement(cPtr, true);
}
public void SetSelectAction(BaseActionElement action) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetSelectAction(swigCPtr, this, BaseActionElement.getCPtr(action), action);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetSelectAction(swigCPtr, this, BaseActionElement.getCPtr(action), action);
}
public BackgroundImage GetBackgroundImage() {
- long cPtr = AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBackgroundImage(swigCPtr, this);
+ long cPtr = AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBackgroundImage(swigCPtr, this);
return (cPtr == 0) ? null : new BackgroundImage(cPtr, true);
}
public void SetBackgroundImage(BackgroundImage value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetBackgroundImage(swigCPtr, this, BackgroundImage.getCPtr(value), value);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetBackgroundImage(swigCPtr, this, BackgroundImage.getCPtr(value), value);
}
public long GetMinHeight() {
- return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetMinHeight(swigCPtr, this);
+ return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetMinHeight(swigCPtr, this);
}
public void SetMinHeight(long value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_SetMinHeight(swigCPtr, this, value);
- }
-
- public void DeserializeChildren(ParseContext context, JsonValue value) {
- AdaptiveCardObjectModelJNI.CollectionTypeElement_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value);
+ AdaptiveCardObjectModelJNI.StyledCollectionElement_SetMinHeight(swigCPtr, this, value);
}
public JsonValue SerializeToJsonValue() {
- return new JsonValue(AdaptiveCardObjectModelJNI.CollectionTypeElement_SerializeToJsonValue(swigCPtr, this), true);
+ return new JsonValue(AdaptiveCardObjectModelJNI.StyledCollectionElement_SerializeToJsonValue(swigCPtr, this), true);
}
}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java
index 3ecacf8355..6706aad232 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java
@@ -8,7 +8,7 @@
package io.adaptivecards.objectmodel;
-public class Table extends BaseCardElement {
+public class Table extends CollectionCoreElement {
private transient long swigCPtr;
private transient boolean swigCMemOwnDerived;
@@ -55,6 +55,10 @@ public JsonValue SerializeToJsonValue() {
return new JsonValue(AdaptiveCardObjectModelJNI.Table_SerializeToJsonValue(swigCPtr, this), true);
}
+ public void DeserializeChildren(ParseContext context, JsonValue value) {
+ AdaptiveCardObjectModelJNI.Table_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value);
+ }
+
public boolean GetShowGridLines() {
return AdaptiveCardObjectModelJNI.Table_GetShowGridLines(swigCPtr, this);
}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java
index c4aa4a0d5c..74e62d0f9b 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java
@@ -51,4 +51,14 @@ public TableCell(TableCell arg0) {
this(AdaptiveCardObjectModelJNI.new_TableCell__SWIG_1(TableCell.getCPtr(arg0), arg0), true);
}
+ public static TableCell DeserializeTableCellFromString(ParseContext context, String root) {
+ long cPtr = AdaptiveCardObjectModelJNI.TableCell_DeserializeTableCellFromString(ParseContext.getCPtr(context), context, root);
+ return (cPtr == 0) ? null : new TableCell(cPtr, true);
+ }
+
+ public static TableCell DeserializeTableCell(ParseContext context, JsonValue root) {
+ long cPtr = AdaptiveCardObjectModelJNI.TableCell_DeserializeTableCell(ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root);
+ return (cPtr == 0) ? null : new TableCell(cPtr, true);
+ }
+
}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java
deleted file mode 100644
index 41af73c057..0000000000
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 4.0.2
- *
- * 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 TableCellParser extends ContainerParser {
- private transient long swigCPtr;
- private transient boolean swigCMemOwnDerived;
-
- protected TableCellParser(long cPtr, boolean cMemoryOwn) {
- super(AdaptiveCardObjectModelJNI.TableCellParser_SWIGSmartPtrUpcast(cPtr), true);
- swigCMemOwnDerived = cMemoryOwn;
- swigCPtr = cPtr;
- }
-
- protected static long getCPtr(TableCellParser obj) {
- return (obj == null) ? 0 : obj.swigCPtr;
- }
-
- protected void swigSetCMemOwn(boolean own) {
- swigCMemOwnDerived = own;
- super.swigSetCMemOwn(own);
- }
-
- @SuppressWarnings("deprecation")
- protected void finalize() {
- delete();
- }
-
- public synchronized void delete() {
- if (swigCPtr != 0) {
- if (swigCMemOwnDerived) {
- swigCMemOwnDerived = false;
- AdaptiveCardObjectModelJNI.delete_TableCellParser(swigCPtr);
- }
- swigCPtr = 0;
- }
- super.delete();
- }
-
- public TableCellParser() {
- this(AdaptiveCardObjectModelJNI.new_TableCellParser__SWIG_0(), true);
- }
-
- public TableCellParser(TableCellParser arg0) {
- this(AdaptiveCardObjectModelJNI.new_TableCellParser__SWIG_1(TableCellParser.getCPtr(arg0), arg0), true);
- }
-
- public BaseCardElement Deserialize(ParseContext context, JsonValue root) {
- long cPtr = AdaptiveCardObjectModelJNI.TableCellParser_Deserialize(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root);
- return (cPtr == 0) ? null : new BaseCardElement(cPtr, true);
- }
-
- public BaseCardElement DeserializeFromString(ParseContext context, String jsonString) {
- long cPtr = AdaptiveCardObjectModelJNI.TableCellParser_DeserializeFromString(swigCPtr, this, ParseContext.getCPtr(context), context, jsonString);
- return (cPtr == 0) ? null : new BaseCardElement(cPtr, true);
- }
-
-}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java
index c725f0b517..649fc3198d 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java
@@ -95,4 +95,14 @@ public void SetStyle(ContainerStyle value) {
AdaptiveCardObjectModelJNI.TableRow_SetStyle(swigCPtr, this, value.swigValue());
}
+ public static TableRow DeserializeTableRowFromString(ParseContext context, String root) {
+ long cPtr = AdaptiveCardObjectModelJNI.TableRow_DeserializeTableRowFromString(ParseContext.getCPtr(context), context, root);
+ return (cPtr == 0) ? null : new TableRow(cPtr, true);
+ }
+
+ public static TableRow DeserializeTableRow(ParseContext context, JsonValue root) {
+ long cPtr = AdaptiveCardObjectModelJNI.TableRow_DeserializeTableRow(ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root);
+ return (cPtr == 0) ? null : new TableRow(cPtr, true);
+ }
+
}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java
deleted file mode 100644
index c56a2a9a17..0000000000
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 4.0.2
- *
- * 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 TableRowParser extends BaseCardElementParser {
- private transient long swigCPtr;
- private transient boolean swigCMemOwnDerived;
-
- protected TableRowParser(long cPtr, boolean cMemoryOwn) {
- super(AdaptiveCardObjectModelJNI.TableRowParser_SWIGSmartPtrUpcast(cPtr), true);
- swigCMemOwnDerived = cMemoryOwn;
- swigCPtr = cPtr;
- }
-
- protected static long getCPtr(TableRowParser obj) {
- return (obj == null) ? 0 : obj.swigCPtr;
- }
-
- protected void swigSetCMemOwn(boolean own) {
- swigCMemOwnDerived = own;
- super.swigSetCMemOwn(own);
- }
-
- @SuppressWarnings("deprecation")
- protected void finalize() {
- delete();
- }
-
- public synchronized void delete() {
- if (swigCPtr != 0) {
- if (swigCMemOwnDerived) {
- swigCMemOwnDerived = false;
- AdaptiveCardObjectModelJNI.delete_TableRowParser(swigCPtr);
- }
- swigCPtr = 0;
- }
- super.delete();
- }
-
- public TableRowParser() {
- this(AdaptiveCardObjectModelJNI.new_TableRowParser__SWIG_0(), true);
- }
-
- public TableRowParser(TableRowParser arg0) {
- this(AdaptiveCardObjectModelJNI.new_TableRowParser__SWIG_1(TableRowParser.getCPtr(arg0), arg0), true);
- }
-
- public BaseCardElement Deserialize(ParseContext context, JsonValue root) {
- long cPtr = AdaptiveCardObjectModelJNI.TableRowParser_Deserialize(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root);
- return (cPtr == 0) ? null : new BaseCardElement(cPtr, true);
- }
-
- public BaseCardElement DeserializeFromString(ParseContext context, String jsonString) {
- long cPtr = AdaptiveCardObjectModelJNI.TableRowParser_DeserializeFromString(swigCPtr, this, ParseContext.getCPtr(context), context, jsonString);
- return (cPtr == 0) ? null : new BaseCardElement(cPtr, true);
- }
-
-}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java
index 99b99f7162..4609d9db86 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java
@@ -12,7 +12,8 @@ public enum TextInputStyle {
Text(0),
Tel,
Url,
- Email;
+ Email,
+ Password;
public final int swigValue() {
return swigValue;
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java
index 43ab160dc3..18159fb5fb 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java
@@ -7,8 +7,11 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
+
+import android.os.Build;
import android.text.TextUtils;
import android.util.TypedValue;
+import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -17,6 +20,7 @@
import android.widget.AutoCompleteTextView;
import android.widget.CheckBox;
import android.widget.CompoundButton;
+import android.widget.Filter;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
@@ -50,9 +54,12 @@
import io.adaptivecards.renderer.inputhandler.RadioGroupInputHandler;
import io.adaptivecards.renderer.registration.CardRendererRegistration;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
public class ChoiceSetInputRenderer extends BaseCardElementRenderer
{
@@ -440,11 +447,29 @@ class FilteredChoiceSetAdapter extends ArrayAdapter
{
boolean m_mustWrap = false;
+ // m_items contains the items currently being displayed as suggestions
+ // m_originalItemsList contains the items provided by the card author when the element was created
+ List m_items, m_originalItemsList;
+
FilteredChoiceSetAdapter(Context context, int resource,
Vector items, boolean mustWrap)
{
super(context, resource, items);
m_mustWrap = mustWrap;
+ m_items = items;
+ m_originalItemsList = new ArrayList<>(items);
+ }
+
+ @Override
+ public int getCount()
+ {
+ return m_items.size();
+ }
+
+ @Override
+ public String getItem(int pos)
+ {
+ return m_items.get(pos);
}
@NonNull
@@ -463,6 +488,75 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup
return view;
}
+
+ @NonNull
+ @Override
+ public Filter getFilter() {
+ return m_substringFilter;
+ }
+
+ Filter m_substringFilter = new Filter() {
+
+ @Override
+ protected FilterResults performFiltering(CharSequence constraint) {
+
+ FilterResults filterResults = new FilterResults();
+
+ // Due to the time it takes for evaluating all options, this part of the code has
+ // to be synchronized, otherwise the worker thread that calls the publishResults
+ // function will throw an illegalstateexception or a concurrentmodificationexception
+ synchronized (filterResults)
+ {
+ List filteredSuggestions = new ArrayList<>();
+
+ // isEmpty compares against null and 0-length strings
+ if (!TextUtils.isEmpty(constraint))
+ {
+ String lowerCaseConstraint = constraint.toString().toLowerCase();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
+ {
+ Predicate bySubstring = choice -> choice.toLowerCase().contains(lowerCaseConstraint);
+ filteredSuggestions = m_originalItemsList.stream().filter(bySubstring).collect(Collectors.toList());
+ }
+ else
+ {
+ for (String choice : m_originalItemsList)
+ {
+ if (choice.toLowerCase().contains(lowerCaseConstraint))
+ {
+ filteredSuggestions.add(choice);
+ }
+ }
+ }
+ }
+ else
+ {
+ filteredSuggestions = m_originalItemsList;
+ }
+
+ filterResults.values = filteredSuggestions;
+ filterResults.count = filteredSuggestions.size();
+
+ return filterResults;
+ }
+ }
+
+ @Override
+ protected void publishResults(CharSequence constraint, FilterResults filterResults)
+ {
+ if (filterResults != null && filterResults.count > 0)
+ {
+ m_items = (ArrayList) filterResults.values;
+ notifyDataSetChanged();
+ }
+ else
+ {
+ notifyDataSetInvalidated();
+ }
+ }
+ };
+
}
autoCompleteTextView.setAdapter(new FilteredChoiceSetAdapter(context,
@@ -475,6 +569,22 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup
autoCompleteTextView.setText(titleList.get(valueIndex));
}
+ autoCompleteTextView.setOnTouchListener(new View.OnTouchListener(){
+ @Override
+ public boolean onTouch(View v, MotionEvent event){
+ autoCompleteTextView.showDropDown();
+ return false;
+ }
+ });
+
+ autoCompleteTextView.setOnKeyListener(new View.OnKeyListener() {
+ @Override
+ public boolean onKey(View view, int i, KeyEvent keyEvent) {
+ autoCompleteTextView.showDropDown();
+ return false;
+ }
+ });
+
autoCompleteTextView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java
index 5fb354e418..7df0de40ea 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java
@@ -13,6 +13,7 @@
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
+import android.text.method.PasswordTransformationMethod;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.Gravity;
@@ -91,6 +92,11 @@ else if (textInputStyle == TextInputStyle.Email)
{
editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
}
+ else if (textInputStyle == TextInputStyle.Password)
+ {
+ editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
+ editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
+ }
else
{
throw new IllegalArgumentException("Unknown TextInputStyle: " + textInputStyle.toString());
@@ -397,7 +403,7 @@ public View render(
BaseActionElement action = textInput.GetInlineAction();
- if (textInput.GetIsMultiline())
+ if (textInput.GetIsMultiline() && (textInput.GetTextInputStyle() != TextInputStyle.Password))
{
// If the Input.Text has to stretch then don't limit the number of lines,
// otherwise default to 3 lines
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java
index 8318b91369..a44c32d9c5 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java
@@ -4,6 +4,7 @@
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.Rect;
import android.util.TypedValue;
import android.widget.LinearLayout;
@@ -45,6 +46,23 @@ public ValidatedAutoCompleteTextView(Context context, boolean usingCustomInputs)
}
}
+ @Override
+ public boolean enoughToFilter()
+ {
+ return true;
+ }
+
+ @Override
+ protected void onFocusChanged(boolean focused, int direction,
+ Rect previouslyFocusedRect)
+ {
+ super.onFocusChanged(focused, direction, previouslyFocusedRect);
+ if (focused)
+ {
+ performFiltering(getText(), 0);
+ }
+ }
+
/**
* Peeks the usingCustomInputs attribute in the style to verify if custom inputs are being used
* @param context Context to retrieve the value from
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java
index 28b1fc12cc..a71f378527 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java
@@ -165,7 +165,7 @@ public View render(
ContainerRenderer.applyVerticalContentAlignment(columnLayout, column.GetVerticalContentAlignment());
ContainerRenderer.applyPadding(styleForThis, renderArgs.getContainerStyle(), columnLayout, hostConfig);
- ContainerRenderer.applyContainerStyle(styleForThis, columnLayout, hostConfig);
+ ContainerRenderer.applyContainerStyle(styleForThis, renderArgs.getContainerStyle(), columnLayout, hostConfig);
ContainerRenderer.applyBleed(column, columnLayout, context, hostConfig);
BaseCardElementRenderer.applyRtl(column.GetRtl(), columnLayout);
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java
index 062bb35170..88d9a485d4 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java
@@ -132,7 +132,7 @@ public View render(
columnSetLayout.setTag(tagContent);
ContainerRenderer.applyPadding(styleForThis, parentContainerStyle, columnSetLayout, hostConfig);
- ContainerRenderer.applyContainerStyle(styleForThis, columnSetLayout, hostConfig);
+ ContainerRenderer.applyContainerStyle(styleForThis, parentContainerStyle, columnSetLayout, hostConfig);
ContainerRenderer.applyBleed(columnSet, columnSetLayout, context, hostConfig);
return columnSetLayout;
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java
index bd0acd9179..bfe53bbdf2 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java
@@ -19,7 +19,6 @@
import io.adaptivecards.objectmodel.BackgroundImage;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.BaseCardElement;
-import io.adaptivecards.objectmodel.CollectionTypeElement;
import io.adaptivecards.objectmodel.Container;
import io.adaptivecards.objectmodel.ContainerBleedDirection;
import io.adaptivecards.objectmodel.ContainerStyle;
@@ -28,6 +27,7 @@
import io.adaptivecards.objectmodel.HorizontalAlignment;
import io.adaptivecards.objectmodel.HostConfig;
import io.adaptivecards.objectmodel.SubmitAction;
+import io.adaptivecards.objectmodel.StyledCollectionElement;
import io.adaptivecards.objectmodel.VerticalContentAlignment;
import io.adaptivecards.renderer.AdaptiveFallbackException;
import io.adaptivecards.renderer.BackgroundImageLoaderAsync;
@@ -86,7 +86,7 @@ public View render(
ContainerStyle containerStyle = renderArgs.getContainerStyle();
ContainerStyle styleForThis = getLocalContainerStyle(container, containerStyle);
applyPadding(styleForThis, containerStyle, containerView, hostConfig);
- applyContainerStyle(styleForThis, containerView, hostConfig);
+ applyContainerStyle(styleForThis, containerStyle, containerView, hostConfig);
applyBleed(container, containerView, context, hostConfig);
BaseCardElementRenderer.applyRtl(container.GetRtl(), containerView);
@@ -142,12 +142,12 @@ else if(verticalContentAlignment == VerticalContentAlignment.Bottom)
/**
* @deprecated renamed to {@link #applyBleed}
*/
- public static void ApplyBleed(CollectionTypeElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig)
+ public static void ApplyBleed(StyledCollectionElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig)
{
applyBleed(collectionElement, collectionElementView, context, hostConfig);
}
- public static void applyBleed(CollectionTypeElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig)
+ public static void applyBleed(StyledCollectionElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig)
{
if (collectionElement.GetBleed() && collectionElement.GetCanBleed())
{
@@ -189,7 +189,7 @@ public static void applyBleed(CollectionTypeElement collectionElement, ViewGroup
public static void ApplyPadding(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig)
{
applyPadding(computedContainerStyle, parentContainerStyle, collectionElementView, hostConfig);
- applyContainerStyle(computedContainerStyle, collectionElementView, hostConfig);
+ applyContainerStyle(computedContainerStyle, parentContainerStyle, collectionElementView, hostConfig);
}
public static void applyPadding(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig)
@@ -206,28 +206,32 @@ public static void applyPadding(ContainerStyle computedContainerStyle, Container
}
}
- public static void applyContainerStyle(ContainerStyle computedContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig)
+ public static void applyContainerStyle(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig)
{
- int color = Color.parseColor(hostConfig.GetBackgroundColor(computedContainerStyle));
- if (collectionElementView.getBackground() instanceof GradientDrawable)
+ if (computedContainerStyle != parentContainerStyle)
{
- ((GradientDrawable) collectionElementView.getBackground()).setColor(color);
- }
- else
- {
- collectionElementView.setBackgroundColor(color);
+ String backgroundColor = hostConfig.GetBackgroundColor(computedContainerStyle);
+ int color = Color.parseColor(backgroundColor);
+ if (collectionElementView.getBackground() instanceof GradientDrawable)
+ {
+ ((GradientDrawable) collectionElementView.getBackground()).setColor(color);
+ }
+ else
+ {
+ collectionElementView.setBackgroundColor(color);
+ }
}
}
/**
* @deprecated renamed to {@link #getLocalContainerStyle}
*/
- public static ContainerStyle GetLocalContainerStyle(CollectionTypeElement collectionElement, ContainerStyle parentContainerStyle)
+ public static ContainerStyle GetLocalContainerStyle(StyledCollectionElement collectionElement, ContainerStyle parentContainerStyle)
{
return getLocalContainerStyle(collectionElement, parentContainerStyle);
}
- public static ContainerStyle getLocalContainerStyle(CollectionTypeElement collectionElement, ContainerStyle parentContainerStyle)
+ public static ContainerStyle getLocalContainerStyle(StyledCollectionElement collectionElement, ContainerStyle parentContainerStyle)
{
return computeContainerStyle(collectionElement.GetStyle(), parentContainerStyle);
}
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt
index bd65fc5cd7..55dd60f293 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt
@@ -54,7 +54,7 @@ object TableCellRenderer : BaseCardElementRenderer() {
val computedStyle = ContainerRenderer.getLocalContainerStyle(cell, renderArgs.containerStyle)
ContainerRenderer.applyPadding(computedStyle, renderArgs.containerStyle, cellLayout, hostConfig, renderArgs.table.GetShowGridLines())
- ContainerRenderer.applyContainerStyle(computedStyle, cellLayout, hostConfig)
+ ContainerRenderer.applyContainerStyle(computedStyle, renderArgs.containerStyle, cellLayout, hostConfig)
ContainerRenderer.applyVerticalContentAlignment(cellLayout,
computeVerticalContentAlignment(cell.GetVerticalContentAlignment(), row, col, renderArgs.table))
ContainerRenderer.setSelectAction(renderedCard, cell.GetSelectAction(), cellLayout, cardActionHandler, renderArgs)
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt
index afcb405997..57bf8515a3 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt
@@ -41,7 +41,7 @@ object TableRenderer : BaseCardElementRenderer() {
clipToPadding = false
}
val rowStyle = ContainerRenderer.computeContainerStyle(row.GetStyle(), renderArgs.containerStyle)
- ContainerRenderer.applyContainerStyle(rowStyle, rowLayout, hostConfig)
+ ContainerRenderer.applyContainerStyle(rowStyle, renderArgs.containerStyle, rowLayout, hostConfig)
for (j in table.GetColumns().indices) {
val cell = row.GetCells().getOrNull(j) ?: break
diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java
index 64462bcaa4..4940c05c9f 100644
--- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java
+++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java
@@ -10,6 +10,7 @@
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
+import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.MotionEvent;
import android.view.View;
@@ -221,8 +222,10 @@ public View render(
{
textView.setMaxLines(1);
}
+
textView.setEllipsize(TextUtils.TruncateAt.END);
textView.setOnTouchListener(new TouchTextView(new SpannableString(text)));
+
textView.setHorizontallyScrolling(false);
applyTextFormat(textView, hostConfig, textBlock.GetStyle(), textBlock.GetFontType(), textBlock.GetTextWeight(), renderArgs);
applyTextSize(textView, hostConfig, textBlock.GetStyle(), textBlock.GetFontType(), textBlock.GetTextSize(), renderArgs);
@@ -240,6 +243,8 @@ else if (!textBlock.GetWrap())
textView.setMaxLines(1);
}
+ textView.setMovementMethod(LinkMovementMethod.getInstance());
+
viewGroup.addView(textView);
return textView;
}
diff --git a/source/android/uitestapp/build.gradle b/source/android/uitestapp/build.gradle
index 44a433ef70..0a3317455a 100644
--- a/source/android/uitestapp/build.gradle
+++ b/source/android/uitestapp/build.gradle
@@ -30,7 +30,8 @@ android {
assets {
srcDirs {
["../../../samples/v1.3/Scenarios/",
- "../../../samples/v1.5/Test/"]
+ "../../../samples/v1.5/Test/",
+ "../../../samples/v1.5/Elements/"]
}
}
}
@@ -45,6 +46,7 @@ dependencies {
implementation 'androidx.navigation:navigation-ui:2.2.2'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
+ implementation 'androidx.test.uiautomator:uiautomator:2.2.0'
androidTestImplementation 'androidx.test:core:1.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
@@ -53,6 +55,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0'
+ androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
// androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0'
// androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.0''
diff --git a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt
index 87542aa20c..a9eef3bb79 100644
--- a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt
+++ b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt
@@ -3,8 +3,14 @@
package io.adaptivecards.uitestapp
import androidx.test.espresso.Espresso
+import androidx.test.espresso.ViewInteraction
import androidx.test.espresso.action.ViewActions
+import androidx.test.espresso.assertion.ViewAssertions
+import androidx.test.espresso.matcher.RootMatchers
import androidx.test.espresso.matcher.ViewMatchers
+import io.adaptivecards.renderer.TagContent
+import io.adaptivecards.uitestapp.ui.inputs.RetrievedInput
+import org.hamcrest.Matchers
object TestHelpers {
internal fun goToTestCasesScreen() {
@@ -18,4 +24,28 @@ object TestHelpers {
internal fun goToInputsScreen() {
Espresso.onView(ViewMatchers.withId(R.id.navigation_inputs)).perform(ViewActions.click())
}
+
+ internal fun findInputInValidatedContainer(validatedContainerTagId : String) : ViewInteraction {
+ return Espresso.onView(ViewMatchers.withParent(ViewMatchers.withTagValue(Matchers.`is`(TagContent(validatedContainerTagId)))));
+ }
+
+ internal fun clearTextInInput(input : ViewInteraction) {
+ input.perform(ViewActions.scrollTo(), ViewActions.click(), ViewActions.clearText());
+ }
+
+ internal fun setTextInInput(input : ViewInteraction, text : String) {
+ input.perform(ViewActions.scrollTo(), ViewActions.click(), ViewActions.clearText(), ViewActions.typeText(text));
+ }
+
+ internal fun selectPopupOption(optionText : String) {
+ Espresso.onData(Matchers.`is`(optionText)).inRoot(RootMatchers.isPlatformPopup()).perform(ViewActions.scrollTo(), ViewActions.click());
+ }
+
+ internal fun clickOnElementWithText(text : String) {
+ Espresso.onView(ViewMatchers.withText(text)).perform(ViewActions.click())
+ }
+
+ internal fun assertInputValuePairExists(inputId : String, value : String) {
+ Espresso.onData(Matchers.`is`(RetrievedInput(inputId, value))).check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
+ }
}
diff --git a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt
index a88f6a03e6..a3ced04ea2 100644
--- a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt
+++ b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt
@@ -10,6 +10,7 @@ import kotlin.Throws
import androidx.test.espresso.Espresso
import androidx.test.espresso.ViewAction
import androidx.test.espresso.ViewAssertion
+import androidx.test.espresso.ViewInteraction
import org.hamcrest.Matchers
import androidx.test.espresso.action.ViewActions
import io.adaptivecards.uitestapp.TestHelpers
@@ -18,12 +19,20 @@ import io.adaptivecards.renderer.TagContent
import androidx.test.espresso.contrib.PickerActions
import io.adaptivecards.uitestapp.ui.inputs.RetrievedInput
import androidx.test.espresso.assertion.ViewAssertions
+import androidx.test.espresso.matcher.RootMatchers
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import org.junit.Assert
import org.junit.Test
import java.io.IOException
+import android.R.attr.y
+
+import android.R.attr.x
+import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
+import androidx.test.uiautomator.UiDevice
+import org.junit.Ignore
+
@RunWith(AndroidJUnit4::class)
@LargeTest
@@ -73,4 +82,148 @@ class UiTests {
Espresso.onView(ViewMatchers.withText("10. The tenth thing\n11. The list is still going!\n12. Should be 12!")).check(ViewAssertions.matches(ViewMatchers.isDisplayed()))
}
+
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetCanFindSubstrings() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset, delete all text and write "rr" to try to find parrot
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "rr")
+
+ TestHelpers.selectPopupOption("Crimson Shining Parrot")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Crimson Shining Parrot")
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetIgnoresCase() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset, delete all text and write "rr" to try to find parrot
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "RR")
+
+ TestHelpers.selectPopupOption("Crimson Shining Parrot")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Crimson Shining Parrot")
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetCanFindPrefix() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset, delete all text and write "braz" to try to find brazillian
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "braz")
+
+ Thread.sleep(1000)
+
+ TestHelpers.selectPopupOption("Brazilian Tulipwood")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Brazilian Tulipwood")
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetCanFindSuffix() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset, delete all text and write "cuda" to try to find barracuda
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "cuda")
+
+ TestHelpers.selectPopupOption("Blackspot barracuda")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Blackspot barracuda")
+ }
+
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetShowsAllElementsWhenEmpty() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset, delete all text
+ TestHelpers.clearTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"))
+
+ TestHelpers.selectPopupOption("CORAL")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Alaska tree coral")
+ }
+
+ // For some reason this test method is not working on the pipeline but does work locally,
+ // more investigation will be performed
+ @Ignore
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetShowsAllElementsOnClick() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset and delete all text
+ TestHelpers.clearTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"))
+
+ // Click on a random point to dismiss the choices popup
+ val device: UiDevice = UiDevice.getInstance(getInstrumentation())
+ device.click(1, 20)
+
+ // Click again on the choiceset
+ TestHelpers.findInputInValidatedContainer("chosenAnimal").perform(ViewActions.scrollTo(), ViewActions.click());
+
+ TestHelpers.selectPopupOption("Zebra White")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Zebra White")
+ }
+
+ // For some reason this test method is not working on the pipeline but does work locally,
+ // more investigation will be performed
+ @Ignore
+ @Test
+ @Throws(Exception::class)
+ fun TestFilteredChoiceSetMaintainsAllChoices() {
+ Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click())
+ TestHelpers.goToRenderedCardScreen()
+
+ // Click on the filtered choiceset and type "parrot"
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "parrot");
+
+ // Select and option to remove popup
+ TestHelpers.selectPopupOption("Mexican Parrotlet")
+
+ Thread.sleep(3000)
+
+ // Click again on the choiceset and type "stygobromid", as there's only one result it
+ // should have not appeared in the "parrot" query but it should still show up to verify
+ // that options are not accidentally deleted when searching
+ TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "stygobromid");
+
+ TestHelpers.selectPopupOption("Alabama stygobromid")
+
+ TestHelpers.clickOnElementWithText("OK")
+
+ TestHelpers.goToInputsScreen()
+ TestHelpers.assertInputValuePairExists("chosenAnimal", "Alabama stygobromid")
+ }
}
diff --git a/source/dotnet/AdaptiveCards.sln b/source/dotnet/AdaptiveCards.sln
index 86af462029..549af1d2da 100644
--- a/source/dotnet/AdaptiveCards.sln
+++ b/source/dotnet/AdaptiveCards.sln
@@ -13,10 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdaptiveCards.Sample.WPFVis
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{57CE90F5-EDC6-4CA5-9680-4A106621B4AF}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Html.Test", "Test\AdaptiveCards.Rendering.Html.Test\AdaptiveCards.Rendering.Html.Test.csproj", "{9B454519-D567-47E4-ADEF-2DF0D60F69B6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Html", "Library\AdaptiveCards.Rendering.Html\AdaptiveCards.Rendering.Html.csproj", "{EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Wpf", "Library\AdaptiveCards.Rendering.Wpf\AdaptiveCards.Rendering.Wpf.csproj", "{385BFAAD-07E0-4DBF-844D-9EE12EFC0799}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Wpf.Xceed", "Library\AdaptiveCards.Rendering.Wpf.Xceed\AdaptiveCards.Rendering.Wpf.Xceed.csproj", "{4741ABEC-33B0-424F-B5F1-464EC31AEEBD}"
@@ -159,102 +155,6 @@ Global
{96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x64.Build.0 = Release|Any CPU
{96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x86.ActiveCfg = Release|Any CPU
{96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x86.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|ARM.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x64.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x86.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|ARM.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhone.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x64.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x86.Build.0 = Debug|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|Any CPU.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|ARM.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|ARM.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhone.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhone.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x64.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x64.Build.0 = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x86.ActiveCfg = Release|Any CPU
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x86.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|ARM.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x64.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x86.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|ARM.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x64.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x86.Build.0 = Debug|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|Any CPU.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|ARM.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|ARM.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhone.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x64.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x64.Build.0 = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x86.ActiveCfg = Release|Any CPU
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x86.Build.0 = Release|Any CPU
{385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@@ -351,54 +251,6 @@ Global
{4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x64.Build.0 = Release|Any CPU
{4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x86.ActiveCfg = Release|Any CPU
{4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x86.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|ARM.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|ARM.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x64.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x64.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x86.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|ARM.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhone.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x64.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x86.Build.0 = Debug|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|Any CPU.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|ARM.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|ARM.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhone.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhone.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x64.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x64.Build.0 = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x86.ActiveCfg = Release|Any CPU
- {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x86.Build.0 = Release|Any CPU
{4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
@@ -718,11 +570,8 @@ Global
GlobalSection(NestedProjects) = preSolution
{FC4A3527-05A2-4297-98D3-CB1CB512FFDA} = {C7727147-4AD9-4005-A8D0-EEEED82347D3}
{96144C6C-2E37-4A84-95AB-7F01D9222F2F} = {C443BF0A-C616-4E98-8994-C5BAE76AE556}
- {9B454519-D567-47E4-ADEF-2DF0D60F69B6} = {57CE90F5-EDC6-4CA5-9680-4A106621B4AF}
- {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0} = {C7727147-4AD9-4005-A8D0-EEEED82347D3}
{385BFAAD-07E0-4DBF-844D-9EE12EFC0799} = {C7727147-4AD9-4005-A8D0-EEEED82347D3}
{4741ABEC-33B0-424F-B5F1-464EC31AEEBD} = {C7727147-4AD9-4005-A8D0-EEEED82347D3}
- {C015DC5F-E523-4828-8E46-118A8242B51A} = {C443BF0A-C616-4E98-8994-C5BAE76AE556}
{4DB2C1D1-630A-4445-95F3-4E342ABD9342} = {57CE90F5-EDC6-4CA5-9680-4A106621B4AF}
{BCFC1329-903B-4440-ABE1-160C22A3AE23} = {C443BF0A-C616-4E98-8994-C5BAE76AE556}
{03C99D2B-D6FC-4DBE-880C-5B1A4024DD67} = {C443BF0A-C616-4E98-8994-C5BAE76AE556}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs
deleted file mode 100644
index 4fe769ccd6..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs
+++ /dev/null
@@ -1,1998 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Net;
-using Newtonsoft.Json;
-using AdaptiveCards;
-
-namespace AdaptiveCards.Rendering.Html
-{
- ///
- /// Render a card as HTML suitable for server side generation
- ///
- public class AdaptiveCardRenderer : AdaptiveCardRendererBase
- {
- protected override AdaptiveSchemaVersion GetSupportedSchemaVersion()
- {
- return new AdaptiveSchemaVersion(1, 3);
- }
-
- ///
- /// Generate a ID, useful for joining two elements together, e.g., an input and label
- ///
- public static Func GenerateRandomId => () => "ac-" + Guid.NewGuid().ToString().Substring(0, 8);
-
- ///
- /// Adds a CSS class to the action based on it's type name. Default is "ac-action-[actionName]
- ///
- public static Func GetActionCssClass = (action) =>
- {
- var lenFromDot = action.Type.IndexOf(".") + 1;
- var suffix = action.Type.Substring(lenFromDot, action.Type.Length - lenFromDot);
- return "ac-action-" + suffix.Replace(suffix[0], char.ToLower(suffix[0]));
- };
-
- ///
- /// A set of transforms that are applied to the HtmlTags for specific types
- ///
- public static AdaptiveRenderTransformers ActionTransformers { get; } = InitActionTransformers();
-
- public AdaptiveCardRenderer() : this(new AdaptiveHostConfig()) { }
-
- public AdaptiveCardRenderer(AdaptiveHostConfig config)
- {
- SetObjectTypes();
- HostConfig = config;
- }
-
- public AdaptiveFeatureRegistration FeatureRegistration { get; } = new AdaptiveFeatureRegistration();
-
- public RenderedAdaptiveCard RenderCard(AdaptiveCard card)
- {
- try
- {
- var context = new AdaptiveRenderContext(HostConfig, ElementRenderers);
- context.FeatureRegistration = FeatureRegistration;
- context.Lang = card.Lang;
- var tag = context.Render(card);
- return new RenderedAdaptiveCard(tag, card, context.Warnings);
- }
- catch (Exception ex)
- {
- throw new AdaptiveRenderException("Failed to render card", ex)
- {
- CardFallbackText = card.FallbackText
- };
- }
- }
-
- private void SetObjectTypes()
- {
- ElementRenderers.Set(AdaptiveCardRender);
-
- ElementRenderers.Set(TextBlockRender);
- ElementRenderers.Set(RichTextBlockRender);
-
- ElementRenderers.Set(ImageRender);
- ElementRenderers.Set(MediaRender);
-
- ElementRenderers.Set(ContainerRender);
- ElementRenderers.Set(ColumnRender);
- ElementRenderers.Set(ColumnSetRender);
- ElementRenderers.Set(FactSetRender);
- ElementRenderers.Set(ImageSetRender);
- ElementRenderers.Set(ActionSetRender);
-
- ElementRenderers.Set(ChoiceSetRender);
- ElementRenderers.Set(TextInputRender);
- ElementRenderers.Set(NumberInputRender);
- ElementRenderers.Set(DateInputRender);
- ElementRenderers.Set(TimeInputRender);
- ElementRenderers.Set(ToggleInputRender);
-
- ElementRenderers.Set(AdaptiveActionRender);
- ElementRenderers.Set(AdaptiveActionRender);
- ElementRenderers.Set(AdaptiveActionRender);
- ElementRenderers.Set(AdaptiveActionRender);
- }
-
- private static AdaptiveRenderTransformers InitActionTransformers()
- {
- var transformers = new AdaptiveRenderTransformers();
- transformers.Register((action, tag, context) => tag.Attr("data-ac-url", action.Url));
- transformers.Register((action, tag, context) => tag.Attr("data-ac-submitData", JsonConvert.SerializeObject(action.Data, Formatting.None)));
- transformers.Register((action, tag, context) =>
- {
- var showCardId = GenerateRandomId();
- tag.Attr("data-ac-showCardId", showCardId);
- tag.Attr("aria-controls", showCardId);
- tag.Attr("aria-expanded", bool.FalseString);
- });
-
- return transformers;
- }
-
- protected static HtmlTag AddActionAttributes(AdaptiveAction action, HtmlTag tag, AdaptiveRenderContext context)
- {
- tag.AddClass(GetActionCssClass(action))
- .Attr("role", "button")
- .Attr("aria-label", action.Title ?? "")
- .Attr("tabindex", "0");
-
-
- AdaptiveToggleVisibilityAction toggleVisibilityAction = null;
- if ((toggleVisibilityAction = action as AdaptiveToggleVisibilityAction) != null)
- {
- string targetElements = string.Empty;
-
- foreach (var targetElement in toggleVisibilityAction.TargetElements)
- {
- // If the string is not empty, append a comma in preparation to add the new target element
- if (!String.IsNullOrWhiteSpace(targetElements))
- {
- targetElements += ",";
- }
-
- string targetElementId = null;
- string targetElementToggleAction = "Toggle";
-
- if (targetElement != null)
- {
- targetElementId = targetElement.ElementId;
-
- if (targetElement.IsVisible.HasValue)
- {
- targetElementToggleAction = targetElement.IsVisible.Value.ToString();
- }
- }
-
- targetElements += (targetElementId + ":" + targetElementToggleAction);
- }
-
- tag.Attr("data-ac-targetelements", targetElements);
- }
-
- ActionTransformers.Apply(action, tag, context);
-
- return tag;
- }
-
- protected static HtmlTag AddInlineActionAttributes(AdaptiveAction action, HtmlTag tag, AdaptiveRenderContext context)
- {
- tag.AddClass(GetActionCssClass(action) + "-inline")
- .Attr("role", "button")
- .Attr("aria-label", action.Title ?? "");
-
- ActionTransformers.Apply(action, tag, context);
-
- return tag;
- }
-
- protected static HtmlTag AdaptiveActionRender(AdaptiveAction action, AdaptiveRenderContext context)
- {
- if (context.Config.SupportsInteractivity)
- {
- var actionsConfig = context.Config.Actions;
- var buttonElement = new HtmlTag("button", false)
- .Attr("type", "button")
- .Style("overflow", "hidden")
- .Style("white-space", "nowrap")
- .Style("text-overflow", "ellipsis")
- .Style("flex",
- actionsConfig.ActionAlignment == AdaptiveHorizontalAlignment.Stretch ? "0 1 100%" : "0 1 auto")
- .Style("display", "flex")
- .Style("align-items", "center")
- .Style("justify-content", "center")
- .AddClass("ac-pushButton");
-
-
- if (!String.IsNullOrWhiteSpace(action.Style) && !String.Equals(action.Style, "default", StringComparison.OrdinalIgnoreCase))
- {
- if (String.Equals(action.Style, "positive", StringComparison.OrdinalIgnoreCase))
- {
- string accentColor = context.Config.ContainerStyles.Default.ForegroundColors.Accent.Default;
- string lighterAccentColor = ColorUtil.GenerateLighterColor(accentColor);
- buttonElement.Style("background-color", context.GetRGBColor(accentColor));
- buttonElement.Attr("onMouseOver", "this.style.backgroundColor='" + context.GetRGBColor(lighterAccentColor) + "'");
- buttonElement.Attr("onMouseOut", "this.style.backgroundColor='" + context.GetRGBColor(accentColor) + "'");
- buttonElement.Style("color", "#FFFFFF");
- buttonElement.AddClass("ac-action-positive");
- }
- else if (String.Equals(action.Style, "destructive", StringComparison.OrdinalIgnoreCase))
- {
- string attentionColor = context.Config.ContainerStyles.Default.ForegroundColors.Attention.Default;
- string lighterAttentionColor = ColorUtil.GenerateLighterColor(attentionColor);
- buttonElement.Style("color", context.GetRGBColor(attentionColor));
- buttonElement.Attr("onMouseOver", "this.style.color='" + context.GetRGBColor(lighterAttentionColor) + "'");
- buttonElement.Attr("onMouseOut", "this.style.color='" + context.GetRGBColor(attentionColor) + "'");
- buttonElement.AddClass("ac-action-destructive");
- }
- else
- {
- buttonElement.AddClass("ac-action-" + action.Style);
- }
- }
-
- var hasTitle = !string.IsNullOrEmpty(action.Title);
-
- if (action.IconUrl != null)
- {
- // Append the icon to the button
- // NOTE: always using icon size since it's difficult
- // to match icon's height with text's height
- var iconElement = new HtmlTag("image", false)
- .Attr("src", action.IconUrl)
- .Style("max-height", $"{actionsConfig.IconSize}px");
-
- if (actionsConfig.IconPlacement == IconPlacement.LeftOfTitle)
- {
- buttonElement.Style("flex-direction", "row");
-
- if (hasTitle)
- {
- iconElement.Style("margin-right", "4px");
- }
- }
- else
- {
- buttonElement.Style("flex-direction", "column");
-
- if (hasTitle)
- {
- iconElement.Style("margin-bottom", "4px");
- }
- }
-
- buttonElement.Append(iconElement);
- }
-
- var titleElement = new HtmlTag("div", false) { Text = action.Title };
- buttonElement.Append(titleElement);
-
- AddActionAttributes(action, buttonElement, context);
- return buttonElement;
- }
-
- return null;
- }
-
- protected static HtmlTag AdaptiveCardRender(AdaptiveCard card, AdaptiveRenderContext context)
- {
- var uiCard = new DivTag()
- .AddClass($"ac-{card.Type.ToLower()}")
- .Style("width", "100%")
- .Style("background-color", context.GetRGBColor(context.Config.ContainerStyles.Default.BackgroundColor))
- .Style("padding", $"{context.Config.Spacing.Padding}px")
- .Style("box-sizing", "border-box");
-
- if (card.BackgroundImage != null)
- {
- ApplyBackgroundImage(card.BackgroundImage, uiCard, context);
- }
-
- if (card.PixelMinHeight > 0)
- {
- uiCard.Style("min-height", card.PixelMinHeight + "px");
- }
-
- // Reset the parent style
- context.RenderArgs.ParentStyle = AdaptiveContainerStyle.Default;
-
- switch (card.VerticalContentAlignment)
- {
- case AdaptiveVerticalContentAlignment.Center:
- uiCard.Style("justify-content", "center");
- break;
- case AdaptiveVerticalContentAlignment.Bottom:
- uiCard.Style("justify-content", "flex-end");
- break;
- case AdaptiveVerticalContentAlignment.Top:
- default:
- uiCard.Style("justify-content", "flex-start");
- break;
- }
-
- AddContainerElements(uiCard, card.Body, context);
- AddActions(uiCard, card.Actions, context);
-
- AddSelectAction(uiCard, card.SelectAction, context);
-
- // Add all accumulated selectAction show cards
- foreach (var showCard in context.ShowCardTags)
- {
- uiCard.Children.Add(showCard);
- }
-
- return uiCard;
- }
-
- protected static void AddSelectAction(HtmlTag tag, AdaptiveAction selectAction, AdaptiveRenderContext context)
- {
- if (context.Config.SupportsInteractivity && selectAction != null)
- {
- // SelectAction doesn't allow showCard actions
- if (selectAction is AdaptiveShowCardAction)
- {
- context.Warnings.Add(new AdaptiveWarning(-1, "Inline ShowCard not supported for SelectAction"));
- return;
- }
-
- tag.AddClass("ac-selectable");
- AddActionAttributes(selectAction, tag, context);
- }
- }
-
- protected static void AddActions(HtmlTag uiContainer, IList actions, AdaptiveRenderContext context)
- {
- if (context.Config.SupportsInteractivity && actions != null)
- {
- var uiButtonStrip = new DivTag()
- .AddClass("ac-actionset")
- .Style("display", "flex");
- var actionsConfig = context.Config.Actions;
-
- // TODO: This top marging is currently being double applied, will have to investigate later
- //.Style("margin-top", $"{context.Config.GetSpacing(context.Config.Actions.Spacing)}px");
-
- // contains ShowCardAction.AdaptiveCard
- var showCards = new List();
-
- if (actionsConfig.ActionsOrientation == ActionsOrientation.Horizontal)
- {
- uiButtonStrip.Style("flex-direction", "row");
-
- switch (actionsConfig.ActionAlignment)
- {
- case AdaptiveHorizontalAlignment.Center:
- uiButtonStrip.Style("justify-content", "center");
- break;
- case AdaptiveHorizontalAlignment.Right:
- uiButtonStrip.Style("justify-content", "flex-end");
- break;
- default:
- uiButtonStrip.Style("justify-content", "flex-start");
- break;
- }
- }
- else
- {
- uiButtonStrip.Style("flex-direction", "column");
- switch (actionsConfig.ActionAlignment)
- {
- case AdaptiveHorizontalAlignment.Center:
- uiButtonStrip.Style("align-items", "center");
- break;
- case AdaptiveHorizontalAlignment.Right:
- uiButtonStrip.Style("align-items", "flex-end");
- break;
- case AdaptiveHorizontalAlignment.Stretch:
- uiButtonStrip.Style("align-items", "stretch");
- break;
- default:
- uiButtonStrip.Style("align-items", "flex-start");
- break;
- }
- }
-
- // If the number of actions is bigger than maxActions, then log warning for it
- if (actions.Count > actionsConfig.MaxActions)
- {
- context.Warnings.Add(new AdaptiveWarning((int)AdaptiveWarning.WarningStatusCode.MaxActionsExceeded,
- "Some actions were not rendered due to exceeding the maximum number of actions allowed"));
- }
-
- var maxActions = Math.Min(actionsConfig.MaxActions, actions.Count);
- // See if all actions have icons, otherwise force the icon placement to the left
- var oldConfigIconPlacement = actionsConfig.IconPlacement;
- bool allActionsHaveIcons = true;
- for (var i = 0; i < maxActions; i++)
- {
- if (string.IsNullOrEmpty(actions[i].IconUrl))
- {
- allActionsHaveIcons = false;
- break;
- }
- }
-
- if (!allActionsHaveIcons)
- {
- actionsConfig.IconPlacement = IconPlacement.LeftOfTitle;
- }
-
- for (var i = 0; i < maxActions; i++)
- {
- // add actions
- var uiAction = context.Render(actions[i]);
- if (uiAction != null)
- {
- if (actions[i] is AdaptiveShowCardAction showCardAction)
- {
- var cardId = uiAction.Attributes["data-ac-showCardId"];
-
- var uiCard = context.Render(showCardAction.Card);
- if (uiCard != null)
- {
- uiCard.Attr("id", cardId)
- .AddClass("ac-showCard")
- .Style("padding", "0")
- .Style("display", "none")
- .Style("margin-top", $"{actionsConfig.ShowCard.InlineTopMargin}px");
-
- showCards.Add(uiCard);
- }
- }
- uiButtonStrip.Children.Add(uiAction);
- }
-
- // add spacer between buttons according to config
- if (i < maxActions - 1 && actionsConfig.ButtonSpacing > 0)
- {
- var uiSpacer = new DivTag();
-
- if (actionsConfig.ActionsOrientation == ActionsOrientation.Horizontal)
- {
- uiSpacer.Style("flex", "0 0 auto");
- uiSpacer.Style("width", actionsConfig.ButtonSpacing + "px");
- }
- else
- {
- uiSpacer.Style("height", actionsConfig.ButtonSpacing + "px");
- }
- uiButtonStrip.Children.Add(uiSpacer);
- }
- }
-
- if (uiButtonStrip.Children.Any())
- {
- AdaptiveCardRenderer.AddSeparator(uiContainer, new AdaptiveContainer(), context);
- uiContainer.Children.Add(uiButtonStrip);
- }
-
- foreach (var showCard in showCards)
- {
- uiContainer.Children.Add(showCard);
- }
-
- // Restore the iconPlacement for the context.
- actionsConfig.IconPlacement = oldConfigIconPlacement;
- }
- }
-
- protected static void AddContainerElements(HtmlTag uiContainer, IList elements, AdaptiveRenderContext context)
- {
- if (elements != null)
- {
- bool isFirstVisibleElement = true;
- int index = 0;
-
- foreach (var cardElement in elements)
- {
- if (index != 0)
- {
- // Only the first element can bleed to the top
- context.RenderArgs.BleedDirection &= ~BleedDirection.BleedUp;
- }
-
- if (index != (elements.Count - 1))
- {
- // Only the last element can bleed to the bottom
- context.RenderArgs.BleedDirection &= ~BleedDirection.BleedDown;
- }
-
- index++;
-
- // each element has a row
- var uiElement = context.Render(cardElement);
- if (uiElement != null)
- {
- HtmlTag uiSeparator = null;
-
- if (uiContainer.Children.Any())
- {
- uiSeparator = AddSeparator(uiContainer, cardElement, context);
- }
-
- if (cardElement is AdaptiveCollectionElement collectionElement)
- {
- if (collectionElement.PixelMinHeight > 0)
- {
- uiElement.Style("min-height", collectionElement.PixelMinHeight + "px");
- }
- }
-
- if (!cardElement.IsVisible)
- {
- uiElement.Style("display", "none");
-
- if (uiSeparator != null)
- {
- uiSeparator.Style("display", "none");
- }
- }
- else
- {
- // if it's visible and it's the first element, hide the separator
- if (isFirstVisibleElement)
- {
- if (uiSeparator != null)
- {
- uiSeparator.Style("display", "none");
- }
-
- isFirstVisibleElement = false;
- }
- }
-
- if (!String.IsNullOrWhiteSpace(cardElement.Id))
- {
- uiElement.Attr("name", cardElement.Id);
- }
-
- if (uiSeparator != null)
- {
- string separatorId = GenerateRandomId();
- uiSeparator.Attr("id", separatorId);
- uiElement.Attr("data-ac-separatorId", separatorId);
- }
-
- uiContainer.Children.Add(uiElement);
- }
- }
- }
- }
-
- protected static HtmlTag AddSeparator(HtmlTag uiContainer, AdaptiveElement adaptiveElement, AdaptiveRenderContext context)
- {
- if (!adaptiveElement.Separator && adaptiveElement.Spacing == AdaptiveSpacing.None)
- {
- return null;
- }
-
- int spacing = context.Config.GetSpacing(adaptiveElement.Spacing);
- var uiSep = new DivTag().AddClass("ac-separator");
-
- if (adaptiveElement.Separator)
- {
- SeparatorConfig sep = context.Config.Separator;
-
- uiSep.Style("padding-top", $"{spacing / 2}px")
- .Style("margin-top", $"{spacing / 2}px")
- .Style("border-top-color", $"{context.GetRGBColor(sep.LineColor)}")
- .Style("border-top-width", $"{sep.LineThickness}px")
- .Style("border-top-style", "solid");
- }
- else
- {
- uiSep.Style("height", $"{spacing}px");
- }
-
- uiContainer.Children.Add(uiSep);
- return uiSep;
- }
-
- protected static HtmlTag ColumnRender(AdaptiveColumn column, AdaptiveRenderContext context)
- {
- var uiColumn = new DivTag()
- .AddClass($"ac-{column.Type.Replace(".", "").ToLower()}")
- .Style("display", "flex")
- .Style("flex-direction", "column")
- .Style("min-width", "0px");
-
- var parentRenderArgs = context.RenderArgs;
- var childRenderArgs = new AdaptiveRenderArgs(parentRenderArgs);
-
- if (column.PixelMinHeight > 0)
- {
- uiColumn.Style("min-height", column.PixelMinHeight + "px");
- }
-
- if (!column.IsVisible)
- {
- uiColumn.Style("display", "none");
- }
-
- if (column.BackgroundImage != null)
- {
- ApplyBackgroundImage(column.BackgroundImage, uiColumn, context);
- }
-
- bool inheritsStyleFromParent = !column.Style.HasValue;
- bool hasPadding = false;
- if (!inheritsStyleFromParent)
- {
- hasPadding = ApplyPadding(uiColumn, column, parentRenderArgs, context);
-
- // Apply background color
- ContainerStyleConfig containerStyle = context.Config.ContainerStyles.GetContainerStyleConfig(column.Style);
- uiColumn.Style("background-color", context.GetRGBColor(containerStyle.BackgroundColor));
-
- childRenderArgs.ForegroundColors = containerStyle.ForegroundColors;
- }
-
- switch (column.VerticalContentAlignment)
- {
- case AdaptiveVerticalContentAlignment.Center:
- uiColumn.Style("justify-content", "center");
- break;
- case AdaptiveVerticalContentAlignment.Bottom:
- uiColumn.Style("justify-content", "flex-end");
- break;
- case AdaptiveVerticalContentAlignment.Top:
- default:
- uiColumn.Style("justify-content", "flex-start");
- break;
- }
-
- // Modify context outer parent style so padding necessity can be determined
- childRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : column.Style.Value;
-
- // If the column has no padding or has padding and doesn't bleed, then the children can bleed
- // to the side the column would have bled
- if (hasPadding)
- {
- childRenderArgs.BleedDirection = BleedDirection.BleedAll;
- }
-
- childRenderArgs.HasParentWithPadding = hasPadding;
- context.RenderArgs = childRenderArgs;
-
- AddContainerElements(uiColumn, column.Items, context);
-
- AddSelectAction(uiColumn, column.SelectAction, context);
-
- context.RenderArgs = parentRenderArgs;
-
- return uiColumn;
- }
-
- protected static HtmlTag ColumnSetRender(AdaptiveColumnSet columnSet, AdaptiveRenderContext context)
- {
- var uiColumnSet = new DivTag()
- .AddClass($"ac-{columnSet.Type.Replace(".", "").ToLower()}")
- .Style("display", "flex");
-
- AddSelectAction(uiColumnSet, columnSet.SelectAction, context);
-
- var parentRenderArgs = context.RenderArgs;
- var childrenRenderArgs = new AdaptiveRenderArgs(parentRenderArgs);
-
- bool inheritsStyleFromParent = !columnSet.Style.HasValue;
- bool hasPadding = false;
- if (!inheritsStyleFromParent)
- {
- hasPadding = ApplyPadding(uiColumnSet, columnSet, parentRenderArgs, context);
- // Apply background color
- var columnSetStyle = context.Config.ContainerStyles.GetContainerStyleConfig(columnSet.Style);
- uiColumnSet.Style("background-color", context.GetRGBColor(columnSetStyle.BackgroundColor));
- childrenRenderArgs.ForegroundColors = columnSetStyle.ForegroundColors;
- }
-
- // Modify context outer parent style so padding necessity can be determined
- childrenRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : columnSet.Style.Value;
-
- var max = Math.Max(1.0, columnSet.Columns.Select(col =>
- {
- if (col.Width != null && double.TryParse(col.Width, out double widthVal))
- return widthVal;
-#pragma warning disable CS0618 // Type or member is obsolete
- if (double.TryParse(col.Size ?? "0", out double val))
-#pragma warning restore CS0618 // Type or member is obsolete
- return val;
- return 0;
- }).Sum());
-
- bool isFirstVisibleColumn = true;
- for (int i = 0; i < columnSet.Columns.Count; ++i)
- {
- var column = columnSet.Columns[i];
-
- var childRenderArgs = new AdaptiveRenderArgs(childrenRenderArgs);
- // Reset up and down bleed for columns as that behaviour shouldn't be changed
- childRenderArgs.BleedDirection |= (BleedDirection.BleedUp | BleedDirection.BleedDown);
-
- if (i != 0)
- {
- // Only the first column can bleed to the left
- childRenderArgs.BleedDirection &= ~BleedDirection.BleedLeft;
- }
-
- if (i != columnSet.Columns.Count - 1)
- {
- // Only the last column can bleed to the right
- childRenderArgs.BleedDirection &= ~BleedDirection.BleedRight;
- }
- context.RenderArgs = childRenderArgs;
-
- var uiColumn = context.Render(column);
-
- HtmlTag separator = null;
- // Add horizontal Seperator
- if (uiColumnSet.Children.Any() && (column.Separator || column.Spacing != AdaptiveSpacing.None))
- {
- SeparatorConfig sep = context.Config.Separator;
-
- int spacing = context.Config.GetSpacing(column.Spacing) / 2;
- int lineThickness = column.Separator ? sep.LineThickness : 0;
-
- separator = new DivTag()
- .AddClass($"ac-columnseparator")
- .Style("flex", "0 0 auto")
- .Style("padding-left", $"{spacing}px")
- .Style("margin-left", $"{spacing}px")
- .Style("border-left-style", $"solid");
-
- // This are the only two properties for separator
- if (sep != null)
- {
- separator.Style("border-left-color", $"{context.GetRGBColor(sep.LineColor)}")
- .Style("border-left-width", $"{lineThickness}px");
- }
-
- uiColumnSet.Children.Add(separator);
- }
-
- if (column.IsVisible && isFirstVisibleColumn)
- {
- if (separator != null)
- {
- separator.Style("display", "none");
- }
- isFirstVisibleColumn = false;
- }
-
- // do some sizing magic
- var width = column.Width?.ToLower();
- if (string.IsNullOrEmpty(width))
-#pragma warning disable CS0618 // Type or member is obsolete
- width = column.Size?.ToLower();
-#pragma warning restore CS0618 // Type or member is obsolete
- if (width == null || width == AdaptiveColumnWidth.Stretch.ToLower())
- {
- uiColumn = uiColumn.Style("flex", "1 1 auto");
- }
- else if (width == AdaptiveColumnWidth.Auto.ToLower())
- {
- uiColumn = uiColumn.Style("flex", "0 1 auto");
- }
- else
- {
- if (double.TryParse(width, out double val) && val >= 0)
- {
- var percent = Convert.ToInt32(100 * (val / max));
- uiColumn = uiColumn.Style("flex", $"1 1 {percent}%");
- }
- else if (width.EndsWith("px") && double.TryParse(width.Substring(0, width.Length - 2), out double pxVal) && pxVal >= 0)
- {
- uiColumn = uiColumn.Style("flex", $"0 0 {(int)pxVal}px");
- }
- else
- {
- uiColumn = uiColumn.Style("flex", "0 0 auto");
- }
- }
-
- if (!column.IsVisible)
- {
- uiColumn.Style("display", "none");
-
- if (separator != null)
- {
- separator.Style("display", "none");
- }
- }
-
- if (!String.IsNullOrEmpty(column.Id))
- {
- uiColumn.Attr("name", column.Id);
- }
-
- if (separator != null)
- {
- string separatorId = GenerateRandomId();
- separator.Attr("id", separatorId);
- uiColumn.Attr("data-ac-separatorId", separatorId);
- }
-
- uiColumnSet.Children.Add(uiColumn);
- }
-
- context.RenderArgs = parentRenderArgs;
-
- return uiColumnSet;
- }
-
- protected static HtmlTag ContainerRender(AdaptiveContainer container, AdaptiveRenderContext context)
- {
- var uiContainer = new DivTag()
- .AddClass($"ac-{container.Type.Replace(".", "").ToLower()}");
-
- if (container.BackgroundImage != null)
- {
- ApplyBackgroundImage(container.BackgroundImage, uiContainer, context);
- }
-
- if (container.Height == AdaptiveHeight.Stretch)
- {
- uiContainer.Style("display", "flex")
- .Style("flex-direction", "column")
- .Style("flex", "1 1 100%");
- }
-
- // Keep track of ContainerStyle.ForegroundColors before Container is rendered
- var parentRenderArgs = context.RenderArgs;
- var childRenderArgs = new AdaptiveRenderArgs(parentRenderArgs);
-
- bool inheritsStyleFromParent = !container.Style.HasValue;
- bool hasPadding = false;
- if (!inheritsStyleFromParent)
- {
- hasPadding = ApplyPadding(uiContainer, container, parentRenderArgs, context);
- // Apply background color
- ContainerStyleConfig containerStyle = context.Config.ContainerStyles.GetContainerStyleConfig(container.Style);
- uiContainer.Style("background-color", context.GetRGBColor(containerStyle.BackgroundColor));
-
- childRenderArgs.ForegroundColors = containerStyle.ForegroundColors;
- }
-
- if (hasPadding)
- {
- childRenderArgs.BleedDirection = BleedDirection.BleedAll;
- }
-
- childRenderArgs.HasParentWithPadding = (hasPadding || parentRenderArgs.HasParentWithPadding);
-
- switch (container.VerticalContentAlignment)
- {
- case AdaptiveVerticalContentAlignment.Center:
- uiContainer.Style("justify-content", "center");
- break;
- case AdaptiveVerticalContentAlignment.Bottom:
- uiContainer.Style("justify-content", "flex-end");
- break;
- case AdaptiveVerticalContentAlignment.Top:
- default:
- uiContainer.Style("justify-content", "flex-start");
- break;
- }
-
- // Modify context outer parent style so padding necessity can be determined
- childRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : container.Style.Value;
- context.RenderArgs = childRenderArgs;
-
- AddContainerElements(uiContainer, container.Items, context);
-
- AddSelectAction(uiContainer, container.SelectAction, context);
-
- // Revert context's value to that of outside the Container
- context.RenderArgs = parentRenderArgs;
-
- return uiContainer;
- }
-
- protected static HtmlTag FactSetRender(AdaptiveFactSet factSet, AdaptiveRenderContext context)
- {
- var uiFactSet = (TableTag)new TableTag()
- .AddClass($"ac-{factSet.Type.Replace(".", "").ToLower()}")
- .Attr("name", factSet.Id)
- .Style("overflow", "hidden");
-
- if (factSet.Height == AdaptiveHeight.Stretch)
- {
- uiFactSet.Style("display", "block")
- .Style("flex", "1 1 100%");
- }
-
- foreach (var fact in factSet.Facts)
- {
- AdaptiveTextBlock factTitle = new AdaptiveTextBlock()
- {
- Text = fact.Title,
- Size = context.Config.FactSet.Title.Size,
- Color = context.Config.FactSet.Title.Color,
- Weight = context.Config.FactSet.Title.Weight,
- IsSubtle = context.Config.FactSet.Title.IsSubtle,
- Wrap = context.Config.FactSet.Title.Wrap,
- MaxWidth = context.Config.FactSet.Title.MaxWidth
- };
- var uiTitle = context.Render(factTitle)
- .AddClass("ac-facttitle")
- .Style("margin-right", $"{context.Config.FactSet.Spacing}px");
-
- AdaptiveTextBlock factValue = new AdaptiveTextBlock()
- {
- Text = fact.Value,
- Size = context.Config.FactSet.Value.Size,
- Color = context.Config.FactSet.Value.Color,
- Weight = context.Config.FactSet.Value.Weight,
- IsSubtle = context.Config.FactSet.Value.IsSubtle,
- Wrap = context.Config.FactSet.Value.Wrap,
- // MaxWidth is not supported on the Value of FactSet. Do not set it.
- };
- var uiValue = context.Render(factValue)
- .AddClass("ac-factvalue");
-
- // create row in factset
- var uiRow = uiFactSet
- .AddBodyRow();
- uiRow.Style("height", "1px");
-
- // add elements as cells
- uiRow.AddCell().AddClass("ac-factset-titlecell").Style("height", "inherit")
- .Style("max-width", $"{context.Config.FactSet.Title.MaxWidth}px")
- .Append(uiTitle);
- uiRow.AddCell().AddClass("ac-factset-valuecell").Style("height", "inherit").Append(uiValue);
- }
- return uiFactSet;
- }
-
- protected static HtmlTag TextBlockRender(AdaptiveTextBlock textBlock, AdaptiveRenderContext context)
- {
- string fontFamily = context.Config.GetFontFamily(textBlock.FontType);
- int fontSize = context.Config.GetFontSize(textBlock.FontType, textBlock.Size);
- int weight = context.Config.GetFontWeight(textBlock.FontType, textBlock.Weight);
-
- // Not sure where this magic value comes from?
- var lineHeight = fontSize * 1.33;
-
- var uiTextBlock = new HtmlTag("div", false)
- .AddClass($"ac-{textBlock.Type.Replace(".", "").ToLower()}")
- .Attr("name", textBlock.Id)
- .Style("box-sizing", "border-box")
- .Style("text-align", textBlock.HorizontalAlignment.ToString().ToLower())
- .Style("color", context.GetColor(textBlock.Color, textBlock.IsSubtle, false))
- .Style("line-height", $"{lineHeight.ToString("F", System.Globalization.CultureInfo.InvariantCulture)}px")
- .Style("font-size", $"{fontSize}px")
- .Style("font-weight", $"{weight}");
-
- if (textBlock.Height == AdaptiveHeight.Stretch)
- {
- uiTextBlock.Style("flex", "1 1 100%");
- }
-
- if (textBlock.Italic)
- {
- uiTextBlock.Style("font-style", "italic");
- }
-
- if (textBlock.Strikethrough)
- {
- uiTextBlock.Style("text-decoration", "line-through");
- }
-
- if (textBlock.MaxLines > 0)
- uiTextBlock = uiTextBlock
- .Style("max-height", $"{lineHeight * textBlock.MaxLines}px")
- .Style("overflow", "hidden");
-
- uiTextBlock = textBlock.Wrap ?
- uiTextBlock.Style("word-wrap", "break-word") :
- uiTextBlock.Style("white-space", "nowrap");
-
- var textTags = MarkdownToHtmlTagConverter.Convert(RendererUtilities.ApplyTextFunctions(textBlock.Text, context.Lang));
- uiTextBlock.Children.AddRange(textTags);
-
- Action setParagraphStyles = null;
- setParagraphStyles = (HtmlTag htmlTag) =>
- {
- if (htmlTag.Element?.ToLowerInvariant() == "p")
- {
- htmlTag.Style("margin-top", "0px");
- htmlTag.Style("margin-bottom", "0px");
- htmlTag.Style("width", "100%");
-
- if (!string.IsNullOrEmpty(fontFamily))
- {
- htmlTag.Style("font-family", fontFamily);
- }
-
- if (!textBlock.Wrap)
- {
- htmlTag.Style("text-overflow", "ellipsis");
- htmlTag.Style("overflow", "hidden");
- }
- }
-
- foreach (var child in htmlTag.Children)
- {
- setParagraphStyles(child);
- }
- };
-
- setParagraphStyles(uiTextBlock);
-
- return uiTextBlock;
- }
-
- protected static HtmlTag RichTextBlockRender(AdaptiveRichTextBlock richTextBlock, AdaptiveRenderContext context)
- {
- var uiTextBlock = new HtmlTag("div", false)
- .AddClass($"ac-{richTextBlock.Type.Replace(".", "").ToLower()}")
- .Attr("name", richTextBlock.Id)
- .Style("box-sizing", "border-box")
- .Style("text-align", richTextBlock.HorizontalAlignment.ToString().ToLower());
-
- if (richTextBlock.Height == AdaptiveHeight.Stretch)
- {
- uiTextBlock.Style("flex", "1 1 100%");
- }
-
- uiTextBlock = uiTextBlock.Style("word-wrap", "break-word");
-
- var uiParagraph = new HtmlTag("p");
- foreach (var inlineRun in richTextBlock.Inlines)
- {
- AdaptiveTextRun textRun = inlineRun as AdaptiveTextRun;
-
- var uiInlineRun = TextRunRender(textRun, context);
- uiParagraph.Children.Add(uiInlineRun);
- }
- uiTextBlock.Children.Add(uiParagraph);
-
- Action setParagraphStyles = null;
- setParagraphStyles = (HtmlTag htmlTag) =>
- {
- if (htmlTag.Element?.ToLowerInvariant() == "p")
- {
- htmlTag.Style("margin-top", "0px");
- htmlTag.Style("margin-bottom", "0px");
- htmlTag.Style("width", "100%");
- }
-
- foreach (var child in htmlTag.Children)
- {
- setParagraphStyles(child);
- }
- };
-
- setParagraphStyles(uiTextBlock);
-
- return uiTextBlock;
- }
-
- protected static HtmlTag TextRunRender(AdaptiveTextRun textRun, AdaptiveRenderContext context)
- {
- string fontFamily = context.Config.GetFontFamily(textRun.FontType);
- int fontSize = context.Config.GetFontSize(textRun.FontType, textRun.Size);
- int weight = context.Config.GetFontWeight(textRun.FontType, textRun.Weight);
-
- // Not sure where this magic value comes from?
- var lineHeight = fontSize * 1.33;
-
- var uiTextRun = new HtmlTag("span", true)
- .AddClass($"ac-{textRun.Type.Replace(".", "").ToLower()}")
- .Style("color", context.GetColor(textRun.Color, textRun.IsSubtle, false))
- .Style("line-height", $"{lineHeight.ToString("F", System.Globalization.CultureInfo.InvariantCulture)}px")
- .Style("font-size", $"{fontSize}px")
- .Style("font-weight", $"{weight}");
-
- uiTextRun.Text = RendererUtilities.ApplyTextFunctions(textRun.Text, context.Lang);
-
- if (textRun.Italic)
- {
- uiTextRun.Style("font-style", "italic");
- }
-
- if (textRun.Strikethrough && textRun.Underline)
- {
- uiTextRun.Style("text-decoration", "line-through underline");
- }
- else if (textRun.Strikethrough)
- {
- uiTextRun.Style("text-decoration", "line-through");
- }
- else if (textRun.Underline)
- {
- uiTextRun.Style("text-decoration", "underline");
- }
-
- if (textRun.Highlight)
- {
- uiTextRun.Style("background-color", context.GetColor(textRun.Color, textRun.IsSubtle, true));
- }
-
- return uiTextRun;
- }
-
- protected static HtmlTag ImageRender(AdaptiveImage image, AdaptiveRenderContext context)
- {
- var uiDiv = new DivTag()
- .AddClass($"ac-{image.Type.Replace(".", "").ToLower()}")
- .Attr("name", image.Id)
- .Style("display", "block");
-
- if (image.Height != AdaptiveHeight.Stretch)
- {
- uiDiv.Style("box-sizing", "border-box");
- }
- else
- {
- uiDiv.Style("align-items", "flex-start")
- .Style("flex", "1 1 100%");
- }
-
- // if explicit image size is not used, use Adaptive Image size
- if (image.PixelWidth == 0 && image.PixelHeight == 0)
- {
- switch (image.Size)
- {
- case AdaptiveImageSize.Auto:
- uiDiv = uiDiv.Style("max-width", $"100%");
- break;
- case AdaptiveImageSize.Small:
- uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Small}px");
- break;
- case AdaptiveImageSize.Medium:
- uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Medium}px");
- break;
- case AdaptiveImageSize.Large:
- uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Large}px");
- break;
- case AdaptiveImageSize.Stretch:
- uiDiv = uiDiv.Style("width", $"100%");
- break;
- }
- }
-
- var uiImage = new HtmlTag("img")
- .Attr("alt", image.AltText ?? "card image")
- .Attr("src", context.Config.ResolveFinalAbsoluteUri(image.Url));
-
- // if explicit image size is used
- if (image.PixelWidth != 0 || image.PixelHeight != 0)
- {
- if (image.PixelWidth != 0)
- {
- uiImage = uiImage.Attr("width", $"{image.PixelWidth}px");
- }
- if (image.PixelHeight != 0)
- {
- uiImage = uiImage.Attr("height", $"{image.PixelHeight}px");
- }
- uiImage = uiImage.Attr("object-fit", "fill");
- }
- else
- {
- uiImage.Style("width", "100%");
- }
-
- switch (image.Style)
- {
- case AdaptiveImageStyle.Default:
- break;
- case AdaptiveImageStyle.Person:
- uiImage = uiImage.Style("background-position", "50% 50%")
- .Style("border-radius", "50%")
- .Style("background-repeat", "no-repeat");
- break;
- }
-
- switch (image.HorizontalAlignment)
- {
- case AdaptiveHorizontalAlignment.Left:
- uiDiv = uiDiv.Style("overflow", "hidden");
- break;
- case AdaptiveHorizontalAlignment.Center:
- uiDiv = uiDiv.Style("overflow", "hidden")
- .Style("margin-right", "auto")
- .Style("margin-left", "auto");
- break;
- case AdaptiveHorizontalAlignment.Right:
- uiDiv = uiDiv.Style("overflow", "hidden")
- .Style("margin-left", "auto");
- break;
- }
-
- if (!string.IsNullOrEmpty(image.BackgroundColor))
- {
- uiImage.Style("background-color", context.GetRGBColor(image.BackgroundColor));
- }
-
- uiDiv.Children.Add(uiImage);
-
- AddSelectAction(uiDiv, image.SelectAction, context);
- return uiDiv;
- }
-
- private static List _supportedMimeTypes = new List
- {
- "video/mp4",
- "audio/mp4",
- "audio/mpeg"
- };
-
- private static List _supportedAudioMimeTypes = new List
- {
- "audio/mp4",
- "audio/mpeg"
- };
-
- /** Get the first media URI with a supported mime type */
- private static List GetMediaSources(AdaptiveMedia media, AdaptiveRenderContext context)
- {
- // Check if sources contain an invalid mix of MIME types (audio and video)
- bool? isLastMediaSourceAudio = null;
- foreach (var source in media.Sources)
- {
- if (!isLastMediaSourceAudio.HasValue)
- {
- isLastMediaSourceAudio = IsAudio(source);
- }
- else
- {
- if (IsAudio(source) != isLastMediaSourceAudio.Value)
- {
- // If there is one pair of sources with different MIME types,
- // it's an invalid mix and a warning should be logged
- context.Warnings.Add(new AdaptiveWarning(-1, "A Media element contains an invalid mix of MIME type"));
- return null;
- }
-
- isLastMediaSourceAudio = IsAudio(source);
- }
- }
-
- // Return the list of all supported sources with not-null URI
- List validSources = new List();
- foreach (var source in media.Sources)
- {
- if (_supportedMimeTypes.Contains(source.MimeType))
- {
- Uri finalMediaUri = context.Config.ResolveFinalAbsoluteUri(source.Url);
- if (finalMediaUri != null)
- {
- validSources.Add(source);
- }
- }
- }
-
- return validSources;
- }
-
- private static bool IsAudio(AdaptiveMediaSource mediaSource)
- {
- return _supportedAudioMimeTypes.Contains(mediaSource.MimeType);
- }
-
- protected static HtmlTag MediaRender(AdaptiveMedia media, AdaptiveRenderContext context)
- {
- List mediaSources = GetMediaSources(media, context);
-
- // No valid source is found
- if (mediaSources.Count == 0)
- {
- context.Warnings.Add(new AdaptiveWarning(-1, "A Media element does not have any valid source"));
- return null;
- }
-
- var uiMedia = new DivTag()
- .Style("width", "100%")
- .Attr("alt", media.AltText ?? "card media");
-
- string posterUrl = null;
- if (!string.IsNullOrEmpty(media.Poster) && context.Config.ResolveFinalAbsoluteUri(media.Poster) != null)
- {
- posterUrl = context.Config.ResolveFinalAbsoluteUri(media.Poster).ToString();
- }
- else if (!string.IsNullOrEmpty(context.Config.Media.DefaultPoster)
- && context.Config.ResolveFinalAbsoluteUri(context.Config.Media.DefaultPoster) != null)
- {
- // Use the default poster from host
- posterUrl = context.Config.ResolveFinalAbsoluteUri(context.Config.Media.DefaultPoster).ToString();
- }
-
- var thumbnailImage = new HtmlTag("image", false)
- .Attr("src", posterUrl)
- .Style("width", "100%")
- .Style("height", "100%");
-
- // If host does not support interactivity, simply return the
- // poster image if present
- if (!context.Config.SupportsInteractivity)
- {
- uiMedia.Children.Add(thumbnailImage);
-
- return uiMedia;
- }
-
- #region Thumbnail
-
- var thumbnailButton = new DivTag()
- .AddClass("ac-media-poster")
- .Attr("role", "button")
- .Attr("tabindex", "0")
- .Attr("aria-label", "Play media")
- .Attr("role", "contentinfo")
- .Style("position", "relative")
- .Style("display", "flex")
- .Style("cursor", "pointer");
-
- if (posterUrl != null)
- {
- thumbnailButton.Children.Add(thumbnailImage);
- }
- else
- {
- thumbnailButton.AddClass("empty")
- .Style("height", "200px")
- .Style("minHeight", "150px")
- .Style("background-color", "#F2F2F2");
- }
-
- #region Play button
-
- // Overlay on top of poster image
- var playButtonContainer = new DivTag()
- .Style("position", "absolute")
- .Style("left", "0")
- .Style("top", "0")
- .Style("width", "100%")
- .Style("height", "100%")
- .Style("display", "flex")
- .Style("justify-content", "center")
- .Style("align-items", "center");
-
- // If host specifies a play button URL,
- // render that image as the play button
- if (!string.IsNullOrEmpty(context.Config.Media.PlayButton)
- && context.Config.ResolveFinalAbsoluteUri(context.Config.Media.PlayButton) != null)
- {
- var playButtonImage = new HtmlTag("img")
- .Attr("src", context.Config.ResolveFinalAbsoluteUri(context.Config.Media.PlayButton).ToString())
- .Style("width", "56px")
- .Style("height", "56px");
-
- playButtonContainer.Children.Add(playButtonImage);
- }
- else
- {
- int playButtonArrowWidth = 12;
- int playButtonArrowHeight = 15;
-
- // Play symbol (black arrow)
- var playButtonInnerElement = new DivTag()
- .Style("width", playButtonArrowWidth + "px")
- .Style("height", playButtonArrowHeight + "px")
- .Style("color", "black")
- .Style("border-top-width", (playButtonArrowHeight / 2) + "px")
- .Style("border-bottom-width", (playButtonArrowHeight / 2) + "px")
- .Style("border-left-width", playButtonArrowWidth + "px")
- .Style("border-right-width", "0")
- .Style("border-style", "solid")
- .Style("border-top-color", "transparent")
- .Style("border-right-color", "transparent")
- .Style("border-bottom-color", "transparent");
-
- // Circle around play symbol
- var playButtonOuterElement = new DivTag()
- .Style("display", "flex")
- .Style("align-items", "center")
- .Style("justify-content", "center")
- .Style("width", "56px")
- .Style("height", "56px")
- .Style("border", "1px solid #EEEEEE")
- .Style("border-radius", "28px")
- .Style("box-shadow", "0px 0px 10px #EEEEEE")
- .Style("background-color", "rgba(255, 255, 255, 0.9)")
- .Style("color", "black");
-
- playButtonOuterElement.Children.Add(playButtonInnerElement);
-
- playButtonContainer.Children.Add(playButtonOuterElement);
- }
-
- #endregion
-
- thumbnailButton.Children.Add(playButtonContainer);
-
- #endregion
-
- uiMedia.Children.Add(thumbnailButton);
-
- if (context.Config.Media.AllowInlinePlayback)
- {
- // Media player is only created if inline playback is allowed
-
- // A unique ID to link the thumbnail button and the media player
- // of the same Media element
- string mediaId = GenerateRandomId();
-
- thumbnailButton.Attr("data-ac-mediaId", mediaId);
-
- #region Media Player
-
- bool isAudio = IsAudio(mediaSources[0]);
-
- var uiMediaPlayerContainer = new DivTag()
- .Attr("id", mediaId)
- .Style("width", "100%")
- .Style("height", "100%")
- .Style("display", "none");
-
- // If an audio has a poster, display the static poster image
- // along with the media player
- if (isAudio && posterUrl != null)
- {
- var staticPosterImage = new HtmlTag("image", false)
- .Attr("src", posterUrl)
- .Style("width", "100%")
- .Style("height", "100%");
-
- uiMediaPlayerContainer.Children.Add(staticPosterImage);
- }
-
- var uiMediaPlayer = new HtmlTag(isAudio ? "audio" : "video")
- .Attr("id", mediaId + "-player")
- .Style("width", "100%")
- .Attr("controls", "")
- .Attr("preload", "none")
- .Attr("poster", posterUrl);
-
- // Sources
- foreach (var source in mediaSources)
- {
- var uiSource = new HtmlTag("source")
- .Attr("src", context.Config.ResolveFinalAbsoluteUri(source.Url))
- .Attr("type", source.MimeType);
-
- uiMediaPlayer.Children.Add(uiSource);
- }
-
- uiMediaPlayerContainer.Children.Add(uiMediaPlayer);
-
- #endregion
-
- uiMedia.Children.Add(uiMediaPlayerContainer);
- }
- else
- {
- // Attach media data to the thumbnail to be sent to host
- thumbnailButton.Attr("data-ac-media-sources", JsonConvert.SerializeObject(media.Sources, Formatting.None));
- }
-
- return uiMedia;
- }
-
- protected static HtmlTag ImageSetRender(AdaptiveImageSet imageSet, AdaptiveRenderContext context)
- {
- var uiImageSet = new DivTag()
- .Attr("name", imageSet.Id)
- .AddClass(imageSet.Type.ToLower());
-
- if (imageSet.Height == AdaptiveHeight.Stretch)
- {
- uiImageSet.Style("display", "flex")
- .Style("flex", "1 1 100%");
- }
-
- foreach (var image in imageSet.Images)
- {
- if (imageSet.ImageSize != AdaptiveImageSize.Auto)
- image.Size = imageSet.ImageSize;
-
- var uiImage = context.Render(image)
- .Style("display", "inline-block")
- .Style("margin-right", "10px");
-
- uiImageSet.Children.Add(uiImage);
- }
- return uiImageSet;
- }
-
- protected static HtmlTag ActionSetRender(AdaptiveActionSet actionSet, AdaptiveRenderContext context)
- {
- var outerContainer = new DivTag()
- .Style("box-sizing", "border-box")
- .Style("width", "100%");
- AddActions(outerContainer, actionSet.Actions, context);
- return outerContainer;
- }
-
- ///
- /// 1. IsMultiSelect == false && IsCompact == true => render as a drop down select element
- /// 2. IsMultiSelect == false && IsCompact == false => render as a list of radio buttons
- /// 3. IsMultiSelect == true => render as a list of toggle inputs
- ///
- protected static HtmlTag ChoiceSetRender(AdaptiveChoiceSetInput adaptiveChoiceSetInput, AdaptiveRenderContext context)
- {
- if (!adaptiveChoiceSetInput.IsMultiSelect)
- {
- if (adaptiveChoiceSetInput.Style == AdaptiveChoiceInputStyle.Compact)
- {
- var uiSelectElement = new HtmlTag("select")
- .Attr("name", adaptiveChoiceSetInput.Id)
- .AddClass("ac-input")
- .AddClass("ac-multichoiceInput")
- .Style("width", "100%");
-
- if (adaptiveChoiceSetInput.Height == AdaptiveHeight.Stretch)
- {
- uiSelectElement.Style("flex", "1 1 100%");
- }
-
- var defaultValues = ParseChoiceSetInputDefaultValues(adaptiveChoiceSetInput.Value);
-
- // If more than one option is specified, default to not select any option
- if (defaultValues.Count > 1)
- {
- var option = new HtmlTag("option") { Text = "" }
- .Attr("disabled", string.Empty)
- .Attr("hidden", string.Empty)
- .Attr("selected", string.Empty);
- uiSelectElement.Append(option);
- }
-
- foreach (var choice in adaptiveChoiceSetInput.Choices)
- {
- var option = new HtmlTag("option") { Text = choice.Title }
- .Attr("value", choice.Value);
-
- // Select an option only when one option is specified
- if (defaultValues.Contains(choice.Value) && defaultValues.Count == 1)
- {
- option.Attr("selected", string.Empty);
- }
- uiSelectElement.Append(option);
- }
-
- return uiSelectElement;
- }
- else
- {
- return ChoiceSetRenderInternal(adaptiveChoiceSetInput, context, "radio");
- }
- }
- else
- {
- return ChoiceSetRenderInternal(adaptiveChoiceSetInput, context, "checkbox");
- }
- }
-
- private static HtmlTag ChoiceSetRenderInternal(AdaptiveChoiceSetInput adaptiveChoiceSetInput, AdaptiveRenderContext context, string htmlInputType)
- {
- var defaultValues = ParseChoiceSetInputDefaultValues(adaptiveChoiceSetInput.Value);
-
- // render as a series of radio buttons
- var uiElement = new DivTag()
- .AddClass("ac-input")
- .Style("width", "100%")
- .Style("flex", "1 1 100%")
- .Attr("name", adaptiveChoiceSetInput.Id);
-
- foreach (var choice in adaptiveChoiceSetInput.Choices)
- {
- var htmlLabelId = GenerateRandomId();
-
- var uiInput = new HtmlTag("input")
- .Attr("id", htmlLabelId)
- .Attr("type", htmlInputType)
- .Attr("name", adaptiveChoiceSetInput.Id)
- .Attr("value", choice.Value)
- .Style("margin", "0px")
- .Style("display", "inline-block")
- .Style("vertical-align", "middle");
-
- // Only select an option if isMultiSelect is true (checkboxes)
- // or there is only one specified value
- if (defaultValues.Contains(choice.Value) && (adaptiveChoiceSetInput.IsMultiSelect || defaultValues.Count == 1))
- {
- uiInput.Attr("checked", string.Empty);
- }
-
- var uiLabel = CreateLabel(htmlLabelId, choice.Title, context);
-
- var compoundInputElement = new DivTag()
- .Append(uiInput)
- .Append(uiLabel);
-
- // text-overflow ellipsis does not work when width is not specified in px
- // when specified relatively such as using %, ellipsis does not work
- if (!adaptiveChoiceSetInput.Wrap)
- {
- compoundInputElement.Style("white-space", "nowrap");
- compoundInputElement.Style("overflow", "hidden");
- }
-
- uiElement.Append(compoundInputElement);
- }
-
- return uiElement;
-
- }
-
- // Default values are specified by a comma separated string
- private static List ParseChoiceSetInputDefaultValues(string value)
- {
- return value?.Split(',').Select(p => p.Trim()).Where(s => !string.IsNullOrEmpty(s)).ToList() ?? new List();
- }
-
- private static HtmlTag CreateLabel(string forId, string innerText, AdaptiveRenderContext context)
- {
- var tag = new HtmlTag("label")
- .SetInnerText(innerText)
- .Attr("for", forId);
- ApplyDefaultTextAttributes(tag, context);
- return tag;
- }
-
- private static void ApplyDefaultTextAttributes(HtmlTag tag, AdaptiveRenderContext context)
- {
-// Ignore deprecation warning for FontSizes
-#pragma warning disable 0618
- tag.Style("color", context.GetColor(AdaptiveTextColor.Default, false, false))
- .Style("font-size", $"{context.Config.FontSizes.Default}px")
- .Style("display", "inline-block")
- .Style("margin-left", "6px")
- .Style("vertical-align", "middle");
-#pragma warning restore 0618
- }
-
- protected static HtmlTag DateInputRender(AdaptiveDateInput input, AdaptiveRenderContext context)
- {
- var uiDateInput = new HtmlTag("input")
- .Attr("name", input.Id)
- .Attr("type", "date")
- .AddClass("ac-input")
- .AddClass("ac-dateInput")
- .Style("width", "100%")
- .Attr("aria-label", (input.Placeholder ?? "Select date") + " in mm/dd/yyyy format");
-
- if (!string.IsNullOrEmpty(input.Value))
- {
- uiDateInput.Attr("value", input.Value);
- }
-
- if (!string.IsNullOrEmpty(input.Min))
- {
- uiDateInput.Attr("min", input.Min);
- }
-
- if (!string.IsNullOrEmpty(input.Max))
- {
- uiDateInput.Attr("max", input.Max);
- }
-
- if (input.Height == AdaptiveHeight.Stretch)
- {
- uiDateInput.Style("flex", "1 1 100%");
- }
-
- return uiDateInput;
- }
-
- protected static HtmlTag NumberInputRender(AdaptiveNumberInput input, AdaptiveRenderContext context)
- {
- var uiNumberInput = new HtmlTag("input")
- .Attr("name", input.Id)
- .AddClass("ac-input")
- .AddClass("ac-numberInput")
- .Attr("type", "number")
- .Style("width", "100%");
-
- if (!double.IsNaN(input.Min))
- {
- uiNumberInput.Attr("min", input.Min.ToString());
- }
-
- if (!double.IsNaN(input.Max))
- {
- uiNumberInput.Attr("max", input.Max.ToString());
- }
-
- if (!double.IsNaN(input.Value))
- {
- uiNumberInput.Attr("value", input.Value.ToString());
- }
-
- if (input.Height == AdaptiveHeight.Stretch)
- {
- uiNumberInput.Style("flex", "1 1 100%");
- }
-
- return uiNumberInput;
- }
-
- protected static HtmlTag TextInputRender(AdaptiveTextInput input, AdaptiveRenderContext context)
- {
- HtmlTag uiTextInput;
- if (input.IsMultiline)
- {
- uiTextInput = new HtmlTag("textarea", false);
-
- if (!string.IsNullOrEmpty(input.Value))
- {
- uiTextInput.Text = input.Value;
- }
- }
- else
- {
- uiTextInput = new HtmlTag("input").Attr("type", "text");
-
- if (!string.IsNullOrEmpty(input.Value))
- {
- uiTextInput.Attr("value", input.Value);
- }
- }
-
- uiTextInput
- .Attr("name", input.Id)
- .AddClass("ac-textinput")
- .AddClass("ac-input");
-
- if (input.InlineAction != null)
- {
- uiTextInput.Style("width", "100%");
- }
- else
- {
- if (!input.IsMultiline)
- {
- uiTextInput.Style("flex", "1 1 auto");
- }
- }
-
- if (!string.IsNullOrEmpty(input.Placeholder))
- {
- uiTextInput.Attr("placeholder", input.Placeholder);
- }
-
- if (input.MaxLength > 0)
- {
- uiTextInput.Attr("maxLength", input.MaxLength.ToString());
- }
-
- if (input.Height == AdaptiveHeight.Stretch)
- {
- uiTextInput.Style("flex", "1 1 100%");
- }
-
- if (context.Config.SupportsInteractivity && input.InlineAction != null)
- {
- // ShowCard Inline Action Mode is not supported
- if (input.InlineAction.Type == AdaptiveShowCardAction.TypeName &&
- context.Config.Actions.ShowCard.ActionMode == ShowCardActionMode.Inline)
- {
- context.Warnings.Add(new AdaptiveWarning(-1, "Inline ShowCard not supported for InlineAction"));
- }
- else
- {
- var textInputWithInlineActionId = GenerateRandomId();
- var uiContainer = new DivTag()
- .AddClass("ac-textinput-inlineaction")
- .Attr("data-ac-textinput-id", textInputWithInlineActionId)
- .Style("overflow", "hidden")
- .Style("display", "flex")
- .Attr("name", input.Id);
-
- if(input.Height == AdaptiveHeight.Stretch)
- {
- uiContainer.Style("flex", "1 1 100%");
- }
-
- uiTextInput.Attr("id", textInputWithInlineActionId);
-
- uiContainer.Children.Add(uiTextInput);
-
- var actionsConfig = context.Config.Actions;
-
- var buttonElement = new HtmlTag("button", false)
- .Attr("type", "button")
- .Style("overflow", "hidden")
- .Style("white-space", "nowrap")
- .Style("text-overflow", "ellipsis")
- .Style("flex", "0 1 auto")
- .Style("display", "flex")
- .Style("align-items", "center")
- .Style("justify-content", "center");
-
- if (input.InlineAction.IconUrl != null)
- {
- // Append the icon to the button
- // NOTE: always using icon size since it's difficult
- // to match icon's height with text's height
- var iconElement = new HtmlTag("image", false)
- .Attr("src", input.InlineAction.IconUrl)
- .Style("max-height", $"{actionsConfig.IconSize}px");
-
- buttonElement.Append(iconElement);
- }
- else
- {
- var titleElement = new HtmlTag("div", false) { Text = input.InlineAction.Title };
- buttonElement.Append(titleElement);
- }
-
- AddInlineActionAttributes(input.InlineAction, buttonElement, context);
- string inlineActionId = GenerateRandomId();
- uiContainer.Attr("data-ac-inlineaction-id", inlineActionId);
- buttonElement.Attr("id", inlineActionId);
- uiContainer.Children.Add(buttonElement);
-
- return uiContainer;
- }
- }
-
- return uiTextInput;
- }
-
- protected static HtmlTag TimeInputRender(AdaptiveTimeInput input, AdaptiveRenderContext context)
- {
- var uiTimeInput = new HtmlTag("input")
- .Attr("type", "time")
- .Attr("name", input.Id)
- .AddClass("ac-input")
- .AddClass("ac-timeInput")
- .Style("width", "100%");
-
- if (!string.IsNullOrEmpty(input.Value))
- {
- uiTimeInput.Attr("value", input.Value);
- }
-
- if (!string.IsNullOrEmpty(input.Min))
- {
- uiTimeInput.Attr("min", input.Min);
- }
-
- if (!string.IsNullOrEmpty(input.Max))
- {
- uiTimeInput.Attr("max", input.Max);
- }
-
- if (input.Height == AdaptiveHeight.Stretch)
- {
- uiTimeInput.Style("flex", "1 1 100%");
- }
-
- return uiTimeInput;
- }
-
- protected static HtmlTag ToggleInputRender(AdaptiveToggleInput toggleInput, AdaptiveRenderContext context)
- {
- var htmlLabelId = GenerateRandomId();
-
- var uiElement = new DivTag()
- .AddClass("ac-input")
- .Style("width", "100%")
- .Attr("name", toggleInput.Id);
-
- if (toggleInput.Height == AdaptiveHeight.Stretch)
- {
- uiElement.Style("flex", "1 1 100%");
- }
-
- var uiCheckboxInput = new HtmlTag("input")
- .Attr("id", htmlLabelId)
- .Attr("type", "checkbox")
- .Attr("name", toggleInput.Id)
- .Attr("data-ac-valueOn", toggleInput.ValueOn ?? bool.TrueString)
- .Attr("data-ac-valueOff", toggleInput.ValueOff ?? bool.FalseString)
- .Style("display", "inline-block")
- .Style("vertical-align", "middle")
- .Style("margin", "0px");
-
- if (toggleInput.Value == toggleInput.ValueOn)
- {
- uiCheckboxInput.Attr("checked", string.Empty);
- }
-
- var uiLabel = CreateLabel(htmlLabelId, toggleInput.Title, context);
-
- uiElement.Append(uiCheckboxInput).Append(uiLabel);
-
- if (!toggleInput.Wrap)
- {
- uiElement.Style("white-space", "nowrap");
- uiElement.Style("overflow", "hidden");
- }
-
- return uiElement;
- }
-
- protected static string GetFallbackText(AdaptiveElement adaptiveElement)
- {
-#pragma warning disable CS0618 // Type or member is obsolete
- if (!string.IsNullOrEmpty(adaptiveElement.Speak))
- {
-#if NET452
- var doc = new System.Xml.XmlDocument();
- var xml = adaptiveElement.Speak;
- if (!xml.Trim().StartsWith("<"))
- xml = $"\n{xml}";
- else if (!xml.StartsWith("\n{xml}";
- doc.LoadXml(xml);
- return doc.InnerText;
-#endif
- }
-#pragma warning restore CS0618 // Type or member is obsolete
- return null;
- }
-
- private static void ApplyBackgroundImage(AdaptiveBackgroundImage backgroundImage, HtmlTag uiContainer, AdaptiveRenderContext context)
- {
- switch (backgroundImage.FillMode)
- {
- case AdaptiveImageFillMode.Repeat:
- uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')")
- .Style("background-repeat", "repeat");
- break;
- case AdaptiveImageFillMode.RepeatHorizontally:
- uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')")
- .Style("background-repeat", "repeat-x")
- .Style("background-position", "left " + backgroundImage.VerticalAlignment.ToString());
- break;
- case AdaptiveImageFillMode.RepeatVertically:
- uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')")
- .Style("background-repeat", "repeat-y")
- .Style("background-position", backgroundImage.HorizontalAlignment.ToString() + " top");
- break;
- case AdaptiveImageFillMode.Cover:
- default:
- uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')")
- .Style("background-repeat", "no-repeat")
- .Style("background-size", "cover")
- .Style("background-position", backgroundImage.HorizontalAlignment.ToString().ToLower() + " " + backgroundImage.VerticalAlignment.ToString().ToLower());
- break;
- }
- }
-
- private static bool ApplyPadding(HtmlTag uiElement, AdaptiveCollectionElement element, AdaptiveRenderArgs parentRenderArgs, AdaptiveRenderContext context)
- {
- bool canApplyPadding = false;
-
- // AdaptiveColumn inherits from AdaptiveContainer so only one check is required for both
- if (element is AdaptiveContainer container)
- {
- canApplyPadding = ((container.BackgroundImage != null) || (container.Style.HasValue && (container.Style != parentRenderArgs.ParentStyle)));
- }
- else if (element is AdaptiveColumnSet columnSet)
- {
- canApplyPadding = (columnSet.Style.HasValue && (columnSet.Style != parentRenderArgs.ParentStyle));
- }
-
- if (canApplyPadding)
- {
- int padding = context.Config.Spacing.Padding;
- uiElement.Style("padding-right", padding + "px")
- .Style("padding-left", padding + "px")
- .Style("padding-top", padding + "px")
- .Style("padding-bottom", padding + "px");
-
- if (element.Bleed)
- {
- int leftMargin = 0, rightMargin = 0, topMargin = 0, bottomMargin = 0;
- if ((parentRenderArgs.BleedDirection & BleedDirection.BleedLeft) != BleedDirection.BleedNone)
- {
- leftMargin = -padding;
- }
-
- if ((parentRenderArgs.BleedDirection & BleedDirection.BleedRight) != BleedDirection.BleedNone)
- {
- rightMargin = -padding;
- }
-
- if ((parentRenderArgs.BleedDirection & BleedDirection.BleedUp) != BleedDirection.BleedNone)
- {
- topMargin = -padding;
- }
-
- if ((parentRenderArgs.BleedDirection & BleedDirection.BleedDown) != BleedDirection.BleedNone)
- {
- bottomMargin = -padding;
- }
-
- uiElement.Style("margin-right", rightMargin + "px")
- .Style("margin-left", leftMargin + "px")
- .Style("margin-top", topMargin + "px")
- .Style("margin-bottom", bottomMargin + "px");
- }
- }
-
- return canApplyPadding;
- }
- }
-}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj
deleted file mode 100644
index 2ad477425e..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- net4.5.2;netstandard1.3;netstandard2.0
- Microsoft
- Adaptive Card renderer for generating HTML tags
- This library provides the ability to render an Adaptive Card into HTML, typically used for server-side card rendering
- false
- adaptivecards;adaptive-cards
- https://adaptivecards.io
- https://adaptivecards.io/content/icons_blue/blue-48.png
- https://github.com/Microsoft/AdaptiveCards
- EULA-Windows.txt
- $(DefineConstants);$(AdditionalConstants)
- © Microsoft Corporation. All rights reserved.
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4.7.0
-
-
-
-
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs
deleted file mode 100644
index 23c6aa82eb..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using Newtonsoft.Json;
-
-namespace AdaptiveCards.Rendering.Html
-{
- public class AdaptiveRenderContext
- {
- public AdaptiveRenderContext(AdaptiveHostConfig hostConfig, AdaptiveElementRenderers elementRenderers)
- {
- // clone it
- Config = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(hostConfig));
- ElementRenderers = elementRenderers;
- RenderArgs = new AdaptiveRenderArgs { ForegroundColors = Config.ContainerStyles.Default.ForegroundColors };
- }
-
- public AdaptiveHostConfig Config { get; set; }
-
- public AdaptiveElementRenderers ElementRenderers { get; set; }
-
- public AdaptiveFeatureRegistration FeatureRegistration { get; set; }
-
- public IList Warnings { get; } = new List();
-
- public IList ShowCardTags { get; } = new List();
-
- private bool AncestorHasFallback = false;
-
- public HtmlTag Render(AdaptiveTypedElement element)
- {
- HtmlTag htmlTagOut = null;
- var oldAncestorHasFallback = AncestorHasFallback;
- var elementHasFallback = element != null && element.Fallback != null && (element.Fallback.Type != AdaptiveFallbackElement.AdaptiveFallbackType.None);
- AncestorHasFallback = AncestorHasFallback || elementHasFallback;
-
- try
- {
- if (AncestorHasFallback && !element.MeetsRequirements(FeatureRegistration))
- {
- throw new AdaptiveFallbackException("Element requirements aren't met");
- }
-
- // If non-interactive, inputs should just render text
- if (!Config.SupportsInteractivity && element is AdaptiveInput input)
- {
- var tb = new AdaptiveTextBlock();
- tb.Text = input.GetNonInteractiveValue();
- Warnings.Add(new AdaptiveWarning(-1, $"Rendering non-interactive input element '{element.Type}'"));
- htmlTagOut = Render(tb);
- }
-
- if (htmlTagOut == null)
- {
- var renderer = ElementRenderers.Get(element.GetType());
- if (renderer != null)
- {
- htmlTagOut = renderer.Invoke(element, this);
- }
- }
- }
- catch (AdaptiveFallbackException)
- {
- if (!elementHasFallback)
- {
- throw;
- }
- }
-
- if (htmlTagOut == null)
- {
- // Since no renderer exists for this element, add warning and render fallback (if available)
- if (element.Fallback != null && element.Fallback.Type != AdaptiveFallbackElement.AdaptiveFallbackType.None)
- {
- if (element.Fallback.Type == AdaptiveFallbackElement.AdaptiveFallbackType.Drop)
- {
- Warnings.Add(new AdaptiveWarning(-1, $"Dropping element for fallback '{element.Type}'"));
- }
- else if (element.Fallback.Type == AdaptiveFallbackElement.AdaptiveFallbackType.Content && element.Fallback.Content != null)
- {
- // Render fallback content
- htmlTagOut = Render(element.Fallback.Content);
- }
- }
- else if (AncestorHasFallback)
- {
- throw new AdaptiveFallbackException();
- }
- else
- {
- Warnings.Add(new AdaptiveWarning(-1, $"No renderer for element '{element.Type}'"));
- }
- }
-
- AncestorHasFallback = oldAncestorHasFallback;
- return htmlTagOut;
- }
-
- public string GetColor(AdaptiveTextColor color, bool isSubtle, bool isHighlight)
- {
- FontColorConfig colorConfig;
- switch (color)
- {
- case AdaptiveTextColor.Accent:
- colorConfig = RenderArgs.ForegroundColors.Accent;
- break;
- case AdaptiveTextColor.Good:
- colorConfig = RenderArgs.ForegroundColors.Good;
- break;
- case AdaptiveTextColor.Warning:
- colorConfig = RenderArgs.ForegroundColors.Warning;
- break;
- case AdaptiveTextColor.Attention:
- colorConfig = RenderArgs.ForegroundColors.Attention;
- break;
- case AdaptiveTextColor.Dark:
- colorConfig = RenderArgs.ForegroundColors.Dark;
- break;
- case AdaptiveTextColor.Light:
- colorConfig = RenderArgs.ForegroundColors.Light;
- break;
- default:
- colorConfig = RenderArgs.ForegroundColors.Default;
- break;
- }
-
- if (isHighlight)
- {
- return GetRGBColor(isSubtle ? colorConfig.HighlightColors.Subtle : colorConfig.HighlightColors.Default);
- }
- else
- {
- return GetRGBColor(isSubtle ? colorConfig.Subtle : colorConfig.Default);
- }
- }
-
- public string GetRGBColor(string color)
- {
- if (color?.StartsWith("#") == true)
- {
- if (color.Length == 7)
- return color;
- if (color.Length == 9)
- {
- var opacity = (float)Convert.ToByte(color.Substring(1, 2), 16) / Byte.MaxValue;
- return $"rgba({Convert.ToByte(color.Substring(3, 2), 16)}, {Convert.ToByte(color.Substring(5, 2), 16)}, {Convert.ToByte(color.Substring(7, 2), 16)}, {opacity.ToString("F", System.Globalization.CultureInfo.InvariantCulture)})";
- }
- }
- return color;
- }
-
- public string Lang { get; set; }
-
- public AdaptiveRenderArgs RenderArgs { get; set; }
- }
-}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt b/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt
deleted file mode 100644
index a224e46549..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-MICROSOFT SOFTWARE LICENSE TERMS
-MICROSOFT ADAPTIVECARDS
-________________________________________
-IF YOU LIVE IN (OR ARE A BUSINESS WITH A PRINCIPAL PLACE OF BUSINESS IN) THE UNITED STATES, PLEASE READ THE “BINDING ARBITRATION AND CLASS ACTION WAIVER” SECTION BELOW. IT AFFECTS HOW DISPUTES ARE RESOLVED.
-________________________________________
-These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft’s rights relating to pre-updated software or services).
-
-IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS.
-
-1. INSTALLATION AND USE RIGHTS.
-a) General. Subject to the terms of this agreement, you may install and use any number of copies of the software to develop and test your applications, solely for use on Windows.
-b) Included Microsoft Applications. The software may include other Microsoft applications. These license terms apply to those included applications, if any, unless other license terms are provided with the other Microsoft applications.
-c) Microsoft Platforms. The software may include components from Microsoft Windows. These components are governed by separate agreements and their own product support policies, as described in the license terms found in the installation directory for that component or in the “Licenses” folder accompanying the software.
-d) Third Party Components. The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software.
-2. DATA.
-a) Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the product documentation. There are also some features in the software that may enable you to collect data from users of your applications. If you use these features to enable data collection in your applications, you must comply with applicable law, including providing appropriate notices to users of your applications. You can learn more about data collection and use in the help documentation and the privacy statement at https://aka.ms/privacy. Your use of the software operates as your consent to these practices.
-b) Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr.
-3. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to):
-a) work around any technical limitations in the software that only allow you to use it in certain ways;
-b) reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software;
-c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software;
-d) use the software in any way that is against the law or to create or propagate malware; or
-e) share, publish, distribute, or lease the software, provide the software as a stand-alone offering for others to use, or transfer the software or this agreement to any third party.
-4. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting.
-5. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is “as is”, “with all faults”, and without warranty of any kind.
-6. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices.
-7. BINDING ARBITRATION AND CLASS ACTION WAIVER. This Section applies if you live in (or, if a business, your principal place of business is in) the United States. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can’t, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act (“FAA”), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms.
-8. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software.
-9. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration).
-10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you:
-a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights.
-b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software.
-c) Germany and Austria.
-i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software.
-ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law.
-Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence.
-11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
-12. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.
-This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.
-It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs
deleted file mode 100644
index c3dd548cc1..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Text;
-
-namespace AdaptiveCards.Rendering.Html
-{
- public class HtmlTag
- {
- private readonly bool _allowSelfClose;
-
- public HtmlTag(string element, bool allowSelfClose = true)
- {
- _allowSelfClose = allowSelfClose;
- this.Element = element;
- }
-
- public string Element { get; set; }
-
-
- public List Classes { get; set; } = new List();
-
- public Dictionary Styles { get; set; } = new Dictionary();
-
- public List Children { get; set; } = new List();
-
- public string Text { get; set; }
-
- public Dictionary Attributes { get; set; } = new Dictionary();
-
- public HtmlTag AddClass(string className)
- {
- this.Classes.Add(className);
- return this;
- }
-
- public HtmlTag Append(HtmlTag child)
- {
- this.Children.Add(child);
- return this;
- }
-
- public HtmlTag Style(string name, string value)
- {
- if (value == null)
- Styles.Remove(name);
- else
- Styles[name] = value;
- return this;
- }
-
- public HtmlTag SetInnerText(string text)
- {
- Text = text;
- return this;
- }
-
- public HtmlTag Attr(string name, string value)
- {
- if (value == null)
- this.Attributes.Remove(name);
- else
- this.Attributes[name] = value;
- return this;
- }
-
- public HtmlTag Attr(string name, Uri value)
- {
- if (value == null)
- this.Attributes.Remove(name);
- else
- this.Attributes[name] = value.ToString();
- return this;
- }
-
- public override string ToString()
- {
- if (string.IsNullOrEmpty(this.Element))
- {
- // When element doesn't exist, it indicates a text node.
- return WebUtility.HtmlEncode(this.Text);
- }
-
- StringBuilder sb = new StringBuilder();
- sb.Append($"<{this.Element}");
- if (this.Classes.Any())
- {
- sb.Append($" class='{WebUtility.HtmlEncode(String.Join(" ", this.Classes))}'");
- }
-
- foreach (var attr in this.Attributes)
- {
- sb.Append($" {attr.Key}='{WebUtility.HtmlEncode(attr.Value)}'");
- }
-
- if (this.Styles.Any())
- {
- sb.Append($" style='{String.Join(";", this.Styles.Select(kv => $"{WebUtility.HtmlEncode(kv.Key)}: {WebUtility.HtmlEncode(kv.Value)}"))};'");
- }
-
- if (this.Children.Any() || !String.IsNullOrEmpty(this.Text) || !_allowSelfClose)
- {
- sb.Append(">");
-
- if (!String.IsNullOrEmpty(this.Text))
- sb.Append(WebUtility.HtmlEncode(this.Text));
-
- foreach (var child in this.Children)
- {
- sb.Append(child.ToString());
- }
-
- sb.Append($"{this.Element}>");
- }
- else
- {
- // No children, so just self-close the element.
- sb.Append("/>");
- }
-
- return sb.ToString();
- }
- }
-
- public class DivTag : HtmlTag
- {
- public DivTag() : base("div", false)
- {
- }
- }
-
- public class LinkTag : HtmlTag
- {
- public LinkTag(string title, string url, params string[] classes) : base("a")
- {
- if (!String.IsNullOrEmpty(title))
- this.Attributes.Add("title", title);
- if (!String.IsNullOrEmpty(url))
- this.Attributes.Add("url", url);
- if (classes != null)
- {
- foreach (var className in classes)
- this.AddClass(className);
- }
- }
- }
-
- public class TableTag : HtmlTag
- {
- public TableTag() : base("table")
- {
-
- }
-
- public TableRowTag AddBodyRow()
- {
-
- var row = new TableRowTag();
- this.Children.Add(row);
- return row;
- }
-
- }
-
- public class TableRowTag : HtmlTag
- {
- public TableRowTag() : base("tr")
- {
-
- }
-
- public TableCellTag AddCell()
- {
- var cell = new TableCellTag();
- this.Children.Add(cell);
- return cell;
- }
- }
-
- public class TableCellTag : HtmlTag
- {
- public TableCellTag() : base("td")
- {
-
- }
- }
-}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs
deleted file mode 100644
index 1e92c2ed0b..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Xml;
-using System.Xml.Linq;
-using Microsoft.MarkedNet;
-
-namespace AdaptiveCards.Rendering.Html
-{
- public static class MarkdownToHtmlTagConverter
- {
- public static IEnumerable Convert(string markdown)
- {
- var marked = new Marked();
- marked.Options.Mangle = false;
- marked.Options.Sanitize = true;
- marked.Options.XHtml = true;
-
- var rawXhtml = marked.Parse(markdown);
- var root = XElement.Parse($"{rawXhtml}");
-
- return root.Elements().Select(RawXhtmlToHtmlTag);
- }
-
-
- private static HtmlTag RawXhtmlToHtmlTag(XElement element)
- {
- var htmlTag = new HtmlTag(element.Name.LocalName);
-
- foreach (var node in element.Nodes())
- {
- switch (node.NodeType)
- {
- case XmlNodeType.Text:
- {
- var textTag = new HtmlTag(null);
- textTag.Text = ((XText)node).Value;
- htmlTag.Children.Add(textTag);
- }
- break;
-
- case XmlNodeType.Element:
- htmlTag.Children.Add(RawXhtmlToHtmlTag((XElement)node));
- break;
- }
- }
-
- foreach (var attribute in element.Attributes())
- {
- switch (attribute.Name.LocalName.ToLowerInvariant())
- {
- case "style":
- // Style needs to be parsed out into the Styles attribute of the HtmlTag.
- // But we don't ever expect the markdown processor to return it, so we don't need to handle it for now.
- throw new InvalidOperationException();
-
- case "class":
- var classNames = attribute.Value.Split(' ').Where(className => !string.IsNullOrWhiteSpace(className));
- foreach (var className in classNames)
- {
- htmlTag.AddClass(className.Trim());
- }
-
- break;
-
- default:
- htmlTag.Attr(attribute.Name.LocalName, attribute.Value);
- break;
- }
- }
-
- return htmlTag;
- }
- }
-}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs
deleted file mode 100644
index 0dcda78069..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Reflection;
-
-#if DELAY_SIGN
-[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")]
-[assembly: AssemblyDelaySignAttribute(true)]
-#endif
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs
deleted file mode 100644
index 034e136e2a..0000000000
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System.Collections.Generic;
-
-namespace AdaptiveCards.Rendering.Html
-{
- ///
- /// The rendered Adaptive Card result.
- ///
- public class RenderedAdaptiveCard : RenderedAdaptiveCardBase
- {
- public RenderedAdaptiveCard(HtmlTag htmlTag, AdaptiveCard originatingCard, IList warnings)
- : base(originatingCard, warnings)
- {
- Html = htmlTag;
- }
-
- ///
- /// The rendered HTML for the card
- ///
- public HtmlTag Html { get; }
- }
-}
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs
index 15238c10f0..1b4bc46564 100644
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs
+++ b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs
@@ -2,6 +2,6 @@
using System.Reflection;
#if DELAY_SIGN
-[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")]
+[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")]
[assembly: AssemblyDelaySignAttribute(true)]
#endif
diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs
index 3d35838ffd..a4dc756292 100644
--- a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs
+++ b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs
@@ -5,7 +5,7 @@
using System.Windows;
#if DELAY_SIGN
-[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")]
+[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")]
[assembly: AssemblyDelaySignAttribute(true)]
#endif
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj
index a0da1d87b1..ba9da1970d 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj
+++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj
@@ -44,7 +44,7 @@
-
+
all
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs
index 62f25f3321..248c839e43 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs
+++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs
@@ -101,7 +101,7 @@ static AdaptiveCardsTemplateLexer() {
}
private static char[] _serializedATN = {
'\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
- '\x5964', '\x2', '\x15', '\xC5', '\b', '\x1', '\b', '\x1', '\x4', '\x2',
+ '\x5964', '\x2', '\x15', '\xC6', '\b', '\x1', '\b', '\x1', '\x4', '\x2',
'\t', '\x2', '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4',
'\x5', '\t', '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a',
'\x4', '\b', '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n',
@@ -131,143 +131,144 @@ static AdaptiveCardsTemplateLexer() {
'\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13',
'\x6', '\x13', '\x93', '\n', '\x13', '\r', '\x13', '\xE', '\x13', '\x94',
'\x3', '\x13', '\x3', '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14',
- '\x3', '\x14', '\a', '\x14', '\x9D', '\n', '\x14', '\f', '\x14', '\xE',
- '\x14', '\xA0', '\v', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x15',
+ '\x3', '\x14', '\x3', '\x14', '\a', '\x14', '\x9E', '\n', '\x14', '\f',
+ '\x14', '\xE', '\x14', '\xA1', '\v', '\x14', '\x3', '\x14', '\x3', '\x14',
'\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15',
- '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x16',
- '\x3', '\x16', '\x6', '\x16', '\xB0', '\n', '\x16', '\r', '\x16', '\xE',
- '\x16', '\xB1', '\x3', '\x16', '\x5', '\x16', '\xB5', '\n', '\x16', '\x3',
- '\x17', '\x3', '\x17', '\x3', '\x17', '\x5', '\x17', '\xBA', '\n', '\x17',
- '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18',
- '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', '\x3', '\x1A',
- '\x3', '\x9E', '\x2', '\x1B', '\x4', '\x3', '\x6', '\x4', '\b', '\x5',
- '\n', '\x6', '\f', '\a', '\xE', '\b', '\x10', '\t', '\x12', '\n', '\x14',
- '\v', '\x16', '\f', '\x18', '\r', '\x1A', '\x2', '\x1C', '\x2', '\x1E',
- '\xE', ' ', '\xF', '\"', '\x10', '$', '\x11', '&', '\x12', '(', '\x13',
- '*', '\x14', ',', '\x15', '.', '\x2', '\x30', '\x2', '\x32', '\x2', '\x34',
- '\x2', '\x4', '\x2', '\x3', '\v', '\x3', '\x2', '\x32', ';', '\x3', '\x2',
- '\x33', ';', '\x4', '\x2', 'G', 'G', 'g', 'g', '\x4', '\x2', '-', '-',
- '/', '/', '\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"', '\"', '\x3', '\x2',
- '$', '$', '\n', '\x2', '$', '$', '\x31', '\x31', '^', '^', '\x64', '\x64',
- 'h', 'h', 'p', 'p', 't', 't', 'v', 'v', '\x5', '\x2', '\x32', ';', '\x43',
- 'H', '\x63', 'h', '\x6', '\x2', '\x2', '!', '$', '$', '&', '&', '^', '^',
- '\x2', '\xCC', '\x2', '\x4', '\x3', '\x2', '\x2', '\x2', '\x2', '\x6',
- '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', '\x2', '\x2', '\x2', '\x2',
- '\n', '\x3', '\x2', '\x2', '\x2', '\x2', '\f', '\x3', '\x2', '\x2', '\x2',
- '\x2', '\xE', '\x3', '\x2', '\x2', '\x2', '\x2', '\x10', '\x3', '\x2',
- '\x2', '\x2', '\x2', '\x12', '\x3', '\x2', '\x2', '\x2', '\x2', '\x14',
- '\x3', '\x2', '\x2', '\x2', '\x2', '\x16', '\x3', '\x2', '\x2', '\x2',
- '\x2', '\x18', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1E', '\x3', '\x2',
- '\x2', '\x2', '\x3', ' ', '\x3', '\x2', '\x2', '\x2', '\x3', '\"', '\x3',
- '\x2', '\x2', '\x2', '\x3', '$', '\x3', '\x2', '\x2', '\x2', '\x3', '&',
- '\x3', '\x2', '\x2', '\x2', '\x3', '(', '\x3', '\x2', '\x2', '\x2', '\x3',
- '*', '\x3', '\x2', '\x2', '\x2', '\x3', ',', '\x3', '\x2', '\x2', '\x2',
- '\x4', '\x36', '\x3', '\x2', '\x2', '\x2', '\x6', '\x38', '\x3', '\x2',
- '\x2', '\x2', '\b', ':', '\x3', '\x2', '\x2', '\x2', '\n', '<', '\x3',
- '\x2', '\x2', '\x2', '\f', '>', '\x3', '\x2', '\x2', '\x2', '\xE', '@',
- '\x3', '\x2', '\x2', '\x2', '\x10', '\x42', '\x3', '\x2', '\x2', '\x2',
- '\x12', 'G', '\x3', '\x2', '\x2', '\x2', '\x14', 'M', '\x3', '\x2', '\x2',
- '\x2', '\x16', 'R', '\x3', '\x2', '\x2', '\x2', '\x18', 'W', '\x3', '\x2',
- '\x2', '\x2', '\x1A', 'm', '\x3', '\x2', '\x2', '\x2', '\x1C', 'o', '\x3',
- '\x2', '\x2', '\x2', '\x1E', 'v', '\x3', '\x2', '\x2', '\x2', ' ', '|',
- '\x3', '\x2', '\x2', '\x2', '\"', '\x80', '\x3', '\x2', '\x2', '\x2',
- '$', '\x86', '\x3', '\x2', '\x2', '\x2', '&', '\x92', '\x3', '\x2', '\x2',
- '\x2', '(', '\x98', '\x3', '\x2', '\x2', '\x2', '*', '\xA3', '\x3', '\x2',
- '\x2', '\x2', ',', '\xB4', '\x3', '\x2', '\x2', '\x2', '.', '\xB6', '\x3',
- '\x2', '\x2', '\x2', '\x30', '\xBB', '\x3', '\x2', '\x2', '\x2', '\x32',
- '\xC1', '\x3', '\x2', '\x2', '\x2', '\x34', '\xC3', '\x3', '\x2', '\x2',
- '\x2', '\x36', '\x37', '\a', '.', '\x2', '\x2', '\x37', '\x5', '\x3',
- '\x2', '\x2', '\x2', '\x38', '\x39', '\a', '<', '\x2', '\x2', '\x39',
- '\a', '\x3', '\x2', '\x2', '\x2', ':', ';', '\a', '}', '\x2', '\x2', ';',
- '\t', '\x3', '\x2', '\x2', '\x2', '<', '=', '\a', '\x7F', '\x2', '\x2',
- '=', '\v', '\x3', '\x2', '\x2', '\x2', '>', '?', '\a', ']', '\x2', '\x2',
- '?', '\r', '\x3', '\x2', '\x2', '\x2', '@', '\x41', '\a', '_', '\x2',
- '\x2', '\x41', '\xF', '\x3', '\x2', '\x2', '\x2', '\x42', '\x43', '\a',
- 'v', '\x2', '\x2', '\x43', '\x44', '\a', 't', '\x2', '\x2', '\x44', '\x45',
- '\a', 'w', '\x2', '\x2', '\x45', '\x46', '\a', 'g', '\x2', '\x2', '\x46',
- '\x11', '\x3', '\x2', '\x2', '\x2', 'G', 'H', '\a', 'h', '\x2', '\x2',
- 'H', 'I', '\a', '\x63', '\x2', '\x2', 'I', 'J', '\a', 'n', '\x2', '\x2',
- 'J', 'K', '\a', 'u', '\x2', '\x2', 'K', 'L', '\a', 'g', '\x2', '\x2',
- 'L', '\x13', '\x3', '\x2', '\x2', '\x2', 'M', 'N', '\a', 'p', '\x2', '\x2',
- 'N', 'O', '\a', 'w', '\x2', '\x2', 'O', 'P', '\a', 'n', '\x2', '\x2',
- 'P', 'Q', '\a', 'n', '\x2', '\x2', 'Q', '\x15', '\x3', '\x2', '\x2', '\x2',
- 'R', 'S', '\a', '$', '\x2', '\x2', 'S', 'T', '\x3', '\x2', '\x2', '\x2',
- 'T', 'U', '\b', '\v', '\x2', '\x2', 'U', '\x17', '\x3', '\x2', '\x2',
- '\x2', 'V', 'X', '\a', '/', '\x2', '\x2', 'W', 'V', '\x3', '\x2', '\x2',
- '\x2', 'W', 'X', '\x3', '\x2', '\x2', '\x2', 'X', 'Y', '\x3', '\x2', '\x2',
- '\x2', 'Y', '`', '\x5', '\x1A', '\r', '\x2', 'Z', '\\', '\a', '\x30',
- '\x2', '\x2', '[', ']', '\t', '\x2', '\x2', '\x2', '\\', '[', '\x3', '\x2',
- '\x2', '\x2', ']', '^', '\x3', '\x2', '\x2', '\x2', '^', '\\', '\x3',
- '\x2', '\x2', '\x2', '^', '_', '\x3', '\x2', '\x2', '\x2', '_', '\x61',
- '\x3', '\x2', '\x2', '\x2', '`', 'Z', '\x3', '\x2', '\x2', '\x2', '`',
- '\x61', '\x3', '\x2', '\x2', '\x2', '\x61', '\x63', '\x3', '\x2', '\x2',
- '\x2', '\x62', '\x64', '\x5', '\x1C', '\xE', '\x2', '\x63', '\x62', '\x3',
- '\x2', '\x2', '\x2', '\x63', '\x64', '\x3', '\x2', '\x2', '\x2', '\x64',
- '\x19', '\x3', '\x2', '\x2', '\x2', '\x65', 'n', '\a', '\x32', '\x2',
- '\x2', '\x66', 'j', '\t', '\x3', '\x2', '\x2', 'g', 'i', '\t', '\x2',
- '\x2', '\x2', 'h', 'g', '\x3', '\x2', '\x2', '\x2', 'i', 'l', '\x3', '\x2',
- '\x2', '\x2', 'j', 'h', '\x3', '\x2', '\x2', '\x2', 'j', 'k', '\x3', '\x2',
- '\x2', '\x2', 'k', 'n', '\x3', '\x2', '\x2', '\x2', 'l', 'j', '\x3', '\x2',
- '\x2', '\x2', 'm', '\x65', '\x3', '\x2', '\x2', '\x2', 'm', '\x66', '\x3',
- '\x2', '\x2', '\x2', 'n', '\x1B', '\x3', '\x2', '\x2', '\x2', 'o', 'q',
- '\t', '\x4', '\x2', '\x2', 'p', 'r', '\t', '\x5', '\x2', '\x2', 'q', 'p',
- '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\x3', '\x2', '\x2', '\x2', 'r',
- 's', '\x3', '\x2', '\x2', '\x2', 's', 't', '\x5', '\x1A', '\r', '\x2',
- 't', '\x1D', '\x3', '\x2', '\x2', '\x2', 'u', 'w', '\t', '\x6', '\x2',
- '\x2', 'v', 'u', '\x3', '\x2', '\x2', '\x2', 'w', 'x', '\x3', '\x2', '\x2',
- '\x2', 'x', 'v', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\x3', '\x2', '\x2',
- '\x2', 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\b', '\xF', '\x3',
- '\x2', '{', '\x1F', '\x3', '\x2', '\x2', '\x2', '|', '}', '\a', '$', '\x2',
- '\x2', '}', '~', '\x3', '\x2', '\x2', '\x2', '~', '\x7F', '\b', '\x10',
- '\x4', '\x2', '\x7F', '!', '\x3', '\x2', '\x2', '\x2', '\x80', '\x81',
- '\a', '&', '\x2', '\x2', '\x81', '\x82', '\a', '\x66', '\x2', '\x2', '\x82',
- '\x83', '\a', '\x63', '\x2', '\x2', '\x83', '\x84', '\a', 'v', '\x2',
- '\x2', '\x84', '\x85', '\a', '\x63', '\x2', '\x2', '\x85', '#', '\x3',
- '\x2', '\x2', '\x2', '\x86', '\x87', '\a', '&', '\x2', '\x2', '\x87',
- '\x88', '\a', 'y', '\x2', '\x2', '\x88', '\x89', '\a', 'j', '\x2', '\x2',
- '\x89', '\x8A', '\a', 'g', '\x2', '\x2', '\x8A', '\x8B', '\a', 'p', '\x2',
- '\x2', '\x8B', '%', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8D', '\a',
- '\x30', '\x2', '\x2', '\x8D', '\x93', '\x5', ',', '\x16', '\x2', '\x8E',
- '\x8F', '\a', ']', '\x2', '\x2', '\x8F', '\x90', '\x5', '\x1A', '\r',
- '\x2', '\x90', '\x91', '\a', '_', '\x2', '\x2', '\x91', '\x93', '\x3',
- '\x2', '\x2', '\x2', '\x92', '\x8C', '\x3', '\x2', '\x2', '\x2', '\x92',
- '\x8E', '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\x3', '\x2', '\x2',
- '\x2', '\x94', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', '\x3',
- '\x2', '\x2', '\x2', '\x95', '\x96', '\x3', '\x2', '\x2', '\x2', '\x96',
- '\x97', '\a', '\x7F', '\x2', '\x2', '\x97', '\'', '\x3', '\x2', '\x2',
- '\x2', '\x98', '\x99', '\a', '&', '\x2', '\x2', '\x99', '\x9A', '\a',
- '}', '\x2', '\x2', '\x9A', '\x9E', '\x3', '\x2', '\x2', '\x2', '\x9B',
- '\x9D', '\n', '\a', '\x2', '\x2', '\x9C', '\x9B', '\x3', '\x2', '\x2',
- '\x2', '\x9D', '\xA0', '\x3', '\x2', '\x2', '\x2', '\x9E', '\x9F', '\x3',
- '\x2', '\x2', '\x2', '\x9E', '\x9C', '\x3', '\x2', '\x2', '\x2', '\x9F',
- '\xA1', '\x3', '\x2', '\x2', '\x2', '\xA0', '\x9E', '\x3', '\x2', '\x2',
- '\x2', '\xA1', '\xA2', '\a', '\x7F', '\x2', '\x2', '\xA2', ')', '\x3',
- '\x2', '\x2', '\x2', '\xA3', '\xA4', '\a', '&', '\x2', '\x2', '\xA4',
- '\xA5', '\a', '}', '\x2', '\x2', '\xA5', '\xA6', '\a', '&', '\x2', '\x2',
- '\xA6', '\xA7', '\a', 't', '\x2', '\x2', '\xA7', '\xA8', '\a', 'q', '\x2',
- '\x2', '\xA8', '\xA9', '\a', 'q', '\x2', '\x2', '\xA9', '\xAA', '\a',
- 'v', '\x2', '\x2', '\xAA', '\xAB', '\x3', '\x2', '\x2', '\x2', '\xAB',
- '\xAC', '\x5', '&', '\x13', '\x2', '\xAC', '+', '\x3', '\x2', '\x2', '\x2',
- '\xAD', '\xB0', '\x5', '.', '\x17', '\x2', '\xAE', '\xB0', '\x5', '\x34',
- '\x1A', '\x2', '\xAF', '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAF', '\xAE',
- '\x3', '\x2', '\x2', '\x2', '\xB0', '\xB1', '\x3', '\x2', '\x2', '\x2',
- '\xB1', '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\x3', '\x2',
- '\x2', '\x2', '\xB2', '\xB5', '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB5',
- '\a', '&', '\x2', '\x2', '\xB4', '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB4',
- '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB5', '-', '\x3', '\x2', '\x2',
- '\x2', '\xB6', '\xB9', '\a', '^', '\x2', '\x2', '\xB7', '\xBA', '\t',
- '\b', '\x2', '\x2', '\xB8', '\xBA', '\x5', '\x30', '\x18', '\x2', '\xB9',
- '\xB7', '\x3', '\x2', '\x2', '\x2', '\xB9', '\xB8', '\x3', '\x2', '\x2',
- '\x2', '\xBA', '/', '\x3', '\x2', '\x2', '\x2', '\xBB', '\xBC', '\a',
- 'w', '\x2', '\x2', '\xBC', '\xBD', '\x5', '\x32', '\x19', '\x2', '\xBD',
- '\xBE', '\x5', '\x32', '\x19', '\x2', '\xBE', '\xBF', '\x5', '\x32', '\x19',
- '\x2', '\xBF', '\xC0', '\x5', '\x32', '\x19', '\x2', '\xC0', '\x31', '\x3',
- '\x2', '\x2', '\x2', '\xC1', '\xC2', '\t', '\t', '\x2', '\x2', '\xC2',
- '\x33', '\x3', '\x2', '\x2', '\x2', '\xC3', '\xC4', '\n', '\n', '\x2',
- '\x2', '\xC4', '\x35', '\x3', '\x2', '\x2', '\x2', '\x13', '\x2', '\x3',
- 'W', '^', '`', '\x63', 'j', 'm', 'q', 'x', '\x92', '\x94', '\x9E', '\xAF',
- '\xB1', '\xB4', '\xB9', '\x5', '\a', '\x3', '\x2', '\b', '\x2', '\x2',
- '\x6', '\x2', '\x2',
+ '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15',
+ '\x3', '\x16', '\x3', '\x16', '\x6', '\x16', '\xB1', '\n', '\x16', '\r',
+ '\x16', '\xE', '\x16', '\xB2', '\x3', '\x16', '\x5', '\x16', '\xB6', '\n',
+ '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x5', '\x17', '\xBB',
+ '\n', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18',
+ '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A',
+ '\x3', '\x1A', '\x3', '\x9F', '\x2', '\x1B', '\x4', '\x3', '\x6', '\x4',
+ '\b', '\x5', '\n', '\x6', '\f', '\a', '\xE', '\b', '\x10', '\t', '\x12',
+ '\n', '\x14', '\v', '\x16', '\f', '\x18', '\r', '\x1A', '\x2', '\x1C',
+ '\x2', '\x1E', '\xE', ' ', '\xF', '\"', '\x10', '$', '\x11', '&', '\x12',
+ '(', '\x13', '*', '\x14', ',', '\x15', '.', '\x2', '\x30', '\x2', '\x32',
+ '\x2', '\x34', '\x2', '\x4', '\x2', '\x3', '\v', '\x3', '\x2', '\x32',
+ ';', '\x3', '\x2', '\x33', ';', '\x4', '\x2', 'G', 'G', 'g', 'g', '\x4',
+ '\x2', '-', '-', '/', '/', '\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"',
+ '\"', '\x3', '\x2', '$', '$', '\n', '\x2', '$', '$', '\x31', '\x31', '^',
+ '^', '\x64', '\x64', 'h', 'h', 'p', 'p', 't', 't', 'v', 'v', '\x5', '\x2',
+ '\x32', ';', '\x43', 'H', '\x63', 'h', '\x6', '\x2', '\x2', '!', '$',
+ '$', '&', '&', '^', '^', '\x2', '\xCE', '\x2', '\x4', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x6', '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\n', '\x3', '\x2', '\x2', '\x2', '\x2', '\f', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xE', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x10', '\x3', '\x2', '\x2', '\x2', '\x2', '\x12', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x14', '\x3', '\x2', '\x2', '\x2', '\x2', '\x16', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x18', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x1E', '\x3', '\x2', '\x2', '\x2', '\x3', ' ', '\x3', '\x2', '\x2', '\x2',
+ '\x3', '\"', '\x3', '\x2', '\x2', '\x2', '\x3', '$', '\x3', '\x2', '\x2',
+ '\x2', '\x3', '&', '\x3', '\x2', '\x2', '\x2', '\x3', '(', '\x3', '\x2',
+ '\x2', '\x2', '\x3', '*', '\x3', '\x2', '\x2', '\x2', '\x3', ',', '\x3',
+ '\x2', '\x2', '\x2', '\x4', '\x36', '\x3', '\x2', '\x2', '\x2', '\x6',
+ '\x38', '\x3', '\x2', '\x2', '\x2', '\b', ':', '\x3', '\x2', '\x2', '\x2',
+ '\n', '<', '\x3', '\x2', '\x2', '\x2', '\f', '>', '\x3', '\x2', '\x2',
+ '\x2', '\xE', '@', '\x3', '\x2', '\x2', '\x2', '\x10', '\x42', '\x3',
+ '\x2', '\x2', '\x2', '\x12', 'G', '\x3', '\x2', '\x2', '\x2', '\x14',
+ 'M', '\x3', '\x2', '\x2', '\x2', '\x16', 'R', '\x3', '\x2', '\x2', '\x2',
+ '\x18', 'W', '\x3', '\x2', '\x2', '\x2', '\x1A', 'm', '\x3', '\x2', '\x2',
+ '\x2', '\x1C', 'o', '\x3', '\x2', '\x2', '\x2', '\x1E', 'v', '\x3', '\x2',
+ '\x2', '\x2', ' ', '|', '\x3', '\x2', '\x2', '\x2', '\"', '\x80', '\x3',
+ '\x2', '\x2', '\x2', '$', '\x86', '\x3', '\x2', '\x2', '\x2', '&', '\x92',
+ '\x3', '\x2', '\x2', '\x2', '(', '\x98', '\x3', '\x2', '\x2', '\x2', '*',
+ '\xA4', '\x3', '\x2', '\x2', '\x2', ',', '\xB5', '\x3', '\x2', '\x2',
+ '\x2', '.', '\xB7', '\x3', '\x2', '\x2', '\x2', '\x30', '\xBC', '\x3',
+ '\x2', '\x2', '\x2', '\x32', '\xC2', '\x3', '\x2', '\x2', '\x2', '\x34',
+ '\xC4', '\x3', '\x2', '\x2', '\x2', '\x36', '\x37', '\a', '.', '\x2',
+ '\x2', '\x37', '\x5', '\x3', '\x2', '\x2', '\x2', '\x38', '\x39', '\a',
+ '<', '\x2', '\x2', '\x39', '\a', '\x3', '\x2', '\x2', '\x2', ':', ';',
+ '\a', '}', '\x2', '\x2', ';', '\t', '\x3', '\x2', '\x2', '\x2', '<', '=',
+ '\a', '\x7F', '\x2', '\x2', '=', '\v', '\x3', '\x2', '\x2', '\x2', '>',
+ '?', '\a', ']', '\x2', '\x2', '?', '\r', '\x3', '\x2', '\x2', '\x2', '@',
+ '\x41', '\a', '_', '\x2', '\x2', '\x41', '\xF', '\x3', '\x2', '\x2', '\x2',
+ '\x42', '\x43', '\a', 'v', '\x2', '\x2', '\x43', '\x44', '\a', 't', '\x2',
+ '\x2', '\x44', '\x45', '\a', 'w', '\x2', '\x2', '\x45', '\x46', '\a',
+ 'g', '\x2', '\x2', '\x46', '\x11', '\x3', '\x2', '\x2', '\x2', 'G', 'H',
+ '\a', 'h', '\x2', '\x2', 'H', 'I', '\a', '\x63', '\x2', '\x2', 'I', 'J',
+ '\a', 'n', '\x2', '\x2', 'J', 'K', '\a', 'u', '\x2', '\x2', 'K', 'L',
+ '\a', 'g', '\x2', '\x2', 'L', '\x13', '\x3', '\x2', '\x2', '\x2', 'M',
+ 'N', '\a', 'p', '\x2', '\x2', 'N', 'O', '\a', 'w', '\x2', '\x2', 'O',
+ 'P', '\a', 'n', '\x2', '\x2', 'P', 'Q', '\a', 'n', '\x2', '\x2', 'Q',
+ '\x15', '\x3', '\x2', '\x2', '\x2', 'R', 'S', '\a', '$', '\x2', '\x2',
+ 'S', 'T', '\x3', '\x2', '\x2', '\x2', 'T', 'U', '\b', '\v', '\x2', '\x2',
+ 'U', '\x17', '\x3', '\x2', '\x2', '\x2', 'V', 'X', '\a', '/', '\x2', '\x2',
+ 'W', 'V', '\x3', '\x2', '\x2', '\x2', 'W', 'X', '\x3', '\x2', '\x2', '\x2',
+ 'X', 'Y', '\x3', '\x2', '\x2', '\x2', 'Y', '`', '\x5', '\x1A', '\r', '\x2',
+ 'Z', '\\', '\a', '\x30', '\x2', '\x2', '[', ']', '\t', '\x2', '\x2', '\x2',
+ '\\', '[', '\x3', '\x2', '\x2', '\x2', ']', '^', '\x3', '\x2', '\x2',
+ '\x2', '^', '\\', '\x3', '\x2', '\x2', '\x2', '^', '_', '\x3', '\x2',
+ '\x2', '\x2', '_', '\x61', '\x3', '\x2', '\x2', '\x2', '`', 'Z', '\x3',
+ '\x2', '\x2', '\x2', '`', '\x61', '\x3', '\x2', '\x2', '\x2', '\x61',
+ '\x63', '\x3', '\x2', '\x2', '\x2', '\x62', '\x64', '\x5', '\x1C', '\xE',
+ '\x2', '\x63', '\x62', '\x3', '\x2', '\x2', '\x2', '\x63', '\x64', '\x3',
+ '\x2', '\x2', '\x2', '\x64', '\x19', '\x3', '\x2', '\x2', '\x2', '\x65',
+ 'n', '\a', '\x32', '\x2', '\x2', '\x66', 'j', '\t', '\x3', '\x2', '\x2',
+ 'g', 'i', '\t', '\x2', '\x2', '\x2', 'h', 'g', '\x3', '\x2', '\x2', '\x2',
+ 'i', 'l', '\x3', '\x2', '\x2', '\x2', 'j', 'h', '\x3', '\x2', '\x2', '\x2',
+ 'j', 'k', '\x3', '\x2', '\x2', '\x2', 'k', 'n', '\x3', '\x2', '\x2', '\x2',
+ 'l', 'j', '\x3', '\x2', '\x2', '\x2', 'm', '\x65', '\x3', '\x2', '\x2',
+ '\x2', 'm', '\x66', '\x3', '\x2', '\x2', '\x2', 'n', '\x1B', '\x3', '\x2',
+ '\x2', '\x2', 'o', 'q', '\t', '\x4', '\x2', '\x2', 'p', 'r', '\t', '\x5',
+ '\x2', '\x2', 'q', 'p', '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\x3', '\x2',
+ '\x2', '\x2', 'r', 's', '\x3', '\x2', '\x2', '\x2', 's', 't', '\x5', '\x1A',
+ '\r', '\x2', 't', '\x1D', '\x3', '\x2', '\x2', '\x2', 'u', 'w', '\t',
+ '\x6', '\x2', '\x2', 'v', 'u', '\x3', '\x2', '\x2', '\x2', 'w', 'x', '\x3',
+ '\x2', '\x2', '\x2', 'x', 'v', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\x3',
+ '\x2', '\x2', '\x2', 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\b',
+ '\xF', '\x3', '\x2', '{', '\x1F', '\x3', '\x2', '\x2', '\x2', '|', '}',
+ '\a', '$', '\x2', '\x2', '}', '~', '\x3', '\x2', '\x2', '\x2', '~', '\x7F',
+ '\b', '\x10', '\x4', '\x2', '\x7F', '!', '\x3', '\x2', '\x2', '\x2', '\x80',
+ '\x81', '\a', '&', '\x2', '\x2', '\x81', '\x82', '\a', '\x66', '\x2',
+ '\x2', '\x82', '\x83', '\a', '\x63', '\x2', '\x2', '\x83', '\x84', '\a',
+ 'v', '\x2', '\x2', '\x84', '\x85', '\a', '\x63', '\x2', '\x2', '\x85',
+ '#', '\x3', '\x2', '\x2', '\x2', '\x86', '\x87', '\a', '&', '\x2', '\x2',
+ '\x87', '\x88', '\a', 'y', '\x2', '\x2', '\x88', '\x89', '\a', 'j', '\x2',
+ '\x2', '\x89', '\x8A', '\a', 'g', '\x2', '\x2', '\x8A', '\x8B', '\a',
+ 'p', '\x2', '\x2', '\x8B', '%', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8D',
+ '\a', '\x30', '\x2', '\x2', '\x8D', '\x93', '\x5', ',', '\x16', '\x2',
+ '\x8E', '\x8F', '\a', ']', '\x2', '\x2', '\x8F', '\x90', '\x5', '\x1A',
+ '\r', '\x2', '\x90', '\x91', '\a', '_', '\x2', '\x2', '\x91', '\x93',
+ '\x3', '\x2', '\x2', '\x2', '\x92', '\x8C', '\x3', '\x2', '\x2', '\x2',
+ '\x92', '\x8E', '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\x3', '\x2',
+ '\x2', '\x2', '\x94', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95',
+ '\x3', '\x2', '\x2', '\x2', '\x95', '\x96', '\x3', '\x2', '\x2', '\x2',
+ '\x96', '\x97', '\a', '\x7F', '\x2', '\x2', '\x97', '\'', '\x3', '\x2',
+ '\x2', '\x2', '\x98', '\x99', '\a', '&', '\x2', '\x2', '\x99', '\x9A',
+ '\a', '}', '\x2', '\x2', '\x9A', '\x9F', '\x3', '\x2', '\x2', '\x2', '\x9B',
+ '\x9E', '\n', '\a', '\x2', '\x2', '\x9C', '\x9E', '\x5', '.', '\x17',
+ '\x2', '\x9D', '\x9B', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9C', '\x3',
+ '\x2', '\x2', '\x2', '\x9E', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x9F',
+ '\xA0', '\x3', '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', '\x2', '\x2',
+ '\x2', '\xA0', '\xA2', '\x3', '\x2', '\x2', '\x2', '\xA1', '\x9F', '\x3',
+ '\x2', '\x2', '\x2', '\xA2', '\xA3', '\a', '\x7F', '\x2', '\x2', '\xA3',
+ ')', '\x3', '\x2', '\x2', '\x2', '\xA4', '\xA5', '\a', '&', '\x2', '\x2',
+ '\xA5', '\xA6', '\a', '}', '\x2', '\x2', '\xA6', '\xA7', '\a', '&', '\x2',
+ '\x2', '\xA7', '\xA8', '\a', 't', '\x2', '\x2', '\xA8', '\xA9', '\a',
+ 'q', '\x2', '\x2', '\xA9', '\xAA', '\a', 'q', '\x2', '\x2', '\xAA', '\xAB',
+ '\a', 'v', '\x2', '\x2', '\xAB', '\xAC', '\x3', '\x2', '\x2', '\x2', '\xAC',
+ '\xAD', '\x5', '&', '\x13', '\x2', '\xAD', '+', '\x3', '\x2', '\x2', '\x2',
+ '\xAE', '\xB1', '\x5', '.', '\x17', '\x2', '\xAF', '\xB1', '\x5', '\x34',
+ '\x1A', '\x2', '\xB0', '\xAE', '\x3', '\x2', '\x2', '\x2', '\xB0', '\xAF',
+ '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\x3', '\x2', '\x2', '\x2',
+ '\xB2', '\xB0', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB3', '\x3', '\x2',
+ '\x2', '\x2', '\xB3', '\xB6', '\x3', '\x2', '\x2', '\x2', '\xB4', '\xB6',
+ '\a', '&', '\x2', '\x2', '\xB5', '\xB0', '\x3', '\x2', '\x2', '\x2', '\xB5',
+ '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB6', '-', '\x3', '\x2', '\x2',
+ '\x2', '\xB7', '\xBA', '\a', '^', '\x2', '\x2', '\xB8', '\xBB', '\t',
+ '\b', '\x2', '\x2', '\xB9', '\xBB', '\x5', '\x30', '\x18', '\x2', '\xBA',
+ '\xB8', '\x3', '\x2', '\x2', '\x2', '\xBA', '\xB9', '\x3', '\x2', '\x2',
+ '\x2', '\xBB', '/', '\x3', '\x2', '\x2', '\x2', '\xBC', '\xBD', '\a',
+ 'w', '\x2', '\x2', '\xBD', '\xBE', '\x5', '\x32', '\x19', '\x2', '\xBE',
+ '\xBF', '\x5', '\x32', '\x19', '\x2', '\xBF', '\xC0', '\x5', '\x32', '\x19',
+ '\x2', '\xC0', '\xC1', '\x5', '\x32', '\x19', '\x2', '\xC1', '\x31', '\x3',
+ '\x2', '\x2', '\x2', '\xC2', '\xC3', '\t', '\t', '\x2', '\x2', '\xC3',
+ '\x33', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC5', '\n', '\n', '\x2',
+ '\x2', '\xC5', '\x35', '\x3', '\x2', '\x2', '\x2', '\x14', '\x2', '\x3',
+ 'W', '^', '`', '\x63', 'j', 'm', 'q', 'x', '\x92', '\x94', '\x9D', '\x9F',
+ '\xB0', '\xB2', '\xB5', '\xBA', '\x5', '\a', '\x3', '\x2', '\b', '\x2',
+ '\x2', '\x6', '\x2', '\x2',
};
public static readonly ATN _ATN =
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4 b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4
index 196b240f83..9938eda350 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4
+++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4
@@ -62,7 +62,7 @@ JPATH
;
TEMPLATELITERAL
- : '${' ~ ["]*? '}'
+ : '${' (~ ["] | ESC )*? '}'
;
TEMPLATEROOT
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp
index 8e022de4b3..c3644ceb8b 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp
+++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp
@@ -78,4 +78,4 @@ DEFAULT_MODE
INSIDE
atn:
-[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 21, 197, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 5, 12, 88, 10, 12, 3, 12, 3, 12, 3, 12, 6, 12, 93, 10, 12, 13, 12, 14, 12, 94, 5, 12, 97, 10, 12, 3, 12, 5, 12, 100, 10, 12, 3, 13, 3, 13, 3, 13, 7, 13, 105, 10, 13, 12, 13, 14, 13, 108, 11, 13, 5, 13, 110, 10, 13, 3, 14, 3, 14, 5, 14, 114, 10, 14, 3, 14, 3, 14, 3, 15, 6, 15, 119, 10, 15, 13, 15, 14, 15, 120, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 6, 19, 147, 10, 19, 13, 19, 14, 19, 148, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 157, 10, 20, 12, 20, 14, 20, 160, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 6, 22, 176, 10, 22, 13, 22, 14, 22, 177, 3, 22, 5, 22, 181, 10, 22, 3, 23, 3, 23, 3, 23, 5, 23, 186, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 158, 2, 27, 4, 3, 6, 4, 8, 5, 10, 6, 12, 7, 14, 8, 16, 9, 18, 10, 20, 11, 22, 12, 24, 13, 26, 2, 28, 2, 30, 14, 32, 15, 34, 16, 36, 17, 38, 18, 40, 19, 42, 20, 44, 21, 46, 2, 48, 2, 50, 2, 52, 2, 4, 2, 3, 11, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 36, 36, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 2, 33, 36, 36, 38, 38, 94, 94, 2, 204, 2, 4, 3, 2, 2, 2, 2, 6, 3, 2, 2, 2, 2, 8, 3, 2, 2, 2, 2, 10, 3, 2, 2, 2, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 3, 32, 3, 2, 2, 2, 3, 34, 3, 2, 2, 2, 3, 36, 3, 2, 2, 2, 3, 38, 3, 2, 2, 2, 3, 40, 3, 2, 2, 2, 3, 42, 3, 2, 2, 2, 3, 44, 3, 2, 2, 2, 4, 54, 3, 2, 2, 2, 6, 56, 3, 2, 2, 2, 8, 58, 3, 2, 2, 2, 10, 60, 3, 2, 2, 2, 12, 62, 3, 2, 2, 2, 14, 64, 3, 2, 2, 2, 16, 66, 3, 2, 2, 2, 18, 71, 3, 2, 2, 2, 20, 77, 3, 2, 2, 2, 22, 82, 3, 2, 2, 2, 24, 87, 3, 2, 2, 2, 26, 109, 3, 2, 2, 2, 28, 111, 3, 2, 2, 2, 30, 118, 3, 2, 2, 2, 32, 124, 3, 2, 2, 2, 34, 128, 3, 2, 2, 2, 36, 134, 3, 2, 2, 2, 38, 146, 3, 2, 2, 2, 40, 152, 3, 2, 2, 2, 42, 163, 3, 2, 2, 2, 44, 180, 3, 2, 2, 2, 46, 182, 3, 2, 2, 2, 48, 187, 3, 2, 2, 2, 50, 193, 3, 2, 2, 2, 52, 195, 3, 2, 2, 2, 54, 55, 7, 46, 2, 2, 55, 5, 3, 2, 2, 2, 56, 57, 7, 60, 2, 2, 57, 7, 3, 2, 2, 2, 58, 59, 7, 125, 2, 2, 59, 9, 3, 2, 2, 2, 60, 61, 7, 127, 2, 2, 61, 11, 3, 2, 2, 2, 62, 63, 7, 93, 2, 2, 63, 13, 3, 2, 2, 2, 64, 65, 7, 95, 2, 2, 65, 15, 3, 2, 2, 2, 66, 67, 7, 118, 2, 2, 67, 68, 7, 116, 2, 2, 68, 69, 7, 119, 2, 2, 69, 70, 7, 103, 2, 2, 70, 17, 3, 2, 2, 2, 71, 72, 7, 104, 2, 2, 72, 73, 7, 99, 2, 2, 73, 74, 7, 110, 2, 2, 74, 75, 7, 117, 2, 2, 75, 76, 7, 103, 2, 2, 76, 19, 3, 2, 2, 2, 77, 78, 7, 112, 2, 2, 78, 79, 7, 119, 2, 2, 79, 80, 7, 110, 2, 2, 80, 81, 7, 110, 2, 2, 81, 21, 3, 2, 2, 2, 82, 83, 7, 36, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 8, 11, 2, 2, 85, 23, 3, 2, 2, 2, 86, 88, 7, 47, 2, 2, 87, 86, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 96, 5, 26, 13, 2, 90, 92, 7, 48, 2, 2, 91, 93, 9, 2, 2, 2, 92, 91, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 97, 3, 2, 2, 2, 96, 90, 3, 2, 2, 2, 96, 97, 3, 2, 2, 2, 97, 99, 3, 2, 2, 2, 98, 100, 5, 28, 14, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 25, 3, 2, 2, 2, 101, 110, 7, 50, 2, 2, 102, 106, 9, 3, 2, 2, 103, 105, 9, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 101, 3, 2, 2, 2, 109, 102, 3, 2, 2, 2, 110, 27, 3, 2, 2, 2, 111, 113, 9, 4, 2, 2, 112, 114, 9, 5, 2, 2, 113, 112, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 115, 3, 2, 2, 2, 115, 116, 5, 26, 13, 2, 116, 29, 3, 2, 2, 2, 117, 119, 9, 6, 2, 2, 118, 117, 3, 2, 2, 2, 119, 120, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 8, 15, 3, 2, 123, 31, 3, 2, 2, 2, 124, 125, 7, 36, 2, 2, 125, 126, 3, 2, 2, 2, 126, 127, 8, 16, 4, 2, 127, 33, 3, 2, 2, 2, 128, 129, 7, 38, 2, 2, 129, 130, 7, 102, 2, 2, 130, 131, 7, 99, 2, 2, 131, 132, 7, 118, 2, 2, 132, 133, 7, 99, 2, 2, 133, 35, 3, 2, 2, 2, 134, 135, 7, 38, 2, 2, 135, 136, 7, 121, 2, 2, 136, 137, 7, 106, 2, 2, 137, 138, 7, 103, 2, 2, 138, 139, 7, 112, 2, 2, 139, 37, 3, 2, 2, 2, 140, 141, 7, 48, 2, 2, 141, 147, 5, 44, 22, 2, 142, 143, 7, 93, 2, 2, 143, 144, 5, 26, 13, 2, 144, 145, 7, 95, 2, 2, 145, 147, 3, 2, 2, 2, 146, 140, 3, 2, 2, 2, 146, 142, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 151, 7, 127, 2, 2, 151, 39, 3, 2, 2, 2, 152, 153, 7, 38, 2, 2, 153, 154, 7, 125, 2, 2, 154, 158, 3, 2, 2, 2, 155, 157, 10, 7, 2, 2, 156, 155, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 159, 161, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 162, 7, 127, 2, 2, 162, 41, 3, 2, 2, 2, 163, 164, 7, 38, 2, 2, 164, 165, 7, 125, 2, 2, 165, 166, 7, 38, 2, 2, 166, 167, 7, 116, 2, 2, 167, 168, 7, 113, 2, 2, 168, 169, 7, 113, 2, 2, 169, 170, 7, 118, 2, 2, 170, 171, 3, 2, 2, 2, 171, 172, 5, 38, 19, 2, 172, 43, 3, 2, 2, 2, 173, 176, 5, 46, 23, 2, 174, 176, 5, 52, 26, 2, 175, 173, 3, 2, 2, 2, 175, 174, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 181, 3, 2, 2, 2, 179, 181, 7, 38, 2, 2, 180, 175, 3, 2, 2, 2, 180, 179, 3, 2, 2, 2, 181, 45, 3, 2, 2, 2, 182, 185, 7, 94, 2, 2, 183, 186, 9, 8, 2, 2, 184, 186, 5, 48, 24, 2, 185, 183, 3, 2, 2, 2, 185, 184, 3, 2, 2, 2, 186, 47, 3, 2, 2, 2, 187, 188, 7, 119, 2, 2, 188, 189, 5, 50, 25, 2, 189, 190, 5, 50, 25, 2, 190, 191, 5, 50, 25, 2, 191, 192, 5, 50, 25, 2, 192, 49, 3, 2, 2, 2, 193, 194, 9, 9, 2, 2, 194, 51, 3, 2, 2, 2, 195, 196, 10, 10, 2, 2, 196, 53, 3, 2, 2, 2, 19, 2, 3, 87, 94, 96, 99, 106, 109, 113, 120, 146, 148, 158, 175, 177, 180, 185, 5, 7, 3, 2, 8, 2, 2, 6, 2, 2]
\ No newline at end of file
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 21, 198, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 5, 12, 88, 10, 12, 3, 12, 3, 12, 3, 12, 6, 12, 93, 10, 12, 13, 12, 14, 12, 94, 5, 12, 97, 10, 12, 3, 12, 5, 12, 100, 10, 12, 3, 13, 3, 13, 3, 13, 7, 13, 105, 10, 13, 12, 13, 14, 13, 108, 11, 13, 5, 13, 110, 10, 13, 3, 14, 3, 14, 5, 14, 114, 10, 14, 3, 14, 3, 14, 3, 15, 6, 15, 119, 10, 15, 13, 15, 14, 15, 120, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 6, 19, 147, 10, 19, 13, 19, 14, 19, 148, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 158, 10, 20, 12, 20, 14, 20, 161, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 6, 22, 177, 10, 22, 13, 22, 14, 22, 178, 3, 22, 5, 22, 182, 10, 22, 3, 23, 3, 23, 3, 23, 5, 23, 187, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 159, 2, 27, 4, 3, 6, 4, 8, 5, 10, 6, 12, 7, 14, 8, 16, 9, 18, 10, 20, 11, 22, 12, 24, 13, 26, 2, 28, 2, 30, 14, 32, 15, 34, 16, 36, 17, 38, 18, 40, 19, 42, 20, 44, 21, 46, 2, 48, 2, 50, 2, 52, 2, 4, 2, 3, 11, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 36, 36, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 2, 33, 36, 36, 38, 38, 94, 94, 2, 206, 2, 4, 3, 2, 2, 2, 2, 6, 3, 2, 2, 2, 2, 8, 3, 2, 2, 2, 2, 10, 3, 2, 2, 2, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 3, 32, 3, 2, 2, 2, 3, 34, 3, 2, 2, 2, 3, 36, 3, 2, 2, 2, 3, 38, 3, 2, 2, 2, 3, 40, 3, 2, 2, 2, 3, 42, 3, 2, 2, 2, 3, 44, 3, 2, 2, 2, 4, 54, 3, 2, 2, 2, 6, 56, 3, 2, 2, 2, 8, 58, 3, 2, 2, 2, 10, 60, 3, 2, 2, 2, 12, 62, 3, 2, 2, 2, 14, 64, 3, 2, 2, 2, 16, 66, 3, 2, 2, 2, 18, 71, 3, 2, 2, 2, 20, 77, 3, 2, 2, 2, 22, 82, 3, 2, 2, 2, 24, 87, 3, 2, 2, 2, 26, 109, 3, 2, 2, 2, 28, 111, 3, 2, 2, 2, 30, 118, 3, 2, 2, 2, 32, 124, 3, 2, 2, 2, 34, 128, 3, 2, 2, 2, 36, 134, 3, 2, 2, 2, 38, 146, 3, 2, 2, 2, 40, 152, 3, 2, 2, 2, 42, 164, 3, 2, 2, 2, 44, 181, 3, 2, 2, 2, 46, 183, 3, 2, 2, 2, 48, 188, 3, 2, 2, 2, 50, 194, 3, 2, 2, 2, 52, 196, 3, 2, 2, 2, 54, 55, 7, 46, 2, 2, 55, 5, 3, 2, 2, 2, 56, 57, 7, 60, 2, 2, 57, 7, 3, 2, 2, 2, 58, 59, 7, 125, 2, 2, 59, 9, 3, 2, 2, 2, 60, 61, 7, 127, 2, 2, 61, 11, 3, 2, 2, 2, 62, 63, 7, 93, 2, 2, 63, 13, 3, 2, 2, 2, 64, 65, 7, 95, 2, 2, 65, 15, 3, 2, 2, 2, 66, 67, 7, 118, 2, 2, 67, 68, 7, 116, 2, 2, 68, 69, 7, 119, 2, 2, 69, 70, 7, 103, 2, 2, 70, 17, 3, 2, 2, 2, 71, 72, 7, 104, 2, 2, 72, 73, 7, 99, 2, 2, 73, 74, 7, 110, 2, 2, 74, 75, 7, 117, 2, 2, 75, 76, 7, 103, 2, 2, 76, 19, 3, 2, 2, 2, 77, 78, 7, 112, 2, 2, 78, 79, 7, 119, 2, 2, 79, 80, 7, 110, 2, 2, 80, 81, 7, 110, 2, 2, 81, 21, 3, 2, 2, 2, 82, 83, 7, 36, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 8, 11, 2, 2, 85, 23, 3, 2, 2, 2, 86, 88, 7, 47, 2, 2, 87, 86, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 96, 5, 26, 13, 2, 90, 92, 7, 48, 2, 2, 91, 93, 9, 2, 2, 2, 92, 91, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 97, 3, 2, 2, 2, 96, 90, 3, 2, 2, 2, 96, 97, 3, 2, 2, 2, 97, 99, 3, 2, 2, 2, 98, 100, 5, 28, 14, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 25, 3, 2, 2, 2, 101, 110, 7, 50, 2, 2, 102, 106, 9, 3, 2, 2, 103, 105, 9, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 101, 3, 2, 2, 2, 109, 102, 3, 2, 2, 2, 110, 27, 3, 2, 2, 2, 111, 113, 9, 4, 2, 2, 112, 114, 9, 5, 2, 2, 113, 112, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 115, 3, 2, 2, 2, 115, 116, 5, 26, 13, 2, 116, 29, 3, 2, 2, 2, 117, 119, 9, 6, 2, 2, 118, 117, 3, 2, 2, 2, 119, 120, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 8, 15, 3, 2, 123, 31, 3, 2, 2, 2, 124, 125, 7, 36, 2, 2, 125, 126, 3, 2, 2, 2, 126, 127, 8, 16, 4, 2, 127, 33, 3, 2, 2, 2, 128, 129, 7, 38, 2, 2, 129, 130, 7, 102, 2, 2, 130, 131, 7, 99, 2, 2, 131, 132, 7, 118, 2, 2, 132, 133, 7, 99, 2, 2, 133, 35, 3, 2, 2, 2, 134, 135, 7, 38, 2, 2, 135, 136, 7, 121, 2, 2, 136, 137, 7, 106, 2, 2, 137, 138, 7, 103, 2, 2, 138, 139, 7, 112, 2, 2, 139, 37, 3, 2, 2, 2, 140, 141, 7, 48, 2, 2, 141, 147, 5, 44, 22, 2, 142, 143, 7, 93, 2, 2, 143, 144, 5, 26, 13, 2, 144, 145, 7, 95, 2, 2, 145, 147, 3, 2, 2, 2, 146, 140, 3, 2, 2, 2, 146, 142, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 151, 7, 127, 2, 2, 151, 39, 3, 2, 2, 2, 152, 153, 7, 38, 2, 2, 153, 154, 7, 125, 2, 2, 154, 159, 3, 2, 2, 2, 155, 158, 10, 7, 2, 2, 156, 158, 5, 46, 23, 2, 157, 155, 3, 2, 2, 2, 157, 156, 3, 2, 2, 2, 158, 161, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 159, 157, 3, 2, 2, 2, 160, 162, 3, 2, 2, 2, 161, 159, 3, 2, 2, 2, 162, 163, 7, 127, 2, 2, 163, 41, 3, 2, 2, 2, 164, 165, 7, 38, 2, 2, 165, 166, 7, 125, 2, 2, 166, 167, 7, 38, 2, 2, 167, 168, 7, 116, 2, 2, 168, 169, 7, 113, 2, 2, 169, 170, 7, 113, 2, 2, 170, 171, 7, 118, 2, 2, 171, 172, 3, 2, 2, 2, 172, 173, 5, 38, 19, 2, 173, 43, 3, 2, 2, 2, 174, 177, 5, 46, 23, 2, 175, 177, 5, 52, 26, 2, 176, 174, 3, 2, 2, 2, 176, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 182, 3, 2, 2, 2, 180, 182, 7, 38, 2, 2, 181, 176, 3, 2, 2, 2, 181, 180, 3, 2, 2, 2, 182, 45, 3, 2, 2, 2, 183, 186, 7, 94, 2, 2, 184, 187, 9, 8, 2, 2, 185, 187, 5, 48, 24, 2, 186, 184, 3, 2, 2, 2, 186, 185, 3, 2, 2, 2, 187, 47, 3, 2, 2, 2, 188, 189, 7, 119, 2, 2, 189, 190, 5, 50, 25, 2, 190, 191, 5, 50, 25, 2, 191, 192, 5, 50, 25, 2, 192, 193, 5, 50, 25, 2, 193, 49, 3, 2, 2, 2, 194, 195, 9, 9, 2, 2, 195, 51, 3, 2, 2, 2, 196, 197, 10, 10, 2, 2, 197, 53, 3, 2, 2, 2, 20, 2, 3, 87, 94, 96, 99, 106, 109, 113, 120, 146, 148, 157, 159, 176, 178, 181, 186, 5, 7, 3, 2, 8, 2, 2, 6, 2, 2]
\ No newline at end of file
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs
index decbedec11..a821a3ea7b 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs
+++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs
@@ -11,6 +11,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
+using System.Text.RegularExpressions;
namespace AdaptiveCards.Templating
{
@@ -575,8 +576,7 @@ public AdaptiveCardsTemplateResult ExpandTemplatedString(ITerminalNode node, boo
if (HasDataContext())
{
DataContext currentDataContext = GetCurrentDataContext();
- string templateString = node.GetText();
- return new AdaptiveCardsTemplateResult(Expand(templateString, currentDataContext.AELMemory, isExpanded, options));
+ return new AdaptiveCardsTemplateResult(Expand(Regex.Unescape(node.GetText()), currentDataContext.AELMemory, isExpanded, options));
}
return new AdaptiveCardsTemplateResult(node.GetText());
@@ -708,7 +708,7 @@ public override AdaptiveCardsTemplateResult VisitArray([NotNull] AdaptiveCardsTe
/// true if predicate is evaluated to true
public static bool IsTrue(string predicate, JToken data)
{
- var (value, error) = new ValueExpression(predicate).TryGetValue(data);
+ var (value, error) = new ValueExpression(Regex.Unescape(predicate)).TryGetValue(data);
if (error == null)
{
return bool.Parse(value as string);
diff --git a/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs
index 0dcda78069..3f2397bf16 100644
--- a/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs
+++ b/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs
@@ -4,6 +4,6 @@
using System.Reflection;
#if DELAY_SIGN
-[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")]
+[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")]
[assembly: AssemblyDelaySignAttribute(true)]
#endif
diff --git a/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs
index 0dcda78069..3f2397bf16 100644
--- a/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs
+++ b/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs
@@ -4,6 +4,6 @@
using System.Reflection;
#if DELAY_SIGN
-[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")]
+[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")]
[assembly: AssemblyDelaySignAttribute(true)]
#endif
diff --git a/source/dotnet/RunAllTests.ps1 b/source/dotnet/RunAllTests.ps1
index 3f7533f92b..5323347d41 100644
--- a/source/dotnet/RunAllTests.ps1
+++ b/source/dotnet/RunAllTests.ps1
@@ -12,25 +12,9 @@ $v1scenariosPath = $samplesPath + "\v1.0\scenarios"
Write-Host Running unit tests...
dotnet test .\test\AdaptiveCards.Test
-dotnet test .\test\AdaptiveCards.Rendering.Html.Test
-
-Write-Host Running HTML tests...
-Set-Location .\Samples\AdaptiveCards.Sample.Html
-
-Write-Host SupportsInteractivity = false...
-dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\StandardNonInteractive.html
-
-Write-Host SupportsInteractivity = true...
-dotnet run $v1scenariosPath -- -r -i -o $testResultsPath\HTML\Standard.html
-
-Write-Host Windows notification config...
-dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\WindowsNotification.html --host-config $samplesPath\hostconfig\windows-notification.json
-
-Write-Host Timeline config...
-dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\WindowsTimeline.html --host-config $samplesPath\hostconfig\windows-timeline.json
Write-Host Running WPF tests...
-Set-Location ..\AdaptiveCards.Sample.ImageRender
+Set-Location .\Samples\AdaptiveCards.Sample.ImageRender
Write-Host SupportsInteractivity = false...
dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\StandardNonInteractive
@@ -44,4 +28,4 @@ dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\WindowsNotification --
Write-Host Timeline config...
dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\WindowsTimeline --host-config $samplesPath\hostconfig\windows-timeline.json
-Pop-Location
\ No newline at end of file
+Pop-Location
diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore b/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore
deleted file mode 100644
index 0b84df0f02..0000000000
--- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.html
\ No newline at end of file
diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj b/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj
deleted file mode 100644
index 5c04d8717e..0000000000
--- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- Exe
- netcoreapp2.0
- false
-
-
-
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs b/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs
deleted file mode 100644
index 6c85c93ddf..0000000000
--- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs
+++ /dev/null
@@ -1,376 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using AdaptiveCards.Rendering;
-using AdaptiveCards.Rendering.Html;
-using System.Diagnostics;
-using System.Text;
-using McMaster.Extensions.CommandLineUtils;
-
-namespace AdaptiveCards.Sample.Html
-{
- class Program
- {
- static int Main(string[] args)
- {
- Console.OutputEncoding = Encoding.UTF8;
- var app = new CommandLineApplication();
-
- app.HelpOption("-h|--help");
-
- var pathArg = app.Argument("path", "The path that contains JSON card payloads");
- var optionRecurse = app.Option("-r|--recursive", "Recurse the directory for all JSON files", CommandOptionType.NoValue);
- var optionOutput = app.Option("-o|--out", "The file to output the HTML to", CommandOptionType.SingleValue);
- var optionSupportsInteracitivty = app.Option("-i|--supports-interactivity", "Include actions and inputs in the output", CommandOptionType.NoValue);
- var hostConfigOption = app.Option("--host-config", "Specify a host config file", CommandOptionType.SingleValue);
-
- app.OnExecute(() =>
- {
- FileStream outputFile = null;
- var writer = Console.Out;
-
- // Output to file instead of console
- if (optionOutput.HasValue())
- {
- outputFile = File.Open(optionOutput.Value(), FileMode.Create);
- writer = new StreamWriter(outputFile);
- }
-
- // Get payload search path
- var payloadPath = pathArg.Value ?? "..\\..\\..\\..\\samples\\v1.0\\Scenarios";
- if (pathArg.Value == null)
- {
- Console.WriteLine($"No path argument specified, trying {payloadPath}...");
- }
-
- var files = new List();
-
- if (File.Exists(payloadPath))
- {
- files.Add(payloadPath);
- }
- else if (Directory.Exists(payloadPath))
- {
- var recurse = optionRecurse.HasValue()
- ? SearchOption.AllDirectories
- : SearchOption.TopDirectoryOnly;
-
- files = Directory.GetFiles(payloadPath, "*.json", recurse).ToList();
- Console.WriteLine($"Found {files.Count} card payloads...");
- }
- else
- {
- Console.WriteLine($"{payloadPath} does not contain any JSON files. Nothing to do.");
- return;
- }
-
- writer.WriteLine(@"
-
-
- Adaptive Cards HTML Renderer Test Bed
-
-
-
-");
-
-
- AdaptiveHostConfig hostConfig = new AdaptiveHostConfig()
- {
- SupportsInteractivity = optionSupportsInteracitivty.HasValue()
- };
-
- if (hostConfigOption.HasValue())
- {
- hostConfig = AdaptiveHostConfig.FromJson(File.ReadAllText(hostConfigOption.Value()));
- }
-
- AdaptiveCardRenderer renderer = new AdaptiveCardRenderer(hostConfig);
-
-
- writer.WriteLine($"Renderer schema version: {renderer.SupportedSchemaVersion}
");
- writer.WriteLine($"Interactivty Enabled: {hostConfig.SupportsInteractivity}
");
- writer.WriteLine($"Generated at: {DateTime.Now:G}
");
-
- foreach (var file in files)
- {
- try
- {
- writer.WriteLine("
");
- writer.WriteLine($"{Path.GetFileName(file)}
");
-
- AdaptiveCardParseResult parseResult = AdaptiveCard.FromJson(File.ReadAllText(file, Encoding.UTF8));
-
- AdaptiveCard card = parseResult.Card;
-
- RenderedAdaptiveCard renderedCard = renderer.RenderCard(card);
-
- // Report any warnings
- foreach (var warning in parseResult.Warnings.Union(renderedCard.Warnings))
- {
- writer.WriteLine($"WARNING: {warning.Message}
");
- }
-
- writer.WriteLine($"{renderedCard.Html}
");
- }
- catch (Exception err)
- {
- writer.WriteLine($"ERROR: {err.Message}
");
- }
- }
-
- bool allowInlinePlayback = hostConfig.Media.AllowInlinePlayback;
-
- // Convert to JavaScript boolean values (False -> false, True -> true)
- string jsAllowInlinePlayback = allowInlinePlayback.ToString().ToLower();
-
- writer.WriteLine("");
- writer.WriteLine($@"
- ");
- writer.WriteLine("");
-
- if (outputFile != null)
- {
- writer.Flush();
- outputFile.Flush();
- outputFile.Dispose();
-
- Console.WriteLine($"All cards were written to {outputFile.Name}");
- }
-
-
- // if output, launch the file
- if (Debugger.IsAttached)
- {
- Console.ReadLine();
- }
- });
-
- return app.Execute(args);
- }
- }
-}
diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json b/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json
deleted file mode 100644
index 7b563cbab7..0000000000
--- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "profiles": {
- "AdaptiveCards.Sample.Html": {
- "commandName": "Project",
- "commandLineArgs": "-r -i -o PayloadOutput.html"
- }
- }
-}
diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md b/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md
deleted file mode 100644
index a848dfe1be..0000000000
--- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# AdaptiveCards HTML Sample
-
-This provides a CLI to exercise the .NET HTML Renderer (`AdaptiveCards.Rendering.Html`)
-
-## Usage
-
-If you cloned this repo, run the following command to generate HTML from the Scenario samples. The tool scans a directory for .json files that contain Adaptive Card payloads.
-
-```console
-Usage: dotnet run [payload-path] [options]
-```
-
-```console
-$ dotnet run
-```
-
-Or output to a file
-
-```console
-$ dotnet run -o ./scenarios.html
-$ start ./scenarios.html
-```
-
-
-### Arguments
-
-Name | Description
----|---
-path | The path that contains JSON card payloads
-
-### Options
-
-Short | Long | Description
----|---|---
--h |--help | Show help information
--r |--recursive | Recurse the directory for all JSON files
--o |--out | The file to output the HTML to
--i | --supports-interactivity | Include actions and inputs in the output
-n/a | --host-config | Specify a host config file
-
-## Example to use Windows Notification host config
-
-```console
-dotnet run ../../../../samples -r -i -o ./samples.html --host-config ../../../../samples/hostconfig/windows-notification.json
-```
\ No newline at end of file
diff --git a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj
index 0f87f489a5..154577b40a 100644
--- a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj
+++ b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj
@@ -3,6 +3,9 @@
15.0
+
+ win-x86;win-x64
+
Debug
@@ -40,7 +43,7 @@
en-US
AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx
..\WPFVisualizer\AdaptiveCards.Sample.WPFVisualizer.csproj
- F61CBB0B347328B816F4D5220FA64C7D6B90CC41
+ CCA567FDFE488F409F807D8E7AA4EF3F215ECB4A
True
diff --git a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx
index e04779b512..7cd7184c59 100644
Binary files a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx and b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx differ
diff --git a/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj b/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj
index ad67e4c05b..cfa2434283 100644
--- a/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj
+++ b/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj
@@ -10,6 +10,7 @@
WpfVisualizer
WpfVisualizer
v4.6.1
+ win
512
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
4
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj
deleted file mode 100644
index 2ba326e3ed..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.30703
- 2.0
- {17B8EF80-B2D0-4B0D-B73E-BC462492333E}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- Properties
- AdaptiveCards.XamarinForms.BotClient.Droid
- AdaptiveCards.XamarinForms.BotClient.Droid
- 512
- true
- Resources\Resource.Designer.cs
- Off
- Properties\AndroidManifest.xml
- true
- v7.1
- armeabi,armeabi-v7a,x86
-
-
-
-
-
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- True
- None
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- False
- SdkOnly
-
-
-
- ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.dll
-
-
- ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.Droid.dll
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\FormsViewGroup.dll
- True
-
-
- ..\..\..\packages\HtmlAgilityPack.NetCore.1.5.0.1\lib\netstandard2.0\HtmlAgilityPack.NetCore.dll
-
-
- ..\..\..\packages\Microsoft.Bot.Connector.DirectLine.3.0.0\lib\netstandard2.0\Microsoft.Bot.Connector.DirectLine.dll
-
-
-
- ..\..\..\packages\Microsoft.MarkedNet.1.0.11\lib\netstandard2.0\Microsoft.MarkedNet.dll
-
-
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.6\lib\netstandard1.5\Microsoft.Rest.ClientRuntime.dll
-
-
-
-
- ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll
-
-
-
-
-
-
-
-
-
- ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Core.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
- {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4}
- AdaptiveCards.Sample.BotClient
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak
deleted file mode 100644
index 6f85c705e7..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
- Debug
- AnyCPU
- 8.0.30703
- 2.0
- {17B8EF80-B2D0-4B0D-B73E-BC462492333E}
- {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Library
- Properties
- AdaptiveCards.XamarinForms.BotClient.Droid
- AdaptiveCards.XamarinForms.BotClient.Droid
- 512
- true
- Resources\Resource.Designer.cs
- Off
- Properties\AndroidManifest.xml
- true
- v6.0
- armeabi,armeabi-v7a,x86
-
-
-
-
-
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- True
- None
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- False
- SdkOnly
-
-
-
- ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.dll
-
-
- ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.Droid.dll
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\FormsViewGroup.dll
- True
-
-
- ..\..\..\packages\HtmlAgilityPack.NetCore.1.5.0.1\lib\netstandard1.3\HtmlAgilityPack.NetCore.dll
-
-
- ..\..\..\packages\Microsoft.Bot.Connector.DirectLine.3.0.0\lib\netstandard1.3\Microsoft.Bot.Connector.DirectLine.dll
-
-
-
- ..\..\..\packages\Microsoft.MarkedNet.1.0.11\lib\netstandard1.3\Microsoft.MarkedNet.dll
-
-
- ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.6\lib\netstandard1.5\Microsoft.Rest.ClientRuntime.dll
-
-
-
-
- ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll
-
-
-
-
-
-
-
-
-
- ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll
-
-
- ..\..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll
- True
-
-
- ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Core.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll
- True
-
-
- ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
- {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4}
- AdaptiveCards.Sample.BotClient
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt
deleted file mode 100644
index 5ddf08729b..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Any raw assets you want to be deployed with your application can be placed in
-this directory (and child directories) and given a Build Action of "AndroidAsset".
-
-These files will be deployed with you package and will be accessible using Android's
-AssetManager, like this:
-
-public class ReadAsset : Activity
-{
- protected override void OnCreate (Bundle bundle)
- {
- base.OnCreate (bundle);
-
- InputStream input = Assets.Open ("my_asset.txt");
- }
-}
-
-Additionally, some Android functions will automatically load asset files:
-
-Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs
deleted file mode 100644
index b468cee547..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-
-using Android.App;
-using Android.Content.PM;
-using Android.Runtime;
-using Android.Views;
-using Android.Widget;
-using Android.OS;
-
-namespace AdaptiveCards.XamarinForms.BotClient.Droid
-{
- [Activity(Label = "AdaptiveCards.XamarinForms.BotClient", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
- public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
- {
- protected override void OnCreate(Bundle bundle)
- {
- TabLayoutResource = Resource.Layout.Tabbar;
- ToolbarResource = Resource.Layout.Toolbar;
-
- base.OnCreate(bundle);
-
- global::Xamarin.Forms.Forms.Init(this, bundle);
- LoadApplication(new App());
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml
deleted file mode 100644
index 693f816e01..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs
deleted file mode 100644
index a93b15cbca..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using Android.App;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.Droid")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.Droid")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-[assembly: ComVisible(false)]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-
-// Add some common permissions, these can be removed if not needed
-[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
-[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt
deleted file mode 100644
index cb30f20b1c..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Images, layout descriptions, binary blobs and string dictionaries can be included
-in your application as resource files. Various Android APIs are designed to
-operate on the resource IDs instead of dealing with images, strings or binary blobs
-directly.
-
-For example, a sample Android app that contains a user interface layout (main.xml),
-an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
-would keep its resources in the "Resources" directory of the application:
-
-Resources/
- drawable-hdpi/
- icon.png
-
- drawable-ldpi/
- icon.png
-
- drawable-mdpi/
- icon.png
-
- layout/
- main.xml
-
- values/
- strings.xml
-
-In order to get the build system to recognize Android resources, set the build action to
-"AndroidResource". The native Android APIs do not operate directly with filenames, but
-instead operate on resource IDs. When you compile an Android application that uses resources,
-the build system will package the resources for distribution and generate a class called
-"Resource" that contains the tokens for each one of the resources included. For example,
-for the above Resources layout, this is what the Resource class would expose:
-
-public class Resource {
- public class drawable {
- public const int icon = 0x123;
- }
-
- public class layout {
- public const int main = 0x456;
- }
-
- public class strings {
- public const int first_string = 0xabc;
- public const int second_string = 0xbcd;
- }
-}
-
-You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
-to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
-string in the dictionary file values/strings.xml.
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs
deleted file mode 100644
index 2daf3cb4ac..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs
+++ /dev/null
@@ -1,5936 +0,0 @@
-#pragma warning disable 1591
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-[assembly: global::Android.Runtime.ResourceDesignerAttribute("AdaptiveCards.XamarinForms.BotClient.Droid.Resource", IsApplication=true)]
-
-namespace AdaptiveCards.XamarinForms.BotClient.Droid
-{
-
-
- [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
- public partial class Resource
- {
-
- static Resource()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- public static void UpdateIdValues()
- {
- global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::AdaptiveCards.XamarinForms.BotClient.Droid.Resource.Attribute.actionBarSize;
- }
-
- public partial class Animation
- {
-
- // aapt resource value: 0x7f040000
- public const int abc_fade_in = 2130968576;
-
- // aapt resource value: 0x7f040001
- public const int abc_fade_out = 2130968577;
-
- // aapt resource value: 0x7f040002
- public const int abc_grow_fade_in_from_bottom = 2130968578;
-
- // aapt resource value: 0x7f040003
- public const int abc_popup_enter = 2130968579;
-
- // aapt resource value: 0x7f040004
- public const int abc_popup_exit = 2130968580;
-
- // aapt resource value: 0x7f040005
- public const int abc_shrink_fade_out_from_bottom = 2130968581;
-
- // aapt resource value: 0x7f040006
- public const int abc_slide_in_bottom = 2130968582;
-
- // aapt resource value: 0x7f040007
- public const int abc_slide_in_top = 2130968583;
-
- // aapt resource value: 0x7f040008
- public const int abc_slide_out_bottom = 2130968584;
-
- // aapt resource value: 0x7f040009
- public const int abc_slide_out_top = 2130968585;
-
- // aapt resource value: 0x7f04000a
- public const int design_bottom_sheet_slide_in = 2130968586;
-
- // aapt resource value: 0x7f04000b
- public const int design_bottom_sheet_slide_out = 2130968587;
-
- // aapt resource value: 0x7f04000c
- public const int design_fab_in = 2130968588;
-
- // aapt resource value: 0x7f04000d
- public const int design_fab_out = 2130968589;
-
- // aapt resource value: 0x7f04000e
- public const int design_snackbar_in = 2130968590;
-
- // aapt resource value: 0x7f04000f
- public const int design_snackbar_out = 2130968591;
-
- static Animation()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Animation()
- {
- }
- }
-
- public partial class Attribute
- {
-
- // aapt resource value: 0x7f010004
- public const int MediaRouteControllerWindowBackground = 2130771972;
-
- // aapt resource value: 0x7f010061
- public const int actionBarDivider = 2130772065;
-
- // aapt resource value: 0x7f010062
- public const int actionBarItemBackground = 2130772066;
-
- // aapt resource value: 0x7f01005b
- public const int actionBarPopupTheme = 2130772059;
-
- // aapt resource value: 0x7f010060
- public const int actionBarSize = 2130772064;
-
- // aapt resource value: 0x7f01005d
- public const int actionBarSplitStyle = 2130772061;
-
- // aapt resource value: 0x7f01005c
- public const int actionBarStyle = 2130772060;
-
- // aapt resource value: 0x7f010057
- public const int actionBarTabBarStyle = 2130772055;
-
- // aapt resource value: 0x7f010056
- public const int actionBarTabStyle = 2130772054;
-
- // aapt resource value: 0x7f010058
- public const int actionBarTabTextStyle = 2130772056;
-
- // aapt resource value: 0x7f01005e
- public const int actionBarTheme = 2130772062;
-
- // aapt resource value: 0x7f01005f
- public const int actionBarWidgetTheme = 2130772063;
-
- // aapt resource value: 0x7f01007b
- public const int actionButtonStyle = 2130772091;
-
- // aapt resource value: 0x7f010077
- public const int actionDropDownStyle = 2130772087;
-
- // aapt resource value: 0x7f0100c9
- public const int actionLayout = 2130772169;
-
- // aapt resource value: 0x7f010063
- public const int actionMenuTextAppearance = 2130772067;
-
- // aapt resource value: 0x7f010064
- public const int actionMenuTextColor = 2130772068;
-
- // aapt resource value: 0x7f010067
- public const int actionModeBackground = 2130772071;
-
- // aapt resource value: 0x7f010066
- public const int actionModeCloseButtonStyle = 2130772070;
-
- // aapt resource value: 0x7f010069
- public const int actionModeCloseDrawable = 2130772073;
-
- // aapt resource value: 0x7f01006b
- public const int actionModeCopyDrawable = 2130772075;
-
- // aapt resource value: 0x7f01006a
- public const int actionModeCutDrawable = 2130772074;
-
- // aapt resource value: 0x7f01006f
- public const int actionModeFindDrawable = 2130772079;
-
- // aapt resource value: 0x7f01006c
- public const int actionModePasteDrawable = 2130772076;
-
- // aapt resource value: 0x7f010071
- public const int actionModePopupWindowStyle = 2130772081;
-
- // aapt resource value: 0x7f01006d
- public const int actionModeSelectAllDrawable = 2130772077;
-
- // aapt resource value: 0x7f01006e
- public const int actionModeShareDrawable = 2130772078;
-
- // aapt resource value: 0x7f010068
- public const int actionModeSplitBackground = 2130772072;
-
- // aapt resource value: 0x7f010065
- public const int actionModeStyle = 2130772069;
-
- // aapt resource value: 0x7f010070
- public const int actionModeWebSearchDrawable = 2130772080;
-
- // aapt resource value: 0x7f010059
- public const int actionOverflowButtonStyle = 2130772057;
-
- // aapt resource value: 0x7f01005a
- public const int actionOverflowMenuStyle = 2130772058;
-
- // aapt resource value: 0x7f0100cb
- public const int actionProviderClass = 2130772171;
-
- // aapt resource value: 0x7f0100ca
- public const int actionViewClass = 2130772170;
-
- // aapt resource value: 0x7f010083
- public const int activityChooserViewStyle = 2130772099;
-
- // aapt resource value: 0x7f0100a6
- public const int alertDialogButtonGroupStyle = 2130772134;
-
- // aapt resource value: 0x7f0100a7
- public const int alertDialogCenterButtons = 2130772135;
-
- // aapt resource value: 0x7f0100a5
- public const int alertDialogStyle = 2130772133;
-
- // aapt resource value: 0x7f0100a8
- public const int alertDialogTheme = 2130772136;
-
- // aapt resource value: 0x7f0100ba
- public const int allowStacking = 2130772154;
-
- // aapt resource value: 0x7f0100c1
- public const int arrowHeadLength = 2130772161;
-
- // aapt resource value: 0x7f0100c2
- public const int arrowShaftLength = 2130772162;
-
- // aapt resource value: 0x7f0100ad
- public const int autoCompleteTextViewStyle = 2130772141;
-
- // aapt resource value: 0x7f010032
- public const int background = 2130772018;
-
- // aapt resource value: 0x7f010034
- public const int backgroundSplit = 2130772020;
-
- // aapt resource value: 0x7f010033
- public const int backgroundStacked = 2130772019;
-
- // aapt resource value: 0x7f0100f5
- public const int backgroundTint = 2130772213;
-
- // aapt resource value: 0x7f0100f6
- public const int backgroundTintMode = 2130772214;
-
- // aapt resource value: 0x7f0100c3
- public const int barLength = 2130772163;
-
- // aapt resource value: 0x7f0100fb
- public const int behavior_hideable = 2130772219;
-
- // aapt resource value: 0x7f010121
- public const int behavior_overlapTop = 2130772257;
-
- // aapt resource value: 0x7f0100fa
- public const int behavior_peekHeight = 2130772218;
-
- // aapt resource value: 0x7f010117
- public const int borderWidth = 2130772247;
-
- // aapt resource value: 0x7f010080
- public const int borderlessButtonStyle = 2130772096;
-
- // aapt resource value: 0x7f010111
- public const int bottomSheetDialogTheme = 2130772241;
-
- // aapt resource value: 0x7f010112
- public const int bottomSheetStyle = 2130772242;
-
- // aapt resource value: 0x7f01007d
- public const int buttonBarButtonStyle = 2130772093;
-
- // aapt resource value: 0x7f0100ab
- public const int buttonBarNegativeButtonStyle = 2130772139;
-
- // aapt resource value: 0x7f0100ac
- public const int buttonBarNeutralButtonStyle = 2130772140;
-
- // aapt resource value: 0x7f0100aa
- public const int buttonBarPositiveButtonStyle = 2130772138;
-
- // aapt resource value: 0x7f01007c
- public const int buttonBarStyle = 2130772092;
-
- // aapt resource value: 0x7f010045
- public const int buttonPanelSideLayout = 2130772037;
-
- // aapt resource value: 0x7f0100ae
- public const int buttonStyle = 2130772142;
-
- // aapt resource value: 0x7f0100af
- public const int buttonStyleSmall = 2130772143;
-
- // aapt resource value: 0x7f0100bb
- public const int buttonTint = 2130772155;
-
- // aapt resource value: 0x7f0100bc
- public const int buttonTintMode = 2130772156;
-
- // aapt resource value: 0x7f01001b
- public const int cardBackgroundColor = 2130771995;
-
- // aapt resource value: 0x7f01001c
- public const int cardCornerRadius = 2130771996;
-
- // aapt resource value: 0x7f01001d
- public const int cardElevation = 2130771997;
-
- // aapt resource value: 0x7f01001e
- public const int cardMaxElevation = 2130771998;
-
- // aapt resource value: 0x7f010020
- public const int cardPreventCornerOverlap = 2130772000;
-
- // aapt resource value: 0x7f01001f
- public const int cardUseCompatPadding = 2130771999;
-
- // aapt resource value: 0x7f0100b0
- public const int checkboxStyle = 2130772144;
-
- // aapt resource value: 0x7f0100b1
- public const int checkedTextViewStyle = 2130772145;
-
- // aapt resource value: 0x7f0100d3
- public const int closeIcon = 2130772179;
-
- // aapt resource value: 0x7f010042
- public const int closeItemLayout = 2130772034;
-
- // aapt resource value: 0x7f0100ec
- public const int collapseContentDescription = 2130772204;
-
- // aapt resource value: 0x7f0100eb
- public const int collapseIcon = 2130772203;
-
- // aapt resource value: 0x7f010108
- public const int collapsedTitleGravity = 2130772232;
-
- // aapt resource value: 0x7f010104
- public const int collapsedTitleTextAppearance = 2130772228;
-
- // aapt resource value: 0x7f0100bd
- public const int color = 2130772157;
-
- // aapt resource value: 0x7f01009e
- public const int colorAccent = 2130772126;
-
- // aapt resource value: 0x7f0100a2
- public const int colorButtonNormal = 2130772130;
-
- // aapt resource value: 0x7f0100a0
- public const int colorControlActivated = 2130772128;
-
- // aapt resource value: 0x7f0100a1
- public const int colorControlHighlight = 2130772129;
-
- // aapt resource value: 0x7f01009f
- public const int colorControlNormal = 2130772127;
-
- // aapt resource value: 0x7f01009c
- public const int colorPrimary = 2130772124;
-
- // aapt resource value: 0x7f01009d
- public const int colorPrimaryDark = 2130772125;
-
- // aapt resource value: 0x7f0100a3
- public const int colorSwitchThumbNormal = 2130772131;
-
- // aapt resource value: 0x7f0100d8
- public const int commitIcon = 2130772184;
-
- // aapt resource value: 0x7f01003d
- public const int contentInsetEnd = 2130772029;
-
- // aapt resource value: 0x7f01003e
- public const int contentInsetLeft = 2130772030;
-
- // aapt resource value: 0x7f01003f
- public const int contentInsetRight = 2130772031;
-
- // aapt resource value: 0x7f01003c
- public const int contentInsetStart = 2130772028;
-
- // aapt resource value: 0x7f010021
- public const int contentPadding = 2130772001;
-
- // aapt resource value: 0x7f010025
- public const int contentPaddingBottom = 2130772005;
-
- // aapt resource value: 0x7f010022
- public const int contentPaddingLeft = 2130772002;
-
- // aapt resource value: 0x7f010023
- public const int contentPaddingRight = 2130772003;
-
- // aapt resource value: 0x7f010024
- public const int contentPaddingTop = 2130772004;
-
- // aapt resource value: 0x7f010105
- public const int contentScrim = 2130772229;
-
- // aapt resource value: 0x7f0100a4
- public const int controlBackground = 2130772132;
-
- // aapt resource value: 0x7f010137
- public const int counterEnabled = 2130772279;
-
- // aapt resource value: 0x7f010138
- public const int counterMaxLength = 2130772280;
-
- // aapt resource value: 0x7f01013a
- public const int counterOverflowTextAppearance = 2130772282;
-
- // aapt resource value: 0x7f010139
- public const int counterTextAppearance = 2130772281;
-
- // aapt resource value: 0x7f010035
- public const int customNavigationLayout = 2130772021;
-
- // aapt resource value: 0x7f0100d2
- public const int defaultQueryHint = 2130772178;
-
- // aapt resource value: 0x7f010075
- public const int dialogPreferredPadding = 2130772085;
-
- // aapt resource value: 0x7f010074
- public const int dialogTheme = 2130772084;
-
- // aapt resource value: 0x7f01002b
- public const int displayOptions = 2130772011;
-
- // aapt resource value: 0x7f010031
- public const int divider = 2130772017;
-
- // aapt resource value: 0x7f010082
- public const int dividerHorizontal = 2130772098;
-
- // aapt resource value: 0x7f0100c7
- public const int dividerPadding = 2130772167;
-
- // aapt resource value: 0x7f010081
- public const int dividerVertical = 2130772097;
-
- // aapt resource value: 0x7f0100bf
- public const int drawableSize = 2130772159;
-
- // aapt resource value: 0x7f010026
- public const int drawerArrowStyle = 2130772006;
-
- // aapt resource value: 0x7f010094
- public const int dropDownListViewStyle = 2130772116;
-
- // aapt resource value: 0x7f010078
- public const int dropdownListPreferredItemHeight = 2130772088;
-
- // aapt resource value: 0x7f010089
- public const int editTextBackground = 2130772105;
-
- // aapt resource value: 0x7f010088
- public const int editTextColor = 2130772104;
-
- // aapt resource value: 0x7f0100b2
- public const int editTextStyle = 2130772146;
-
- // aapt resource value: 0x7f010040
- public const int elevation = 2130772032;
-
- // aapt resource value: 0x7f010135
- public const int errorEnabled = 2130772277;
-
- // aapt resource value: 0x7f010136
- public const int errorTextAppearance = 2130772278;
-
- // aapt resource value: 0x7f010044
- public const int expandActivityOverflowButtonDrawable = 2130772036;
-
- // aapt resource value: 0x7f0100f7
- public const int expanded = 2130772215;
-
- // aapt resource value: 0x7f010109
- public const int expandedTitleGravity = 2130772233;
-
- // aapt resource value: 0x7f0100fe
- public const int expandedTitleMargin = 2130772222;
-
- // aapt resource value: 0x7f010102
- public const int expandedTitleMarginBottom = 2130772226;
-
- // aapt resource value: 0x7f010101
- public const int expandedTitleMarginEnd = 2130772225;
-
- // aapt resource value: 0x7f0100ff
- public const int expandedTitleMarginStart = 2130772223;
-
- // aapt resource value: 0x7f010100
- public const int expandedTitleMarginTop = 2130772224;
-
- // aapt resource value: 0x7f010103
- public const int expandedTitleTextAppearance = 2130772227;
-
- // aapt resource value: 0x7f01001a
- public const int externalRouteEnabledDrawable = 2130771994;
-
- // aapt resource value: 0x7f010115
- public const int fabSize = 2130772245;
-
- // aapt resource value: 0x7f010119
- public const int foregroundInsidePadding = 2130772249;
-
- // aapt resource value: 0x7f0100c0
- public const int gapBetweenBars = 2130772160;
-
- // aapt resource value: 0x7f0100d4
- public const int goIcon = 2130772180;
-
- // aapt resource value: 0x7f01011f
- public const int headerLayout = 2130772255;
-
- // aapt resource value: 0x7f010027
- public const int height = 2130772007;
-
- // aapt resource value: 0x7f01003b
- public const int hideOnContentScroll = 2130772027;
-
- // aapt resource value: 0x7f01013b
- public const int hintAnimationEnabled = 2130772283;
-
- // aapt resource value: 0x7f010134
- public const int hintEnabled = 2130772276;
-
- // aapt resource value: 0x7f010133
- public const int hintTextAppearance = 2130772275;
-
- // aapt resource value: 0x7f01007a
- public const int homeAsUpIndicator = 2130772090;
-
- // aapt resource value: 0x7f010036
- public const int homeLayout = 2130772022;
-
- // aapt resource value: 0x7f01002f
- public const int icon = 2130772015;
-
- // aapt resource value: 0x7f0100d0
- public const int iconifiedByDefault = 2130772176;
-
- // aapt resource value: 0x7f01008a
- public const int imageButtonStyle = 2130772106;
-
- // aapt resource value: 0x7f010038
- public const int indeterminateProgressStyle = 2130772024;
-
- // aapt resource value: 0x7f010043
- public const int initialActivityCount = 2130772035;
-
- // aapt resource value: 0x7f010120
- public const int insetForeground = 2130772256;
-
- // aapt resource value: 0x7f010028
- public const int isLightTheme = 2130772008;
-
- // aapt resource value: 0x7f01011d
- public const int itemBackground = 2130772253;
-
- // aapt resource value: 0x7f01011b
- public const int itemIconTint = 2130772251;
-
- // aapt resource value: 0x7f01003a
- public const int itemPadding = 2130772026;
-
- // aapt resource value: 0x7f01011e
- public const int itemTextAppearance = 2130772254;
-
- // aapt resource value: 0x7f01011c
- public const int itemTextColor = 2130772252;
-
- // aapt resource value: 0x7f01010b
- public const int keylines = 2130772235;
-
- // aapt resource value: 0x7f0100cf
- public const int layout = 2130772175;
-
- // aapt resource value: 0x7f010000
- public const int layoutManager = 2130771968;
-
- // aapt resource value: 0x7f01010e
- public const int layout_anchor = 2130772238;
-
- // aapt resource value: 0x7f010110
- public const int layout_anchorGravity = 2130772240;
-
- // aapt resource value: 0x7f01010d
- public const int layout_behavior = 2130772237;
-
- // aapt resource value: 0x7f0100fc
- public const int layout_collapseMode = 2130772220;
-
- // aapt resource value: 0x7f0100fd
- public const int layout_collapseParallaxMultiplier = 2130772221;
-
- // aapt resource value: 0x7f01010f
- public const int layout_keyline = 2130772239;
-
- // aapt resource value: 0x7f0100f8
- public const int layout_scrollFlags = 2130772216;
-
- // aapt resource value: 0x7f0100f9
- public const int layout_scrollInterpolator = 2130772217;
-
- // aapt resource value: 0x7f01009b
- public const int listChoiceBackgroundIndicator = 2130772123;
-
- // aapt resource value: 0x7f010076
- public const int listDividerAlertDialog = 2130772086;
-
- // aapt resource value: 0x7f010049
- public const int listItemLayout = 2130772041;
-
- // aapt resource value: 0x7f010046
- public const int listLayout = 2130772038;
-
- // aapt resource value: 0x7f010095
- public const int listPopupWindowStyle = 2130772117;
-
- // aapt resource value: 0x7f01008f
- public const int listPreferredItemHeight = 2130772111;
-
- // aapt resource value: 0x7f010091
- public const int listPreferredItemHeightLarge = 2130772113;
-
- // aapt resource value: 0x7f010090
- public const int listPreferredItemHeightSmall = 2130772112;
-
- // aapt resource value: 0x7f010092
- public const int listPreferredItemPaddingLeft = 2130772114;
-
- // aapt resource value: 0x7f010093
- public const int listPreferredItemPaddingRight = 2130772115;
-
- // aapt resource value: 0x7f010030
- public const int logo = 2130772016;
-
- // aapt resource value: 0x7f0100ef
- public const int logoDescription = 2130772207;
-
- // aapt resource value: 0x7f010122
- public const int maxActionInlineWidth = 2130772258;
-
- // aapt resource value: 0x7f0100ea
- public const int maxButtonHeight = 2130772202;
-
- // aapt resource value: 0x7f0100c5
- public const int measureWithLargestChild = 2130772165;
-
- // aapt resource value: 0x7f010005
- public const int mediaRouteAudioTrackDrawable = 2130771973;
-
- // aapt resource value: 0x7f010006
- public const int mediaRouteBluetoothIconDrawable = 2130771974;
-
- // aapt resource value: 0x7f010007
- public const int mediaRouteButtonStyle = 2130771975;
-
- // aapt resource value: 0x7f010008
- public const int mediaRouteCastDrawable = 2130771976;
-
- // aapt resource value: 0x7f010009
- public const int mediaRouteChooserPrimaryTextStyle = 2130771977;
-
- // aapt resource value: 0x7f01000a
- public const int mediaRouteChooserSecondaryTextStyle = 2130771978;
-
- // aapt resource value: 0x7f01000b
- public const int mediaRouteCloseDrawable = 2130771979;
-
- // aapt resource value: 0x7f01000c
- public const int mediaRouteCollapseGroupDrawable = 2130771980;
-
- // aapt resource value: 0x7f01000d
- public const int mediaRouteConnectingDrawable = 2130771981;
-
- // aapt resource value: 0x7f01000e
- public const int mediaRouteControllerPrimaryTextStyle = 2130771982;
-
- // aapt resource value: 0x7f01000f
- public const int mediaRouteControllerSecondaryTextStyle = 2130771983;
-
- // aapt resource value: 0x7f010010
- public const int mediaRouteControllerTitleTextStyle = 2130771984;
-
- // aapt resource value: 0x7f010011
- public const int mediaRouteDefaultIconDrawable = 2130771985;
-
- // aapt resource value: 0x7f010012
- public const int mediaRouteExpandGroupDrawable = 2130771986;
-
- // aapt resource value: 0x7f010013
- public const int mediaRouteOffDrawable = 2130771987;
-
- // aapt resource value: 0x7f010014
- public const int mediaRouteOnDrawable = 2130771988;
-
- // aapt resource value: 0x7f010015
- public const int mediaRoutePauseDrawable = 2130771989;
-
- // aapt resource value: 0x7f010016
- public const int mediaRoutePlayDrawable = 2130771990;
-
- // aapt resource value: 0x7f010017
- public const int mediaRouteSpeakerGroupIconDrawable = 2130771991;
-
- // aapt resource value: 0x7f010018
- public const int mediaRouteSpeakerIconDrawable = 2130771992;
-
- // aapt resource value: 0x7f010019
- public const int mediaRouteTvIconDrawable = 2130771993;
-
- // aapt resource value: 0x7f01011a
- public const int menu = 2130772250;
-
- // aapt resource value: 0x7f010047
- public const int multiChoiceItemLayout = 2130772039;
-
- // aapt resource value: 0x7f0100ee
- public const int navigationContentDescription = 2130772206;
-
- // aapt resource value: 0x7f0100ed
- public const int navigationIcon = 2130772205;
-
- // aapt resource value: 0x7f01002a
- public const int navigationMode = 2130772010;
-
- // aapt resource value: 0x7f0100cd
- public const int overlapAnchor = 2130772173;
-
- // aapt resource value: 0x7f0100f3
- public const int paddingEnd = 2130772211;
-
- // aapt resource value: 0x7f0100f2
- public const int paddingStart = 2130772210;
-
- // aapt resource value: 0x7f010098
- public const int panelBackground = 2130772120;
-
- // aapt resource value: 0x7f01009a
- public const int panelMenuListTheme = 2130772122;
-
- // aapt resource value: 0x7f010099
- public const int panelMenuListWidth = 2130772121;
-
- // aapt resource value: 0x7f010086
- public const int popupMenuStyle = 2130772102;
-
- // aapt resource value: 0x7f010041
- public const int popupTheme = 2130772033;
-
- // aapt resource value: 0x7f010087
- public const int popupWindowStyle = 2130772103;
-
- // aapt resource value: 0x7f0100cc
- public const int preserveIconSpacing = 2130772172;
-
- // aapt resource value: 0x7f010116
- public const int pressedTranslationZ = 2130772246;
-
- // aapt resource value: 0x7f010039
- public const int progressBarPadding = 2130772025;
-
- // aapt resource value: 0x7f010037
- public const int progressBarStyle = 2130772023;
-
- // aapt resource value: 0x7f0100da
- public const int queryBackground = 2130772186;
-
- // aapt resource value: 0x7f0100d1
- public const int queryHint = 2130772177;
-
- // aapt resource value: 0x7f0100b3
- public const int radioButtonStyle = 2130772147;
-
- // aapt resource value: 0x7f0100b4
- public const int ratingBarStyle = 2130772148;
-
- // aapt resource value: 0x7f0100b5
- public const int ratingBarStyleIndicator = 2130772149;
-
- // aapt resource value: 0x7f0100b6
- public const int ratingBarStyleSmall = 2130772150;
-
- // aapt resource value: 0x7f010002
- public const int reverseLayout = 2130771970;
-
- // aapt resource value: 0x7f010114
- public const int rippleColor = 2130772244;
-
- // aapt resource value: 0x7f0100d6
- public const int searchHintIcon = 2130772182;
-
- // aapt resource value: 0x7f0100d5
- public const int searchIcon = 2130772181;
-
- // aapt resource value: 0x7f01008e
- public const int searchViewStyle = 2130772110;
-
- // aapt resource value: 0x7f0100b7
- public const int seekBarStyle = 2130772151;
-
- // aapt resource value: 0x7f01007e
- public const int selectableItemBackground = 2130772094;
-
- // aapt resource value: 0x7f01007f
- public const int selectableItemBackgroundBorderless = 2130772095;
-
- // aapt resource value: 0x7f0100c8
- public const int showAsAction = 2130772168;
-
- // aapt resource value: 0x7f0100c6
- public const int showDividers = 2130772166;
-
- // aapt resource value: 0x7f0100e2
- public const int showText = 2130772194;
-
- // aapt resource value: 0x7f010048
- public const int singleChoiceItemLayout = 2130772040;
-
- // aapt resource value: 0x7f010001
- public const int spanCount = 2130771969;
-
- // aapt resource value: 0x7f0100be
- public const int spinBars = 2130772158;
-
- // aapt resource value: 0x7f010079
- public const int spinnerDropDownItemStyle = 2130772089;
-
- // aapt resource value: 0x7f0100b8
- public const int spinnerStyle = 2130772152;
-
- // aapt resource value: 0x7f0100e1
- public const int splitTrack = 2130772193;
-
- // aapt resource value: 0x7f01004a
- public const int srcCompat = 2130772042;
-
- // aapt resource value: 0x7f010003
- public const int stackFromEnd = 2130771971;
-
- // aapt resource value: 0x7f0100ce
- public const int state_above_anchor = 2130772174;
-
- // aapt resource value: 0x7f01010c
- public const int statusBarBackground = 2130772236;
-
- // aapt resource value: 0x7f010106
- public const int statusBarScrim = 2130772230;
-
- // aapt resource value: 0x7f0100db
- public const int submitBackground = 2130772187;
-
- // aapt resource value: 0x7f01002c
- public const int subtitle = 2130772012;
-
- // aapt resource value: 0x7f0100e4
- public const int subtitleTextAppearance = 2130772196;
-
- // aapt resource value: 0x7f0100f1
- public const int subtitleTextColor = 2130772209;
-
- // aapt resource value: 0x7f01002e
- public const int subtitleTextStyle = 2130772014;
-
- // aapt resource value: 0x7f0100d9
- public const int suggestionRowLayout = 2130772185;
-
- // aapt resource value: 0x7f0100df
- public const int switchMinWidth = 2130772191;
-
- // aapt resource value: 0x7f0100e0
- public const int switchPadding = 2130772192;
-
- // aapt resource value: 0x7f0100b9
- public const int switchStyle = 2130772153;
-
- // aapt resource value: 0x7f0100de
- public const int switchTextAppearance = 2130772190;
-
- // aapt resource value: 0x7f010126
- public const int tabBackground = 2130772262;
-
- // aapt resource value: 0x7f010125
- public const int tabContentStart = 2130772261;
-
- // aapt resource value: 0x7f010128
- public const int tabGravity = 2130772264;
-
- // aapt resource value: 0x7f010123
- public const int tabIndicatorColor = 2130772259;
-
- // aapt resource value: 0x7f010124
- public const int tabIndicatorHeight = 2130772260;
-
- // aapt resource value: 0x7f01012a
- public const int tabMaxWidth = 2130772266;
-
- // aapt resource value: 0x7f010129
- public const int tabMinWidth = 2130772265;
-
- // aapt resource value: 0x7f010127
- public const int tabMode = 2130772263;
-
- // aapt resource value: 0x7f010132
- public const int tabPadding = 2130772274;
-
- // aapt resource value: 0x7f010131
- public const int tabPaddingBottom = 2130772273;
-
- // aapt resource value: 0x7f010130
- public const int tabPaddingEnd = 2130772272;
-
- // aapt resource value: 0x7f01012e
- public const int tabPaddingStart = 2130772270;
-
- // aapt resource value: 0x7f01012f
- public const int tabPaddingTop = 2130772271;
-
- // aapt resource value: 0x7f01012d
- public const int tabSelectedTextColor = 2130772269;
-
- // aapt resource value: 0x7f01012b
- public const int tabTextAppearance = 2130772267;
-
- // aapt resource value: 0x7f01012c
- public const int tabTextColor = 2130772268;
-
- // aapt resource value: 0x7f01004b
- public const int textAllCaps = 2130772043;
-
- // aapt resource value: 0x7f010072
- public const int textAppearanceLargePopupMenu = 2130772082;
-
- // aapt resource value: 0x7f010096
- public const int textAppearanceListItem = 2130772118;
-
- // aapt resource value: 0x7f010097
- public const int textAppearanceListItemSmall = 2130772119;
-
- // aapt resource value: 0x7f01008c
- public const int textAppearanceSearchResultSubtitle = 2130772108;
-
- // aapt resource value: 0x7f01008b
- public const int textAppearanceSearchResultTitle = 2130772107;
-
- // aapt resource value: 0x7f010073
- public const int textAppearanceSmallPopupMenu = 2130772083;
-
- // aapt resource value: 0x7f0100a9
- public const int textColorAlertDialogListItem = 2130772137;
-
- // aapt resource value: 0x7f010113
- public const int textColorError = 2130772243;
-
- // aapt resource value: 0x7f01008d
- public const int textColorSearchUrl = 2130772109;
-
- // aapt resource value: 0x7f0100f4
- public const int theme = 2130772212;
-
- // aapt resource value: 0x7f0100c4
- public const int thickness = 2130772164;
-
- // aapt resource value: 0x7f0100dd
- public const int thumbTextPadding = 2130772189;
-
- // aapt resource value: 0x7f010029
- public const int title = 2130772009;
-
- // aapt resource value: 0x7f01010a
- public const int titleEnabled = 2130772234;
-
- // aapt resource value: 0x7f0100e9
- public const int titleMarginBottom = 2130772201;
-
- // aapt resource value: 0x7f0100e7
- public const int titleMarginEnd = 2130772199;
-
- // aapt resource value: 0x7f0100e6
- public const int titleMarginStart = 2130772198;
-
- // aapt resource value: 0x7f0100e8
- public const int titleMarginTop = 2130772200;
-
- // aapt resource value: 0x7f0100e5
- public const int titleMargins = 2130772197;
-
- // aapt resource value: 0x7f0100e3
- public const int titleTextAppearance = 2130772195;
-
- // aapt resource value: 0x7f0100f0
- public const int titleTextColor = 2130772208;
-
- // aapt resource value: 0x7f01002d
- public const int titleTextStyle = 2130772013;
-
- // aapt resource value: 0x7f010107
- public const int toolbarId = 2130772231;
-
- // aapt resource value: 0x7f010085
- public const int toolbarNavigationButtonStyle = 2130772101;
-
- // aapt resource value: 0x7f010084
- public const int toolbarStyle = 2130772100;
-
- // aapt resource value: 0x7f0100dc
- public const int track = 2130772188;
-
- // aapt resource value: 0x7f010118
- public const int useCompatPadding = 2130772248;
-
- // aapt resource value: 0x7f0100d7
- public const int voiceIcon = 2130772183;
-
- // aapt resource value: 0x7f01004c
- public const int windowActionBar = 2130772044;
-
- // aapt resource value: 0x7f01004e
- public const int windowActionBarOverlay = 2130772046;
-
- // aapt resource value: 0x7f01004f
- public const int windowActionModeOverlay = 2130772047;
-
- // aapt resource value: 0x7f010053
- public const int windowFixedHeightMajor = 2130772051;
-
- // aapt resource value: 0x7f010051
- public const int windowFixedHeightMinor = 2130772049;
-
- // aapt resource value: 0x7f010050
- public const int windowFixedWidthMajor = 2130772048;
-
- // aapt resource value: 0x7f010052
- public const int windowFixedWidthMinor = 2130772050;
-
- // aapt resource value: 0x7f010054
- public const int windowMinWidthMajor = 2130772052;
-
- // aapt resource value: 0x7f010055
- public const int windowMinWidthMinor = 2130772053;
-
- // aapt resource value: 0x7f01004d
- public const int windowNoTitle = 2130772045;
-
- static Attribute()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Attribute()
- {
- }
- }
-
- public partial class Boolean
- {
-
- // aapt resource value: 0x7f0c0003
- public const int abc_action_bar_embed_tabs = 2131492867;
-
- // aapt resource value: 0x7f0c0001
- public const int abc_action_bar_embed_tabs_pre_jb = 2131492865;
-
- // aapt resource value: 0x7f0c0004
- public const int abc_action_bar_expanded_action_views_exclusive = 2131492868;
-
- // aapt resource value: 0x7f0c0000
- public const int abc_allow_stacked_button_bar = 2131492864;
-
- // aapt resource value: 0x7f0c0005
- public const int abc_config_actionMenuItemAllCaps = 2131492869;
-
- // aapt resource value: 0x7f0c0002
- public const int abc_config_allowActionMenuItemTextWithIcon = 2131492866;
-
- // aapt resource value: 0x7f0c0006
- public const int abc_config_closeDialogWhenTouchOutside = 2131492870;
-
- // aapt resource value: 0x7f0c0007
- public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131492871;
-
- static Boolean()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Boolean()
- {
- }
- }
-
- public partial class Color
- {
-
- // aapt resource value: 0x7f0b0048
- public const int abc_background_cache_hint_selector_material_dark = 2131427400;
-
- // aapt resource value: 0x7f0b0049
- public const int abc_background_cache_hint_selector_material_light = 2131427401;
-
- // aapt resource value: 0x7f0b004a
- public const int abc_color_highlight_material = 2131427402;
-
- // aapt resource value: 0x7f0b0004
- public const int abc_input_method_navigation_guard = 2131427332;
-
- // aapt resource value: 0x7f0b004b
- public const int abc_primary_text_disable_only_material_dark = 2131427403;
-
- // aapt resource value: 0x7f0b004c
- public const int abc_primary_text_disable_only_material_light = 2131427404;
-
- // aapt resource value: 0x7f0b004d
- public const int abc_primary_text_material_dark = 2131427405;
-
- // aapt resource value: 0x7f0b004e
- public const int abc_primary_text_material_light = 2131427406;
-
- // aapt resource value: 0x7f0b004f
- public const int abc_search_url_text = 2131427407;
-
- // aapt resource value: 0x7f0b0005
- public const int abc_search_url_text_normal = 2131427333;
-
- // aapt resource value: 0x7f0b0006
- public const int abc_search_url_text_pressed = 2131427334;
-
- // aapt resource value: 0x7f0b0007
- public const int abc_search_url_text_selected = 2131427335;
-
- // aapt resource value: 0x7f0b0050
- public const int abc_secondary_text_material_dark = 2131427408;
-
- // aapt resource value: 0x7f0b0051
- public const int abc_secondary_text_material_light = 2131427409;
-
- // aapt resource value: 0x7f0b0008
- public const int accent_material_dark = 2131427336;
-
- // aapt resource value: 0x7f0b0009
- public const int accent_material_light = 2131427337;
-
- // aapt resource value: 0x7f0b000a
- public const int background_floating_material_dark = 2131427338;
-
- // aapt resource value: 0x7f0b000b
- public const int background_floating_material_light = 2131427339;
-
- // aapt resource value: 0x7f0b000c
- public const int background_material_dark = 2131427340;
-
- // aapt resource value: 0x7f0b000d
- public const int background_material_light = 2131427341;
-
- // aapt resource value: 0x7f0b000e
- public const int bright_foreground_disabled_material_dark = 2131427342;
-
- // aapt resource value: 0x7f0b000f
- public const int bright_foreground_disabled_material_light = 2131427343;
-
- // aapt resource value: 0x7f0b0010
- public const int bright_foreground_inverse_material_dark = 2131427344;
-
- // aapt resource value: 0x7f0b0011
- public const int bright_foreground_inverse_material_light = 2131427345;
-
- // aapt resource value: 0x7f0b0012
- public const int bright_foreground_material_dark = 2131427346;
-
- // aapt resource value: 0x7f0b0013
- public const int bright_foreground_material_light = 2131427347;
-
- // aapt resource value: 0x7f0b0014
- public const int button_material_dark = 2131427348;
-
- // aapt resource value: 0x7f0b0015
- public const int button_material_light = 2131427349;
-
- // aapt resource value: 0x7f0b0000
- public const int cardview_dark_background = 2131427328;
-
- // aapt resource value: 0x7f0b0001
- public const int cardview_light_background = 2131427329;
-
- // aapt resource value: 0x7f0b0002
- public const int cardview_shadow_end_color = 2131427330;
-
- // aapt resource value: 0x7f0b0003
- public const int cardview_shadow_start_color = 2131427331;
-
- // aapt resource value: 0x7f0b003e
- public const int design_fab_shadow_end_color = 2131427390;
-
- // aapt resource value: 0x7f0b003f
- public const int design_fab_shadow_mid_color = 2131427391;
-
- // aapt resource value: 0x7f0b0040
- public const int design_fab_shadow_start_color = 2131427392;
-
- // aapt resource value: 0x7f0b0041
- public const int design_fab_stroke_end_inner_color = 2131427393;
-
- // aapt resource value: 0x7f0b0042
- public const int design_fab_stroke_end_outer_color = 2131427394;
-
- // aapt resource value: 0x7f0b0043
- public const int design_fab_stroke_top_inner_color = 2131427395;
-
- // aapt resource value: 0x7f0b0044
- public const int design_fab_stroke_top_outer_color = 2131427396;
-
- // aapt resource value: 0x7f0b0045
- public const int design_snackbar_background_color = 2131427397;
-
- // aapt resource value: 0x7f0b0046
- public const int design_textinput_error_color_dark = 2131427398;
-
- // aapt resource value: 0x7f0b0047
- public const int design_textinput_error_color_light = 2131427399;
-
- // aapt resource value: 0x7f0b0016
- public const int dim_foreground_disabled_material_dark = 2131427350;
-
- // aapt resource value: 0x7f0b0017
- public const int dim_foreground_disabled_material_light = 2131427351;
-
- // aapt resource value: 0x7f0b0018
- public const int dim_foreground_material_dark = 2131427352;
-
- // aapt resource value: 0x7f0b0019
- public const int dim_foreground_material_light = 2131427353;
-
- // aapt resource value: 0x7f0b001a
- public const int foreground_material_dark = 2131427354;
-
- // aapt resource value: 0x7f0b001b
- public const int foreground_material_light = 2131427355;
-
- // aapt resource value: 0x7f0b001c
- public const int highlighted_text_material_dark = 2131427356;
-
- // aapt resource value: 0x7f0b001d
- public const int highlighted_text_material_light = 2131427357;
-
- // aapt resource value: 0x7f0b001e
- public const int hint_foreground_material_dark = 2131427358;
-
- // aapt resource value: 0x7f0b001f
- public const int hint_foreground_material_light = 2131427359;
-
- // aapt resource value: 0x7f0b0020
- public const int material_blue_grey_800 = 2131427360;
-
- // aapt resource value: 0x7f0b0021
- public const int material_blue_grey_900 = 2131427361;
-
- // aapt resource value: 0x7f0b0022
- public const int material_blue_grey_950 = 2131427362;
-
- // aapt resource value: 0x7f0b0023
- public const int material_deep_teal_200 = 2131427363;
-
- // aapt resource value: 0x7f0b0024
- public const int material_deep_teal_500 = 2131427364;
-
- // aapt resource value: 0x7f0b0025
- public const int material_grey_100 = 2131427365;
-
- // aapt resource value: 0x7f0b0026
- public const int material_grey_300 = 2131427366;
-
- // aapt resource value: 0x7f0b0027
- public const int material_grey_50 = 2131427367;
-
- // aapt resource value: 0x7f0b0028
- public const int material_grey_600 = 2131427368;
-
- // aapt resource value: 0x7f0b0029
- public const int material_grey_800 = 2131427369;
-
- // aapt resource value: 0x7f0b002a
- public const int material_grey_850 = 2131427370;
-
- // aapt resource value: 0x7f0b002b
- public const int material_grey_900 = 2131427371;
-
- // aapt resource value: 0x7f0b002c
- public const int primary_dark_material_dark = 2131427372;
-
- // aapt resource value: 0x7f0b002d
- public const int primary_dark_material_light = 2131427373;
-
- // aapt resource value: 0x7f0b002e
- public const int primary_material_dark = 2131427374;
-
- // aapt resource value: 0x7f0b002f
- public const int primary_material_light = 2131427375;
-
- // aapt resource value: 0x7f0b0030
- public const int primary_text_default_material_dark = 2131427376;
-
- // aapt resource value: 0x7f0b0031
- public const int primary_text_default_material_light = 2131427377;
-
- // aapt resource value: 0x7f0b0032
- public const int primary_text_disabled_material_dark = 2131427378;
-
- // aapt resource value: 0x7f0b0033
- public const int primary_text_disabled_material_light = 2131427379;
-
- // aapt resource value: 0x7f0b0034
- public const int ripple_material_dark = 2131427380;
-
- // aapt resource value: 0x7f0b0035
- public const int ripple_material_light = 2131427381;
-
- // aapt resource value: 0x7f0b0036
- public const int secondary_text_default_material_dark = 2131427382;
-
- // aapt resource value: 0x7f0b0037
- public const int secondary_text_default_material_light = 2131427383;
-
- // aapt resource value: 0x7f0b0038
- public const int secondary_text_disabled_material_dark = 2131427384;
-
- // aapt resource value: 0x7f0b0039
- public const int secondary_text_disabled_material_light = 2131427385;
-
- // aapt resource value: 0x7f0b003a
- public const int switch_thumb_disabled_material_dark = 2131427386;
-
- // aapt resource value: 0x7f0b003b
- public const int switch_thumb_disabled_material_light = 2131427387;
-
- // aapt resource value: 0x7f0b0052
- public const int switch_thumb_material_dark = 2131427410;
-
- // aapt resource value: 0x7f0b0053
- public const int switch_thumb_material_light = 2131427411;
-
- // aapt resource value: 0x7f0b003c
- public const int switch_thumb_normal_material_dark = 2131427388;
-
- // aapt resource value: 0x7f0b003d
- public const int switch_thumb_normal_material_light = 2131427389;
-
- static Color()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Color()
- {
- }
- }
-
- public partial class Dimension
- {
-
- // aapt resource value: 0x7f060019
- public const int abc_action_bar_content_inset_material = 2131099673;
-
- // aapt resource value: 0x7f06000d
- public const int abc_action_bar_default_height_material = 2131099661;
-
- // aapt resource value: 0x7f06001a
- public const int abc_action_bar_default_padding_end_material = 2131099674;
-
- // aapt resource value: 0x7f06001b
- public const int abc_action_bar_default_padding_start_material = 2131099675;
-
- // aapt resource value: 0x7f06001d
- public const int abc_action_bar_icon_vertical_padding_material = 2131099677;
-
- // aapt resource value: 0x7f06001e
- public const int abc_action_bar_overflow_padding_end_material = 2131099678;
-
- // aapt resource value: 0x7f06001f
- public const int abc_action_bar_overflow_padding_start_material = 2131099679;
-
- // aapt resource value: 0x7f06000e
- public const int abc_action_bar_progress_bar_size = 2131099662;
-
- // aapt resource value: 0x7f060020
- public const int abc_action_bar_stacked_max_height = 2131099680;
-
- // aapt resource value: 0x7f060021
- public const int abc_action_bar_stacked_tab_max_width = 2131099681;
-
- // aapt resource value: 0x7f060022
- public const int abc_action_bar_subtitle_bottom_margin_material = 2131099682;
-
- // aapt resource value: 0x7f060023
- public const int abc_action_bar_subtitle_top_margin_material = 2131099683;
-
- // aapt resource value: 0x7f060024
- public const int abc_action_button_min_height_material = 2131099684;
-
- // aapt resource value: 0x7f060025
- public const int abc_action_button_min_width_material = 2131099685;
-
- // aapt resource value: 0x7f060026
- public const int abc_action_button_min_width_overflow_material = 2131099686;
-
- // aapt resource value: 0x7f06000c
- public const int abc_alert_dialog_button_bar_height = 2131099660;
-
- // aapt resource value: 0x7f060027
- public const int abc_button_inset_horizontal_material = 2131099687;
-
- // aapt resource value: 0x7f060028
- public const int abc_button_inset_vertical_material = 2131099688;
-
- // aapt resource value: 0x7f060029
- public const int abc_button_padding_horizontal_material = 2131099689;
-
- // aapt resource value: 0x7f06002a
- public const int abc_button_padding_vertical_material = 2131099690;
-
- // aapt resource value: 0x7f060011
- public const int abc_config_prefDialogWidth = 2131099665;
-
- // aapt resource value: 0x7f06002b
- public const int abc_control_corner_material = 2131099691;
-
- // aapt resource value: 0x7f06002c
- public const int abc_control_inset_material = 2131099692;
-
- // aapt resource value: 0x7f06002d
- public const int abc_control_padding_material = 2131099693;
-
- // aapt resource value: 0x7f060012
- public const int abc_dialog_fixed_height_major = 2131099666;
-
- // aapt resource value: 0x7f060013
- public const int abc_dialog_fixed_height_minor = 2131099667;
-
- // aapt resource value: 0x7f060014
- public const int abc_dialog_fixed_width_major = 2131099668;
-
- // aapt resource value: 0x7f060015
- public const int abc_dialog_fixed_width_minor = 2131099669;
-
- // aapt resource value: 0x7f06002e
- public const int abc_dialog_list_padding_vertical_material = 2131099694;
-
- // aapt resource value: 0x7f060016
- public const int abc_dialog_min_width_major = 2131099670;
-
- // aapt resource value: 0x7f060017
- public const int abc_dialog_min_width_minor = 2131099671;
-
- // aapt resource value: 0x7f06002f
- public const int abc_dialog_padding_material = 2131099695;
-
- // aapt resource value: 0x7f060030
- public const int abc_dialog_padding_top_material = 2131099696;
-
- // aapt resource value: 0x7f060031
- public const int abc_disabled_alpha_material_dark = 2131099697;
-
- // aapt resource value: 0x7f060032
- public const int abc_disabled_alpha_material_light = 2131099698;
-
- // aapt resource value: 0x7f060033
- public const int abc_dropdownitem_icon_width = 2131099699;
-
- // aapt resource value: 0x7f060034
- public const int abc_dropdownitem_text_padding_left = 2131099700;
-
- // aapt resource value: 0x7f060035
- public const int abc_dropdownitem_text_padding_right = 2131099701;
-
- // aapt resource value: 0x7f060036
- public const int abc_edit_text_inset_bottom_material = 2131099702;
-
- // aapt resource value: 0x7f060037
- public const int abc_edit_text_inset_horizontal_material = 2131099703;
-
- // aapt resource value: 0x7f060038
- public const int abc_edit_text_inset_top_material = 2131099704;
-
- // aapt resource value: 0x7f060039
- public const int abc_floating_window_z = 2131099705;
-
- // aapt resource value: 0x7f06003a
- public const int abc_list_item_padding_horizontal_material = 2131099706;
-
- // aapt resource value: 0x7f06003b
- public const int abc_panel_menu_list_width = 2131099707;
-
- // aapt resource value: 0x7f06003c
- public const int abc_search_view_preferred_width = 2131099708;
-
- // aapt resource value: 0x7f060018
- public const int abc_search_view_text_min_width = 2131099672;
-
- // aapt resource value: 0x7f06003d
- public const int abc_seekbar_track_background_height_material = 2131099709;
-
- // aapt resource value: 0x7f06003e
- public const int abc_seekbar_track_progress_height_material = 2131099710;
-
- // aapt resource value: 0x7f06003f
- public const int abc_select_dialog_padding_start_material = 2131099711;
-
- // aapt resource value: 0x7f06001c
- public const int abc_switch_padding = 2131099676;
-
- // aapt resource value: 0x7f060040
- public const int abc_text_size_body_1_material = 2131099712;
-
- // aapt resource value: 0x7f060041
- public const int abc_text_size_body_2_material = 2131099713;
-
- // aapt resource value: 0x7f060042
- public const int abc_text_size_button_material = 2131099714;
-
- // aapt resource value: 0x7f060043
- public const int abc_text_size_caption_material = 2131099715;
-
- // aapt resource value: 0x7f060044
- public const int abc_text_size_display_1_material = 2131099716;
-
- // aapt resource value: 0x7f060045
- public const int abc_text_size_display_2_material = 2131099717;
-
- // aapt resource value: 0x7f060046
- public const int abc_text_size_display_3_material = 2131099718;
-
- // aapt resource value: 0x7f060047
- public const int abc_text_size_display_4_material = 2131099719;
-
- // aapt resource value: 0x7f060048
- public const int abc_text_size_headline_material = 2131099720;
-
- // aapt resource value: 0x7f060049
- public const int abc_text_size_large_material = 2131099721;
-
- // aapt resource value: 0x7f06004a
- public const int abc_text_size_medium_material = 2131099722;
-
- // aapt resource value: 0x7f06004b
- public const int abc_text_size_menu_material = 2131099723;
-
- // aapt resource value: 0x7f06004c
- public const int abc_text_size_small_material = 2131099724;
-
- // aapt resource value: 0x7f06004d
- public const int abc_text_size_subhead_material = 2131099725;
-
- // aapt resource value: 0x7f06000f
- public const int abc_text_size_subtitle_material_toolbar = 2131099663;
-
- // aapt resource value: 0x7f06004e
- public const int abc_text_size_title_material = 2131099726;
-
- // aapt resource value: 0x7f060010
- public const int abc_text_size_title_material_toolbar = 2131099664;
-
- // aapt resource value: 0x7f060009
- public const int cardview_compat_inset_shadow = 2131099657;
-
- // aapt resource value: 0x7f06000a
- public const int cardview_default_elevation = 2131099658;
-
- // aapt resource value: 0x7f06000b
- public const int cardview_default_radius = 2131099659;
-
- // aapt resource value: 0x7f06005f
- public const int design_appbar_elevation = 2131099743;
-
- // aapt resource value: 0x7f060060
- public const int design_bottom_sheet_modal_elevation = 2131099744;
-
- // aapt resource value: 0x7f060061
- public const int design_bottom_sheet_modal_peek_height = 2131099745;
-
- // aapt resource value: 0x7f060062
- public const int design_fab_border_width = 2131099746;
-
- // aapt resource value: 0x7f060063
- public const int design_fab_elevation = 2131099747;
-
- // aapt resource value: 0x7f060064
- public const int design_fab_image_size = 2131099748;
-
- // aapt resource value: 0x7f060065
- public const int design_fab_size_mini = 2131099749;
-
- // aapt resource value: 0x7f060066
- public const int design_fab_size_normal = 2131099750;
-
- // aapt resource value: 0x7f060067
- public const int design_fab_translation_z_pressed = 2131099751;
-
- // aapt resource value: 0x7f060068
- public const int design_navigation_elevation = 2131099752;
-
- // aapt resource value: 0x7f060069
- public const int design_navigation_icon_padding = 2131099753;
-
- // aapt resource value: 0x7f06006a
- public const int design_navigation_icon_size = 2131099754;
-
- // aapt resource value: 0x7f060057
- public const int design_navigation_max_width = 2131099735;
-
- // aapt resource value: 0x7f06006b
- public const int design_navigation_padding_bottom = 2131099755;
-
- // aapt resource value: 0x7f06006c
- public const int design_navigation_separator_vertical_padding = 2131099756;
-
- // aapt resource value: 0x7f060058
- public const int design_snackbar_action_inline_max_width = 2131099736;
-
- // aapt resource value: 0x7f060059
- public const int design_snackbar_background_corner_radius = 2131099737;
-
- // aapt resource value: 0x7f06006d
- public const int design_snackbar_elevation = 2131099757;
-
- // aapt resource value: 0x7f06005a
- public const int design_snackbar_extra_spacing_horizontal = 2131099738;
-
- // aapt resource value: 0x7f06005b
- public const int design_snackbar_max_width = 2131099739;
-
- // aapt resource value: 0x7f06005c
- public const int design_snackbar_min_width = 2131099740;
-
- // aapt resource value: 0x7f06006e
- public const int design_snackbar_padding_horizontal = 2131099758;
-
- // aapt resource value: 0x7f06006f
- public const int design_snackbar_padding_vertical = 2131099759;
-
- // aapt resource value: 0x7f06005d
- public const int design_snackbar_padding_vertical_2lines = 2131099741;
-
- // aapt resource value: 0x7f060070
- public const int design_snackbar_text_size = 2131099760;
-
- // aapt resource value: 0x7f060071
- public const int design_tab_max_width = 2131099761;
-
- // aapt resource value: 0x7f06005e
- public const int design_tab_scrollable_min_width = 2131099742;
-
- // aapt resource value: 0x7f060072
- public const int design_tab_text_size = 2131099762;
-
- // aapt resource value: 0x7f060073
- public const int design_tab_text_size_2line = 2131099763;
-
- // aapt resource value: 0x7f06004f
- public const int disabled_alpha_material_dark = 2131099727;
-
- // aapt resource value: 0x7f060050
- public const int disabled_alpha_material_light = 2131099728;
-
- // aapt resource value: 0x7f060051
- public const int highlight_alpha_material_colored = 2131099729;
-
- // aapt resource value: 0x7f060052
- public const int highlight_alpha_material_dark = 2131099730;
-
- // aapt resource value: 0x7f060053
- public const int highlight_alpha_material_light = 2131099731;
-
- // aapt resource value: 0x7f060000
- public const int item_touch_helper_max_drag_scroll_per_frame = 2131099648;
-
- // aapt resource value: 0x7f060001
- public const int item_touch_helper_swipe_escape_max_velocity = 2131099649;
-
- // aapt resource value: 0x7f060002
- public const int item_touch_helper_swipe_escape_velocity = 2131099650;
-
- // aapt resource value: 0x7f060003
- public const int mr_controller_volume_group_list_item_height = 2131099651;
-
- // aapt resource value: 0x7f060004
- public const int mr_controller_volume_group_list_item_icon_size = 2131099652;
-
- // aapt resource value: 0x7f060005
- public const int mr_controller_volume_group_list_max_height = 2131099653;
-
- // aapt resource value: 0x7f060008
- public const int mr_controller_volume_group_list_padding_top = 2131099656;
-
- // aapt resource value: 0x7f060006
- public const int mr_dialog_fixed_width_major = 2131099654;
-
- // aapt resource value: 0x7f060007
- public const int mr_dialog_fixed_width_minor = 2131099655;
-
- // aapt resource value: 0x7f060054
- public const int notification_large_icon_height = 2131099732;
-
- // aapt resource value: 0x7f060055
- public const int notification_large_icon_width = 2131099733;
-
- // aapt resource value: 0x7f060056
- public const int notification_subtext_size = 2131099734;
-
- static Dimension()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Dimension()
- {
- }
- }
-
- public partial class Drawable
- {
-
- // aapt resource value: 0x7f020000
- public const int abc_ab_share_pack_mtrl_alpha = 2130837504;
-
- // aapt resource value: 0x7f020001
- public const int abc_action_bar_item_background_material = 2130837505;
-
- // aapt resource value: 0x7f020002
- public const int abc_btn_borderless_material = 2130837506;
-
- // aapt resource value: 0x7f020003
- public const int abc_btn_check_material = 2130837507;
-
- // aapt resource value: 0x7f020004
- public const int abc_btn_check_to_on_mtrl_000 = 2130837508;
-
- // aapt resource value: 0x7f020005
- public const int abc_btn_check_to_on_mtrl_015 = 2130837509;
-
- // aapt resource value: 0x7f020006
- public const int abc_btn_colored_material = 2130837510;
-
- // aapt resource value: 0x7f020007
- public const int abc_btn_default_mtrl_shape = 2130837511;
-
- // aapt resource value: 0x7f020008
- public const int abc_btn_radio_material = 2130837512;
-
- // aapt resource value: 0x7f020009
- public const int abc_btn_radio_to_on_mtrl_000 = 2130837513;
-
- // aapt resource value: 0x7f02000a
- public const int abc_btn_radio_to_on_mtrl_015 = 2130837514;
-
- // aapt resource value: 0x7f02000b
- public const int abc_btn_rating_star_off_mtrl_alpha = 2130837515;
-
- // aapt resource value: 0x7f02000c
- public const int abc_btn_rating_star_on_mtrl_alpha = 2130837516;
-
- // aapt resource value: 0x7f02000d
- public const int abc_btn_switch_to_on_mtrl_00001 = 2130837517;
-
- // aapt resource value: 0x7f02000e
- public const int abc_btn_switch_to_on_mtrl_00012 = 2130837518;
-
- // aapt resource value: 0x7f02000f
- public const int abc_cab_background_internal_bg = 2130837519;
-
- // aapt resource value: 0x7f020010
- public const int abc_cab_background_top_material = 2130837520;
-
- // aapt resource value: 0x7f020011
- public const int abc_cab_background_top_mtrl_alpha = 2130837521;
-
- // aapt resource value: 0x7f020012
- public const int abc_control_background_material = 2130837522;
-
- // aapt resource value: 0x7f020013
- public const int abc_dialog_material_background_dark = 2130837523;
-
- // aapt resource value: 0x7f020014
- public const int abc_dialog_material_background_light = 2130837524;
-
- // aapt resource value: 0x7f020015
- public const int abc_edit_text_material = 2130837525;
-
- // aapt resource value: 0x7f020016
- public const int abc_ic_ab_back_mtrl_am_alpha = 2130837526;
-
- // aapt resource value: 0x7f020017
- public const int abc_ic_clear_mtrl_alpha = 2130837527;
-
- // aapt resource value: 0x7f020018
- public const int abc_ic_commit_search_api_mtrl_alpha = 2130837528;
-
- // aapt resource value: 0x7f020019
- public const int abc_ic_go_search_api_mtrl_alpha = 2130837529;
-
- // aapt resource value: 0x7f02001a
- public const int abc_ic_menu_copy_mtrl_am_alpha = 2130837530;
-
- // aapt resource value: 0x7f02001b
- public const int abc_ic_menu_cut_mtrl_alpha = 2130837531;
-
- // aapt resource value: 0x7f02001c
- public const int abc_ic_menu_moreoverflow_mtrl_alpha = 2130837532;
-
- // aapt resource value: 0x7f02001d
- public const int abc_ic_menu_paste_mtrl_am_alpha = 2130837533;
-
- // aapt resource value: 0x7f02001e
- public const int abc_ic_menu_selectall_mtrl_alpha = 2130837534;
-
- // aapt resource value: 0x7f02001f
- public const int abc_ic_menu_share_mtrl_alpha = 2130837535;
-
- // aapt resource value: 0x7f020020
- public const int abc_ic_search_api_mtrl_alpha = 2130837536;
-
- // aapt resource value: 0x7f020021
- public const int abc_ic_star_black_16dp = 2130837537;
-
- // aapt resource value: 0x7f020022
- public const int abc_ic_star_black_36dp = 2130837538;
-
- // aapt resource value: 0x7f020023
- public const int abc_ic_star_half_black_16dp = 2130837539;
-
- // aapt resource value: 0x7f020024
- public const int abc_ic_star_half_black_36dp = 2130837540;
-
- // aapt resource value: 0x7f020025
- public const int abc_ic_voice_search_api_mtrl_alpha = 2130837541;
-
- // aapt resource value: 0x7f020026
- public const int abc_item_background_holo_dark = 2130837542;
-
- // aapt resource value: 0x7f020027
- public const int abc_item_background_holo_light = 2130837543;
-
- // aapt resource value: 0x7f020028
- public const int abc_list_divider_mtrl_alpha = 2130837544;
-
- // aapt resource value: 0x7f020029
- public const int abc_list_focused_holo = 2130837545;
-
- // aapt resource value: 0x7f02002a
- public const int abc_list_longpressed_holo = 2130837546;
-
- // aapt resource value: 0x7f02002b
- public const int abc_list_pressed_holo_dark = 2130837547;
-
- // aapt resource value: 0x7f02002c
- public const int abc_list_pressed_holo_light = 2130837548;
-
- // aapt resource value: 0x7f02002d
- public const int abc_list_selector_background_transition_holo_dark = 2130837549;
-
- // aapt resource value: 0x7f02002e
- public const int abc_list_selector_background_transition_holo_light = 2130837550;
-
- // aapt resource value: 0x7f02002f
- public const int abc_list_selector_disabled_holo_dark = 2130837551;
-
- // aapt resource value: 0x7f020030
- public const int abc_list_selector_disabled_holo_light = 2130837552;
-
- // aapt resource value: 0x7f020031
- public const int abc_list_selector_holo_dark = 2130837553;
-
- // aapt resource value: 0x7f020032
- public const int abc_list_selector_holo_light = 2130837554;
-
- // aapt resource value: 0x7f020033
- public const int abc_menu_hardkey_panel_mtrl_mult = 2130837555;
-
- // aapt resource value: 0x7f020034
- public const int abc_popup_background_mtrl_mult = 2130837556;
-
- // aapt resource value: 0x7f020035
- public const int abc_ratingbar_full_material = 2130837557;
-
- // aapt resource value: 0x7f020036
- public const int abc_ratingbar_indicator_material = 2130837558;
-
- // aapt resource value: 0x7f020037
- public const int abc_ratingbar_small_material = 2130837559;
-
- // aapt resource value: 0x7f020038
- public const int abc_scrubber_control_off_mtrl_alpha = 2130837560;
-
- // aapt resource value: 0x7f020039
- public const int abc_scrubber_control_to_pressed_mtrl_000 = 2130837561;
-
- // aapt resource value: 0x7f02003a
- public const int abc_scrubber_control_to_pressed_mtrl_005 = 2130837562;
-
- // aapt resource value: 0x7f02003b
- public const int abc_scrubber_primary_mtrl_alpha = 2130837563;
-
- // aapt resource value: 0x7f02003c
- public const int abc_scrubber_track_mtrl_alpha = 2130837564;
-
- // aapt resource value: 0x7f02003d
- public const int abc_seekbar_thumb_material = 2130837565;
-
- // aapt resource value: 0x7f02003e
- public const int abc_seekbar_track_material = 2130837566;
-
- // aapt resource value: 0x7f02003f
- public const int abc_spinner_mtrl_am_alpha = 2130837567;
-
- // aapt resource value: 0x7f020040
- public const int abc_spinner_textfield_background_material = 2130837568;
-
- // aapt resource value: 0x7f020041
- public const int abc_switch_thumb_material = 2130837569;
-
- // aapt resource value: 0x7f020042
- public const int abc_switch_track_mtrl_alpha = 2130837570;
-
- // aapt resource value: 0x7f020043
- public const int abc_tab_indicator_material = 2130837571;
-
- // aapt resource value: 0x7f020044
- public const int abc_tab_indicator_mtrl_alpha = 2130837572;
-
- // aapt resource value: 0x7f020045
- public const int abc_text_cursor_material = 2130837573;
-
- // aapt resource value: 0x7f020046
- public const int abc_textfield_activated_mtrl_alpha = 2130837574;
-
- // aapt resource value: 0x7f020047
- public const int abc_textfield_default_mtrl_alpha = 2130837575;
-
- // aapt resource value: 0x7f020048
- public const int abc_textfield_search_activated_mtrl_alpha = 2130837576;
-
- // aapt resource value: 0x7f020049
- public const int abc_textfield_search_default_mtrl_alpha = 2130837577;
-
- // aapt resource value: 0x7f02004a
- public const int abc_textfield_search_material = 2130837578;
-
- // aapt resource value: 0x7f02004b
- public const int design_fab_background = 2130837579;
-
- // aapt resource value: 0x7f02004c
- public const int design_snackbar_background = 2130837580;
-
- // aapt resource value: 0x7f02004d
- public const int ic_audiotrack = 2130837581;
-
- // aapt resource value: 0x7f02004e
- public const int ic_audiotrack_light = 2130837582;
-
- // aapt resource value: 0x7f02004f
- public const int ic_bluetooth_grey = 2130837583;
-
- // aapt resource value: 0x7f020050
- public const int ic_bluetooth_white = 2130837584;
-
- // aapt resource value: 0x7f020051
- public const int ic_cast_dark = 2130837585;
-
- // aapt resource value: 0x7f020052
- public const int ic_cast_disabled_light = 2130837586;
-
- // aapt resource value: 0x7f020053
- public const int ic_cast_grey = 2130837587;
-
- // aapt resource value: 0x7f020054
- public const int ic_cast_light = 2130837588;
-
- // aapt resource value: 0x7f020055
- public const int ic_cast_off_light = 2130837589;
-
- // aapt resource value: 0x7f020056
- public const int ic_cast_on_0_light = 2130837590;
-
- // aapt resource value: 0x7f020057
- public const int ic_cast_on_1_light = 2130837591;
-
- // aapt resource value: 0x7f020058
- public const int ic_cast_on_2_light = 2130837592;
-
- // aapt resource value: 0x7f020059
- public const int ic_cast_on_light = 2130837593;
-
- // aapt resource value: 0x7f02005a
- public const int ic_cast_white = 2130837594;
-
- // aapt resource value: 0x7f02005b
- public const int ic_close_dark = 2130837595;
-
- // aapt resource value: 0x7f02005c
- public const int ic_close_light = 2130837596;
-
- // aapt resource value: 0x7f02005d
- public const int ic_collapse = 2130837597;
-
- // aapt resource value: 0x7f02005e
- public const int ic_collapse_00000 = 2130837598;
-
- // aapt resource value: 0x7f02005f
- public const int ic_collapse_00001 = 2130837599;
-
- // aapt resource value: 0x7f020060
- public const int ic_collapse_00002 = 2130837600;
-
- // aapt resource value: 0x7f020061
- public const int ic_collapse_00003 = 2130837601;
-
- // aapt resource value: 0x7f020062
- public const int ic_collapse_00004 = 2130837602;
-
- // aapt resource value: 0x7f020063
- public const int ic_collapse_00005 = 2130837603;
-
- // aapt resource value: 0x7f020064
- public const int ic_collapse_00006 = 2130837604;
-
- // aapt resource value: 0x7f020065
- public const int ic_collapse_00007 = 2130837605;
-
- // aapt resource value: 0x7f020066
- public const int ic_collapse_00008 = 2130837606;
-
- // aapt resource value: 0x7f020067
- public const int ic_collapse_00009 = 2130837607;
-
- // aapt resource value: 0x7f020068
- public const int ic_collapse_00010 = 2130837608;
-
- // aapt resource value: 0x7f020069
- public const int ic_collapse_00011 = 2130837609;
-
- // aapt resource value: 0x7f02006a
- public const int ic_collapse_00012 = 2130837610;
-
- // aapt resource value: 0x7f02006b
- public const int ic_collapse_00013 = 2130837611;
-
- // aapt resource value: 0x7f02006c
- public const int ic_collapse_00014 = 2130837612;
-
- // aapt resource value: 0x7f02006d
- public const int ic_collapse_00015 = 2130837613;
-
- // aapt resource value: 0x7f02006e
- public const int ic_expand = 2130837614;
-
- // aapt resource value: 0x7f02006f
- public const int ic_expand_00000 = 2130837615;
-
- // aapt resource value: 0x7f020070
- public const int ic_expand_00001 = 2130837616;
-
- // aapt resource value: 0x7f020071
- public const int ic_expand_00002 = 2130837617;
-
- // aapt resource value: 0x7f020072
- public const int ic_expand_00003 = 2130837618;
-
- // aapt resource value: 0x7f020073
- public const int ic_expand_00004 = 2130837619;
-
- // aapt resource value: 0x7f020074
- public const int ic_expand_00005 = 2130837620;
-
- // aapt resource value: 0x7f020075
- public const int ic_expand_00006 = 2130837621;
-
- // aapt resource value: 0x7f020076
- public const int ic_expand_00007 = 2130837622;
-
- // aapt resource value: 0x7f020077
- public const int ic_expand_00008 = 2130837623;
-
- // aapt resource value: 0x7f020078
- public const int ic_expand_00009 = 2130837624;
-
- // aapt resource value: 0x7f020079
- public const int ic_expand_00010 = 2130837625;
-
- // aapt resource value: 0x7f02007a
- public const int ic_expand_00011 = 2130837626;
-
- // aapt resource value: 0x7f02007b
- public const int ic_expand_00012 = 2130837627;
-
- // aapt resource value: 0x7f02007c
- public const int ic_expand_00013 = 2130837628;
-
- // aapt resource value: 0x7f02007d
- public const int ic_expand_00014 = 2130837629;
-
- // aapt resource value: 0x7f02007e
- public const int ic_expand_00015 = 2130837630;
-
- // aapt resource value: 0x7f02007f
- public const int ic_media_pause = 2130837631;
-
- // aapt resource value: 0x7f020080
- public const int ic_media_play = 2130837632;
-
- // aapt resource value: 0x7f020081
- public const int ic_media_route_disabled_mono_dark = 2130837633;
-
- // aapt resource value: 0x7f020082
- public const int ic_media_route_off_mono_dark = 2130837634;
-
- // aapt resource value: 0x7f020083
- public const int ic_media_route_on_0_mono_dark = 2130837635;
-
- // aapt resource value: 0x7f020084
- public const int ic_media_route_on_1_mono_dark = 2130837636;
-
- // aapt resource value: 0x7f020085
- public const int ic_media_route_on_2_mono_dark = 2130837637;
-
- // aapt resource value: 0x7f020086
- public const int ic_media_route_on_mono_dark = 2130837638;
-
- // aapt resource value: 0x7f020087
- public const int ic_pause_dark = 2130837639;
-
- // aapt resource value: 0x7f020088
- public const int ic_pause_light = 2130837640;
-
- // aapt resource value: 0x7f020089
- public const int ic_play_dark = 2130837641;
-
- // aapt resource value: 0x7f02008a
- public const int ic_play_light = 2130837642;
-
- // aapt resource value: 0x7f02008b
- public const int ic_speaker_dark = 2130837643;
-
- // aapt resource value: 0x7f02008c
- public const int ic_speaker_group_dark = 2130837644;
-
- // aapt resource value: 0x7f02008d
- public const int ic_speaker_group_light = 2130837645;
-
- // aapt resource value: 0x7f02008e
- public const int ic_speaker_light = 2130837646;
-
- // aapt resource value: 0x7f02008f
- public const int ic_tv_dark = 2130837647;
-
- // aapt resource value: 0x7f020090
- public const int ic_tv_light = 2130837648;
-
- // aapt resource value: 0x7f020091
- public const int icon = 2130837649;
-
- // aapt resource value: 0x7f020092
- public const int mr_dialog_material_background_dark = 2130837650;
-
- // aapt resource value: 0x7f020093
- public const int mr_dialog_material_background_light = 2130837651;
-
- // aapt resource value: 0x7f020094
- public const int mr_ic_audiotrack_light = 2130837652;
-
- // aapt resource value: 0x7f020095
- public const int mr_ic_cast_dark = 2130837653;
-
- // aapt resource value: 0x7f020096
- public const int mr_ic_cast_light = 2130837654;
-
- // aapt resource value: 0x7f020097
- public const int mr_ic_close_dark = 2130837655;
-
- // aapt resource value: 0x7f020098
- public const int mr_ic_close_light = 2130837656;
-
- // aapt resource value: 0x7f020099
- public const int mr_ic_media_route_connecting_mono_dark = 2130837657;
-
- // aapt resource value: 0x7f02009a
- public const int mr_ic_media_route_connecting_mono_light = 2130837658;
-
- // aapt resource value: 0x7f02009b
- public const int mr_ic_media_route_mono_dark = 2130837659;
-
- // aapt resource value: 0x7f02009c
- public const int mr_ic_media_route_mono_light = 2130837660;
-
- // aapt resource value: 0x7f02009d
- public const int mr_ic_pause_dark = 2130837661;
-
- // aapt resource value: 0x7f02009e
- public const int mr_ic_pause_light = 2130837662;
-
- // aapt resource value: 0x7f02009f
- public const int mr_ic_play_dark = 2130837663;
-
- // aapt resource value: 0x7f0200a0
- public const int mr_ic_play_light = 2130837664;
-
- // aapt resource value: 0x7f0200a1
- public const int notification_template_icon_bg = 2130837665;
-
- static Drawable()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Drawable()
- {
- }
- }
-
- public partial class Id
- {
-
- // aapt resource value: 0x7f07008b
- public const int action0 = 2131165323;
-
- // aapt resource value: 0x7f07005a
- public const int action_bar = 2131165274;
-
- // aapt resource value: 0x7f070001
- public const int action_bar_activity_content = 2131165185;
-
- // aapt resource value: 0x7f070059
- public const int action_bar_container = 2131165273;
-
- // aapt resource value: 0x7f070055
- public const int action_bar_root = 2131165269;
-
- // aapt resource value: 0x7f070002
- public const int action_bar_spinner = 2131165186;
-
- // aapt resource value: 0x7f07003b
- public const int action_bar_subtitle = 2131165243;
-
- // aapt resource value: 0x7f07003a
- public const int action_bar_title = 2131165242;
-
- // aapt resource value: 0x7f07005b
- public const int action_context_bar = 2131165275;
-
- // aapt resource value: 0x7f07008f
- public const int action_divider = 2131165327;
-
- // aapt resource value: 0x7f070003
- public const int action_menu_divider = 2131165187;
-
- // aapt resource value: 0x7f070004
- public const int action_menu_presenter = 2131165188;
-
- // aapt resource value: 0x7f070057
- public const int action_mode_bar = 2131165271;
-
- // aapt resource value: 0x7f070056
- public const int action_mode_bar_stub = 2131165270;
-
- // aapt resource value: 0x7f07003c
- public const int action_mode_close_button = 2131165244;
-
- // aapt resource value: 0x7f07003d
- public const int activity_chooser_view_content = 2131165245;
-
- // aapt resource value: 0x7f070049
- public const int alertTitle = 2131165257;
-
- // aapt resource value: 0x7f07001e
- public const int always = 2131165214;
-
- // aapt resource value: 0x7f07001b
- public const int beginning = 2131165211;
-
- // aapt resource value: 0x7f07002a
- public const int bottom = 2131165226;
-
- // aapt resource value: 0x7f070044
- public const int buttonPanel = 2131165252;
-
- // aapt resource value: 0x7f07008c
- public const int cancel_action = 2131165324;
-
- // aapt resource value: 0x7f07002b
- public const int center = 2131165227;
-
- // aapt resource value: 0x7f07002c
- public const int center_horizontal = 2131165228;
-
- // aapt resource value: 0x7f07002d
- public const int center_vertical = 2131165229;
-
- // aapt resource value: 0x7f070052
- public const int checkbox = 2131165266;
-
- // aapt resource value: 0x7f070092
- public const int chronometer = 2131165330;
-
- // aapt resource value: 0x7f070033
- public const int clip_horizontal = 2131165235;
-
- // aapt resource value: 0x7f070034
- public const int clip_vertical = 2131165236;
-
- // aapt resource value: 0x7f07001f
- public const int collapseActionView = 2131165215;
-
- // aapt resource value: 0x7f07004a
- public const int contentPanel = 2131165258;
-
- // aapt resource value: 0x7f070050
- public const int custom = 2131165264;
-
- // aapt resource value: 0x7f07004f
- public const int customPanel = 2131165263;
-
- // aapt resource value: 0x7f070058
- public const int decor_content_parent = 2131165272;
-
- // aapt resource value: 0x7f070040
- public const int default_activity_button = 2131165248;
-
- // aapt resource value: 0x7f07006a
- public const int design_bottom_sheet = 2131165290;
-
- // aapt resource value: 0x7f070071
- public const int design_menu_item_action_area = 2131165297;
-
- // aapt resource value: 0x7f070070
- public const int design_menu_item_action_area_stub = 2131165296;
-
- // aapt resource value: 0x7f07006f
- public const int design_menu_item_text = 2131165295;
-
- // aapt resource value: 0x7f07006e
- public const int design_navigation_view = 2131165294;
-
- // aapt resource value: 0x7f07000e
- public const int disableHome = 2131165198;
-
- // aapt resource value: 0x7f07005c
- public const int edit_query = 2131165276;
-
- // aapt resource value: 0x7f07001c
- public const int end = 2131165212;
-
- // aapt resource value: 0x7f070097
- public const int end_padder = 2131165335;
-
- // aapt resource value: 0x7f070023
- public const int enterAlways = 2131165219;
-
- // aapt resource value: 0x7f070024
- public const int enterAlwaysCollapsed = 2131165220;
-
- // aapt resource value: 0x7f070025
- public const int exitUntilCollapsed = 2131165221;
-
- // aapt resource value: 0x7f07003e
- public const int expand_activities_button = 2131165246;
-
- // aapt resource value: 0x7f070051
- public const int expanded_menu = 2131165265;
-
- // aapt resource value: 0x7f070035
- public const int fill = 2131165237;
-
- // aapt resource value: 0x7f070036
- public const int fill_horizontal = 2131165238;
-
- // aapt resource value: 0x7f07002e
- public const int fill_vertical = 2131165230;
-
- // aapt resource value: 0x7f070038
- public const int @fixed = 2131165240;
-
- // aapt resource value: 0x7f070005
- public const int home = 2131165189;
-
- // aapt resource value: 0x7f07000f
- public const int homeAsUp = 2131165199;
-
- // aapt resource value: 0x7f070042
- public const int icon = 2131165250;
-
- // aapt resource value: 0x7f070020
- public const int ifRoom = 2131165216;
-
- // aapt resource value: 0x7f07003f
- public const int image = 2131165247;
-
- // aapt resource value: 0x7f070096
- public const int info = 2131165334;
-
- // aapt resource value: 0x7f070000
- public const int item_touch_helper_previous_elevation = 2131165184;
-
- // aapt resource value: 0x7f07002f
- public const int left = 2131165231;
-
- // aapt resource value: 0x7f070090
- public const int line1 = 2131165328;
-
- // aapt resource value: 0x7f070094
- public const int line3 = 2131165332;
-
- // aapt resource value: 0x7f07000b
- public const int listMode = 2131165195;
-
- // aapt resource value: 0x7f070041
- public const int list_item = 2131165249;
-
- // aapt resource value: 0x7f07008e
- public const int media_actions = 2131165326;
-
- // aapt resource value: 0x7f07001d
- public const int middle = 2131165213;
-
- // aapt resource value: 0x7f070037
- public const int mini = 2131165239;
-
- // aapt resource value: 0x7f07007d
- public const int mr_art = 2131165309;
-
- // aapt resource value: 0x7f070072
- public const int mr_chooser_list = 2131165298;
-
- // aapt resource value: 0x7f070075
- public const int mr_chooser_route_desc = 2131165301;
-
- // aapt resource value: 0x7f070073
- public const int mr_chooser_route_icon = 2131165299;
-
- // aapt resource value: 0x7f070074
- public const int mr_chooser_route_name = 2131165300;
-
- // aapt resource value: 0x7f07007a
- public const int mr_close = 2131165306;
-
- // aapt resource value: 0x7f070080
- public const int mr_control_divider = 2131165312;
-
- // aapt resource value: 0x7f070086
- public const int mr_control_play_pause = 2131165318;
-
- // aapt resource value: 0x7f070089
- public const int mr_control_subtitle = 2131165321;
-
- // aapt resource value: 0x7f070088
- public const int mr_control_title = 2131165320;
-
- // aapt resource value: 0x7f070087
- public const int mr_control_title_container = 2131165319;
-
- // aapt resource value: 0x7f07007b
- public const int mr_custom_control = 2131165307;
-
- // aapt resource value: 0x7f07007c
- public const int mr_default_control = 2131165308;
-
- // aapt resource value: 0x7f070077
- public const int mr_dialog_area = 2131165303;
-
- // aapt resource value: 0x7f070076
- public const int mr_expandable_area = 2131165302;
-
- // aapt resource value: 0x7f07008a
- public const int mr_group_expand_collapse = 2131165322;
-
- // aapt resource value: 0x7f07007e
- public const int mr_media_main_control = 2131165310;
-
- // aapt resource value: 0x7f070079
- public const int mr_name = 2131165305;
-
- // aapt resource value: 0x7f07007f
- public const int mr_playback_control = 2131165311;
-
- // aapt resource value: 0x7f070078
- public const int mr_title_bar = 2131165304;
-
- // aapt resource value: 0x7f070081
- public const int mr_volume_control = 2131165313;
-
- // aapt resource value: 0x7f070082
- public const int mr_volume_group_list = 2131165314;
-
- // aapt resource value: 0x7f070084
- public const int mr_volume_item_icon = 2131165316;
-
- // aapt resource value: 0x7f070085
- public const int mr_volume_slider = 2131165317;
-
- // aapt resource value: 0x7f070016
- public const int multiply = 2131165206;
-
- // aapt resource value: 0x7f07006d
- public const int navigation_header_container = 2131165293;
-
- // aapt resource value: 0x7f070021
- public const int never = 2131165217;
-
- // aapt resource value: 0x7f070010
- public const int none = 2131165200;
-
- // aapt resource value: 0x7f07000c
- public const int normal = 2131165196;
-
- // aapt resource value: 0x7f070028
- public const int parallax = 2131165224;
-
- // aapt resource value: 0x7f070046
- public const int parentPanel = 2131165254;
-
- // aapt resource value: 0x7f070029
- public const int pin = 2131165225;
-
- // aapt resource value: 0x7f070006
- public const int progress_circular = 2131165190;
-
- // aapt resource value: 0x7f070007
- public const int progress_horizontal = 2131165191;
-
- // aapt resource value: 0x7f070054
- public const int radio = 2131165268;
-
- // aapt resource value: 0x7f070030
- public const int right = 2131165232;
-
- // aapt resource value: 0x7f070017
- public const int screen = 2131165207;
-
- // aapt resource value: 0x7f070026
- public const int scroll = 2131165222;
-
- // aapt resource value: 0x7f07004e
- public const int scrollIndicatorDown = 2131165262;
-
- // aapt resource value: 0x7f07004b
- public const int scrollIndicatorUp = 2131165259;
-
- // aapt resource value: 0x7f07004c
- public const int scrollView = 2131165260;
-
- // aapt resource value: 0x7f070039
- public const int scrollable = 2131165241;
-
- // aapt resource value: 0x7f07005e
- public const int search_badge = 2131165278;
-
- // aapt resource value: 0x7f07005d
- public const int search_bar = 2131165277;
-
- // aapt resource value: 0x7f07005f
- public const int search_button = 2131165279;
-
- // aapt resource value: 0x7f070064
- public const int search_close_btn = 2131165284;
-
- // aapt resource value: 0x7f070060
- public const int search_edit_frame = 2131165280;
-
- // aapt resource value: 0x7f070066
- public const int search_go_btn = 2131165286;
-
- // aapt resource value: 0x7f070061
- public const int search_mag_icon = 2131165281;
-
- // aapt resource value: 0x7f070062
- public const int search_plate = 2131165282;
-
- // aapt resource value: 0x7f070063
- public const int search_src_text = 2131165283;
-
- // aapt resource value: 0x7f070067
- public const int search_voice_btn = 2131165287;
-
- // aapt resource value: 0x7f070068
- public const int select_dialog_listview = 2131165288;
-
- // aapt resource value: 0x7f070053
- public const int shortcut = 2131165267;
-
- // aapt resource value: 0x7f070011
- public const int showCustom = 2131165201;
-
- // aapt resource value: 0x7f070012
- public const int showHome = 2131165202;
-
- // aapt resource value: 0x7f070013
- public const int showTitle = 2131165203;
-
- // aapt resource value: 0x7f070098
- public const int sliding_tabs = 2131165336;
-
- // aapt resource value: 0x7f07006c
- public const int snackbar_action = 2131165292;
-
- // aapt resource value: 0x7f07006b
- public const int snackbar_text = 2131165291;
-
- // aapt resource value: 0x7f070027
- public const int snap = 2131165223;
-
- // aapt resource value: 0x7f070045
- public const int spacer = 2131165253;
-
- // aapt resource value: 0x7f070008
- public const int split_action_bar = 2131165192;
-
- // aapt resource value: 0x7f070018
- public const int src_atop = 2131165208;
-
- // aapt resource value: 0x7f070019
- public const int src_in = 2131165209;
-
- // aapt resource value: 0x7f07001a
- public const int src_over = 2131165210;
-
- // aapt resource value: 0x7f070031
- public const int start = 2131165233;
-
- // aapt resource value: 0x7f07008d
- public const int status_bar_latest_event_content = 2131165325;
-
- // aapt resource value: 0x7f070065
- public const int submit_area = 2131165285;
-
- // aapt resource value: 0x7f07000d
- public const int tabMode = 2131165197;
-
- // aapt resource value: 0x7f070095
- public const int text = 2131165333;
-
- // aapt resource value: 0x7f070093
- public const int text2 = 2131165331;
-
- // aapt resource value: 0x7f07004d
- public const int textSpacerNoButtons = 2131165261;
-
- // aapt resource value: 0x7f070091
- public const int time = 2131165329;
-
- // aapt resource value: 0x7f070043
- public const int title = 2131165251;
-
- // aapt resource value: 0x7f070048
- public const int title_template = 2131165256;
-
- // aapt resource value: 0x7f070099
- public const int toolbar = 2131165337;
-
- // aapt resource value: 0x7f070032
- public const int top = 2131165234;
-
- // aapt resource value: 0x7f070047
- public const int topPanel = 2131165255;
-
- // aapt resource value: 0x7f070069
- public const int touch_outside = 2131165289;
-
- // aapt resource value: 0x7f070009
- public const int up = 2131165193;
-
- // aapt resource value: 0x7f070014
- public const int useLogo = 2131165204;
-
- // aapt resource value: 0x7f07000a
- public const int view_offset_helper = 2131165194;
-
- // aapt resource value: 0x7f070083
- public const int volume_item_container = 2131165315;
-
- // aapt resource value: 0x7f070022
- public const int withText = 2131165218;
-
- // aapt resource value: 0x7f070015
- public const int wrap_content = 2131165205;
-
- static Id()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Id()
- {
- }
- }
-
- public partial class Integer
- {
-
- // aapt resource value: 0x7f090004
- public const int abc_config_activityDefaultDur = 2131296260;
-
- // aapt resource value: 0x7f090005
- public const int abc_config_activityShortDur = 2131296261;
-
- // aapt resource value: 0x7f090003
- public const int abc_max_action_buttons = 2131296259;
-
- // aapt resource value: 0x7f090009
- public const int bottom_sheet_slide_duration = 2131296265;
-
- // aapt resource value: 0x7f090006
- public const int cancel_button_image_alpha = 2131296262;
-
- // aapt resource value: 0x7f090008
- public const int design_snackbar_text_max_lines = 2131296264;
-
- // aapt resource value: 0x7f090000
- public const int mr_controller_volume_group_list_animation_duration_ms = 2131296256;
-
- // aapt resource value: 0x7f090001
- public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131296257;
-
- // aapt resource value: 0x7f090002
- public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131296258;
-
- // aapt resource value: 0x7f090007
- public const int status_bar_notification_info_maxnum = 2131296263;
-
- static Integer()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Integer()
- {
- }
- }
-
- public partial class Interpolator
- {
-
- // aapt resource value: 0x7f050000
- public const int mr_fast_out_slow_in = 2131034112;
-
- // aapt resource value: 0x7f050001
- public const int mr_linear_out_slow_in = 2131034113;
-
- static Interpolator()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Interpolator()
- {
- }
- }
-
- public partial class Layout
- {
-
- // aapt resource value: 0x7f030000
- public const int abc_action_bar_title_item = 2130903040;
-
- // aapt resource value: 0x7f030001
- public const int abc_action_bar_up_container = 2130903041;
-
- // aapt resource value: 0x7f030002
- public const int abc_action_bar_view_list_nav_layout = 2130903042;
-
- // aapt resource value: 0x7f030003
- public const int abc_action_menu_item_layout = 2130903043;
-
- // aapt resource value: 0x7f030004
- public const int abc_action_menu_layout = 2130903044;
-
- // aapt resource value: 0x7f030005
- public const int abc_action_mode_bar = 2130903045;
-
- // aapt resource value: 0x7f030006
- public const int abc_action_mode_close_item_material = 2130903046;
-
- // aapt resource value: 0x7f030007
- public const int abc_activity_chooser_view = 2130903047;
-
- // aapt resource value: 0x7f030008
- public const int abc_activity_chooser_view_list_item = 2130903048;
-
- // aapt resource value: 0x7f030009
- public const int abc_alert_dialog_button_bar_material = 2130903049;
-
- // aapt resource value: 0x7f03000a
- public const int abc_alert_dialog_material = 2130903050;
-
- // aapt resource value: 0x7f03000b
- public const int abc_dialog_title_material = 2130903051;
-
- // aapt resource value: 0x7f03000c
- public const int abc_expanded_menu_layout = 2130903052;
-
- // aapt resource value: 0x7f03000d
- public const int abc_list_menu_item_checkbox = 2130903053;
-
- // aapt resource value: 0x7f03000e
- public const int abc_list_menu_item_icon = 2130903054;
-
- // aapt resource value: 0x7f03000f
- public const int abc_list_menu_item_layout = 2130903055;
-
- // aapt resource value: 0x7f030010
- public const int abc_list_menu_item_radio = 2130903056;
-
- // aapt resource value: 0x7f030011
- public const int abc_popup_menu_item_layout = 2130903057;
-
- // aapt resource value: 0x7f030012
- public const int abc_screen_content_include = 2130903058;
-
- // aapt resource value: 0x7f030013
- public const int abc_screen_simple = 2130903059;
-
- // aapt resource value: 0x7f030014
- public const int abc_screen_simple_overlay_action_mode = 2130903060;
-
- // aapt resource value: 0x7f030015
- public const int abc_screen_toolbar = 2130903061;
-
- // aapt resource value: 0x7f030016
- public const int abc_search_dropdown_item_icons_2line = 2130903062;
-
- // aapt resource value: 0x7f030017
- public const int abc_search_view = 2130903063;
-
- // aapt resource value: 0x7f030018
- public const int abc_select_dialog_material = 2130903064;
-
- // aapt resource value: 0x7f030019
- public const int design_bottom_sheet_dialog = 2130903065;
-
- // aapt resource value: 0x7f03001a
- public const int design_layout_snackbar = 2130903066;
-
- // aapt resource value: 0x7f03001b
- public const int design_layout_snackbar_include = 2130903067;
-
- // aapt resource value: 0x7f03001c
- public const int design_layout_tab_icon = 2130903068;
-
- // aapt resource value: 0x7f03001d
- public const int design_layout_tab_text = 2130903069;
-
- // aapt resource value: 0x7f03001e
- public const int design_menu_item_action_area = 2130903070;
-
- // aapt resource value: 0x7f03001f
- public const int design_navigation_item = 2130903071;
-
- // aapt resource value: 0x7f030020
- public const int design_navigation_item_header = 2130903072;
-
- // aapt resource value: 0x7f030021
- public const int design_navigation_item_separator = 2130903073;
-
- // aapt resource value: 0x7f030022
- public const int design_navigation_item_subheader = 2130903074;
-
- // aapt resource value: 0x7f030023
- public const int design_navigation_menu = 2130903075;
-
- // aapt resource value: 0x7f030024
- public const int design_navigation_menu_item = 2130903076;
-
- // aapt resource value: 0x7f030025
- public const int mr_chooser_dialog = 2130903077;
-
- // aapt resource value: 0x7f030026
- public const int mr_chooser_list_item = 2130903078;
-
- // aapt resource value: 0x7f030027
- public const int mr_controller_material_dialog_b = 2130903079;
-
- // aapt resource value: 0x7f030028
- public const int mr_controller_volume_item = 2130903080;
-
- // aapt resource value: 0x7f030029
- public const int mr_playback_control = 2130903081;
-
- // aapt resource value: 0x7f03002a
- public const int mr_volume_control = 2130903082;
-
- // aapt resource value: 0x7f03002b
- public const int notification_media_action = 2130903083;
-
- // aapt resource value: 0x7f03002c
- public const int notification_media_cancel_action = 2130903084;
-
- // aapt resource value: 0x7f03002d
- public const int notification_template_big_media = 2130903085;
-
- // aapt resource value: 0x7f03002e
- public const int notification_template_big_media_narrow = 2130903086;
-
- // aapt resource value: 0x7f03002f
- public const int notification_template_lines = 2130903087;
-
- // aapt resource value: 0x7f030030
- public const int notification_template_media = 2130903088;
-
- // aapt resource value: 0x7f030031
- public const int notification_template_part_chronometer = 2130903089;
-
- // aapt resource value: 0x7f030032
- public const int notification_template_part_time = 2130903090;
-
- // aapt resource value: 0x7f030033
- public const int select_dialog_item_material = 2130903091;
-
- // aapt resource value: 0x7f030034
- public const int select_dialog_multichoice_material = 2130903092;
-
- // aapt resource value: 0x7f030035
- public const int select_dialog_singlechoice_material = 2130903093;
-
- // aapt resource value: 0x7f030036
- public const int support_simple_spinner_dropdown_item = 2130903094;
-
- // aapt resource value: 0x7f030037
- public const int Tabbar = 2130903095;
-
- // aapt resource value: 0x7f030038
- public const int Toolbar = 2130903096;
-
- static Layout()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Layout()
- {
- }
- }
-
- public partial class String
- {
-
- // aapt resource value: 0x7f08000f
- public const int abc_action_bar_home_description = 2131230735;
-
- // aapt resource value: 0x7f080010
- public const int abc_action_bar_home_description_format = 2131230736;
-
- // aapt resource value: 0x7f080011
- public const int abc_action_bar_home_subtitle_description_format = 2131230737;
-
- // aapt resource value: 0x7f080012
- public const int abc_action_bar_up_description = 2131230738;
-
- // aapt resource value: 0x7f080013
- public const int abc_action_menu_overflow_description = 2131230739;
-
- // aapt resource value: 0x7f080014
- public const int abc_action_mode_done = 2131230740;
-
- // aapt resource value: 0x7f080015
- public const int abc_activity_chooser_view_see_all = 2131230741;
-
- // aapt resource value: 0x7f080016
- public const int abc_activitychooserview_choose_application = 2131230742;
-
- // aapt resource value: 0x7f080017
- public const int abc_capital_off = 2131230743;
-
- // aapt resource value: 0x7f080018
- public const int abc_capital_on = 2131230744;
-
- // aapt resource value: 0x7f080019
- public const int abc_search_hint = 2131230745;
-
- // aapt resource value: 0x7f08001a
- public const int abc_searchview_description_clear = 2131230746;
-
- // aapt resource value: 0x7f08001b
- public const int abc_searchview_description_query = 2131230747;
-
- // aapt resource value: 0x7f08001c
- public const int abc_searchview_description_search = 2131230748;
-
- // aapt resource value: 0x7f08001d
- public const int abc_searchview_description_submit = 2131230749;
-
- // aapt resource value: 0x7f08001e
- public const int abc_searchview_description_voice = 2131230750;
-
- // aapt resource value: 0x7f08001f
- public const int abc_shareactionprovider_share_with = 2131230751;
-
- // aapt resource value: 0x7f080020
- public const int abc_shareactionprovider_share_with_application = 2131230752;
-
- // aapt resource value: 0x7f080021
- public const int abc_toolbar_collapse_description = 2131230753;
-
- // aapt resource value: 0x7f080023
- public const int appbar_scrolling_view_behavior = 2131230755;
-
- // aapt resource value: 0x7f080024
- public const int bottom_sheet_behavior = 2131230756;
-
- // aapt resource value: 0x7f080025
- public const int character_counter_pattern = 2131230757;
-
- // aapt resource value: 0x7f080000
- public const int mr_button_content_description = 2131230720;
-
- // aapt resource value: 0x7f080001
- public const int mr_chooser_searching = 2131230721;
-
- // aapt resource value: 0x7f080002
- public const int mr_chooser_title = 2131230722;
-
- // aapt resource value: 0x7f080003
- public const int mr_controller_casting_screen = 2131230723;
-
- // aapt resource value: 0x7f080004
- public const int mr_controller_close_description = 2131230724;
-
- // aapt resource value: 0x7f080005
- public const int mr_controller_collapse_group = 2131230725;
-
- // aapt resource value: 0x7f080006
- public const int mr_controller_disconnect = 2131230726;
-
- // aapt resource value: 0x7f080007
- public const int mr_controller_expand_group = 2131230727;
-
- // aapt resource value: 0x7f080008
- public const int mr_controller_no_info_available = 2131230728;
-
- // aapt resource value: 0x7f080009
- public const int mr_controller_no_media_selected = 2131230729;
-
- // aapt resource value: 0x7f08000a
- public const int mr_controller_pause = 2131230730;
-
- // aapt resource value: 0x7f08000b
- public const int mr_controller_play = 2131230731;
-
- // aapt resource value: 0x7f08000c
- public const int mr_controller_stop = 2131230732;
-
- // aapt resource value: 0x7f08000d
- public const int mr_system_route_name = 2131230733;
-
- // aapt resource value: 0x7f08000e
- public const int mr_user_route_category_name = 2131230734;
-
- // aapt resource value: 0x7f080022
- public const int status_bar_notification_info_overflow = 2131230754;
-
- static String()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private String()
- {
- }
- }
-
- public partial class Style
- {
-
- // aapt resource value: 0x7f0a00a1
- public const int AlertDialog_AppCompat = 2131361953;
-
- // aapt resource value: 0x7f0a00a2
- public const int AlertDialog_AppCompat_Light = 2131361954;
-
- // aapt resource value: 0x7f0a00a3
- public const int Animation_AppCompat_Dialog = 2131361955;
-
- // aapt resource value: 0x7f0a00a4
- public const int Animation_AppCompat_DropDownUp = 2131361956;
-
- // aapt resource value: 0x7f0a015a
- public const int Animation_Design_BottomSheetDialog = 2131362138;
-
- // aapt resource value: 0x7f0a0174
- public const int AppCompatDialogStyle = 2131362164;
-
- // aapt resource value: 0x7f0a00a5
- public const int Base_AlertDialog_AppCompat = 2131361957;
-
- // aapt resource value: 0x7f0a00a6
- public const int Base_AlertDialog_AppCompat_Light = 2131361958;
-
- // aapt resource value: 0x7f0a00a7
- public const int Base_Animation_AppCompat_Dialog = 2131361959;
-
- // aapt resource value: 0x7f0a00a8
- public const int Base_Animation_AppCompat_DropDownUp = 2131361960;
-
- // aapt resource value: 0x7f0a0018
- public const int Base_CardView = 2131361816;
-
- // aapt resource value: 0x7f0a00a9
- public const int Base_DialogWindowTitle_AppCompat = 2131361961;
-
- // aapt resource value: 0x7f0a00aa
- public const int Base_DialogWindowTitleBackground_AppCompat = 2131361962;
-
- // aapt resource value: 0x7f0a0051
- public const int Base_TextAppearance_AppCompat = 2131361873;
-
- // aapt resource value: 0x7f0a0052
- public const int Base_TextAppearance_AppCompat_Body1 = 2131361874;
-
- // aapt resource value: 0x7f0a0053
- public const int Base_TextAppearance_AppCompat_Body2 = 2131361875;
-
- // aapt resource value: 0x7f0a003b
- public const int Base_TextAppearance_AppCompat_Button = 2131361851;
-
- // aapt resource value: 0x7f0a0054
- public const int Base_TextAppearance_AppCompat_Caption = 2131361876;
-
- // aapt resource value: 0x7f0a0055
- public const int Base_TextAppearance_AppCompat_Display1 = 2131361877;
-
- // aapt resource value: 0x7f0a0056
- public const int Base_TextAppearance_AppCompat_Display2 = 2131361878;
-
- // aapt resource value: 0x7f0a0057
- public const int Base_TextAppearance_AppCompat_Display3 = 2131361879;
-
- // aapt resource value: 0x7f0a0058
- public const int Base_TextAppearance_AppCompat_Display4 = 2131361880;
-
- // aapt resource value: 0x7f0a0059
- public const int Base_TextAppearance_AppCompat_Headline = 2131361881;
-
- // aapt resource value: 0x7f0a0026
- public const int Base_TextAppearance_AppCompat_Inverse = 2131361830;
-
- // aapt resource value: 0x7f0a005a
- public const int Base_TextAppearance_AppCompat_Large = 2131361882;
-
- // aapt resource value: 0x7f0a0027
- public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131361831;
-
- // aapt resource value: 0x7f0a005b
- public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131361883;
-
- // aapt resource value: 0x7f0a005c
- public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131361884;
-
- // aapt resource value: 0x7f0a005d
- public const int Base_TextAppearance_AppCompat_Medium = 2131361885;
-
- // aapt resource value: 0x7f0a0028
- public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131361832;
-
- // aapt resource value: 0x7f0a005e
- public const int Base_TextAppearance_AppCompat_Menu = 2131361886;
-
- // aapt resource value: 0x7f0a00ab
- public const int Base_TextAppearance_AppCompat_SearchResult = 2131361963;
-
- // aapt resource value: 0x7f0a005f
- public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131361887;
-
- // aapt resource value: 0x7f0a0060
- public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131361888;
-
- // aapt resource value: 0x7f0a0061
- public const int Base_TextAppearance_AppCompat_Small = 2131361889;
-
- // aapt resource value: 0x7f0a0029
- public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131361833;
-
- // aapt resource value: 0x7f0a0062
- public const int Base_TextAppearance_AppCompat_Subhead = 2131361890;
-
- // aapt resource value: 0x7f0a002a
- public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131361834;
-
- // aapt resource value: 0x7f0a0063
- public const int Base_TextAppearance_AppCompat_Title = 2131361891;
-
- // aapt resource value: 0x7f0a002b
- public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131361835;
-
- // aapt resource value: 0x7f0a009a
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131361946;
-
- // aapt resource value: 0x7f0a0064
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131361892;
-
- // aapt resource value: 0x7f0a0065
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131361893;
-
- // aapt resource value: 0x7f0a0066
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131361894;
-
- // aapt resource value: 0x7f0a0067
- public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131361895;
-
- // aapt resource value: 0x7f0a0068
- public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131361896;
-
- // aapt resource value: 0x7f0a0069
- public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131361897;
-
- // aapt resource value: 0x7f0a006a
- public const int Base_TextAppearance_AppCompat_Widget_Button = 2131361898;
-
- // aapt resource value: 0x7f0a009b
- public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131361947;
-
- // aapt resource value: 0x7f0a00ac
- public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131361964;
-
- // aapt resource value: 0x7f0a006b
- public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131361899;
-
- // aapt resource value: 0x7f0a006c
- public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131361900;
-
- // aapt resource value: 0x7f0a006d
- public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131361901;
-
- // aapt resource value: 0x7f0a006e
- public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131361902;
-
- // aapt resource value: 0x7f0a00ad
- public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131361965;
-
- // aapt resource value: 0x7f0a006f
- public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131361903;
-
- // aapt resource value: 0x7f0a0070
- public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131361904;
-
- // aapt resource value: 0x7f0a0071
- public const int Base_Theme_AppCompat = 2131361905;
-
- // aapt resource value: 0x7f0a00ae
- public const int Base_Theme_AppCompat_CompactMenu = 2131361966;
-
- // aapt resource value: 0x7f0a002c
- public const int Base_Theme_AppCompat_Dialog = 2131361836;
-
- // aapt resource value: 0x7f0a00af
- public const int Base_Theme_AppCompat_Dialog_Alert = 2131361967;
-
- // aapt resource value: 0x7f0a00b0
- public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131361968;
-
- // aapt resource value: 0x7f0a00b1
- public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131361969;
-
- // aapt resource value: 0x7f0a001c
- public const int Base_Theme_AppCompat_DialogWhenLarge = 2131361820;
-
- // aapt resource value: 0x7f0a0072
- public const int Base_Theme_AppCompat_Light = 2131361906;
-
- // aapt resource value: 0x7f0a00b2
- public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131361970;
-
- // aapt resource value: 0x7f0a002d
- public const int Base_Theme_AppCompat_Light_Dialog = 2131361837;
-
- // aapt resource value: 0x7f0a00b3
- public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131361971;
-
- // aapt resource value: 0x7f0a00b4
- public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131361972;
-
- // aapt resource value: 0x7f0a00b5
- public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131361973;
-
- // aapt resource value: 0x7f0a001d
- public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131361821;
-
- // aapt resource value: 0x7f0a00b6
- public const int Base_ThemeOverlay_AppCompat = 2131361974;
-
- // aapt resource value: 0x7f0a00b7
- public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131361975;
-
- // aapt resource value: 0x7f0a00b8
- public const int Base_ThemeOverlay_AppCompat_Dark = 2131361976;
-
- // aapt resource value: 0x7f0a00b9
- public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131361977;
-
- // aapt resource value: 0x7f0a00ba
- public const int Base_ThemeOverlay_AppCompat_Light = 2131361978;
-
- // aapt resource value: 0x7f0a002e
- public const int Base_V11_Theme_AppCompat_Dialog = 2131361838;
-
- // aapt resource value: 0x7f0a002f
- public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131361839;
-
- // aapt resource value: 0x7f0a0037
- public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131361847;
-
- // aapt resource value: 0x7f0a0038
- public const int Base_V12_Widget_AppCompat_EditText = 2131361848;
-
- // aapt resource value: 0x7f0a0073
- public const int Base_V21_Theme_AppCompat = 2131361907;
-
- // aapt resource value: 0x7f0a0074
- public const int Base_V21_Theme_AppCompat_Dialog = 2131361908;
-
- // aapt resource value: 0x7f0a0075
- public const int Base_V21_Theme_AppCompat_Light = 2131361909;
-
- // aapt resource value: 0x7f0a0076
- public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131361910;
-
- // aapt resource value: 0x7f0a0098
- public const int Base_V22_Theme_AppCompat = 2131361944;
-
- // aapt resource value: 0x7f0a0099
- public const int Base_V22_Theme_AppCompat_Light = 2131361945;
-
- // aapt resource value: 0x7f0a009c
- public const int Base_V23_Theme_AppCompat = 2131361948;
-
- // aapt resource value: 0x7f0a009d
- public const int Base_V23_Theme_AppCompat_Light = 2131361949;
-
- // aapt resource value: 0x7f0a00bb
- public const int Base_V7_Theme_AppCompat = 2131361979;
-
- // aapt resource value: 0x7f0a00bc
- public const int Base_V7_Theme_AppCompat_Dialog = 2131361980;
-
- // aapt resource value: 0x7f0a00bd
- public const int Base_V7_Theme_AppCompat_Light = 2131361981;
-
- // aapt resource value: 0x7f0a00be
- public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131361982;
-
- // aapt resource value: 0x7f0a00bf
- public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131361983;
-
- // aapt resource value: 0x7f0a00c0
- public const int Base_V7_Widget_AppCompat_EditText = 2131361984;
-
- // aapt resource value: 0x7f0a00c1
- public const int Base_Widget_AppCompat_ActionBar = 2131361985;
-
- // aapt resource value: 0x7f0a00c2
- public const int Base_Widget_AppCompat_ActionBar_Solid = 2131361986;
-
- // aapt resource value: 0x7f0a00c3
- public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131361987;
-
- // aapt resource value: 0x7f0a0077
- public const int Base_Widget_AppCompat_ActionBar_TabText = 2131361911;
-
- // aapt resource value: 0x7f0a0078
- public const int Base_Widget_AppCompat_ActionBar_TabView = 2131361912;
-
- // aapt resource value: 0x7f0a0079
- public const int Base_Widget_AppCompat_ActionButton = 2131361913;
-
- // aapt resource value: 0x7f0a007a
- public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131361914;
-
- // aapt resource value: 0x7f0a007b
- public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131361915;
-
- // aapt resource value: 0x7f0a00c4
- public const int Base_Widget_AppCompat_ActionMode = 2131361988;
-
- // aapt resource value: 0x7f0a00c5
- public const int Base_Widget_AppCompat_ActivityChooserView = 2131361989;
-
- // aapt resource value: 0x7f0a0039
- public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131361849;
-
- // aapt resource value: 0x7f0a007c
- public const int Base_Widget_AppCompat_Button = 2131361916;
-
- // aapt resource value: 0x7f0a007d
- public const int Base_Widget_AppCompat_Button_Borderless = 2131361917;
-
- // aapt resource value: 0x7f0a007e
- public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131361918;
-
- // aapt resource value: 0x7f0a00c6
- public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131361990;
-
- // aapt resource value: 0x7f0a009e
- public const int Base_Widget_AppCompat_Button_Colored = 2131361950;
-
- // aapt resource value: 0x7f0a007f
- public const int Base_Widget_AppCompat_Button_Small = 2131361919;
-
- // aapt resource value: 0x7f0a0080
- public const int Base_Widget_AppCompat_ButtonBar = 2131361920;
-
- // aapt resource value: 0x7f0a00c7
- public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131361991;
-
- // aapt resource value: 0x7f0a0081
- public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131361921;
-
- // aapt resource value: 0x7f0a0082
- public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131361922;
-
- // aapt resource value: 0x7f0a00c8
- public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131361992;
-
- // aapt resource value: 0x7f0a001b
- public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131361819;
-
- // aapt resource value: 0x7f0a00c9
- public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131361993;
-
- // aapt resource value: 0x7f0a0083
- public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131361923;
-
- // aapt resource value: 0x7f0a003a
- public const int Base_Widget_AppCompat_EditText = 2131361850;
-
- // aapt resource value: 0x7f0a0084
- public const int Base_Widget_AppCompat_ImageButton = 2131361924;
-
- // aapt resource value: 0x7f0a00ca
- public const int Base_Widget_AppCompat_Light_ActionBar = 2131361994;
-
- // aapt resource value: 0x7f0a00cb
- public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131361995;
-
- // aapt resource value: 0x7f0a00cc
- public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131361996;
-
- // aapt resource value: 0x7f0a0085
- public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131361925;
-
- // aapt resource value: 0x7f0a0086
- public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131361926;
-
- // aapt resource value: 0x7f0a0087
- public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131361927;
-
- // aapt resource value: 0x7f0a0088
- public const int Base_Widget_AppCompat_Light_PopupMenu = 2131361928;
-
- // aapt resource value: 0x7f0a0089
- public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131361929;
-
- // aapt resource value: 0x7f0a008a
- public const int Base_Widget_AppCompat_ListPopupWindow = 2131361930;
-
- // aapt resource value: 0x7f0a008b
- public const int Base_Widget_AppCompat_ListView = 2131361931;
-
- // aapt resource value: 0x7f0a008c
- public const int Base_Widget_AppCompat_ListView_DropDown = 2131361932;
-
- // aapt resource value: 0x7f0a008d
- public const int Base_Widget_AppCompat_ListView_Menu = 2131361933;
-
- // aapt resource value: 0x7f0a008e
- public const int Base_Widget_AppCompat_PopupMenu = 2131361934;
-
- // aapt resource value: 0x7f0a008f
- public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131361935;
-
- // aapt resource value: 0x7f0a00cd
- public const int Base_Widget_AppCompat_PopupWindow = 2131361997;
-
- // aapt resource value: 0x7f0a0030
- public const int Base_Widget_AppCompat_ProgressBar = 2131361840;
-
- // aapt resource value: 0x7f0a0031
- public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131361841;
-
- // aapt resource value: 0x7f0a0090
- public const int Base_Widget_AppCompat_RatingBar = 2131361936;
-
- // aapt resource value: 0x7f0a009f
- public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131361951;
-
- // aapt resource value: 0x7f0a00a0
- public const int Base_Widget_AppCompat_RatingBar_Small = 2131361952;
-
- // aapt resource value: 0x7f0a00ce
- public const int Base_Widget_AppCompat_SearchView = 2131361998;
-
- // aapt resource value: 0x7f0a00cf
- public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131361999;
-
- // aapt resource value: 0x7f0a0091
- public const int Base_Widget_AppCompat_SeekBar = 2131361937;
-
- // aapt resource value: 0x7f0a0092
- public const int Base_Widget_AppCompat_Spinner = 2131361938;
-
- // aapt resource value: 0x7f0a001e
- public const int Base_Widget_AppCompat_Spinner_Underlined = 2131361822;
-
- // aapt resource value: 0x7f0a0093
- public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131361939;
-
- // aapt resource value: 0x7f0a00d0
- public const int Base_Widget_AppCompat_Toolbar = 2131362000;
-
- // aapt resource value: 0x7f0a0094
- public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131361940;
-
- // aapt resource value: 0x7f0a015b
- public const int Base_Widget_Design_TabLayout = 2131362139;
-
- // aapt resource value: 0x7f0a0017
- public const int CardView = 2131361815;
-
- // aapt resource value: 0x7f0a0019
- public const int CardView_Dark = 2131361817;
-
- // aapt resource value: 0x7f0a001a
- public const int CardView_Light = 2131361818;
-
- // aapt resource value: 0x7f0a0172
- public const int MainTheme = 2131362162;
-
- // aapt resource value: 0x7f0a0173
- public const int MainTheme_Base = 2131362163;
-
- // aapt resource value: 0x7f0a0032
- public const int Platform_AppCompat = 2131361842;
-
- // aapt resource value: 0x7f0a0033
- public const int Platform_AppCompat_Light = 2131361843;
-
- // aapt resource value: 0x7f0a0095
- public const int Platform_ThemeOverlay_AppCompat = 2131361941;
-
- // aapt resource value: 0x7f0a0096
- public const int Platform_ThemeOverlay_AppCompat_Dark = 2131361942;
-
- // aapt resource value: 0x7f0a0097
- public const int Platform_ThemeOverlay_AppCompat_Light = 2131361943;
-
- // aapt resource value: 0x7f0a0034
- public const int Platform_V11_AppCompat = 2131361844;
-
- // aapt resource value: 0x7f0a0035
- public const int Platform_V11_AppCompat_Light = 2131361845;
-
- // aapt resource value: 0x7f0a003c
- public const int Platform_V14_AppCompat = 2131361852;
-
- // aapt resource value: 0x7f0a003d
- public const int Platform_V14_AppCompat_Light = 2131361853;
-
- // aapt resource value: 0x7f0a0036
- public const int Platform_Widget_AppCompat_Spinner = 2131361846;
-
- // aapt resource value: 0x7f0a0043
- public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131361859;
-
- // aapt resource value: 0x7f0a0044
- public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131361860;
-
- // aapt resource value: 0x7f0a0045
- public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131361861;
-
- // aapt resource value: 0x7f0a0046
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131361862;
-
- // aapt resource value: 0x7f0a0047
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131361863;
-
- // aapt resource value: 0x7f0a0048
- public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131361864;
-
- // aapt resource value: 0x7f0a0049
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131361865;
-
- // aapt resource value: 0x7f0a004a
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131361866;
-
- // aapt resource value: 0x7f0a004b
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131361867;
-
- // aapt resource value: 0x7f0a004c
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131361868;
-
- // aapt resource value: 0x7f0a004d
- public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131361869;
-
- // aapt resource value: 0x7f0a004e
- public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131361870;
-
- // aapt resource value: 0x7f0a004f
- public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131361871;
-
- // aapt resource value: 0x7f0a0050
- public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131361872;
-
- // aapt resource value: 0x7f0a00d1
- public const int TextAppearance_AppCompat = 2131362001;
-
- // aapt resource value: 0x7f0a00d2
- public const int TextAppearance_AppCompat_Body1 = 2131362002;
-
- // aapt resource value: 0x7f0a00d3
- public const int TextAppearance_AppCompat_Body2 = 2131362003;
-
- // aapt resource value: 0x7f0a00d4
- public const int TextAppearance_AppCompat_Button = 2131362004;
-
- // aapt resource value: 0x7f0a00d5
- public const int TextAppearance_AppCompat_Caption = 2131362005;
-
- // aapt resource value: 0x7f0a00d6
- public const int TextAppearance_AppCompat_Display1 = 2131362006;
-
- // aapt resource value: 0x7f0a00d7
- public const int TextAppearance_AppCompat_Display2 = 2131362007;
-
- // aapt resource value: 0x7f0a00d8
- public const int TextAppearance_AppCompat_Display3 = 2131362008;
-
- // aapt resource value: 0x7f0a00d9
- public const int TextAppearance_AppCompat_Display4 = 2131362009;
-
- // aapt resource value: 0x7f0a00da
- public const int TextAppearance_AppCompat_Headline = 2131362010;
-
- // aapt resource value: 0x7f0a00db
- public const int TextAppearance_AppCompat_Inverse = 2131362011;
-
- // aapt resource value: 0x7f0a00dc
- public const int TextAppearance_AppCompat_Large = 2131362012;
-
- // aapt resource value: 0x7f0a00dd
- public const int TextAppearance_AppCompat_Large_Inverse = 2131362013;
-
- // aapt resource value: 0x7f0a00de
- public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131362014;
-
- // aapt resource value: 0x7f0a00df
- public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131362015;
-
- // aapt resource value: 0x7f0a00e0
- public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131362016;
-
- // aapt resource value: 0x7f0a00e1
- public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131362017;
-
- // aapt resource value: 0x7f0a00e2
- public const int TextAppearance_AppCompat_Medium = 2131362018;
-
- // aapt resource value: 0x7f0a00e3
- public const int TextAppearance_AppCompat_Medium_Inverse = 2131362019;
-
- // aapt resource value: 0x7f0a00e4
- public const int TextAppearance_AppCompat_Menu = 2131362020;
-
- // aapt resource value: 0x7f0a00e5
- public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131362021;
-
- // aapt resource value: 0x7f0a00e6
- public const int TextAppearance_AppCompat_SearchResult_Title = 2131362022;
-
- // aapt resource value: 0x7f0a00e7
- public const int TextAppearance_AppCompat_Small = 2131362023;
-
- // aapt resource value: 0x7f0a00e8
- public const int TextAppearance_AppCompat_Small_Inverse = 2131362024;
-
- // aapt resource value: 0x7f0a00e9
- public const int TextAppearance_AppCompat_Subhead = 2131362025;
-
- // aapt resource value: 0x7f0a00ea
- public const int TextAppearance_AppCompat_Subhead_Inverse = 2131362026;
-
- // aapt resource value: 0x7f0a00eb
- public const int TextAppearance_AppCompat_Title = 2131362027;
-
- // aapt resource value: 0x7f0a00ec
- public const int TextAppearance_AppCompat_Title_Inverse = 2131362028;
-
- // aapt resource value: 0x7f0a00ed
- public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131362029;
-
- // aapt resource value: 0x7f0a00ee
- public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131362030;
-
- // aapt resource value: 0x7f0a00ef
- public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131362031;
-
- // aapt resource value: 0x7f0a00f0
- public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131362032;
-
- // aapt resource value: 0x7f0a00f1
- public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131362033;
-
- // aapt resource value: 0x7f0a00f2
- public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131362034;
-
- // aapt resource value: 0x7f0a00f3
- public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131362035;
-
- // aapt resource value: 0x7f0a00f4
- public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131362036;
-
- // aapt resource value: 0x7f0a00f5
- public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131362037;
-
- // aapt resource value: 0x7f0a00f6
- public const int TextAppearance_AppCompat_Widget_Button = 2131362038;
-
- // aapt resource value: 0x7f0a00f7
- public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131362039;
-
- // aapt resource value: 0x7f0a00f8
- public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131362040;
-
- // aapt resource value: 0x7f0a00f9
- public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131362041;
-
- // aapt resource value: 0x7f0a00fa
- public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131362042;
-
- // aapt resource value: 0x7f0a00fb
- public const int TextAppearance_AppCompat_Widget_Switch = 2131362043;
-
- // aapt resource value: 0x7f0a00fc
- public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131362044;
-
- // aapt resource value: 0x7f0a015c
- public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131362140;
-
- // aapt resource value: 0x7f0a015d
- public const int TextAppearance_Design_Counter = 2131362141;
-
- // aapt resource value: 0x7f0a015e
- public const int TextAppearance_Design_Counter_Overflow = 2131362142;
-
- // aapt resource value: 0x7f0a015f
- public const int TextAppearance_Design_Error = 2131362143;
-
- // aapt resource value: 0x7f0a0160
- public const int TextAppearance_Design_Hint = 2131362144;
-
- // aapt resource value: 0x7f0a0161
- public const int TextAppearance_Design_Snackbar_Message = 2131362145;
-
- // aapt resource value: 0x7f0a0162
- public const int TextAppearance_Design_Tab = 2131362146;
-
- // aapt resource value: 0x7f0a003e
- public const int TextAppearance_StatusBar_EventContent = 2131361854;
-
- // aapt resource value: 0x7f0a003f
- public const int TextAppearance_StatusBar_EventContent_Info = 2131361855;
-
- // aapt resource value: 0x7f0a0040
- public const int TextAppearance_StatusBar_EventContent_Line2 = 2131361856;
-
- // aapt resource value: 0x7f0a0041
- public const int TextAppearance_StatusBar_EventContent_Time = 2131361857;
-
- // aapt resource value: 0x7f0a0042
- public const int TextAppearance_StatusBar_EventContent_Title = 2131361858;
-
- // aapt resource value: 0x7f0a00fd
- public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131362045;
-
- // aapt resource value: 0x7f0a00fe
- public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131362046;
-
- // aapt resource value: 0x7f0a00ff
- public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131362047;
-
- // aapt resource value: 0x7f0a0100
- public const int Theme_AppCompat = 2131362048;
-
- // aapt resource value: 0x7f0a0101
- public const int Theme_AppCompat_CompactMenu = 2131362049;
-
- // aapt resource value: 0x7f0a001f
- public const int Theme_AppCompat_DayNight = 2131361823;
-
- // aapt resource value: 0x7f0a0020
- public const int Theme_AppCompat_DayNight_DarkActionBar = 2131361824;
-
- // aapt resource value: 0x7f0a0021
- public const int Theme_AppCompat_DayNight_Dialog = 2131361825;
-
- // aapt resource value: 0x7f0a0022
- public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131361826;
-
- // aapt resource value: 0x7f0a0023
- public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131361827;
-
- // aapt resource value: 0x7f0a0024
- public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131361828;
-
- // aapt resource value: 0x7f0a0025
- public const int Theme_AppCompat_DayNight_NoActionBar = 2131361829;
-
- // aapt resource value: 0x7f0a0102
- public const int Theme_AppCompat_Dialog = 2131362050;
-
- // aapt resource value: 0x7f0a0103
- public const int Theme_AppCompat_Dialog_Alert = 2131362051;
-
- // aapt resource value: 0x7f0a0104
- public const int Theme_AppCompat_Dialog_MinWidth = 2131362052;
-
- // aapt resource value: 0x7f0a0105
- public const int Theme_AppCompat_DialogWhenLarge = 2131362053;
-
- // aapt resource value: 0x7f0a0106
- public const int Theme_AppCompat_Light = 2131362054;
-
- // aapt resource value: 0x7f0a0107
- public const int Theme_AppCompat_Light_DarkActionBar = 2131362055;
-
- // aapt resource value: 0x7f0a0108
- public const int Theme_AppCompat_Light_Dialog = 2131362056;
-
- // aapt resource value: 0x7f0a0109
- public const int Theme_AppCompat_Light_Dialog_Alert = 2131362057;
-
- // aapt resource value: 0x7f0a010a
- public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131362058;
-
- // aapt resource value: 0x7f0a010b
- public const int Theme_AppCompat_Light_DialogWhenLarge = 2131362059;
-
- // aapt resource value: 0x7f0a010c
- public const int Theme_AppCompat_Light_NoActionBar = 2131362060;
-
- // aapt resource value: 0x7f0a010d
- public const int Theme_AppCompat_NoActionBar = 2131362061;
-
- // aapt resource value: 0x7f0a0163
- public const int Theme_Design = 2131362147;
-
- // aapt resource value: 0x7f0a0164
- public const int Theme_Design_BottomSheetDialog = 2131362148;
-
- // aapt resource value: 0x7f0a0165
- public const int Theme_Design_Light = 2131362149;
-
- // aapt resource value: 0x7f0a0166
- public const int Theme_Design_Light_BottomSheetDialog = 2131362150;
-
- // aapt resource value: 0x7f0a0167
- public const int Theme_Design_Light_NoActionBar = 2131362151;
-
- // aapt resource value: 0x7f0a0168
- public const int Theme_Design_NoActionBar = 2131362152;
-
- // aapt resource value: 0x7f0a0000
- public const int Theme_MediaRouter = 2131361792;
-
- // aapt resource value: 0x7f0a0001
- public const int Theme_MediaRouter_Light = 2131361793;
-
- // aapt resource value: 0x7f0a0002
- public const int Theme_MediaRouter_Light_DarkControlPanel = 2131361794;
-
- // aapt resource value: 0x7f0a0003
- public const int Theme_MediaRouter_LightControlPanel = 2131361795;
-
- // aapt resource value: 0x7f0a010e
- public const int ThemeOverlay_AppCompat = 2131362062;
-
- // aapt resource value: 0x7f0a010f
- public const int ThemeOverlay_AppCompat_ActionBar = 2131362063;
-
- // aapt resource value: 0x7f0a0110
- public const int ThemeOverlay_AppCompat_Dark = 2131362064;
-
- // aapt resource value: 0x7f0a0111
- public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131362065;
-
- // aapt resource value: 0x7f0a0112
- public const int ThemeOverlay_AppCompat_Light = 2131362066;
-
- // aapt resource value: 0x7f0a0113
- public const int Widget_AppCompat_ActionBar = 2131362067;
-
- // aapt resource value: 0x7f0a0114
- public const int Widget_AppCompat_ActionBar_Solid = 2131362068;
-
- // aapt resource value: 0x7f0a0115
- public const int Widget_AppCompat_ActionBar_TabBar = 2131362069;
-
- // aapt resource value: 0x7f0a0116
- public const int Widget_AppCompat_ActionBar_TabText = 2131362070;
-
- // aapt resource value: 0x7f0a0117
- public const int Widget_AppCompat_ActionBar_TabView = 2131362071;
-
- // aapt resource value: 0x7f0a0118
- public const int Widget_AppCompat_ActionButton = 2131362072;
-
- // aapt resource value: 0x7f0a0119
- public const int Widget_AppCompat_ActionButton_CloseMode = 2131362073;
-
- // aapt resource value: 0x7f0a011a
- public const int Widget_AppCompat_ActionButton_Overflow = 2131362074;
-
- // aapt resource value: 0x7f0a011b
- public const int Widget_AppCompat_ActionMode = 2131362075;
-
- // aapt resource value: 0x7f0a011c
- public const int Widget_AppCompat_ActivityChooserView = 2131362076;
-
- // aapt resource value: 0x7f0a011d
- public const int Widget_AppCompat_AutoCompleteTextView = 2131362077;
-
- // aapt resource value: 0x7f0a011e
- public const int Widget_AppCompat_Button = 2131362078;
-
- // aapt resource value: 0x7f0a011f
- public const int Widget_AppCompat_Button_Borderless = 2131362079;
-
- // aapt resource value: 0x7f0a0120
- public const int Widget_AppCompat_Button_Borderless_Colored = 2131362080;
-
- // aapt resource value: 0x7f0a0121
- public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131362081;
-
- // aapt resource value: 0x7f0a0122
- public const int Widget_AppCompat_Button_Colored = 2131362082;
-
- // aapt resource value: 0x7f0a0123
- public const int Widget_AppCompat_Button_Small = 2131362083;
-
- // aapt resource value: 0x7f0a0124
- public const int Widget_AppCompat_ButtonBar = 2131362084;
-
- // aapt resource value: 0x7f0a0125
- public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131362085;
-
- // aapt resource value: 0x7f0a0126
- public const int Widget_AppCompat_CompoundButton_CheckBox = 2131362086;
-
- // aapt resource value: 0x7f0a0127
- public const int Widget_AppCompat_CompoundButton_RadioButton = 2131362087;
-
- // aapt resource value: 0x7f0a0128
- public const int Widget_AppCompat_CompoundButton_Switch = 2131362088;
-
- // aapt resource value: 0x7f0a0129
- public const int Widget_AppCompat_DrawerArrowToggle = 2131362089;
-
- // aapt resource value: 0x7f0a012a
- public const int Widget_AppCompat_DropDownItem_Spinner = 2131362090;
-
- // aapt resource value: 0x7f0a012b
- public const int Widget_AppCompat_EditText = 2131362091;
-
- // aapt resource value: 0x7f0a012c
- public const int Widget_AppCompat_ImageButton = 2131362092;
-
- // aapt resource value: 0x7f0a012d
- public const int Widget_AppCompat_Light_ActionBar = 2131362093;
-
- // aapt resource value: 0x7f0a012e
- public const int Widget_AppCompat_Light_ActionBar_Solid = 2131362094;
-
- // aapt resource value: 0x7f0a012f
- public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131362095;
-
- // aapt resource value: 0x7f0a0130
- public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131362096;
-
- // aapt resource value: 0x7f0a0131
- public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131362097;
-
- // aapt resource value: 0x7f0a0132
- public const int Widget_AppCompat_Light_ActionBar_TabText = 2131362098;
-
- // aapt resource value: 0x7f0a0133
- public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131362099;
-
- // aapt resource value: 0x7f0a0134
- public const int Widget_AppCompat_Light_ActionBar_TabView = 2131362100;
-
- // aapt resource value: 0x7f0a0135
- public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131362101;
-
- // aapt resource value: 0x7f0a0136
- public const int Widget_AppCompat_Light_ActionButton = 2131362102;
-
- // aapt resource value: 0x7f0a0137
- public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131362103;
-
- // aapt resource value: 0x7f0a0138
- public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131362104;
-
- // aapt resource value: 0x7f0a0139
- public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131362105;
-
- // aapt resource value: 0x7f0a013a
- public const int Widget_AppCompat_Light_ActivityChooserView = 2131362106;
-
- // aapt resource value: 0x7f0a013b
- public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131362107;
-
- // aapt resource value: 0x7f0a013c
- public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131362108;
-
- // aapt resource value: 0x7f0a013d
- public const int Widget_AppCompat_Light_ListPopupWindow = 2131362109;
-
- // aapt resource value: 0x7f0a013e
- public const int Widget_AppCompat_Light_ListView_DropDown = 2131362110;
-
- // aapt resource value: 0x7f0a013f
- public const int Widget_AppCompat_Light_PopupMenu = 2131362111;
-
- // aapt resource value: 0x7f0a0140
- public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131362112;
-
- // aapt resource value: 0x7f0a0141
- public const int Widget_AppCompat_Light_SearchView = 2131362113;
-
- // aapt resource value: 0x7f0a0142
- public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131362114;
-
- // aapt resource value: 0x7f0a0143
- public const int Widget_AppCompat_ListPopupWindow = 2131362115;
-
- // aapt resource value: 0x7f0a0144
- public const int Widget_AppCompat_ListView = 2131362116;
-
- // aapt resource value: 0x7f0a0145
- public const int Widget_AppCompat_ListView_DropDown = 2131362117;
-
- // aapt resource value: 0x7f0a0146
- public const int Widget_AppCompat_ListView_Menu = 2131362118;
-
- // aapt resource value: 0x7f0a0147
- public const int Widget_AppCompat_PopupMenu = 2131362119;
-
- // aapt resource value: 0x7f0a0148
- public const int Widget_AppCompat_PopupMenu_Overflow = 2131362120;
-
- // aapt resource value: 0x7f0a0149
- public const int Widget_AppCompat_PopupWindow = 2131362121;
-
- // aapt resource value: 0x7f0a014a
- public const int Widget_AppCompat_ProgressBar = 2131362122;
-
- // aapt resource value: 0x7f0a014b
- public const int Widget_AppCompat_ProgressBar_Horizontal = 2131362123;
-
- // aapt resource value: 0x7f0a014c
- public const int Widget_AppCompat_RatingBar = 2131362124;
-
- // aapt resource value: 0x7f0a014d
- public const int Widget_AppCompat_RatingBar_Indicator = 2131362125;
-
- // aapt resource value: 0x7f0a014e
- public const int Widget_AppCompat_RatingBar_Small = 2131362126;
-
- // aapt resource value: 0x7f0a014f
- public const int Widget_AppCompat_SearchView = 2131362127;
-
- // aapt resource value: 0x7f0a0150
- public const int Widget_AppCompat_SearchView_ActionBar = 2131362128;
-
- // aapt resource value: 0x7f0a0151
- public const int Widget_AppCompat_SeekBar = 2131362129;
-
- // aapt resource value: 0x7f0a0152
- public const int Widget_AppCompat_Spinner = 2131362130;
-
- // aapt resource value: 0x7f0a0153
- public const int Widget_AppCompat_Spinner_DropDown = 2131362131;
-
- // aapt resource value: 0x7f0a0154
- public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131362132;
-
- // aapt resource value: 0x7f0a0155
- public const int Widget_AppCompat_Spinner_Underlined = 2131362133;
-
- // aapt resource value: 0x7f0a0156
- public const int Widget_AppCompat_TextView_SpinnerItem = 2131362134;
-
- // aapt resource value: 0x7f0a0157
- public const int Widget_AppCompat_Toolbar = 2131362135;
-
- // aapt resource value: 0x7f0a0158
- public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131362136;
-
- // aapt resource value: 0x7f0a0169
- public const int Widget_Design_AppBarLayout = 2131362153;
-
- // aapt resource value: 0x7f0a016a
- public const int Widget_Design_BottomSheet_Modal = 2131362154;
-
- // aapt resource value: 0x7f0a016b
- public const int Widget_Design_CollapsingToolbar = 2131362155;
-
- // aapt resource value: 0x7f0a016c
- public const int Widget_Design_CoordinatorLayout = 2131362156;
-
- // aapt resource value: 0x7f0a016d
- public const int Widget_Design_FloatingActionButton = 2131362157;
-
- // aapt resource value: 0x7f0a016e
- public const int Widget_Design_NavigationView = 2131362158;
-
- // aapt resource value: 0x7f0a016f
- public const int Widget_Design_ScrimInsetsFrameLayout = 2131362159;
-
- // aapt resource value: 0x7f0a0170
- public const int Widget_Design_Snackbar = 2131362160;
-
- // aapt resource value: 0x7f0a0159
- public const int Widget_Design_TabLayout = 2131362137;
-
- // aapt resource value: 0x7f0a0171
- public const int Widget_Design_TextInputLayout = 2131362161;
-
- // aapt resource value: 0x7f0a0004
- public const int Widget_MediaRouter_ChooserText = 2131361796;
-
- // aapt resource value: 0x7f0a0005
- public const int Widget_MediaRouter_ChooserText_Primary = 2131361797;
-
- // aapt resource value: 0x7f0a0006
- public const int Widget_MediaRouter_ChooserText_Primary_Dark = 2131361798;
-
- // aapt resource value: 0x7f0a0007
- public const int Widget_MediaRouter_ChooserText_Primary_Light = 2131361799;
-
- // aapt resource value: 0x7f0a0008
- public const int Widget_MediaRouter_ChooserText_Secondary = 2131361800;
-
- // aapt resource value: 0x7f0a0009
- public const int Widget_MediaRouter_ChooserText_Secondary_Dark = 2131361801;
-
- // aapt resource value: 0x7f0a000a
- public const int Widget_MediaRouter_ChooserText_Secondary_Light = 2131361802;
-
- // aapt resource value: 0x7f0a000b
- public const int Widget_MediaRouter_ControllerText = 2131361803;
-
- // aapt resource value: 0x7f0a000c
- public const int Widget_MediaRouter_ControllerText_Primary = 2131361804;
-
- // aapt resource value: 0x7f0a000d
- public const int Widget_MediaRouter_ControllerText_Primary_Dark = 2131361805;
-
- // aapt resource value: 0x7f0a000e
- public const int Widget_MediaRouter_ControllerText_Primary_Light = 2131361806;
-
- // aapt resource value: 0x7f0a000f
- public const int Widget_MediaRouter_ControllerText_Secondary = 2131361807;
-
- // aapt resource value: 0x7f0a0010
- public const int Widget_MediaRouter_ControllerText_Secondary_Dark = 2131361808;
-
- // aapt resource value: 0x7f0a0011
- public const int Widget_MediaRouter_ControllerText_Secondary_Light = 2131361809;
-
- // aapt resource value: 0x7f0a0012
- public const int Widget_MediaRouter_ControllerText_Title = 2131361810;
-
- // aapt resource value: 0x7f0a0013
- public const int Widget_MediaRouter_ControllerText_Title_Dark = 2131361811;
-
- // aapt resource value: 0x7f0a0014
- public const int Widget_MediaRouter_ControllerText_Title_Light = 2131361812;
-
- // aapt resource value: 0x7f0a0015
- public const int Widget_MediaRouter_Light_MediaRouteButton = 2131361813;
-
- // aapt resource value: 0x7f0a0016
- public const int Widget_MediaRouter_MediaRouteButton = 2131361814;
-
- static Style()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Style()
- {
- }
- }
-
- public partial class Styleable
- {
-
- public static int[] ActionBar = new int[] {
- 2130772007,
- 2130772009,
- 2130772010,
- 2130772011,
- 2130772012,
- 2130772013,
- 2130772014,
- 2130772015,
- 2130772016,
- 2130772017,
- 2130772018,
- 2130772019,
- 2130772020,
- 2130772021,
- 2130772022,
- 2130772023,
- 2130772024,
- 2130772025,
- 2130772026,
- 2130772027,
- 2130772028,
- 2130772029,
- 2130772030,
- 2130772031,
- 2130772032,
- 2130772033,
- 2130772090};
-
- // aapt resource value: 10
- public const int ActionBar_background = 10;
-
- // aapt resource value: 12
- public const int ActionBar_backgroundSplit = 12;
-
- // aapt resource value: 11
- public const int ActionBar_backgroundStacked = 11;
-
- // aapt resource value: 21
- public const int ActionBar_contentInsetEnd = 21;
-
- // aapt resource value: 22
- public const int ActionBar_contentInsetLeft = 22;
-
- // aapt resource value: 23
- public const int ActionBar_contentInsetRight = 23;
-
- // aapt resource value: 20
- public const int ActionBar_contentInsetStart = 20;
-
- // aapt resource value: 13
- public const int ActionBar_customNavigationLayout = 13;
-
- // aapt resource value: 3
- public const int ActionBar_displayOptions = 3;
-
- // aapt resource value: 9
- public const int ActionBar_divider = 9;
-
- // aapt resource value: 24
- public const int ActionBar_elevation = 24;
-
- // aapt resource value: 0
- public const int ActionBar_height = 0;
-
- // aapt resource value: 19
- public const int ActionBar_hideOnContentScroll = 19;
-
- // aapt resource value: 26
- public const int ActionBar_homeAsUpIndicator = 26;
-
- // aapt resource value: 14
- public const int ActionBar_homeLayout = 14;
-
- // aapt resource value: 7
- public const int ActionBar_icon = 7;
-
- // aapt resource value: 16
- public const int ActionBar_indeterminateProgressStyle = 16;
-
- // aapt resource value: 18
- public const int ActionBar_itemPadding = 18;
-
- // aapt resource value: 8
- public const int ActionBar_logo = 8;
-
- // aapt resource value: 2
- public const int ActionBar_navigationMode = 2;
-
- // aapt resource value: 25
- public const int ActionBar_popupTheme = 25;
-
- // aapt resource value: 17
- public const int ActionBar_progressBarPadding = 17;
-
- // aapt resource value: 15
- public const int ActionBar_progressBarStyle = 15;
-
- // aapt resource value: 4
- public const int ActionBar_subtitle = 4;
-
- // aapt resource value: 6
- public const int ActionBar_subtitleTextStyle = 6;
-
- // aapt resource value: 1
- public const int ActionBar_title = 1;
-
- // aapt resource value: 5
- public const int ActionBar_titleTextStyle = 5;
-
- public static int[] ActionBarLayout = new int[] {
- 16842931};
-
- // aapt resource value: 0
- public const int ActionBarLayout_android_layout_gravity = 0;
-
- public static int[] ActionMenuItemView = new int[] {
- 16843071};
-
- // aapt resource value: 0
- public const int ActionMenuItemView_android_minWidth = 0;
-
- public static int[] ActionMenuView;
-
- public static int[] ActionMode = new int[] {
- 2130772007,
- 2130772013,
- 2130772014,
- 2130772018,
- 2130772020,
- 2130772034};
-
- // aapt resource value: 3
- public const int ActionMode_background = 3;
-
- // aapt resource value: 4
- public const int ActionMode_backgroundSplit = 4;
-
- // aapt resource value: 5
- public const int ActionMode_closeItemLayout = 5;
-
- // aapt resource value: 0
- public const int ActionMode_height = 0;
-
- // aapt resource value: 2
- public const int ActionMode_subtitleTextStyle = 2;
-
- // aapt resource value: 1
- public const int ActionMode_titleTextStyle = 1;
-
- public static int[] ActivityChooserView = new int[] {
- 2130772035,
- 2130772036};
-
- // aapt resource value: 1
- public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 1;
-
- // aapt resource value: 0
- public const int ActivityChooserView_initialActivityCount = 0;
-
- public static int[] AlertDialog = new int[] {
- 16842994,
- 2130772037,
- 2130772038,
- 2130772039,
- 2130772040,
- 2130772041};
-
- // aapt resource value: 0
- public const int AlertDialog_android_layout = 0;
-
- // aapt resource value: 1
- public const int AlertDialog_buttonPanelSideLayout = 1;
-
- // aapt resource value: 5
- public const int AlertDialog_listItemLayout = 5;
-
- // aapt resource value: 2
- public const int AlertDialog_listLayout = 2;
-
- // aapt resource value: 3
- public const int AlertDialog_multiChoiceItemLayout = 3;
-
- // aapt resource value: 4
- public const int AlertDialog_singleChoiceItemLayout = 4;
-
- public static int[] AppBarLayout = new int[] {
- 16842964,
- 2130772032,
- 2130772215};
-
- // aapt resource value: 0
- public const int AppBarLayout_android_background = 0;
-
- // aapt resource value: 1
- public const int AppBarLayout_elevation = 1;
-
- // aapt resource value: 2
- public const int AppBarLayout_expanded = 2;
-
- public static int[] AppBarLayout_LayoutParams = new int[] {
- 2130772216,
- 2130772217};
-
- // aapt resource value: 0
- public const int AppBarLayout_LayoutParams_layout_scrollFlags = 0;
-
- // aapt resource value: 1
- public const int AppBarLayout_LayoutParams_layout_scrollInterpolator = 1;
-
- public static int[] AppCompatImageView = new int[] {
- 16843033,
- 2130772042};
-
- // aapt resource value: 0
- public const int AppCompatImageView_android_src = 0;
-
- // aapt resource value: 1
- public const int AppCompatImageView_srcCompat = 1;
-
- public static int[] AppCompatTextView = new int[] {
- 16842804,
- 2130772043};
-
- // aapt resource value: 0
- public const int AppCompatTextView_android_textAppearance = 0;
-
- // aapt resource value: 1
- public const int AppCompatTextView_textAllCaps = 1;
-
- public static int[] AppCompatTheme = new int[] {
- 16842839,
- 16842926,
- 2130772044,
- 2130772045,
- 2130772046,
- 2130772047,
- 2130772048,
- 2130772049,
- 2130772050,
- 2130772051,
- 2130772052,
- 2130772053,
- 2130772054,
- 2130772055,
- 2130772056,
- 2130772057,
- 2130772058,
- 2130772059,
- 2130772060,
- 2130772061,
- 2130772062,
- 2130772063,
- 2130772064,
- 2130772065,
- 2130772066,
- 2130772067,
- 2130772068,
- 2130772069,
- 2130772070,
- 2130772071,
- 2130772072,
- 2130772073,
- 2130772074,
- 2130772075,
- 2130772076,
- 2130772077,
- 2130772078,
- 2130772079,
- 2130772080,
- 2130772081,
- 2130772082,
- 2130772083,
- 2130772084,
- 2130772085,
- 2130772086,
- 2130772087,
- 2130772088,
- 2130772089,
- 2130772090,
- 2130772091,
- 2130772092,
- 2130772093,
- 2130772094,
- 2130772095,
- 2130772096,
- 2130772097,
- 2130772098,
- 2130772099,
- 2130772100,
- 2130772101,
- 2130772102,
- 2130772103,
- 2130772104,
- 2130772105,
- 2130772106,
- 2130772107,
- 2130772108,
- 2130772109,
- 2130772110,
- 2130772111,
- 2130772112,
- 2130772113,
- 2130772114,
- 2130772115,
- 2130772116,
- 2130772117,
- 2130772118,
- 2130772119,
- 2130772120,
- 2130772121,
- 2130772122,
- 2130772123,
- 2130772124,
- 2130772125,
- 2130772126,
- 2130772127,
- 2130772128,
- 2130772129,
- 2130772130,
- 2130772131,
- 2130772132,
- 2130772133,
- 2130772134,
- 2130772135,
- 2130772136,
- 2130772137,
- 2130772138,
- 2130772139,
- 2130772140,
- 2130772141,
- 2130772142,
- 2130772143,
- 2130772144,
- 2130772145,
- 2130772146,
- 2130772147,
- 2130772148,
- 2130772149,
- 2130772150,
- 2130772151,
- 2130772152,
- 2130772153};
-
- // aapt resource value: 23
- public const int AppCompatTheme_actionBarDivider = 23;
-
- // aapt resource value: 24
- public const int AppCompatTheme_actionBarItemBackground = 24;
-
- // aapt resource value: 17
- public const int AppCompatTheme_actionBarPopupTheme = 17;
-
- // aapt resource value: 22
- public const int AppCompatTheme_actionBarSize = 22;
-
- // aapt resource value: 19
- public const int AppCompatTheme_actionBarSplitStyle = 19;
-
- // aapt resource value: 18
- public const int AppCompatTheme_actionBarStyle = 18;
-
- // aapt resource value: 13
- public const int AppCompatTheme_actionBarTabBarStyle = 13;
-
- // aapt resource value: 12
- public const int AppCompatTheme_actionBarTabStyle = 12;
-
- // aapt resource value: 14
- public const int AppCompatTheme_actionBarTabTextStyle = 14;
-
- // aapt resource value: 20
- public const int AppCompatTheme_actionBarTheme = 20;
-
- // aapt resource value: 21
- public const int AppCompatTheme_actionBarWidgetTheme = 21;
-
- // aapt resource value: 49
- public const int AppCompatTheme_actionButtonStyle = 49;
-
- // aapt resource value: 45
- public const int AppCompatTheme_actionDropDownStyle = 45;
-
- // aapt resource value: 25
- public const int AppCompatTheme_actionMenuTextAppearance = 25;
-
- // aapt resource value: 26
- public const int AppCompatTheme_actionMenuTextColor = 26;
-
- // aapt resource value: 29
- public const int AppCompatTheme_actionModeBackground = 29;
-
- // aapt resource value: 28
- public const int AppCompatTheme_actionModeCloseButtonStyle = 28;
-
- // aapt resource value: 31
- public const int AppCompatTheme_actionModeCloseDrawable = 31;
-
- // aapt resource value: 33
- public const int AppCompatTheme_actionModeCopyDrawable = 33;
-
- // aapt resource value: 32
- public const int AppCompatTheme_actionModeCutDrawable = 32;
-
- // aapt resource value: 37
- public const int AppCompatTheme_actionModeFindDrawable = 37;
-
- // aapt resource value: 34
- public const int AppCompatTheme_actionModePasteDrawable = 34;
-
- // aapt resource value: 39
- public const int AppCompatTheme_actionModePopupWindowStyle = 39;
-
- // aapt resource value: 35
- public const int AppCompatTheme_actionModeSelectAllDrawable = 35;
-
- // aapt resource value: 36
- public const int AppCompatTheme_actionModeShareDrawable = 36;
-
- // aapt resource value: 30
- public const int AppCompatTheme_actionModeSplitBackground = 30;
-
- // aapt resource value: 27
- public const int AppCompatTheme_actionModeStyle = 27;
-
- // aapt resource value: 38
- public const int AppCompatTheme_actionModeWebSearchDrawable = 38;
-
- // aapt resource value: 15
- public const int AppCompatTheme_actionOverflowButtonStyle = 15;
-
- // aapt resource value: 16
- public const int AppCompatTheme_actionOverflowMenuStyle = 16;
-
- // aapt resource value: 57
- public const int AppCompatTheme_activityChooserViewStyle = 57;
-
- // aapt resource value: 92
- public const int AppCompatTheme_alertDialogButtonGroupStyle = 92;
-
- // aapt resource value: 93
- public const int AppCompatTheme_alertDialogCenterButtons = 93;
-
- // aapt resource value: 91
- public const int AppCompatTheme_alertDialogStyle = 91;
-
- // aapt resource value: 94
- public const int AppCompatTheme_alertDialogTheme = 94;
-
- // aapt resource value: 1
- public const int AppCompatTheme_android_windowAnimationStyle = 1;
-
- // aapt resource value: 0
- public const int AppCompatTheme_android_windowIsFloating = 0;
-
- // aapt resource value: 99
- public const int AppCompatTheme_autoCompleteTextViewStyle = 99;
-
- // aapt resource value: 54
- public const int AppCompatTheme_borderlessButtonStyle = 54;
-
- // aapt resource value: 51
- public const int AppCompatTheme_buttonBarButtonStyle = 51;
-
- // aapt resource value: 97
- public const int AppCompatTheme_buttonBarNegativeButtonStyle = 97;
-
- // aapt resource value: 98
- public const int AppCompatTheme_buttonBarNeutralButtonStyle = 98;
-
- // aapt resource value: 96
- public const int AppCompatTheme_buttonBarPositiveButtonStyle = 96;
-
- // aapt resource value: 50
- public const int AppCompatTheme_buttonBarStyle = 50;
-
- // aapt resource value: 100
- public const int AppCompatTheme_buttonStyle = 100;
-
- // aapt resource value: 101
- public const int AppCompatTheme_buttonStyleSmall = 101;
-
- // aapt resource value: 102
- public const int AppCompatTheme_checkboxStyle = 102;
-
- // aapt resource value: 103
- public const int AppCompatTheme_checkedTextViewStyle = 103;
-
- // aapt resource value: 84
- public const int AppCompatTheme_colorAccent = 84;
-
- // aapt resource value: 88
- public const int AppCompatTheme_colorButtonNormal = 88;
-
- // aapt resource value: 86
- public const int AppCompatTheme_colorControlActivated = 86;
-
- // aapt resource value: 87
- public const int AppCompatTheme_colorControlHighlight = 87;
-
- // aapt resource value: 85
- public const int AppCompatTheme_colorControlNormal = 85;
-
- // aapt resource value: 82
- public const int AppCompatTheme_colorPrimary = 82;
-
- // aapt resource value: 83
- public const int AppCompatTheme_colorPrimaryDark = 83;
-
- // aapt resource value: 89
- public const int AppCompatTheme_colorSwitchThumbNormal = 89;
-
- // aapt resource value: 90
- public const int AppCompatTheme_controlBackground = 90;
-
- // aapt resource value: 43
- public const int AppCompatTheme_dialogPreferredPadding = 43;
-
- // aapt resource value: 42
- public const int AppCompatTheme_dialogTheme = 42;
-
- // aapt resource value: 56
- public const int AppCompatTheme_dividerHorizontal = 56;
-
- // aapt resource value: 55
- public const int AppCompatTheme_dividerVertical = 55;
-
- // aapt resource value: 74
- public const int AppCompatTheme_dropDownListViewStyle = 74;
-
- // aapt resource value: 46
- public const int AppCompatTheme_dropdownListPreferredItemHeight = 46;
-
- // aapt resource value: 63
- public const int AppCompatTheme_editTextBackground = 63;
-
- // aapt resource value: 62
- public const int AppCompatTheme_editTextColor = 62;
-
- // aapt resource value: 104
- public const int AppCompatTheme_editTextStyle = 104;
-
- // aapt resource value: 48
- public const int AppCompatTheme_homeAsUpIndicator = 48;
-
- // aapt resource value: 64
- public const int AppCompatTheme_imageButtonStyle = 64;
-
- // aapt resource value: 81
- public const int AppCompatTheme_listChoiceBackgroundIndicator = 81;
-
- // aapt resource value: 44
- public const int AppCompatTheme_listDividerAlertDialog = 44;
-
- // aapt resource value: 75
- public const int AppCompatTheme_listPopupWindowStyle = 75;
-
- // aapt resource value: 69
- public const int AppCompatTheme_listPreferredItemHeight = 69;
-
- // aapt resource value: 71
- public const int AppCompatTheme_listPreferredItemHeightLarge = 71;
-
- // aapt resource value: 70
- public const int AppCompatTheme_listPreferredItemHeightSmall = 70;
-
- // aapt resource value: 72
- public const int AppCompatTheme_listPreferredItemPaddingLeft = 72;
-
- // aapt resource value: 73
- public const int AppCompatTheme_listPreferredItemPaddingRight = 73;
-
- // aapt resource value: 78
- public const int AppCompatTheme_panelBackground = 78;
-
- // aapt resource value: 80
- public const int AppCompatTheme_panelMenuListTheme = 80;
-
- // aapt resource value: 79
- public const int AppCompatTheme_panelMenuListWidth = 79;
-
- // aapt resource value: 60
- public const int AppCompatTheme_popupMenuStyle = 60;
-
- // aapt resource value: 61
- public const int AppCompatTheme_popupWindowStyle = 61;
-
- // aapt resource value: 105
- public const int AppCompatTheme_radioButtonStyle = 105;
-
- // aapt resource value: 106
- public const int AppCompatTheme_ratingBarStyle = 106;
-
- // aapt resource value: 107
- public const int AppCompatTheme_ratingBarStyleIndicator = 107;
-
- // aapt resource value: 108
- public const int AppCompatTheme_ratingBarStyleSmall = 108;
-
- // aapt resource value: 68
- public const int AppCompatTheme_searchViewStyle = 68;
-
- // aapt resource value: 109
- public const int AppCompatTheme_seekBarStyle = 109;
-
- // aapt resource value: 52
- public const int AppCompatTheme_selectableItemBackground = 52;
-
- // aapt resource value: 53
- public const int AppCompatTheme_selectableItemBackgroundBorderless = 53;
-
- // aapt resource value: 47
- public const int AppCompatTheme_spinnerDropDownItemStyle = 47;
-
- // aapt resource value: 110
- public const int AppCompatTheme_spinnerStyle = 110;
-
- // aapt resource value: 111
- public const int AppCompatTheme_switchStyle = 111;
-
- // aapt resource value: 40
- public const int AppCompatTheme_textAppearanceLargePopupMenu = 40;
-
- // aapt resource value: 76
- public const int AppCompatTheme_textAppearanceListItem = 76;
-
- // aapt resource value: 77
- public const int AppCompatTheme_textAppearanceListItemSmall = 77;
-
- // aapt resource value: 66
- public const int AppCompatTheme_textAppearanceSearchResultSubtitle = 66;
-
- // aapt resource value: 65
- public const int AppCompatTheme_textAppearanceSearchResultTitle = 65;
-
- // aapt resource value: 41
- public const int AppCompatTheme_textAppearanceSmallPopupMenu = 41;
-
- // aapt resource value: 95
- public const int AppCompatTheme_textColorAlertDialogListItem = 95;
-
- // aapt resource value: 67
- public const int AppCompatTheme_textColorSearchUrl = 67;
-
- // aapt resource value: 59
- public const int AppCompatTheme_toolbarNavigationButtonStyle = 59;
-
- // aapt resource value: 58
- public const int AppCompatTheme_toolbarStyle = 58;
-
- // aapt resource value: 2
- public const int AppCompatTheme_windowActionBar = 2;
-
- // aapt resource value: 4
- public const int AppCompatTheme_windowActionBarOverlay = 4;
-
- // aapt resource value: 5
- public const int AppCompatTheme_windowActionModeOverlay = 5;
-
- // aapt resource value: 9
- public const int AppCompatTheme_windowFixedHeightMajor = 9;
-
- // aapt resource value: 7
- public const int AppCompatTheme_windowFixedHeightMinor = 7;
-
- // aapt resource value: 6
- public const int AppCompatTheme_windowFixedWidthMajor = 6;
-
- // aapt resource value: 8
- public const int AppCompatTheme_windowFixedWidthMinor = 8;
-
- // aapt resource value: 10
- public const int AppCompatTheme_windowMinWidthMajor = 10;
-
- // aapt resource value: 11
- public const int AppCompatTheme_windowMinWidthMinor = 11;
-
- // aapt resource value: 3
- public const int AppCompatTheme_windowNoTitle = 3;
-
- public static int[] BottomSheetBehavior_Params = new int[] {
- 2130772218,
- 2130772219};
-
- // aapt resource value: 1
- public const int BottomSheetBehavior_Params_behavior_hideable = 1;
-
- // aapt resource value: 0
- public const int BottomSheetBehavior_Params_behavior_peekHeight = 0;
-
- public static int[] ButtonBarLayout = new int[] {
- 2130772154};
-
- // aapt resource value: 0
- public const int ButtonBarLayout_allowStacking = 0;
-
- public static int[] CardView = new int[] {
- 16843071,
- 16843072,
- 2130771995,
- 2130771996,
- 2130771997,
- 2130771998,
- 2130771999,
- 2130772000,
- 2130772001,
- 2130772002,
- 2130772003,
- 2130772004,
- 2130772005};
-
- // aapt resource value: 1
- public const int CardView_android_minHeight = 1;
-
- // aapt resource value: 0
- public const int CardView_android_minWidth = 0;
-
- // aapt resource value: 2
- public const int CardView_cardBackgroundColor = 2;
-
- // aapt resource value: 3
- public const int CardView_cardCornerRadius = 3;
-
- // aapt resource value: 4
- public const int CardView_cardElevation = 4;
-
- // aapt resource value: 5
- public const int CardView_cardMaxElevation = 5;
-
- // aapt resource value: 7
- public const int CardView_cardPreventCornerOverlap = 7;
-
- // aapt resource value: 6
- public const int CardView_cardUseCompatPadding = 6;
-
- // aapt resource value: 8
- public const int CardView_contentPadding = 8;
-
- // aapt resource value: 12
- public const int CardView_contentPaddingBottom = 12;
-
- // aapt resource value: 9
- public const int CardView_contentPaddingLeft = 9;
-
- // aapt resource value: 10
- public const int CardView_contentPaddingRight = 10;
-
- // aapt resource value: 11
- public const int CardView_contentPaddingTop = 11;
-
- public static int[] CollapsingAppBarLayout_LayoutParams = new int[] {
- 2130772220,
- 2130772221};
-
- // aapt resource value: 0
- public const int CollapsingAppBarLayout_LayoutParams_layout_collapseMode = 0;
-
- // aapt resource value: 1
- public const int CollapsingAppBarLayout_LayoutParams_layout_collapseParallaxMultiplier = 1;
-
- public static int[] CollapsingToolbarLayout = new int[] {
- 2130772009,
- 2130772222,
- 2130772223,
- 2130772224,
- 2130772225,
- 2130772226,
- 2130772227,
- 2130772228,
- 2130772229,
- 2130772230,
- 2130772231,
- 2130772232,
- 2130772233,
- 2130772234};
-
- // aapt resource value: 11
- public const int CollapsingToolbarLayout_collapsedTitleGravity = 11;
-
- // aapt resource value: 7
- public const int CollapsingToolbarLayout_collapsedTitleTextAppearance = 7;
-
- // aapt resource value: 8
- public const int CollapsingToolbarLayout_contentScrim = 8;
-
- // aapt resource value: 12
- public const int CollapsingToolbarLayout_expandedTitleGravity = 12;
-
- // aapt resource value: 1
- public const int CollapsingToolbarLayout_expandedTitleMargin = 1;
-
- // aapt resource value: 5
- public const int CollapsingToolbarLayout_expandedTitleMarginBottom = 5;
-
- // aapt resource value: 4
- public const int CollapsingToolbarLayout_expandedTitleMarginEnd = 4;
-
- // aapt resource value: 2
- public const int CollapsingToolbarLayout_expandedTitleMarginStart = 2;
-
- // aapt resource value: 3
- public const int CollapsingToolbarLayout_expandedTitleMarginTop = 3;
-
- // aapt resource value: 6
- public const int CollapsingToolbarLayout_expandedTitleTextAppearance = 6;
-
- // aapt resource value: 9
- public const int CollapsingToolbarLayout_statusBarScrim = 9;
-
- // aapt resource value: 0
- public const int CollapsingToolbarLayout_title = 0;
-
- // aapt resource value: 13
- public const int CollapsingToolbarLayout_titleEnabled = 13;
-
- // aapt resource value: 10
- public const int CollapsingToolbarLayout_toolbarId = 10;
-
- public static int[] CompoundButton = new int[] {
- 16843015,
- 2130772155,
- 2130772156};
-
- // aapt resource value: 0
- public const int CompoundButton_android_button = 0;
-
- // aapt resource value: 1
- public const int CompoundButton_buttonTint = 1;
-
- // aapt resource value: 2
- public const int CompoundButton_buttonTintMode = 2;
-
- public static int[] CoordinatorLayout = new int[] {
- 2130772235,
- 2130772236};
-
- // aapt resource value: 0
- public const int CoordinatorLayout_keylines = 0;
-
- // aapt resource value: 1
- public const int CoordinatorLayout_statusBarBackground = 1;
-
- public static int[] CoordinatorLayout_LayoutParams = new int[] {
- 16842931,
- 2130772237,
- 2130772238,
- 2130772239,
- 2130772240};
-
- // aapt resource value: 0
- public const int CoordinatorLayout_LayoutParams_android_layout_gravity = 0;
-
- // aapt resource value: 2
- public const int CoordinatorLayout_LayoutParams_layout_anchor = 2;
-
- // aapt resource value: 4
- public const int CoordinatorLayout_LayoutParams_layout_anchorGravity = 4;
-
- // aapt resource value: 1
- public const int CoordinatorLayout_LayoutParams_layout_behavior = 1;
-
- // aapt resource value: 3
- public const int CoordinatorLayout_LayoutParams_layout_keyline = 3;
-
- public static int[] DesignTheme = new int[] {
- 2130772241,
- 2130772242,
- 2130772243};
-
- // aapt resource value: 0
- public const int DesignTheme_bottomSheetDialogTheme = 0;
-
- // aapt resource value: 1
- public const int DesignTheme_bottomSheetStyle = 1;
-
- // aapt resource value: 2
- public const int DesignTheme_textColorError = 2;
-
- public static int[] DrawerArrowToggle = new int[] {
- 2130772157,
- 2130772158,
- 2130772159,
- 2130772160,
- 2130772161,
- 2130772162,
- 2130772163,
- 2130772164};
-
- // aapt resource value: 4
- public const int DrawerArrowToggle_arrowHeadLength = 4;
-
- // aapt resource value: 5
- public const int DrawerArrowToggle_arrowShaftLength = 5;
-
- // aapt resource value: 6
- public const int DrawerArrowToggle_barLength = 6;
-
- // aapt resource value: 0
- public const int DrawerArrowToggle_color = 0;
-
- // aapt resource value: 2
- public const int DrawerArrowToggle_drawableSize = 2;
-
- // aapt resource value: 3
- public const int DrawerArrowToggle_gapBetweenBars = 3;
-
- // aapt resource value: 1
- public const int DrawerArrowToggle_spinBars = 1;
-
- // aapt resource value: 7
- public const int DrawerArrowToggle_thickness = 7;
-
- public static int[] FloatingActionButton = new int[] {
- 2130772032,
- 2130772213,
- 2130772214,
- 2130772244,
- 2130772245,
- 2130772246,
- 2130772247,
- 2130772248};
-
- // aapt resource value: 1
- public const int FloatingActionButton_backgroundTint = 1;
-
- // aapt resource value: 2
- public const int FloatingActionButton_backgroundTintMode = 2;
-
- // aapt resource value: 6
- public const int FloatingActionButton_borderWidth = 6;
-
- // aapt resource value: 0
- public const int FloatingActionButton_elevation = 0;
-
- // aapt resource value: 4
- public const int FloatingActionButton_fabSize = 4;
-
- // aapt resource value: 5
- public const int FloatingActionButton_pressedTranslationZ = 5;
-
- // aapt resource value: 3
- public const int FloatingActionButton_rippleColor = 3;
-
- // aapt resource value: 7
- public const int FloatingActionButton_useCompatPadding = 7;
-
- public static int[] ForegroundLinearLayout = new int[] {
- 16843017,
- 16843264,
- 2130772249};
-
- // aapt resource value: 0
- public const int ForegroundLinearLayout_android_foreground = 0;
-
- // aapt resource value: 1
- public const int ForegroundLinearLayout_android_foregroundGravity = 1;
-
- // aapt resource value: 2
- public const int ForegroundLinearLayout_foregroundInsidePadding = 2;
-
- public static int[] LinearLayoutCompat = new int[] {
- 16842927,
- 16842948,
- 16843046,
- 16843047,
- 16843048,
- 2130772017,
- 2130772165,
- 2130772166,
- 2130772167};
-
- // aapt resource value: 2
- public const int LinearLayoutCompat_android_baselineAligned = 2;
-
- // aapt resource value: 3
- public const int LinearLayoutCompat_android_baselineAlignedChildIndex = 3;
-
- // aapt resource value: 0
- public const int LinearLayoutCompat_android_gravity = 0;
-
- // aapt resource value: 1
- public const int LinearLayoutCompat_android_orientation = 1;
-
- // aapt resource value: 4
- public const int LinearLayoutCompat_android_weightSum = 4;
-
- // aapt resource value: 5
- public const int LinearLayoutCompat_divider = 5;
-
- // aapt resource value: 8
- public const int LinearLayoutCompat_dividerPadding = 8;
-
- // aapt resource value: 6
- public const int LinearLayoutCompat_measureWithLargestChild = 6;
-
- // aapt resource value: 7
- public const int LinearLayoutCompat_showDividers = 7;
-
- public static int[] LinearLayoutCompat_Layout = new int[] {
- 16842931,
- 16842996,
- 16842997,
- 16843137};
-
- // aapt resource value: 0
- public const int LinearLayoutCompat_Layout_android_layout_gravity = 0;
-
- // aapt resource value: 2
- public const int LinearLayoutCompat_Layout_android_layout_height = 2;
-
- // aapt resource value: 3
- public const int LinearLayoutCompat_Layout_android_layout_weight = 3;
-
- // aapt resource value: 1
- public const int LinearLayoutCompat_Layout_android_layout_width = 1;
-
- public static int[] ListPopupWindow = new int[] {
- 16843436,
- 16843437};
-
- // aapt resource value: 0
- public const int ListPopupWindow_android_dropDownHorizontalOffset = 0;
-
- // aapt resource value: 1
- public const int ListPopupWindow_android_dropDownVerticalOffset = 1;
-
- public static int[] MediaRouteButton = new int[] {
- 16843071,
- 16843072,
- 2130771994};
-
- // aapt resource value: 1
- public const int MediaRouteButton_android_minHeight = 1;
-
- // aapt resource value: 0
- public const int MediaRouteButton_android_minWidth = 0;
-
- // aapt resource value: 2
- public const int MediaRouteButton_externalRouteEnabledDrawable = 2;
-
- public static int[] MenuGroup = new int[] {
- 16842766,
- 16842960,
- 16843156,
- 16843230,
- 16843231,
- 16843232};
-
- // aapt resource value: 5
- public const int MenuGroup_android_checkableBehavior = 5;
-
- // aapt resource value: 0
- public const int MenuGroup_android_enabled = 0;
-
- // aapt resource value: 1
- public const int MenuGroup_android_id = 1;
-
- // aapt resource value: 3
- public const int MenuGroup_android_menuCategory = 3;
-
- // aapt resource value: 4
- public const int MenuGroup_android_orderInCategory = 4;
-
- // aapt resource value: 2
- public const int MenuGroup_android_visible = 2;
-
- public static int[] MenuItem = new int[] {
- 16842754,
- 16842766,
- 16842960,
- 16843014,
- 16843156,
- 16843230,
- 16843231,
- 16843233,
- 16843234,
- 16843235,
- 16843236,
- 16843237,
- 16843375,
- 2130772168,
- 2130772169,
- 2130772170,
- 2130772171};
-
- // aapt resource value: 14
- public const int MenuItem_actionLayout = 14;
-
- // aapt resource value: 16
- public const int MenuItem_actionProviderClass = 16;
-
- // aapt resource value: 15
- public const int MenuItem_actionViewClass = 15;
-
- // aapt resource value: 9
- public const int MenuItem_android_alphabeticShortcut = 9;
-
- // aapt resource value: 11
- public const int MenuItem_android_checkable = 11;
-
- // aapt resource value: 3
- public const int MenuItem_android_checked = 3;
-
- // aapt resource value: 1
- public const int MenuItem_android_enabled = 1;
-
- // aapt resource value: 0
- public const int MenuItem_android_icon = 0;
-
- // aapt resource value: 2
- public const int MenuItem_android_id = 2;
-
- // aapt resource value: 5
- public const int MenuItem_android_menuCategory = 5;
-
- // aapt resource value: 10
- public const int MenuItem_android_numericShortcut = 10;
-
- // aapt resource value: 12
- public const int MenuItem_android_onClick = 12;
-
- // aapt resource value: 6
- public const int MenuItem_android_orderInCategory = 6;
-
- // aapt resource value: 7
- public const int MenuItem_android_title = 7;
-
- // aapt resource value: 8
- public const int MenuItem_android_titleCondensed = 8;
-
- // aapt resource value: 4
- public const int MenuItem_android_visible = 4;
-
- // aapt resource value: 13
- public const int MenuItem_showAsAction = 13;
-
- public static int[] MenuView = new int[] {
- 16842926,
- 16843052,
- 16843053,
- 16843054,
- 16843055,
- 16843056,
- 16843057,
- 2130772172};
-
- // aapt resource value: 4
- public const int MenuView_android_headerBackground = 4;
-
- // aapt resource value: 2
- public const int MenuView_android_horizontalDivider = 2;
-
- // aapt resource value: 5
- public const int MenuView_android_itemBackground = 5;
-
- // aapt resource value: 6
- public const int MenuView_android_itemIconDisabledAlpha = 6;
-
- // aapt resource value: 1
- public const int MenuView_android_itemTextAppearance = 1;
-
- // aapt resource value: 3
- public const int MenuView_android_verticalDivider = 3;
-
- // aapt resource value: 0
- public const int MenuView_android_windowAnimationStyle = 0;
-
- // aapt resource value: 7
- public const int MenuView_preserveIconSpacing = 7;
-
- public static int[] NavigationView = new int[] {
- 16842964,
- 16842973,
- 16843039,
- 2130772032,
- 2130772250,
- 2130772251,
- 2130772252,
- 2130772253,
- 2130772254,
- 2130772255};
-
- // aapt resource value: 0
- public const int NavigationView_android_background = 0;
-
- // aapt resource value: 1
- public const int NavigationView_android_fitsSystemWindows = 1;
-
- // aapt resource value: 2
- public const int NavigationView_android_maxWidth = 2;
-
- // aapt resource value: 3
- public const int NavigationView_elevation = 3;
-
- // aapt resource value: 9
- public const int NavigationView_headerLayout = 9;
-
- // aapt resource value: 7
- public const int NavigationView_itemBackground = 7;
-
- // aapt resource value: 5
- public const int NavigationView_itemIconTint = 5;
-
- // aapt resource value: 8
- public const int NavigationView_itemTextAppearance = 8;
-
- // aapt resource value: 6
- public const int NavigationView_itemTextColor = 6;
-
- // aapt resource value: 4
- public const int NavigationView_menu = 4;
-
- public static int[] PopupWindow = new int[] {
- 16843126,
- 2130772173};
-
- // aapt resource value: 0
- public const int PopupWindow_android_popupBackground = 0;
-
- // aapt resource value: 1
- public const int PopupWindow_overlapAnchor = 1;
-
- public static int[] PopupWindowBackgroundState = new int[] {
- 2130772174};
-
- // aapt resource value: 0
- public const int PopupWindowBackgroundState_state_above_anchor = 0;
-
- public static int[] RecyclerView = new int[] {
- 16842948,
- 2130771968,
- 2130771969,
- 2130771970,
- 2130771971};
-
- // aapt resource value: 0
- public const int RecyclerView_android_orientation = 0;
-
- // aapt resource value: 1
- public const int RecyclerView_layoutManager = 1;
-
- // aapt resource value: 3
- public const int RecyclerView_reverseLayout = 3;
-
- // aapt resource value: 2
- public const int RecyclerView_spanCount = 2;
-
- // aapt resource value: 4
- public const int RecyclerView_stackFromEnd = 4;
-
- public static int[] ScrimInsetsFrameLayout = new int[] {
- 2130772256};
-
- // aapt resource value: 0
- public const int ScrimInsetsFrameLayout_insetForeground = 0;
-
- public static int[] ScrollingViewBehavior_Params = new int[] {
- 2130772257};
-
- // aapt resource value: 0
- public const int ScrollingViewBehavior_Params_behavior_overlapTop = 0;
-
- public static int[] SearchView = new int[] {
- 16842970,
- 16843039,
- 16843296,
- 16843364,
- 2130772175,
- 2130772176,
- 2130772177,
- 2130772178,
- 2130772179,
- 2130772180,
- 2130772181,
- 2130772182,
- 2130772183,
- 2130772184,
- 2130772185,
- 2130772186,
- 2130772187};
-
- // aapt resource value: 0
- public const int SearchView_android_focusable = 0;
-
- // aapt resource value: 3
- public const int SearchView_android_imeOptions = 3;
-
- // aapt resource value: 2
- public const int SearchView_android_inputType = 2;
-
- // aapt resource value: 1
- public const int SearchView_android_maxWidth = 1;
-
- // aapt resource value: 8
- public const int SearchView_closeIcon = 8;
-
- // aapt resource value: 13
- public const int SearchView_commitIcon = 13;
-
- // aapt resource value: 7
- public const int SearchView_defaultQueryHint = 7;
-
- // aapt resource value: 9
- public const int SearchView_goIcon = 9;
-
- // aapt resource value: 5
- public const int SearchView_iconifiedByDefault = 5;
-
- // aapt resource value: 4
- public const int SearchView_layout = 4;
-
- // aapt resource value: 15
- public const int SearchView_queryBackground = 15;
-
- // aapt resource value: 6
- public const int SearchView_queryHint = 6;
-
- // aapt resource value: 11
- public const int SearchView_searchHintIcon = 11;
-
- // aapt resource value: 10
- public const int SearchView_searchIcon = 10;
-
- // aapt resource value: 16
- public const int SearchView_submitBackground = 16;
-
- // aapt resource value: 14
- public const int SearchView_suggestionRowLayout = 14;
-
- // aapt resource value: 12
- public const int SearchView_voiceIcon = 12;
-
- public static int[] SnackbarLayout = new int[] {
- 16843039,
- 2130772032,
- 2130772258};
-
- // aapt resource value: 0
- public const int SnackbarLayout_android_maxWidth = 0;
-
- // aapt resource value: 1
- public const int SnackbarLayout_elevation = 1;
-
- // aapt resource value: 2
- public const int SnackbarLayout_maxActionInlineWidth = 2;
-
- public static int[] Spinner = new int[] {
- 16842930,
- 16843126,
- 16843131,
- 16843362,
- 2130772033};
-
- // aapt resource value: 3
- public const int Spinner_android_dropDownWidth = 3;
-
- // aapt resource value: 0
- public const int Spinner_android_entries = 0;
-
- // aapt resource value: 1
- public const int Spinner_android_popupBackground = 1;
-
- // aapt resource value: 2
- public const int Spinner_android_prompt = 2;
-
- // aapt resource value: 4
- public const int Spinner_popupTheme = 4;
-
- public static int[] SwitchCompat = new int[] {
- 16843044,
- 16843045,
- 16843074,
- 2130772188,
- 2130772189,
- 2130772190,
- 2130772191,
- 2130772192,
- 2130772193,
- 2130772194};
-
- // aapt resource value: 1
- public const int SwitchCompat_android_textOff = 1;
-
- // aapt resource value: 0
- public const int SwitchCompat_android_textOn = 0;
-
- // aapt resource value: 2
- public const int SwitchCompat_android_thumb = 2;
-
- // aapt resource value: 9
- public const int SwitchCompat_showText = 9;
-
- // aapt resource value: 8
- public const int SwitchCompat_splitTrack = 8;
-
- // aapt resource value: 6
- public const int SwitchCompat_switchMinWidth = 6;
-
- // aapt resource value: 7
- public const int SwitchCompat_switchPadding = 7;
-
- // aapt resource value: 5
- public const int SwitchCompat_switchTextAppearance = 5;
-
- // aapt resource value: 4
- public const int SwitchCompat_thumbTextPadding = 4;
-
- // aapt resource value: 3
- public const int SwitchCompat_track = 3;
-
- public static int[] TabItem = new int[] {
- 16842754,
- 16842994,
- 16843087};
-
- // aapt resource value: 0
- public const int TabItem_android_icon = 0;
-
- // aapt resource value: 1
- public const int TabItem_android_layout = 1;
-
- // aapt resource value: 2
- public const int TabItem_android_text = 2;
-
- public static int[] TabLayout = new int[] {
- 2130772259,
- 2130772260,
- 2130772261,
- 2130772262,
- 2130772263,
- 2130772264,
- 2130772265,
- 2130772266,
- 2130772267,
- 2130772268,
- 2130772269,
- 2130772270,
- 2130772271,
- 2130772272,
- 2130772273,
- 2130772274};
-
- // aapt resource value: 3
- public const int TabLayout_tabBackground = 3;
-
- // aapt resource value: 2
- public const int TabLayout_tabContentStart = 2;
-
- // aapt resource value: 5
- public const int TabLayout_tabGravity = 5;
-
- // aapt resource value: 0
- public const int TabLayout_tabIndicatorColor = 0;
-
- // aapt resource value: 1
- public const int TabLayout_tabIndicatorHeight = 1;
-
- // aapt resource value: 7
- public const int TabLayout_tabMaxWidth = 7;
-
- // aapt resource value: 6
- public const int TabLayout_tabMinWidth = 6;
-
- // aapt resource value: 4
- public const int TabLayout_tabMode = 4;
-
- // aapt resource value: 15
- public const int TabLayout_tabPadding = 15;
-
- // aapt resource value: 14
- public const int TabLayout_tabPaddingBottom = 14;
-
- // aapt resource value: 13
- public const int TabLayout_tabPaddingEnd = 13;
-
- // aapt resource value: 11
- public const int TabLayout_tabPaddingStart = 11;
-
- // aapt resource value: 12
- public const int TabLayout_tabPaddingTop = 12;
-
- // aapt resource value: 10
- public const int TabLayout_tabSelectedTextColor = 10;
-
- // aapt resource value: 8
- public const int TabLayout_tabTextAppearance = 8;
-
- // aapt resource value: 9
- public const int TabLayout_tabTextColor = 9;
-
- public static int[] TextAppearance = new int[] {
- 16842901,
- 16842902,
- 16842903,
- 16842904,
- 16843105,
- 16843106,
- 16843107,
- 16843108,
- 2130772043};
-
- // aapt resource value: 4
- public const int TextAppearance_android_shadowColor = 4;
-
- // aapt resource value: 5
- public const int TextAppearance_android_shadowDx = 5;
-
- // aapt resource value: 6
- public const int TextAppearance_android_shadowDy = 6;
-
- // aapt resource value: 7
- public const int TextAppearance_android_shadowRadius = 7;
-
- // aapt resource value: 3
- public const int TextAppearance_android_textColor = 3;
-
- // aapt resource value: 0
- public const int TextAppearance_android_textSize = 0;
-
- // aapt resource value: 2
- public const int TextAppearance_android_textStyle = 2;
-
- // aapt resource value: 1
- public const int TextAppearance_android_typeface = 1;
-
- // aapt resource value: 8
- public const int TextAppearance_textAllCaps = 8;
-
- public static int[] TextInputLayout = new int[] {
- 16842906,
- 16843088,
- 2130772275,
- 2130772276,
- 2130772277,
- 2130772278,
- 2130772279,
- 2130772280,
- 2130772281,
- 2130772282,
- 2130772283};
-
- // aapt resource value: 1
- public const int TextInputLayout_android_hint = 1;
-
- // aapt resource value: 0
- public const int TextInputLayout_android_textColorHint = 0;
-
- // aapt resource value: 6
- public const int TextInputLayout_counterEnabled = 6;
-
- // aapt resource value: 7
- public const int TextInputLayout_counterMaxLength = 7;
-
- // aapt resource value: 9
- public const int TextInputLayout_counterOverflowTextAppearance = 9;
-
- // aapt resource value: 8
- public const int TextInputLayout_counterTextAppearance = 8;
-
- // aapt resource value: 4
- public const int TextInputLayout_errorEnabled = 4;
-
- // aapt resource value: 5
- public const int TextInputLayout_errorTextAppearance = 5;
-
- // aapt resource value: 10
- public const int TextInputLayout_hintAnimationEnabled = 10;
-
- // aapt resource value: 3
- public const int TextInputLayout_hintEnabled = 3;
-
- // aapt resource value: 2
- public const int TextInputLayout_hintTextAppearance = 2;
-
- public static int[] Toolbar = new int[] {
- 16842927,
- 16843072,
- 2130772009,
- 2130772012,
- 2130772016,
- 2130772028,
- 2130772029,
- 2130772030,
- 2130772031,
- 2130772033,
- 2130772195,
- 2130772196,
- 2130772197,
- 2130772198,
- 2130772199,
- 2130772200,
- 2130772201,
- 2130772202,
- 2130772203,
- 2130772204,
- 2130772205,
- 2130772206,
- 2130772207,
- 2130772208,
- 2130772209};
-
- // aapt resource value: 0
- public const int Toolbar_android_gravity = 0;
-
- // aapt resource value: 1
- public const int Toolbar_android_minHeight = 1;
-
- // aapt resource value: 19
- public const int Toolbar_collapseContentDescription = 19;
-
- // aapt resource value: 18
- public const int Toolbar_collapseIcon = 18;
-
- // aapt resource value: 6
- public const int Toolbar_contentInsetEnd = 6;
-
- // aapt resource value: 7
- public const int Toolbar_contentInsetLeft = 7;
-
- // aapt resource value: 8
- public const int Toolbar_contentInsetRight = 8;
-
- // aapt resource value: 5
- public const int Toolbar_contentInsetStart = 5;
-
- // aapt resource value: 4
- public const int Toolbar_logo = 4;
-
- // aapt resource value: 22
- public const int Toolbar_logoDescription = 22;
-
- // aapt resource value: 17
- public const int Toolbar_maxButtonHeight = 17;
-
- // aapt resource value: 21
- public const int Toolbar_navigationContentDescription = 21;
-
- // aapt resource value: 20
- public const int Toolbar_navigationIcon = 20;
-
- // aapt resource value: 9
- public const int Toolbar_popupTheme = 9;
-
- // aapt resource value: 3
- public const int Toolbar_subtitle = 3;
-
- // aapt resource value: 11
- public const int Toolbar_subtitleTextAppearance = 11;
-
- // aapt resource value: 24
- public const int Toolbar_subtitleTextColor = 24;
-
- // aapt resource value: 2
- public const int Toolbar_title = 2;
-
- // aapt resource value: 16
- public const int Toolbar_titleMarginBottom = 16;
-
- // aapt resource value: 14
- public const int Toolbar_titleMarginEnd = 14;
-
- // aapt resource value: 13
- public const int Toolbar_titleMarginStart = 13;
-
- // aapt resource value: 15
- public const int Toolbar_titleMarginTop = 15;
-
- // aapt resource value: 12
- public const int Toolbar_titleMargins = 12;
-
- // aapt resource value: 10
- public const int Toolbar_titleTextAppearance = 10;
-
- // aapt resource value: 23
- public const int Toolbar_titleTextColor = 23;
-
- public static int[] View = new int[] {
- 16842752,
- 16842970,
- 2130772210,
- 2130772211,
- 2130772212};
-
- // aapt resource value: 1
- public const int View_android_focusable = 1;
-
- // aapt resource value: 0
- public const int View_android_theme = 0;
-
- // aapt resource value: 3
- public const int View_paddingEnd = 3;
-
- // aapt resource value: 2
- public const int View_paddingStart = 2;
-
- // aapt resource value: 4
- public const int View_theme = 4;
-
- public static int[] ViewBackgroundHelper = new int[] {
- 16842964,
- 2130772213,
- 2130772214};
-
- // aapt resource value: 0
- public const int ViewBackgroundHelper_android_background = 0;
-
- // aapt resource value: 1
- public const int ViewBackgroundHelper_backgroundTint = 1;
-
- // aapt resource value: 2
- public const int ViewBackgroundHelper_backgroundTintMode = 2;
-
- public static int[] ViewStubCompat = new int[] {
- 16842960,
- 16842994,
- 16842995};
-
- // aapt resource value: 0
- public const int ViewStubCompat_android_id = 0;
-
- // aapt resource value: 2
- public const int ViewStubCompat_android_inflatedId = 2;
-
- // aapt resource value: 1
- public const int ViewStubCompat_android_layout = 1;
-
- static Styleable()
- {
- global::Android.Runtime.ResourceIdManager.UpdateIdValues();
- }
-
- private Styleable()
- {
- }
- }
- }
-}
-#pragma warning restore 1591
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png
deleted file mode 100644
index 964f110abb..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png
deleted file mode 100644
index 3c01e60ced..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png
deleted file mode 100644
index 0d8c1c57dc..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png
deleted file mode 100644
index b0ba7150f4..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml
deleted file mode 100644
index ad1f87d817..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml
deleted file mode 100644
index aabd0a3b74..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml
deleted file mode 100644
index 43b0a58c19..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config
deleted file mode 100644
index ca5e8fa0c0..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj
deleted file mode 100644
index e8a5575791..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
- Debug
- x86
- {732594E9-8585-4EE8-ABA7-70F4AEDC56AF}
- AppContainerExe
- Properties
- AdaptiveCards.XamarinForms.BotClient.UWP
- AdaptiveCards.XamarinForms.BotClient.UWP
- en-US
- UAP
- 10.0.14393.0
- 10.0.14393.0
- 14
- true
- 512
- {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Windows_TemporaryKey.pfx
-
-
- true
- bin\ARM\Debug\
- DEBUG;TRACE;NETFX_CORE
- ;2008
- full
- ARM
- false
- prompt
- true
-
-
- bin\ARM\Release\
- TRACE;NETFX_CORE
- true
- ;2008
- pdbonly
- ARM
- false
- prompt
- true
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE;NETFX_CORE
- ;2008
- full
- x64
- false
- prompt
- true
-
-
- bin\x64\Release\
- TRACE;NETFX_CORE
- true
- ;2008
- pdbonly
- x64
- false
- prompt
- true
- true
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE;NETFX_CORE
- ;2008
- full
- x86
- false
- prompt
- true
-
-
- bin\x86\Release\
- TRACE;NETFX_CORE
- true
- ;2008
- pdbonly
- x86
- false
- prompt
- true
- true
-
-
-
-
-
-
-
- App.xaml
-
-
- MainPage.xaml
-
-
-
-
-
- Designer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
-
-
- {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4}
- AdaptiveCards.Sample.BotClient
-
-
-
- 14.0
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml
deleted file mode 100644
index e207a16cdb..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs
deleted file mode 100644
index 3c6390a298..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.ApplicationModel;
-using Windows.ApplicationModel.Activation;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-
-namespace AdaptiveCards.XamarinForms.BotClient.UWP
-{
- ///
- /// Provides application-specific behavior to supplement the default Application class.
- ///
- sealed partial class App : Application
- {
- ///
- /// Initializes the singleton application object. This is the first line of authored code
- /// executed, and as such is the logical equivalent of main() or WinMain().
- ///
- public App()
- {
- this.InitializeComponent();
- this.Suspending += OnSuspending;
- }
-
- ///
- /// Invoked when the application is launched normally by the end user. Other entry points
- /// will be used such as when the application is launched to open a specific file.
- ///
- /// Details about the launch request and process.
- protected override void OnLaunched(LaunchActivatedEventArgs e)
- {
-
-#if DEBUG
- if (System.Diagnostics.Debugger.IsAttached)
- {
- this.DebugSettings.EnableFrameRateCounter = true;
- }
-#endif
-
- Frame rootFrame = Window.Current.Content as Frame;
-
- // Do not repeat app initialization when the Window already has content,
- // just ensure that the window is active
- if (rootFrame == null)
- {
- // Create a Frame to act as the navigation context and navigate to the first page
- rootFrame = new Frame();
-
- rootFrame.NavigationFailed += OnNavigationFailed;
-
- Xamarin.Forms.Forms.Init(e);
-
- if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
- {
- //TODO: Load state from previously suspended application
- }
-
- // Place the frame in the current Window
- Window.Current.Content = rootFrame;
- }
-
- if (rootFrame.Content == null)
- {
- // When the navigation stack isn't restored navigate to the first page,
- // configuring the new page by passing required information as a navigation
- // parameter
- rootFrame.Navigate(typeof(MainPage), e.Arguments);
- }
- // Ensure the current window is active
- Window.Current.Activate();
- }
-
- ///
- /// Invoked when Navigation to a certain page fails
- ///
- /// The Frame which failed navigation
- /// Details about the navigation failure
- void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
- {
- throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
- }
-
- ///
- /// Invoked when application execution is being suspended. Application state is saved
- /// without knowing whether the application will be terminated or resumed with the contents
- /// of memory still intact.
- ///
- /// The source of the suspend request.
- /// Details about the suspend request.
- private void OnSuspending(object sender, SuspendingEventArgs e)
- {
- var deferral = e.SuspendingOperation.GetDeferral();
- //TODO: Save application state and stop any background activity
- deferral.Complete();
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png
deleted file mode 100644
index 735f57adb5..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png
deleted file mode 100644
index 023e7f1fed..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png
deleted file mode 100644
index af49fec1a5..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png
deleted file mode 100644
index ce342a2ec8..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
deleted file mode 100644
index f6c02ce97e..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png
deleted file mode 100644
index 7385b56c0e..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png
deleted file mode 100644
index 288995b397..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml
deleted file mode 100644
index 055393f6c8..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs
deleted file mode 100644
index 685c036d64..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Runtime.InteropServices.WindowsRuntime;
-using Windows.Foundation;
-using Windows.Foundation.Collections;
-using Windows.UI.Xaml;
-using Windows.UI.Xaml.Controls;
-using Windows.UI.Xaml.Controls.Primitives;
-using Windows.UI.Xaml.Data;
-using Windows.UI.Xaml.Input;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Navigation;
-
-namespace AdaptiveCards.XamarinForms.BotClient.UWP
-{
- public sealed partial class MainPage
- {
- public MainPage()
- {
- this.InitializeComponent();
-
- LoadApplication(new AdaptiveCards.XamarinForms.BotClient.App());
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest
deleted file mode 100644
index b875e1cff4..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
- AdaptiveCards.XamarinForms.BotClient.UWP
- mahiding
- Assets\StoreLogo.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8ed38b577c..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.UWP")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.UWP")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: ComVisible(false)]
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml
deleted file mode 100644
index 80a960ce32..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json
deleted file mode 100644
index f6e443b891..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "dependencies": {
- "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.1",
- "Microsoft.Rest.ClientRuntime": "2.3.5",
- "Newtonsoft.Json": "9.0.1",
- "Xamarin.Forms": "2.3.4.221-pre6"
- },
- "frameworks": {
- "uap10.0": {}
- },
- "runtimes": {
- "win10-arm": {},
- "win10-arm-aot": {},
- "win10-x86": {},
- "win10-x86-aot": {},
- "win10-x64": {},
- "win10-x64-aot": {}
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj
deleted file mode 100644
index 2a51cd4dae..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj
+++ /dev/null
@@ -1,154 +0,0 @@
-
-
-
- Debug
- iPhoneSimulator
- 8.0.30703
- 2.0
- {53FB7C26-D705-48A0-8101-80A4A91A8B4E}
- {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Exe
- AdaptiveCards.XamarinForms.BotClient.iOS
- Resources
- AdaptiveCards.XamarinForms.BotClient.iOS
-
-
-
-
- true
- full
- false
- bin\iPhoneSimulator\Debug
- DEBUG
- prompt
- 4
- false
- i386, x86_64
- None
- true
-
-
- none
- true
- bin\iPhoneSimulator\Release
- prompt
- 4
- None
- i386, x86_64
- false
-
-
- true
- full
- false
- bin\iPhone\Debug
- DEBUG
- prompt
- 4
- false
- ARMv7, ARM64
- iPhone Developer
- true
- Entitlements.plist
-
-
- none
- true
- bin\iPhone\Release
- prompt
- 4
- ARMv7, ARM64
- false
- iPhone Developer
- Entitlements.plist
-
-
- none
- True
- bin\iPhone\Ad-Hoc
- prompt
- 4
- False
- ARMv7, ARM64
- True
- Automatic:AdHoc
- iPhone Distribution
- Entitlements.plist
-
-
- none
- True
- bin\iPhone\AppStore
- prompt
- 4
- False
- ARMv7, ARM64
- Automatic:AppStore
- iPhone Distribution
- Entitlements.plist
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll
- True
-
-
- ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll
- True
-
-
- ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll
- True
-
-
- ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll
- True
-
-
-
-
-
- {62bc72a3-e347-4ef9-b054-66b0ae13fc00}
- AdaptiveCards.XamarinForms.BotClient
-
-
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs
deleted file mode 100644
index 9491b0b229..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using Foundation;
-using UIKit;
-
-namespace AdaptiveCards.XamarinForms.BotClient.iOS
-{
- // The UIApplicationDelegate for the application. This class is responsible for launching the
- // User Interface of the application, as well as listening (and optionally responding) to
- // application events from iOS.
- [Register("AppDelegate")]
- public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
- {
- //
- // This method is invoked when the application has loaded and is ready to run. In this
- // method you should instantiate the window, load the UI into it and then make the window
- // visible.
- //
- // You have 17 seconds to return from this method, or iOS will terminate your application.
- //
- public override bool FinishedLaunching(UIApplication app, NSDictionary options)
- {
- global::Xamarin.Forms.Forms.Init();
- LoadApplication(new App());
-
- return base.FinishedLaunching(app, options);
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist
deleted file mode 100644
index e9a3005f78..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist
deleted file mode 100644
index 134f47d391..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- UIDeviceFamily
-
- 1
- 2
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- MinimumOSVersion
- 6.0
- CFBundleDisplayName
- AdaptiveCards.XamarinForms.BotClient
- CFBundleIdentifier
- com.yourcompany.AdaptiveCards.XamarinForms.BotClient
- CFBundleVersion
- 1.0
- CFBundleIconFiles
-
- Icon-60@2x
- Icon-60@3x
- Icon-76
- Icon-76@2x
- Default
- Default@2x
- Default-568h@2x
- Default-Portrait
- Default-Portrait@2x
- Icon-Small-40
- Icon-Small-40@2x
- Icon-Small-40@3x
- Icon-Small
- Icon-Small@2x
- Icon-Small@3x
-
- UILaunchStoryboardName
- LaunchScreen
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs
deleted file mode 100644
index fb3ae11961..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using Foundation;
-using UIKit;
-
-namespace AdaptiveCards.XamarinForms.BotClient.iOS
-{
- public class Application
- {
- // This is the main entry point of the application.
- static void Main(string[] args)
- {
- // if you want to use a different Application Delegate class from "AppDelegate"
- // you can specify it here.
- UIApplication.Main(args, null, "AppDelegate");
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs
deleted file mode 100644
index f8462e4d8c..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.iOS")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.iOS")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png
deleted file mode 100644
index 26c6461e50..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png
deleted file mode 100644
index 5d0d1ab4c6..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png
deleted file mode 100644
index 0ee2688e8f..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png
deleted file mode 100644
index b74643c0aa..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png
deleted file mode 100644
index dbd6bd3e86..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png
deleted file mode 100644
index 4b03c42703..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png
deleted file mode 100644
index b03ca1bbc6..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png
deleted file mode 100644
index 587982e2a6..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png
deleted file mode 100644
index cd4e2c8fe7..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png
deleted file mode 100644
index 6acff94417..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png
deleted file mode 100644
index b833aac26f..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png
deleted file mode 100644
index ab8654e499..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png
deleted file mode 100644
index 33db7e7141..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png
deleted file mode 100644
index bf45e25929..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png
deleted file mode 100644
index 7ad3891b95..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard
deleted file mode 100644
index a639c2f1a5..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork
deleted file mode 100644
index 94c8ebd6b2..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x
deleted file mode 100644
index fa2ebf72db..0000000000
Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x and /dev/null differ
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config
deleted file mode 100644
index 894c7ac893..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj
deleted file mode 100644
index db5f1aa38a..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
- netstandard1.4
- $(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8;portable-net45+win8+wpa81
-
-
-
-
-
-
-
-
- Designer
- MSBuild:UpdateDesignTimeXaml
- PreserveNewest
-
-
- Designer
- MSBuild:UpdateDesignTimeXaml
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml
deleted file mode 100644
index 2c56e03bcb..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml
+++ /dev/null
@@ -1,326 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs
deleted file mode 100644
index a26a252d7a..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using AdaptiveCards;
-using Xamarin.Forms;
-
-namespace AdaptiveCards.XamarinForms.BotClient
-{
- public partial class App : Application
- {
- public App()
- {
- InitializeComponent();
-
- MainPage = new AdaptiveCards.XamarinForms.BotClient.MainPage();
- }
-
- protected override void OnStart()
- {
- // Handle when your app starts
- }
-
- protected override void OnSleep()
- {
- // Handle when your app sleeps
- }
-
- protected override void OnResume()
- {
- // Handle when your app resumes
- }
- }
-}
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml
deleted file mode 100644
index 8ddcb5a3ae..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml.cs
deleted file mode 100644
index 97c7f76d0d..0000000000
--- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml.cs
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Newtonsoft.Json;
-using Xamarin.Forms;
-using Microsoft.Bot.Connector.DirectLine;
-using Newtonsoft.Json.Linq;
-using AdaptiveCards.Rendering;
-using AdaptiveCards.Rendering.Config;
-
-namespace AdaptiveCards.XamarinForms.BotClient
-{
- public partial class MainPage : ContentPage
- {
- private DirectLineClient _client;
- private Conversation _conversation;
- private string _watermark;
-
- private Action