зеркало из https://github.com/DeGsoft/maui-linux.git
Rename all of the things... All of them. (#13847)
* Rename all the things! * Fix sln on cake * targets * Rename all the things! * Fix sln on cake * Add this back so the build works * Added .nuspec\* back * Remove Core from XamlC * Update Build.Tasks * Fix ErrorMessages * Try fix build * Update gitignore * Update Microsoft.Maui-net6.sln * Fix controlgallery reference * Fix Maui reference on iOS sample * Fix ControLGallery sln * Fix xaml unit tests * Fix Maps references * Fix ControlGallery * Don't build gallery * Compile 462 for new * Dont build UAP * AndroidUseIntermediateDesignerFile * Fix UAP * Don't build control gallery for now Co-authored-by: Rui Marinho <me@ruimarinho.net> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
This commit is contained in:
Родитель
253053e9e2
Коммит
ac201994f2
|
@ -1,86 +1,364 @@
|
||||||
bin
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
obj
|
## files generated by popular Visual Studio add-ons.
|
||||||
classic_bin
|
##
|
||||||
classic_obj
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
*.dll
|
|
||||||
*.mdb
|
.nuspec/
|
||||||
*.exe
|
|
||||||
*.log
|
# User-specific files
|
||||||
*.userprefs
|
*.rsuser
|
||||||
*.suo
|
*.suo
|
||||||
_docs.xml
|
|
||||||
UpgradeLog*
|
|
||||||
docs/*.xml
|
|
||||||
.nuspec/*.nupkg
|
|
||||||
*UpgradeReport*
|
|
||||||
*.user
|
*.user
|
||||||
*.DS_Store
|
*.userosscache
|
||||||
*.ide
|
*.sln.docstates
|
||||||
.vs
|
|
||||||
*.designer.cs
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
*project.lock.json
|
*.userprefs
|
||||||
!*ControlResources*.designer.cs
|
|
||||||
!*Resources.Designer.cs
|
# Mono auto generated files
|
||||||
!Xamarin.Forms.VSTemplate/**/*.designer.cs
|
mono_crash.*
|
||||||
!NuGet.exe
|
|
||||||
*test-results*
|
# Build results
|
||||||
*/PerfLogs/*
|
[Dd]ebug/
|
||||||
*.sap
|
[Dd]ebugPublic/
|
||||||
/packages
|
[Rr]elease/
|
||||||
!.xamarin-component/**
|
[Rr]eleases/
|
||||||
*.xam
|
x64/
|
||||||
Components/
|
x86/
|
||||||
!GooglePlayServices/**
|
[Ww][Ii][Nn]32/
|
||||||
.irb-history
|
[Aa][Rr][Mm]/
|
||||||
screenshot_*
|
[Aa][Rr][Mm]64/
|
||||||
!Xamarin.Forms.Addin/libs/**
|
bld/
|
||||||
!Xamarin.Forms.Addin/Packages/Xamarin.Forms.*.nupkg
|
[Bb]in/
|
||||||
*.remove
|
[Oo]bj/
|
||||||
*/.metadata/*
|
[Ll]og/
|
||||||
**/AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/R.java
|
[Ll]ogs/
|
||||||
**/AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/BuildConfig.java
|
|
||||||
*.psess
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
TestResults/
|
.vs/
|
||||||
**/Xamarin.Forms.UITest.Validator/UITestCoverage/index.html
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
!**/Xamarin.Forms.UITest.TestCloud/test-cloud.exe
|
#wwwroot/
|
||||||
**/Xamarin.Forms.ControlGallery.Windows/AppPackages/
|
|
||||||
**/Xamarin.Forms.ControlGallery.WindowsPhone/AppPackages/
|
# Visual Studio 2017 auto generated files
|
||||||
**/Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/
|
Generated\ Files/
|
||||||
**/Xamarin.Forms.ControlGallery.WindowsUniversal/BundleArtifacts/
|
|
||||||
**/Xamarin.Forms.Controls/secrets.txt
|
# MSTest test Results
|
||||||
**/Xamarin.Forms.Controls/controlgallery.config
|
[Tt]est[Rr]esult*/
|
||||||
**/Xamarin.Forms.ControlGallery.Android/Properties/MapsKey.cs
|
[Bb]uild[Ll]og.*
|
||||||
*.tss
|
|
||||||
*.bak
|
# NUnit
|
||||||
**/AndroidNative/local.properties
|
*.VisualState.xml
|
||||||
**/AndroidNative/FormsViewGroup/build/
|
|
||||||
**/AndroidNative/build/
|
|
||||||
**/AndroidNative/.gradle/
|
|
||||||
!**/AndroidNative/gradlew
|
|
||||||
!**/AndroidNative/gradlew.bat
|
|
||||||
!**/EmbeddingTestBeds/Embedding.iOS/*.designer.cs
|
|
||||||
!**/DualScreen.Mac/*.designer.cs
|
|
||||||
*.nupkg
|
|
||||||
*.pdb
|
|
||||||
# temporary vim files
|
|
||||||
*.swp
|
|
||||||
/eng/tools/*
|
|
||||||
!/eng/tools/mdoc/
|
|
||||||
!/eng/tools/mdoc/**/*
|
|
||||||
caketools/
|
|
||||||
*.binlog
|
|
||||||
.ionide/**
|
|
||||||
/.nuspec
|
|
||||||
.XamarinFormsVersionFile.txt
|
|
||||||
.idea
|
|
||||||
Visual Studio 2019/**
|
|
||||||
TestResult.xml
|
TestResult.xml
|
||||||
**/build/packages
|
nunit-*.xml
|
||||||
WriteDevopsVariables.csproj
|
|
||||||
!**/Xamarin.Forms.Platform.GTK/Libs/**/*
|
# Build Results of an ATL Project
|
||||||
!**/Xamarin.Forms.Build.Tasks/ErrorMessages.Designer.cs
|
[Dd]ebugPS/
|
||||||
!**/Xamarin.Forms.Maps.WPF/Properties/Settings.Designer.cs
|
[Rr]eleasePS/
|
||||||
!**/Xamarin.Forms.Maps.GTK/Libs/**/*
|
dlldata.c
|
||||||
/tools
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
*.svclog
|
*.svclog
|
||||||
launchSettings.json
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*.json
|
||||||
|
coverage*.xml
|
||||||
|
coverage*.info
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<package >
|
||||||
|
<metadata>
|
||||||
|
<id>Xamarin.Forms.Visual.Material</id>
|
||||||
|
<version>$version$</version>
|
||||||
|
<authors>Microsoft</authors>
|
||||||
|
<owners>microsoft xamarin</owners>
|
||||||
|
<tags>xamarin forms visual material xamarinforms xamarinformsvisualmaterial xamarin.forms.visual.material</tags>
|
||||||
|
<license type="expression">MIT</license>
|
||||||
|
<icon>Assets\xamarin_128x128.png</icon>
|
||||||
|
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||||
|
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||||
|
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||||
|
<description>Material renderers for Xamarin.Forms</description>
|
||||||
|
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||||
|
<dependencies>
|
||||||
|
<group>
|
||||||
|
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||||
|
</group>
|
||||||
|
<group targetFramework="MonoAndroid10">
|
||||||
|
<dependency id="Xamarin.Forms" version="$version$"/>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<group targetFramework="MonoAndroid10.0">
|
||||||
|
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||||
|
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework="Xamarin.iOS10">
|
||||||
|
<dependency id="Xamarin.iOS.MaterialComponents" version="92.0.0"/>
|
||||||
|
</group>
|
||||||
|
<group targetFramework="tizen40">
|
||||||
|
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||||
|
<dependency id="Tizen.NET.MaterialComponents" version="0.9.7-preview"/>
|
||||||
|
</group>
|
||||||
|
</dependencies>
|
||||||
|
</metadata>
|
||||||
|
<files>
|
||||||
|
<!--Icon-->
|
||||||
|
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||||
|
<!--netstandard-->
|
||||||
|
<file src="_._" target="lib\netstandard1.0\_._" />
|
||||||
|
|
||||||
|
<!--Android 10-->
|
||||||
|
<file src="_._" target="lib\MonoAndroid10\_._" />
|
||||||
|
<file src="Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" target="build\MonoAndroid10\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" />
|
||||||
|
|
||||||
|
<!--Android 10 buildTransitive-->
|
||||||
|
<file src="Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" target="buildTransitive\MonoAndroid10\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets" />
|
||||||
|
|
||||||
|
<!--Android 10.0-->
|
||||||
|
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*mdb" target="lib\MonoAndroid10.0" />
|
||||||
|
|
||||||
|
<!--iOS-->
|
||||||
|
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.dll" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*pdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*mdb" target="lib\Xamarin.iOS10" />
|
||||||
|
|
||||||
|
<!--Tizen-->
|
||||||
|
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.dll" target="lib\tizen40" />
|
||||||
|
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.*pdb" target="lib\tizen40" />
|
||||||
|
|
||||||
|
</files>
|
||||||
|
</package>
|
|
@ -0,0 +1,275 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<package >
|
||||||
|
<metadata>
|
||||||
|
<id>Microsoft.Maui.Controls</id>
|
||||||
|
<version>$version$</version>
|
||||||
|
<authors>Microsoft</authors>
|
||||||
|
<owners>microsoft xamarin</owners>
|
||||||
|
<tags>xamarin forms xamarinforms xamarin.forms</tags>
|
||||||
|
<license type="expression">MIT</license>
|
||||||
|
<icon>Assets\xamarin_128x128.png</icon>
|
||||||
|
<projectUrl>http://xamarin.com/forms</projectUrl>
|
||||||
|
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
||||||
|
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||||
|
<description>Build native UIs for iOS, Android, UWP, macOS, Tizen and many more from a single, shared C# codebase</description>
|
||||||
|
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||||
|
<dependencies>
|
||||||
|
<group targetFramework="MonoAndroid10.0">
|
||||||
|
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
||||||
|
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
||||||
|
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6" />
|
||||||
|
<dependency id="Xamarin.AndroidX.Browser" version="1.3.0" />
|
||||||
|
</group>
|
||||||
|
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||||
|
<dependency id="Microsoft.WinUI" version="3.0.0-preview3.201113.0" />
|
||||||
|
</group>-->
|
||||||
|
<group targetFramework="netstandard2.0">
|
||||||
|
</group>
|
||||||
|
<group targetFramework="Xamarin.iOS10">
|
||||||
|
</group>
|
||||||
|
<!-- <group targetFramework="tizen40">
|
||||||
|
<dependency id="Tizen.NET" version="4.0.0"/>
|
||||||
|
<dependency id="SkiaSharp.Views" version="2.80.2"/>
|
||||||
|
</group> -->
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||||
|
<!-- IF YOU DELETE THESE REFERENCES THE PACKAGE WILL NOT WORK ON MAC -->
|
||||||
|
<!-- https://github.com/xamarin/Xamarin.Forms/pull/2575 -->
|
||||||
|
<!-- DO NOT DELETE THESE REFERENCES -->
|
||||||
|
<references>
|
||||||
|
<group>
|
||||||
|
<reference file="Xamarin.Forms.Core.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||||
|
<reference file="Xamarin.Platform.dll" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework="Xamarin.iOS10">
|
||||||
|
<reference file="Xamarin.Forms.Core.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Platform.iOS.dll" />
|
||||||
|
<reference file="Xamarin.Platform.dll" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework="MonoAndroid10.0">
|
||||||
|
<reference file="Xamarin.Forms.Core.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||||
|
<reference file="FormsViewGroup.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Platform.Android.dll" />
|
||||||
|
<reference file="Xamarin.Platform.dll" />
|
||||||
|
</group>
|
||||||
|
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
||||||
|
<reference file="Xamarin.Forms.Core.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Platform.UAP.dll" />
|
||||||
|
<reference file="Xamarin.Platform.dll" />
|
||||||
|
</group>-->
|
||||||
|
<!-- <group targetFramework="tizen40">
|
||||||
|
<reference file="Xamarin.Forms.Core.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Platform.Tizen.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Platform.dll" />
|
||||||
|
<reference file="Xamarin.Forms.Xaml.dll" />
|
||||||
|
</group> -->
|
||||||
|
</references>
|
||||||
|
</metadata>
|
||||||
|
|
||||||
|
<files>
|
||||||
|
<!--Icon-->
|
||||||
|
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
||||||
|
|
||||||
|
<!--netstandard-->
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\netstandard2.0" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--Handlers-->
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\netstandard2.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*mdb" target="lib\netstandard2.0" />
|
||||||
|
|
||||||
|
<!--Xamlc stuff-->
|
||||||
|
<file src="Microsoft.Maui.targets" target="build" />
|
||||||
|
<file src="Microsoft.Maui.props" target="build" />
|
||||||
|
<file src="Microsoft.Maui.Controls.DefaultItems.targets" target="build" />
|
||||||
|
<file src="Microsoft.Maui.Controls.DefaultItems.props" target="build" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="build\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="build\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="build\net462" />
|
||||||
|
|
||||||
|
<!--Xamlc stuff buildTransitive-->
|
||||||
|
<file src="Microsoft.Maui.targets" target="buildTransitive" />
|
||||||
|
<file src="Microsoft.Maui.props" target="buildTransitive" />
|
||||||
|
<file src="Microsoft.Maui.Controls.DefaultItems.targets" target="buildTransitive" />
|
||||||
|
<file src="Microsoft.Maui.Controls.DefaultItems.props" target="buildTransitive" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="buildTransitive\netstandard2.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="buildTransitive\net462" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="buildTransitive\net462" />
|
||||||
|
|
||||||
|
<!-- Xaml Design-time Stuff -->
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard2.0\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard2.0\Design" />
|
||||||
|
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard1.0\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard1.0\Design" /> -->
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
||||||
|
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\tizen40\Design" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\tizen40\Design" /> -->
|
||||||
|
|
||||||
|
<!--Android 10-->
|
||||||
|
<file src="proguard.cfg" target="build\MonoAndroid10\proguard.cfg" />
|
||||||
|
<file src="proguard.cfg" target="buildTransitive\MonoAndroid10\proguard.cfg" />
|
||||||
|
|
||||||
|
<!--Android 10-->
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="lib\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.*pdb" target="lib\MonoAndroid10.0" />
|
||||||
|
|
||||||
|
<!--iPhone Unified-->
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*pdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*mdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.dll" target="lib\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.*pdb" target="lib\Xamarin.iOS10" />
|
||||||
|
|
||||||
|
<!--net5.0-windows10.0.18362.0-->
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pri" target="runtimes\net5.0-windows10.0.18362.0\native" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP\**\*.xaml" target="lib\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP" />
|
||||||
|
|
||||||
|
<!-- iOS Localized String Resource Assemblies -->
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ar\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ar" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ca\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ca" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\cs\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\cs" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\da\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\da" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\de\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\de" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\el\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\el" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\es\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\es" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fi" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fr" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\he\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\he" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hi" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hr" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hu\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hu" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\id\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\id" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\it\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\it" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ja\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ja" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ko\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ko" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ms\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ms" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nb\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nb" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nl" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pl" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt-BR\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt-BR" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ro\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ro" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ru\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ru" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sk" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sv\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sv" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\th\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\th" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\tr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\tr" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\uk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\uk" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\vi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\vi" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hans\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hans" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hant\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hant" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-HK\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-HK" />
|
||||||
|
|
||||||
|
<!--Tizen-->
|
||||||
|
<!-- <file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.*pdb" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\tizen40" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\tizen40" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\tizen40" />
|
||||||
|
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\tizen40" /> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="ref\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="ref\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\MonoAndroid10.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="ref\MonoAndroid10.0" />
|
||||||
|
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="ref\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\Xamarin.iOS10" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\xamarin.ios10\Xamarin.Platform.dll" target="ref\Xamarin.iOS10" />
|
||||||
|
|
||||||
|
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||||
|
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="ref\net5.0-windows10.0.18362.0" />
|
||||||
|
|
||||||
|
|
||||||
|
</files>
|
||||||
|
|
||||||
|
</package>
|
|
@ -0,0 +1,19 @@
|
||||||
|
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
When using Sdk-style projects and default embedded resource items are enabled, automatically
|
||||||
|
add the XAML files and fix up item metadata to pair them with code files.
|
||||||
|
This is in the props file, not the targets file, so that projects can remove/update these items.
|
||||||
|
The default value for EnableDefaultXamlItems is set in the targets, which works because
|
||||||
|
the property evaluation pass comes before the item evaluation pass.
|
||||||
|
The actual item groups are in a separate conditionally-imported file as they use constructs that
|
||||||
|
are not compatible with older MSBuild versions.
|
||||||
|
-->
|
||||||
|
<Import Project="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.DefaultItems.props" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<_IsHotRestartDefined>$([System.Text.RegularExpressions.Regex]::IsMatch('$(DefineConstants.Trim())', '(^|;)HOTRESTART($|;)'))</_IsHotRestartDefined>
|
||||||
|
<DefineConstants Condition="!$(_IsHotRestartDefined) And '$(IsHotRestartBuild)' == 'true'">HOTRESTART;$(DefineConstants)</DefineConstants>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,212 @@
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<_MauiBuildTasksLocation Condition="'$(_MauiBuildTasksLocation)' == '' AND '$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)netstandard2.0\</_MauiBuildTasksLocation>
|
||||||
|
<_MauiBuildTasksLocation Condition="'$(_MauiBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory)net462\</_MauiBuildTasksLocation>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.XamlGTask" AssemblyFile="$(_MauiBuildTasksLocation)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||||
|
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.CssGTask" AssemblyFile="$(_MauiBuildTasksLocation)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||||
|
<UsingTask TaskName="Microsoft.Maui.Controls.Build.Tasks.XamlCTask" AssemblyFile="$(_MauiBuildTasksLocation)Microsoft.Maui.Controls.Build.Tasks.dll" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<SynthesizeLinkMetadata>true</SynthesizeLinkMetadata>
|
||||||
|
<EnableDefaultXamlItems Condition="'$(EnableDefaultXamlItems)'==''">True</EnableDefaultXamlItems>
|
||||||
|
<_DefaultXamlItemsEnabled>False</_DefaultXamlItemsEnabled>
|
||||||
|
<EnableDefaultCssItems Condition="'$(EnableDefaultCssItems)'==''">True</EnableDefaultCssItems>
|
||||||
|
<_DefaultCssItemsEnabled>False</_DefaultCssItemsEnabled>
|
||||||
|
<!-- The WINUI check for this only runs when there is an empty string so I just convert false to an empty string to fall in line with our other properties -->
|
||||||
|
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'==''">true</SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||||
|
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'=='false'"></SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.DefaultItems.targets" Condition="'$(MSBuildSDKsPath)'!=''" />
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectCapability Include="XamarinForms" />
|
||||||
|
<ProjectCapability Include="Maui" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Check Tasks ABI and other validations -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<_MauiTargetsImportedAgain Condition="'$(_MauiTargetsImported)'=='True'">True</_MauiTargetsImportedAgain>
|
||||||
|
<_MauiTargetsImported>True</_MauiTargetsImported>
|
||||||
|
<IsXBuild Condition="'$(MSBuildRuntimeType)' == ''">true</IsXBuild>
|
||||||
|
<IsXBuild Condition="'$(MSBuildRuntimeType)' != ''">false</IsXBuild>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="_ValidateMauiTasks" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(MauiDisableTargetsValidation)' != 'True'">
|
||||||
|
<Error Code="XF001"
|
||||||
|
Text="Microsoft.Maui targets have been imported multiple times. Please check your project file and remove the duplicate import(s)."
|
||||||
|
Condition="'$(_MauiTargetsImportedAgain)' == 'True'" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="_ValidateMSBuild" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
|
||||||
|
<Error Code="XF003"
|
||||||
|
Text="Microsoft.Maui requires msbuild. xbuild is no longer supported."
|
||||||
|
Condition="'$(IsXBuild)' == 'true'" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="_ValidateNETFrameworkVersion"
|
||||||
|
BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
|
||||||
|
Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' AND '$(TargetFrameworkVersion.Substring(1))' < '4.6.1' AND '$(MauiDisableFrameworkVersionValidation)' != 'True'">
|
||||||
|
<Error Code="XF004"
|
||||||
|
Text="Microsoft.Maui requires .NETFramework >= v4.6.1. You have '$(TargetFrameworkVersion)'" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!-- XamlG -->
|
||||||
|
<Target
|
||||||
|
Name="UpdateDesignTimeXaml"
|
||||||
|
DependsOnTargets="XamlG"/>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<CoreCompileDependsOn>
|
||||||
|
XamlG;
|
||||||
|
$(CoreCompileDependsOn);
|
||||||
|
</CoreCompileDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target
|
||||||
|
Name="_FindXamlGFiles"
|
||||||
|
DependsOnTargets="PrepareResourceNames">
|
||||||
|
<ItemGroup>
|
||||||
|
<_XamlGInputs
|
||||||
|
Include="@(EmbeddedResource)"
|
||||||
|
Condition="'%(Extension)' == '.xaml' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||||
|
<_XamlGOutputs
|
||||||
|
Include="@(_XamlGInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target
|
||||||
|
Name="XamlG"
|
||||||
|
BeforeTargets="BeforeCompile"
|
||||||
|
DependsOnTargets="_FindXamlGFiles; PrepareResourceNames; AfterResolveReferences"
|
||||||
|
Inputs="@(_XamlGInputs)"
|
||||||
|
Outputs="@(_XamlGOutputs)">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ReferencedAssemblies>@(ReferencePath)</ReferencedAssemblies>
|
||||||
|
</PropertyGroup>
|
||||||
|
<XamlGTask
|
||||||
|
XamlFiles="@(_XamlGInputs)"
|
||||||
|
OutputFiles="@(_XamlGOutputs)"
|
||||||
|
Language="$(Language)"
|
||||||
|
References = "$(ReferencedAssemblies)"
|
||||||
|
AssemblyName="$(AssemblyName)" />
|
||||||
|
<ItemGroup>
|
||||||
|
<FileWrites Include="@(_XamlGOutputs)" />
|
||||||
|
<Compile Include="@(_XamlGOutputs)" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!-- XamlC -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<CompileDependsOn>
|
||||||
|
$(CompileDependsOn);
|
||||||
|
XamlC;
|
||||||
|
</CompileDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="XamlC"
|
||||||
|
AfterTargets="AfterCompile"
|
||||||
|
DependsOnTargets="_FindXamlGFiles"
|
||||||
|
Inputs="$(IntermediateOutputPath)$(TargetFileName)"
|
||||||
|
Outputs="$(IntermediateOutputPath)XamlC.stamp"
|
||||||
|
Condition=" '$(DesignTimeBuild)' != 'True' AND '@(_XamlGInputs->Count())' != '0' ">
|
||||||
|
<PropertyGroup>
|
||||||
|
<_MauiXamlCValidateOnly>$(MauiXamlCValidateOnly)</_MauiXamlCValidateOnly>
|
||||||
|
<_MauiXamlCValidateOnly Condition="'$(BuildingForLiveUnitTesting)' == 'True' ">True</_MauiXamlCValidateOnly>
|
||||||
|
</PropertyGroup>
|
||||||
|
<XamlCTask
|
||||||
|
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
||||||
|
ReferencePath = "@(ReferencePath)"
|
||||||
|
OptimizeIL = "true"
|
||||||
|
DebugSymbols = "$(DebugSymbols)"
|
||||||
|
DebugType = "$(DebugType)"
|
||||||
|
ValidateOnly = "$(_MauiXamlCValidateOnly)"
|
||||||
|
KeepXamlResources = "$(MauiKeepXamlResources)" />
|
||||||
|
<Touch Files="$(IntermediateOutputPath)XamlC.stamp" AlwaysCreate="True" />
|
||||||
|
<ItemGroup>
|
||||||
|
<FileWrites Include="$(IntermediateOutputPath)XamlC.stamp" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!-- CssG -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<CoreCompileDependsOn>
|
||||||
|
CssG;
|
||||||
|
$(CoreCompileDependsOn);
|
||||||
|
</CoreCompileDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="_FindCSSFiles" DependsOnTargets="PrepareResourceNames">
|
||||||
|
<ItemGroup>
|
||||||
|
<_CSSInputs Include="@(EmbeddedResource)" Condition="'%(Extension)' == '.css' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
||||||
|
<_CSSOutputs Include="@(_CSSInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CssG" BeforeTargets="BeforeCompile" DependsOnTargets="_FindCSSFiles" Inputs="@(_CSSInputs)" Outputs="@(_CSSOutputs)">
|
||||||
|
<CssGTask
|
||||||
|
CSSFiles="@(_CSSInputs)"
|
||||||
|
OutputFiles="@(_CSSOutputs)"
|
||||||
|
Language = "$(Language)"
|
||||||
|
AssemblyName = "$(AssemblyName)" />
|
||||||
|
<ItemGroup>
|
||||||
|
<FileWrites Include="@(_CSSOutputs)" />
|
||||||
|
<Compile Include="@(_CSSOutputs)" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Platform Specific Targets.
|
||||||
|
We can't use a framework specific targets file because it breaks shared projects i.e. /build/MonoAndroid10/Microsoft.Maui.Controls.targets
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- MonoAndroid targets. -->
|
||||||
|
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == 'MonoAndroid'">
|
||||||
|
<CoreCompileDependsOn>
|
||||||
|
IncludeProguardForAndroid;
|
||||||
|
$(CoreCompileDependsOn);
|
||||||
|
</CoreCompileDependsOn>
|
||||||
|
<PrepareForBuildDependsOn>
|
||||||
|
ValidateTargetFrameworkVersionForMaui;
|
||||||
|
$(PrepareForBuildDependsOn);
|
||||||
|
</PrepareForBuildDependsOn>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="IncludeProguardForAndroid" Condition="'$(MauiDisableDefaultProguardConfiguration)' != 'True'">
|
||||||
|
<ItemGroup>
|
||||||
|
<ProguardConfiguration Include="$(MSBuildThisFileDirectory)MonoAndroid10\proguard.cfg" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="ValidateTargetFrameworkVersionForMaui" Condition="'$(MauiDisableTargetFrameworkValidation)' != 'True'">
|
||||||
|
<PropertyGroup>
|
||||||
|
<MinTargetFrameworkVersionForMaui>10.0</MinTargetFrameworkVersionForMaui>
|
||||||
|
<TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))</TargetFrameworkVersionWithoutV>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Code="XF005" Condition="$(TargetFrameworkVersionWithoutV) < $(MinTargetFrameworkVersionForMaui)"
|
||||||
|
Text="The %24(TargetFrameworkVersion) for $(ProjectName) ($(TargetFrameworkVersion)) is less than the minimum required %24(TargetFrameworkVersion) for Microsoft.Maui ($(MinTargetFrameworkVersionForMaui)). You need to increase the %24(TargetFrameworkVersion) for $(ProjectName)." />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<!-- UWP Targets-->
|
||||||
|
<Target Name="WinUICheckTargetPlatformVersion" BeforeTargets="PrepareForBuild"
|
||||||
|
Condition="'$(TargetPlatformIdentifier)' == 'UAP' AND '$(TargetPlatformVersion)' != '' AND '$(TargetPlatformMinVersion)' != ''">
|
||||||
|
<PropertyGroup>
|
||||||
|
<MicrosoftUIXamlTargetPlatformMinCheckValue>$([System.Version]::Parse('$(TargetPlatformMinVersion)').Build)</MicrosoftUIXamlTargetPlatformMinCheckValue>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Warning
|
||||||
|
Text="Microsoft.Maui recommends TargetPlatformMinVersion >= 10.0.15063.0 (current project is $(MicrosoftUIXamlTargetPlatformMinCheckValue))"
|
||||||
|
Condition="$(MicrosoftUIXamlTargetPlatformMinCheckValue) < 15063" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<MicrosoftUIXamlTargetPlatformCheckValue>$([System.Version]::Parse('$(TargetPlatformVersion)').Build)</MicrosoftUIXamlTargetPlatformCheckValue>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Warning
|
||||||
|
Text="Microsoft.Maui recommends TargetPlatformVersion >= 10.0.18362.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||||
|
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 18362 AND '$(OutputType)'!='Library'" />
|
||||||
|
<Warning
|
||||||
|
Text="Microsoft.Maui recommends TargetPlatformVersion >= 10.0.14393.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
||||||
|
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 14393 AND '$(OutputType)'=='Library'" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
|
@ -1,65 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<package >
|
|
||||||
<metadata>
|
|
||||||
<id>Xamarin.Forms.Visual.Material</id>
|
|
||||||
<version>$version$</version>
|
|
||||||
<authors>Microsoft</authors>
|
|
||||||
<owners>microsoft xamarin</owners>
|
|
||||||
<tags>xamarin forms visual material xamarinforms xamarinformsvisualmaterial xamarin.forms.visual.material</tags>
|
|
||||||
<license type="expression">MIT</license>
|
|
||||||
<icon>Assets\xamarin_128x128.png</icon>
|
|
||||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
|
||||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
|
||||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
|
||||||
<description>Material renderers for Xamarin.Forms</description>
|
|
||||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
|
||||||
<dependencies>
|
|
||||||
<group>
|
|
||||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
|
||||||
</group>
|
|
||||||
<group targetFramework="MonoAndroid10">
|
|
||||||
<dependency id="Xamarin.Forms" version="$version$"/>
|
|
||||||
</group>
|
|
||||||
|
|
||||||
<group targetFramework="MonoAndroid10.0">
|
|
||||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
|
||||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
|
||||||
</group>
|
|
||||||
<group targetFramework="Xamarin.iOS10">
|
|
||||||
<dependency id="Xamarin.iOS.MaterialComponents" version="92.0.0"/>
|
|
||||||
</group>
|
|
||||||
<group targetFramework="tizen40">
|
|
||||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
|
||||||
<dependency id="Tizen.NET.MaterialComponents" version="0.9.7-preview"/>
|
|
||||||
</group>
|
|
||||||
</dependencies>
|
|
||||||
</metadata>
|
|
||||||
<files>
|
|
||||||
<!--Icon-->
|
|
||||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
|
||||||
<!--netstandard-->
|
|
||||||
<file src="_._" target="lib\netstandard1.0\_._" />
|
|
||||||
|
|
||||||
<!--Android 10-->
|
|
||||||
<file src="_._" target="lib\MonoAndroid10\_._" />
|
|
||||||
<file src="Xamarin.Forms.Visual.Material.targets" target="build\MonoAndroid10\Xamarin.Forms.Visual.Material.targets" />
|
|
||||||
|
|
||||||
<!--Android 10 buildTransitive-->
|
|
||||||
<file src="Xamarin.Forms.Visual.Material.targets" target="buildTransitive\MonoAndroid10\Xamarin.Forms.Visual.Material.targets" />
|
|
||||||
|
|
||||||
<!--Android 10.0-->
|
|
||||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\Xamarin.Forms.Material.Android\bin\$Configuration$\monoandroid10.0\Xamarin.Forms.Material.*mdb" target="lib\MonoAndroid10.0" />
|
|
||||||
|
|
||||||
<!--iOS-->
|
|
||||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.dll" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*pdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\Xamarin.Forms.Material.iOS\bin\$Configuration$\Xamarin.Forms.Material.*mdb" target="lib\Xamarin.iOS10" />
|
|
||||||
|
|
||||||
<!--Tizen-->
|
|
||||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.dll" target="lib\tizen40" />
|
|
||||||
<file src="..\Xamarin.Forms.Material.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Material.*pdb" target="lib\tizen40" />
|
|
||||||
|
|
||||||
</files>
|
|
||||||
</package>
|
|
|
@ -1,275 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<package >
|
|
||||||
<metadata>
|
|
||||||
<id>Xamarin.Forms</id>
|
|
||||||
<version>$version$</version>
|
|
||||||
<authors>Microsoft</authors>
|
|
||||||
<owners>microsoft xamarin</owners>
|
|
||||||
<tags>xamarin forms xamarinforms xamarin.forms</tags>
|
|
||||||
<license type="expression">MIT</license>
|
|
||||||
<icon>Assets\xamarin_128x128.png</icon>
|
|
||||||
<projectUrl>http://xamarin.com/forms</projectUrl>
|
|
||||||
<repository type="git" url="https://github.com/xamarin/xamarin.forms"/>
|
|
||||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
|
||||||
<description>Build native UIs for iOS, Android, UWP, macOS, Tizen and many more from a single, shared C# codebase</description>
|
|
||||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
|
||||||
<dependencies>
|
|
||||||
<group targetFramework="MonoAndroid10.0">
|
|
||||||
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
|
|
||||||
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
|
|
||||||
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6" />
|
|
||||||
<dependency id="Xamarin.AndroidX.Browser" version="1.3.0" />
|
|
||||||
</group>
|
|
||||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
|
||||||
<dependency id="Microsoft.WinUI" version="3.0.0-preview3.201113.0" />
|
|
||||||
</group>-->
|
|
||||||
<group targetFramework="netstandard2.0">
|
|
||||||
</group>
|
|
||||||
<group targetFramework="Xamarin.iOS10">
|
|
||||||
</group>
|
|
||||||
<!-- <group targetFramework="tizen40">
|
|
||||||
<dependency id="Tizen.NET" version="4.0.0"/>
|
|
||||||
<dependency id="SkiaSharp.Views" version="2.80.2"/>
|
|
||||||
</group> -->
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
|
||||||
<!-- IF YOU DELETE THESE REFERENCES THE PACKAGE WILL NOT WORK ON MAC -->
|
|
||||||
<!-- https://github.com/xamarin/Xamarin.Forms/pull/2575 -->
|
|
||||||
<!-- DO NOT DELETE THESE REFERENCES -->
|
|
||||||
<references>
|
|
||||||
<group>
|
|
||||||
<reference file="Xamarin.Forms.Core.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
|
||||||
<reference file="Xamarin.Platform.dll" />
|
|
||||||
</group>
|
|
||||||
<group targetFramework="Xamarin.iOS10">
|
|
||||||
<reference file="Xamarin.Forms.Core.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Platform.iOS.dll" />
|
|
||||||
<reference file="Xamarin.Platform.dll" />
|
|
||||||
</group>
|
|
||||||
<group targetFramework="MonoAndroid10.0">
|
|
||||||
<reference file="Xamarin.Forms.Core.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
|
||||||
<reference file="FormsViewGroup.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Platform.Android.dll" />
|
|
||||||
<reference file="Xamarin.Platform.dll" />
|
|
||||||
</group>
|
|
||||||
<!--<group targetFramework="net6.0-windows10.0.18362.0">
|
|
||||||
<reference file="Xamarin.Forms.Core.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Platform.UAP.dll" />
|
|
||||||
<reference file="Xamarin.Platform.dll" />
|
|
||||||
</group>-->
|
|
||||||
<!-- <group targetFramework="tizen40">
|
|
||||||
<reference file="Xamarin.Forms.Core.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Platform.Tizen.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Platform.dll" />
|
|
||||||
<reference file="Xamarin.Forms.Xaml.dll" />
|
|
||||||
</group> -->
|
|
||||||
</references>
|
|
||||||
</metadata>
|
|
||||||
|
|
||||||
<files>
|
|
||||||
<!--Icon-->
|
|
||||||
<file src="..\Assets\xamarin_128x128.png" target="Assets\" />
|
|
||||||
|
|
||||||
<!--netstandard-->
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\netstandard2.0" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--Handlers-->
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\netstandard2.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*mdb" target="lib\netstandard2.0" />
|
|
||||||
|
|
||||||
<!--Xamlc stuff-->
|
|
||||||
<file src="Xamarin.Forms.targets" target="build" />
|
|
||||||
<file src="Xamarin.Forms.props" target="build" />
|
|
||||||
<file src="Xamarin.Forms.DefaultItems.targets" target="build" />
|
|
||||||
<file src="Xamarin.Forms.DefaultItems.props" target="build" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="build\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="build\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="build\net462" />
|
|
||||||
|
|
||||||
<!--Xamlc stuff buildTransitive-->
|
|
||||||
<file src="Xamarin.Forms.targets" target="buildTransitive" />
|
|
||||||
<file src="Xamarin.Forms.props" target="buildTransitive" />
|
|
||||||
<file src="Xamarin.Forms.DefaultItems.targets" target="buildTransitive" />
|
|
||||||
<file src="Xamarin.Forms.DefaultItems.props" target="buildTransitive" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Mdb.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Pdb.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\Mono.Cecil.Rocks.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\netstandard2.0\System.CodeDom.dll" target="buildTransitive\netstandard2.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Build.Tasks.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Core.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Xamarin.Forms.Xaml.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Mdb.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Pdb.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\Mono.Cecil.Rocks.dll" target="buildTransitive\net462" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Build.Tasks\bin\$Configuration$\net462\System.ValueTuple.dll" target="buildTransitive\net462" />
|
|
||||||
|
|
||||||
<!-- Xaml Design-time Stuff -->
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard2.0\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard2.0\Design" />
|
|
||||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\netstandard1.0\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\netstandard1.0\Design" /> -->
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\MonoAndroid10.0\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\Xamarin.iOS10\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\net5.0-windows10.0.18362.0\Design" />
|
|
||||||
<!-- <file src="..\src\Forms\src\Xamarin.Forms.Core.Design\bin\$Configuration$\Xamarin.Forms.Core.Design.dll" target="lib\tizen40\Design" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml.Design\bin\$Configuration$\Xamarin.Forms.Xaml.Design.dll" target="lib\tizen40\Design" /> -->
|
|
||||||
|
|
||||||
<!--Android 10-->
|
|
||||||
<file src="proguard.cfg" target="build\MonoAndroid10\proguard.cfg" />
|
|
||||||
<file src="proguard.cfg" target="buildTransitive\MonoAndroid10\proguard.cfg" />
|
|
||||||
|
|
||||||
<!--Android 10-->
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="lib\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.*pdb" target="lib\MonoAndroid10.0" />
|
|
||||||
|
|
||||||
<!--iPhone Unified-->
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*pdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.*mdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*mdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Core.xml" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\eng\docs\**\Xamarin.Forms.Xaml.xml" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*mdb" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.dll" target="lib\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\Xamarin.iOS10\Xamarin.Platform.*pdb" target="lib\Xamarin.iOS10" />
|
|
||||||
|
|
||||||
<!--net5.0-windows10.0.18362.0-->
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.*pri" target="runtimes\net5.0-windows10.0.18362.0\native" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.*pdb" target="lib\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP\**\*.xaml" target="lib\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP" />
|
|
||||||
|
|
||||||
<!-- iOS Localized String Resource Assemblies -->
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ar\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ar" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ca\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ca" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\cs\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\cs" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\da\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\da" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\de\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\de" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\el\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\el" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\es\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\es" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fi" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\fr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\fr" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\he\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\he" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hi" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hr" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\hu\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\hu" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\id\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\id" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\it\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\it" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ja\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ja" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ko\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ko" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ms\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ms" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nb\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nb" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\nl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\nl" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pl\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pl" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt-BR\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt-BR" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\pt\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\pt" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ro\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ro" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\ru\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\ru" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sk" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\sv\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\sv" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\th\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\th" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\tr\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\tr" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\uk\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\uk" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\vi\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\vi" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hans\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hans" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-Hant\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-Hant" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\zh-HK\Xamarin.Forms.Platform.iOS.resources.dll" target="lib\Xamarin.iOS10\zh-HK" />
|
|
||||||
|
|
||||||
<!--Tizen-->
|
|
||||||
<!-- <file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.*pdb" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Tizen\bin\$Configuration$\tizen40\Xamarin.Forms.Platform.Tizen.dll" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.*pdb" target="lib\tizen40" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Core.xml" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="lib\tizen40" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.*pdb" target="lib\tizen40" />
|
|
||||||
<file src="..\eng\docs\Xamarin.Forms.Xaml.xml" target="lib\tizen40" /> -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\bin\$Configuration$\MonoAndroid10.0\Xamarin.Forms.Platform.Android.dll" target="ref\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\bin\$Configuration$\FormsViewGroup.dll" target="ref\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\MonoAndroid10.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\monoandroid10.0\Xamarin.Platform.dll" target="ref\MonoAndroid10.0" />
|
|
||||||
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\bin\$Configuration$\Xamarin.Forms.Platform.iOS.dll" target="ref\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\Xamarin.iOS10" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\xamarin.ios10\Xamarin.Platform.dll" target="ref\Xamarin.iOS10" />
|
|
||||||
|
|
||||||
<file src="..\src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\bin\$Configuration$\net5.0-windows10.0.18362.0\Xamarin.Forms.Platform.UAP.dll" target="ref\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Core\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Core.dll" target="ref\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Forms\src\Xamarin.Forms.Xaml\bin\$Configuration$\netstandard2.0\Xamarin.Forms.Xaml.dll" target="ref\net5.0-windows10.0.18362.0" />
|
|
||||||
<file src="..\src\Platform.Handlers\src\Xamarin.Platform.Handlers\bin\$Configuration$\netstandard2.0\Xamarin.Platform.dll" target="ref\net5.0-windows10.0.18362.0" />
|
|
||||||
|
|
||||||
|
|
||||||
</files>
|
|
||||||
|
|
||||||
</package>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
When using Sdk-style projects and default embedded resource items are enabled, automatically
|
|
||||||
add the XAML files and fix up item metadata to pair them with code files.
|
|
||||||
This is in the props file, not the targets file, so that projects can remove/update these items.
|
|
||||||
The default value for EnableDefaultXamlItems is set in the targets, which works because
|
|
||||||
the property evaluation pass comes before the item evaluation pass.
|
|
||||||
|
|
||||||
The actual item groups are in a separate conditionally-imported file as they use constructs that
|
|
||||||
are not compatible with older MSBuild versions.
|
|
||||||
-->
|
|
||||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Forms.DefaultItems.props" Condition="'$(MSBuildSDKsPath)'!=''" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<_IsHotRestartDefined>$([System.Text.RegularExpressions.Regex]::IsMatch('$(DefineConstants.Trim())', '(^|;)HOTRESTART($|;)'))</_IsHotRestartDefined>
|
|
||||||
<DefineConstants Condition="!$(_IsHotRestartDefined) And '$(IsHotRestartBuild)' == 'true'">HOTRESTART;$(DefineConstants)</DefineConstants>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
|
@ -1,211 +0,0 @@
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<_XFBuildTasksLocation Condition="'$(_XFBuildTasksLocation)' == '' AND '$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)netstandard2.0\</_XFBuildTasksLocation>
|
|
||||||
<_XFBuildTasksLocation Condition="'$(_XFBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory)net462\</_XFBuildTasksLocation>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlGTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
|
||||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.CssGTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
|
||||||
<UsingTask TaskName="Xamarin.Forms.Build.Tasks.XamlCTask" AssemblyFile="$(_XFBuildTasksLocation)Xamarin.Forms.Build.Tasks.dll" />
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<SynthesizeLinkMetadata>true</SynthesizeLinkMetadata>
|
|
||||||
<EnableDefaultXamlItems Condition="'$(EnableDefaultXamlItems)'==''">True</EnableDefaultXamlItems>
|
|
||||||
<_DefaultXamlItemsEnabled>False</_DefaultXamlItemsEnabled>
|
|
||||||
<EnableDefaultCssItems Condition="'$(EnableDefaultCssItems)'==''">True</EnableDefaultCssItems>
|
|
||||||
<_DefaultCssItemsEnabled>False</_DefaultCssItemsEnabled>
|
|
||||||
<!-- The WINUI check for this only runs when there is an empty string so I just convert false to an empty string to fall in line with our other properties -->
|
|
||||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'==''">true</SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
|
||||||
<SkipMicrosoftUIXamlCheckTargetPlatformVersion Condition="'$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'=='false'"></SkipMicrosoftUIXamlCheckTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Import Project="$(MSBuildThisFileDirectory)Xamarin.Forms.DefaultItems.targets" Condition="'$(MSBuildSDKsPath)'!=''" />
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectCapability Include="XamarinForms" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<!-- Check Tasks ABI and other validations -->
|
|
||||||
<PropertyGroup>
|
|
||||||
<_XFTargetsImportedAgain Condition="'$(_XFTargetsImported)'=='True'">True</_XFTargetsImportedAgain>
|
|
||||||
<_XFTargetsImported>True</_XFTargetsImported>
|
|
||||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' == ''">true</IsXBuild>
|
|
||||||
<IsXBuild Condition="'$(MSBuildRuntimeType)' != ''">false</IsXBuild>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Target Name="_ValidateXFTasks" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(XFDisableTargetsValidation)' != 'True'">
|
|
||||||
<Error Code="XF001"
|
|
||||||
Text="Xamarin.Forms targets have been imported multiple times. Please check your project file and remove the duplicate import(s)."
|
|
||||||
Condition="'$(_XFTargetsImportedAgain)' == 'True'" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="_ValidateMSBuild" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
|
|
||||||
<Error Code="XF003"
|
|
||||||
Text="Xamarin.Forms require msbuild. xbuild is no longer supported."
|
|
||||||
Condition="'$(IsXBuild)' == 'true'" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="_ValidateNETFrameworkVersion"
|
|
||||||
BeforeTargets="_CheckForInvalidConfigurationAndPlatform"
|
|
||||||
Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' AND '$(TargetFrameworkVersion.Substring(1))' < '4.6.1' AND '$(XFDisableFrameworkVersionValidation)' != 'True'">
|
|
||||||
<Error Code="XF004"
|
|
||||||
Text="XF requires .NETFramework >= v4.6.1. You have '$(TargetFrameworkVersion)'" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<!-- XamlG -->
|
|
||||||
<Target
|
|
||||||
Name="UpdateDesignTimeXaml"
|
|
||||||
DependsOnTargets="XamlG"/>
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<CoreCompileDependsOn>
|
|
||||||
XamlG;
|
|
||||||
$(CoreCompileDependsOn);
|
|
||||||
</CoreCompileDependsOn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Target
|
|
||||||
Name="_FindXamlGFiles"
|
|
||||||
DependsOnTargets="PrepareResourceNames">
|
|
||||||
<ItemGroup>
|
|
||||||
<_XamlGInputs
|
|
||||||
Include="@(EmbeddedResource)"
|
|
||||||
Condition="'%(Extension)' == '.xaml' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
|
||||||
<_XamlGOutputs
|
|
||||||
Include="@(_XamlGInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target
|
|
||||||
Name="XamlG"
|
|
||||||
BeforeTargets="BeforeCompile"
|
|
||||||
DependsOnTargets="_FindXamlGFiles; PrepareResourceNames; AfterResolveReferences"
|
|
||||||
Inputs="@(_XamlGInputs)"
|
|
||||||
Outputs="@(_XamlGOutputs)">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ReferencedAssemblies>@(ReferencePath)</ReferencedAssemblies>
|
|
||||||
</PropertyGroup>
|
|
||||||
<XamlGTask
|
|
||||||
XamlFiles="@(_XamlGInputs)"
|
|
||||||
OutputFiles="@(_XamlGOutputs)"
|
|
||||||
Language="$(Language)"
|
|
||||||
References = "$(ReferencedAssemblies)"
|
|
||||||
AssemblyName="$(AssemblyName)" />
|
|
||||||
<ItemGroup>
|
|
||||||
<FileWrites Include="@(_XamlGOutputs)" />
|
|
||||||
<Compile Include="@(_XamlGOutputs)" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<!-- XamlC -->
|
|
||||||
<PropertyGroup>
|
|
||||||
<CompileDependsOn>
|
|
||||||
$(CompileDependsOn);
|
|
||||||
XamlC;
|
|
||||||
</CompileDependsOn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Target Name="XamlC"
|
|
||||||
AfterTargets="AfterCompile"
|
|
||||||
DependsOnTargets="_FindXamlGFiles"
|
|
||||||
Inputs="$(IntermediateOutputPath)$(TargetFileName)"
|
|
||||||
Outputs="$(IntermediateOutputPath)XamlC.stamp"
|
|
||||||
Condition=" '$(DesignTimeBuild)' != 'True' AND '@(_XamlGInputs->Count())' != '0' ">
|
|
||||||
<PropertyGroup>
|
|
||||||
<_XFXamlCValidateOnly>$(XFXamlCValidateOnly)</_XFXamlCValidateOnly>
|
|
||||||
<_XFXamlCValidateOnly Condition="'$(BuildingForLiveUnitTesting)' == 'True' ">True</_XFXamlCValidateOnly>
|
|
||||||
</PropertyGroup>
|
|
||||||
<XamlCTask
|
|
||||||
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
|
|
||||||
ReferencePath = "@(ReferencePath)"
|
|
||||||
OptimizeIL = "true"
|
|
||||||
DebugSymbols = "$(DebugSymbols)"
|
|
||||||
DebugType = "$(DebugType)"
|
|
||||||
ValidateOnly = "$(_XFXamlCValidateOnly)"
|
|
||||||
KeepXamlResources = "$(XFKeepXamlResources)" />
|
|
||||||
<Touch Files="$(IntermediateOutputPath)XamlC.stamp" AlwaysCreate="True" />
|
|
||||||
<ItemGroup>
|
|
||||||
<FileWrites Include="$(IntermediateOutputPath)XamlC.stamp" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<!-- CssG -->
|
|
||||||
<PropertyGroup>
|
|
||||||
<CoreCompileDependsOn>
|
|
||||||
CssG;
|
|
||||||
$(CoreCompileDependsOn);
|
|
||||||
</CoreCompileDependsOn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Target Name="_FindCSSFiles" DependsOnTargets="PrepareResourceNames">
|
|
||||||
<ItemGroup>
|
|
||||||
<_CSSInputs Include="@(EmbeddedResource)" Condition="'%(Extension)' == '.css' AND '$(DefaultLanguageSourceExtension)' == '.cs' AND '%(TargetPath)' != ''" />
|
|
||||||
<_CSSOutputs Include="@(_CSSInputs->'$(IntermediateOutputPath)%(TargetPath).g.cs')" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="CssG" BeforeTargets="BeforeCompile" DependsOnTargets="_FindCSSFiles" Inputs="@(_CSSInputs)" Outputs="@(_CSSOutputs)">
|
|
||||||
<CssGTask
|
|
||||||
CSSFiles="@(_CSSInputs)"
|
|
||||||
OutputFiles="@(_CSSOutputs)"
|
|
||||||
Language = "$(Language)"
|
|
||||||
AssemblyName = "$(AssemblyName)" />
|
|
||||||
<ItemGroup>
|
|
||||||
<FileWrites Include="@(_CSSOutputs)" />
|
|
||||||
<Compile Include="@(_CSSOutputs)" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Platform Specific Targets.
|
|
||||||
We can't use a framework specific targets file because it breaks shared projects i.e. /build/MonoAndroid10/Xamarin.Forms.targets
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- MonoAndroid targets. -->
|
|
||||||
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == 'MonoAndroid'">
|
|
||||||
<CoreCompileDependsOn>
|
|
||||||
IncludeProguardForAndroid;
|
|
||||||
$(CoreCompileDependsOn);
|
|
||||||
</CoreCompileDependsOn>
|
|
||||||
<PrepareForBuildDependsOn>
|
|
||||||
ValidateTargetFrameworkVersionForForms;
|
|
||||||
$(PrepareForBuildDependsOn);
|
|
||||||
</PrepareForBuildDependsOn>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<Target Name="IncludeProguardForAndroid" Condition="'$(XFDisableDefaultProguardConfiguration)' != 'True'">
|
|
||||||
<ItemGroup>
|
|
||||||
<ProguardConfiguration Include="$(MSBuildThisFileDirectory)MonoAndroid10\proguard.cfg" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="ValidateTargetFrameworkVersionForForms" Condition="'$(XFDisableTargetFrameworkValidation)' != 'True'">
|
|
||||||
<PropertyGroup>
|
|
||||||
<MinTargetFrameworkVersionForForms>10.0</MinTargetFrameworkVersionForForms>
|
|
||||||
<TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))</TargetFrameworkVersionWithoutV>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Error Code="XF005" Condition="$(TargetFrameworkVersionWithoutV) < $(MinTargetFrameworkVersionForForms)"
|
|
||||||
Text="The %24(TargetFrameworkVersion) for $(ProjectName) ($(TargetFrameworkVersion)) is less than the minimum required %24(TargetFrameworkVersion) for Xamarin.Forms ($(MinTargetFrameworkVersionForForms)). You need to increase the %24(TargetFrameworkVersion) for $(ProjectName)." />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<!-- UWP Targets-->
|
|
||||||
<Target Name="WinUICheckTargetPlatformVersion" BeforeTargets="PrepareForBuild"
|
|
||||||
Condition="'$(TargetPlatformIdentifier)' == 'UAP' AND '$(TargetPlatformVersion)' != '' AND '$(TargetPlatformMinVersion)' != ''">
|
|
||||||
<PropertyGroup>
|
|
||||||
<MicrosoftUIXamlTargetPlatformMinCheckValue>$([System.Version]::Parse('$(TargetPlatformMinVersion)').Build)</MicrosoftUIXamlTargetPlatformMinCheckValue>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Warning
|
|
||||||
Text="Xamarin.Forms recommends TargetPlatformMinVersion >= 10.0.15063.0 (current project is $(MicrosoftUIXamlTargetPlatformMinCheckValue))"
|
|
||||||
Condition="$(MicrosoftUIXamlTargetPlatformMinCheckValue) < 15063" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<MicrosoftUIXamlTargetPlatformCheckValue>$([System.Version]::Parse('$(TargetPlatformVersion)').Build)</MicrosoftUIXamlTargetPlatformCheckValue>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Warning
|
|
||||||
Text="Xamarin.Forms recommends TargetPlatformVersion >= 10.0.18362.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
|
||||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 18362 AND '$(OutputType)'!='Library'" />
|
|
||||||
<Warning
|
|
||||||
Text="Xamarin.Forms recommends TargetPlatformVersion >= 10.0.14393.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
|
|
||||||
Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) < 14393 AND '$(OutputType)'=='Library'" />
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
|
@ -0,0 +1,971 @@
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30503.244
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{9AD757F5-E57A-459D-A0A7-E0675E045B84}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{29AC50BF-B4FB-450B-9386-0C5AD4B84226}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android", "src\Compatibility\Core\src\Android\Compatibility.Android.csproj", "{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuspec", ".nuspec", "{7E12C50D-A570-4DF1-94E1-8599843FA87C}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Debug.targets = .nuspec\Microsoft.Maui.Controls.Debug.targets
|
||||||
|
.nuspec\Microsoft.Maui.Controls.DefaultItems.props = .nuspec\Microsoft.Maui.Controls.DefaultItems.props
|
||||||
|
.nuspec\Microsoft.Maui.Controls.DefaultItems.targets = .nuspec\Microsoft.Maui.Controls.DefaultItems.targets
|
||||||
|
.nuspec\Microsoft.Maui.Controls.DualScreen.nuspec = .nuspec\Microsoft.Maui.Controls.DualScreen.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.MultiTargeting.targets = .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets
|
||||||
|
.nuspec\Microsoft.Maui.Controls.nuspec = .nuspec\Microsoft.Maui.Controls.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.props = .nuspec\Microsoft.Maui.Controls.props
|
||||||
|
.nuspec\Microsoft.Maui.Controls.targets = .nuspec\Microsoft.Maui.Controls.targets
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Visual.Material.nuspec = .nuspec\Microsoft.Maui.Controls.Visual.Material.nuspec
|
||||||
|
.nuspec\Microsoft.Maui.Controls.Visual.Material.targets = .nuspec\Microsoft.Maui.Controls.Visual.Material.targets
|
||||||
|
.nuspec\proguard.cfg = .nuspec\proguard.cfg
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core", "src\Controls\src\Core\Controls.Core.csproj", "{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Handlers", "Handlers", "{31721EFD-3238-462B-B501-41F3D2B50E92}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{97FA536A-675D-41C7-A90E-97E2F79D1AE2}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{423C21C8-84CB-4A3C-BEB9-1C23D752D90F}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\src\Core.csproj", "{29913989-0F70-48D8-8EDE-B1DD217F21D1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Android.FormsViewGroup", "src\Compatibility\Core\src\Android.FormsViewGroup\Compatibility.Android.FormsViewGroup.csproj", "{3B72465B-ACAE-43AE-9327-10F372FE5F80}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.iOS", "src\Compatibility\Core\src\iOS\Compatibility.iOS.csproj", "{271193C1-6E7C-429C-A36D-3F1BE5267231}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D5B986A3-7FC9-437E-8030-349AA4698DFD}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{75A2CD30-BB85-4CA6-AC95-86A8A538A690}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.UnitTests", "src\Controls\tests\Core.UnitTests\Controls.Core.UnitTests.csproj", "{00259593-A283-47A5-ACB7-9C3819B16364}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml", "src\Controls\src\Xaml\Controls.Xaml.csproj", "{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Maps", "src\Controls\Maps\src\Controls.Maps.csproj", "{F137FAC5-3385-4B19-988B-4A14ED84CCC6}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks", "src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj", "{C328C538-B69F-43D2-80EE-3C1EB8254CBA}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.UnitTests", "src\Core\tests\UnitTests\Core.UnitTests.csproj", "{7A753001-1C3D-404D-A421-2E052A545EAC}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Control Gallery", "Control Gallery", "{F07FDC58-64A0-42DA-8556-09742721F15E}"
|
||||||
|
EndProject
|
||||||
|
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Controls.Issues.Shared", "src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.shproj", "{0F0DB9CC-EA65-429C-9363-38624BF8F49C}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Controls", "src\ControlGallery\src\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj", "{7AD93806-111D-4FDC-B48D-9566765185FF}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.Android", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.Android\Xamarin.Forms.ControlGallery.Android.csproj", "{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility.Maps", "Compatibility.Maps", "{8A70C15D-86D3-4086-A8C5-E17B299EA970}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Maps.Android", "src\Compatibility\Maps\src\Android\Compatibility.Maps.Android.csproj", "{1D11EC11-4734-47D4-9B62-4D03CFF67090}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls.Xaml", "Controls.Xaml", "{E7F90170-B71B-4730-A082-1DF4E4F04420}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.Xaml.Design", "src\Controls\src\Xaml.Design\Controls.Xaml.Design.csproj", "{65BC4888-CC59-428A-9B75-540CF1C09480}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests", "src\Controls\tests\Xaml.UnitTests\Controls.Xaml.UnitTests.csproj", "{5997F786-4526-4A4B-BFC6-3832091D6544}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.Core.Design", "src\Controls\src\Core.Design\Controls.Core.Design.csproj", "{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android.AppLinks", "src\Compatibility\Core\src\Android.AppLinks\Compatibility.Android.AppLinks.csproj", "{10553575-8E27-4E2C-9E88-90B015E80F1C}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.CustomAttributes", "src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj", "{2964F669-7CD9-4D78-B4D9-804A965D58C0}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5E27729-44E8-4BE6-A62E-45FF27449B8F}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5CE892DB-8CA2-42E4-8130-2836D28AD8DB}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Android.UnitTests", "src\Compatibility\Core\tests\Android\Compatibility.Android.UnitTests.csproj", "{A4C57790-71D1-467C-A69E-2BD84CB6666C}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.iOS", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.iOS\Xamarin.Forms.ControlGallery.iOS.csproj", "{C7131F14-274F-4B55-ACA9-E81731AD012F}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.iOS.UnitTests", "src\Compatibility\Core\tests\iOS\Compatibility.iOS.UnitTests.csproj", "{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.Maps.iOS", "src\Compatibility\Maps\src\iOS\Compatibility.Maps.iOS.csproj", "{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52963C98-6AD9-4B57-924F-BE58DC36D746}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.iOS.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.iOS.UITests\Xamarin.Forms.Core.iOS.UITests.csproj", "{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}"
|
||||||
|
EndProject
|
||||||
|
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Core.UITests.Shared", "src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.Shared.shproj", "{E175485B-3C8C-47D7-8DD5-F7FED627EB25}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.Android.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.Android.UITests\Xamarin.Forms.Core.Android.UITests.csproj", "{A34EBE01-25BF-4E69-A2DC-2288DC625541}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.UAP", "src\Compatibility\Core\src\UAP\Compatibility.UAP.csproj", "{DD10263D-D580-4241-9E21-EB5DE0FC83C3}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.ControlGallery.WindowsUniversal", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal\Xamarin.Forms.ControlGallery.WindowsUniversal.csproj", "{AC257966-9368-478A-9DF4-F0D28E320FE3}"
|
||||||
|
EndProject
|
||||||
|
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Xamarin.Forms.ControlGallery.WindowsUniversal (Package)", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal (Package)\Xamarin.Forms.ControlGallery.WindowsUniversal (Package).wapproj", "{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.UAP.UnitTests", "src\Compatibility\Core\tests\UAP\Compatibility.UAP.UnitTests.csproj", "{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{0f0db9cc-ea65-429c-9363-38624bf8f49c}*SharedItemsImports = 13
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{7ad93806-111d-4fdc-b48d-9566765185ff}*SharedItemsImports = 5
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{e175485b-3c8c-47d7-8dd5-f7fed627eb25}*SharedItemsImports = 13
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
||||||
|
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|iPhone = Debug|iPhone
|
||||||
|
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|iPhone = Release|iPhone
|
||||||
|
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Deploy.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Deploy.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM64.ActiveCfg = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Deploy.0 = Debug|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.ActiveCfg = Release|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Build.0 = Release|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Deploy.0 = Release|ARM
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM64.ActiveCfg = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhone.ActiveCfg = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Build.0 = Release|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Build.0 = Release|x86
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Deploy.0 = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM.ActiveCfg = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.ActiveCfg = Debug|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Build.0 = Debug|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Deploy.0 = Debug|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Deploy.0 = Debug|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM.ActiveCfg = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.ActiveCfg = Release|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Build.0 = Release|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Deploy.0 = Release|arm64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhone.ActiveCfg = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Build.0 = Release|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Build.0 = Release|x86
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Deploy.0 = Release|x86
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{9AD757F5-E57A-459D-A0A7-E0675E045B84} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||||
|
{29AC50BF-B4FB-450B-9386-0C5AD4B84226} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||||
|
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||||
|
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
||||||
|
{423C21C8-84CB-4A3C-BEB9-1C23D752D90F} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
||||||
|
{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
||||||
|
{29913989-0F70-48D8-8EDE-B1DD217F21D1} = {423C21C8-84CB-4A3C-BEB9-1C23D752D90F}
|
||||||
|
{3B72465B-ACAE-43AE-9327-10F372FE5F80} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||||
|
{271193C1-6E7C-429C-A36D-3F1BE5267231} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||||
|
{D5B986A3-7FC9-437E-8030-349AA4698DFD} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
||||||
|
{75A2CD30-BB85-4CA6-AC95-86A8A538A690} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
||||||
|
{00259593-A283-47A5-ACB7-9C3819B16364} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
||||||
|
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||||
|
{F137FAC5-3385-4B19-988B-4A14ED84CCC6} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||||
|
{C328C538-B69F-43D2-80EE-3C1EB8254CBA} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||||
|
{7A753001-1C3D-404D-A421-2E052A545EAC} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}
|
||||||
|
{0F0DB9CC-EA65-429C-9363-38624BF8F49C} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{7AD93806-111D-4FDC-B48D-9566765185FF} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{8A70C15D-86D3-4086-A8C5-E17B299EA970} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||||
|
{1D11EC11-4734-47D4-9B62-4D03CFF67090} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||||
|
{E7F90170-B71B-4730-A082-1DF4E4F04420} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
||||||
|
{65BC4888-CC59-428A-9B75-540CF1C09480} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||||
|
{5997F786-4526-4A4B-BFC6-3832091D6544} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
||||||
|
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
||||||
|
{10553575-8E27-4E2C-9E88-90B015E80F1C} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||||
|
{2964F669-7CD9-4D78-B4D9-804A965D58C0} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
||||||
|
{B5E27729-44E8-4BE6-A62E-45FF27449B8F} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
||||||
|
{5CE892DB-8CA2-42E4-8130-2836D28AD8DB} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
||||||
|
{A4C57790-71D1-467C-A69E-2BD84CB6666C} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||||
|
{C7131F14-274F-4B55-ACA9-E81731AD012F} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||||
|
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
||||||
|
{52963C98-6AD9-4B57-924F-BE58DC36D746} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
||||||
|
{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
||||||
|
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||||
|
{E175485B-3C8C-47D7-8DD5-F7FED627EB25} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||||
|
{A34EBE01-25BF-4E69-A2DC-2288DC625541} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
||||||
|
{DD10263D-D580-4241-9E21-EB5DE0FC83C3} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
||||||
|
{AC257966-9368-478A-9DF4-F0D28E320FE3} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
||||||
|
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -10,7 +10,7 @@
|
||||||
<IncludeSymbols>true</IncludeSymbols>
|
<IncludeSymbols>true</IncludeSymbols>
|
||||||
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
|
||||||
<Company>Microsoft</Company>
|
<Company>Microsoft</Company>
|
||||||
<Product>Xamarin.Forms</Product>
|
<Product>Microsoft.Maui</Product>
|
||||||
<ProduceReferenceAssembly Condition="'$(UsingMicrosoftNETSdk)' == 'True' AND '$(Configuration)' == 'Debug'">True</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly Condition="'$(UsingMicrosoftNETSdk)' == 'True' AND '$(Configuration)' == 'Debug'">True</ProduceReferenceAssembly>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
81
Maui.sln
81
Maui.sln
|
@ -1,81 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.30926.220
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Platform.Handlers-net6", "src\Platform.Handlers\src\Xamarin.Platform.Handlers\Xamarin.Platform.Handlers-net6.csproj", "{95BA42B5-B00E-4986-B9B5-517140378452}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{449F6071-A74F-4309-8D7B-7038CFD1B17B}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
README.md = README.md
|
|
||||||
.nuspec\Xamarin.Forms.MultiTargeting.targets = .nuspec\Xamarin.Forms.MultiTargeting.targets
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Core-net6", "src\Forms\src\Xamarin.Forms.Core\Xamarin.Forms.Core-net6.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Compatibility-net6", "src\Platform.Renderers\src\Maui.Controls.Compatibility\Maui.Controls.Compatibility-net6.csproj", "{00A11C2F-969F-4964-8557-91ADF4B1523D}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.Android.FormsViewGroup-net6", "src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\Xamarin.Forms.Platform.Android.FormsViewGroup-net6.csproj", "{EB956381-F3E6-437C-9069-36B8BF5C6E2F}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maui.Controls", "Maui.Controls", "{459BF674-83CB-46F6-881F-A2D2117DBF4D}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E1082E26-D700-4127-9329-66D673FD2D55}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample-net6", "src\Forms\samples\Maui.Controls.Sample\Maui.Controls.Sample-net6.csproj", "{B8DC1324-977C-46F1-B697-9064ADE6099A}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Droid-net6", "src\Forms\samples\Maui.Controls.Sample.Droid\Maui.Controls.Sample.Droid-net6.csproj", "{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.iOS-net6", "src\Forms\samples\Maui.Controls.Sample.iOS\Maui.Controls.Sample.iOS-net6.csproj", "{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
|
||||||
{00A11C2F-969F-4964-8557-91ADF4B1523D} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
|
||||||
{EB956381-F3E6-437C-9069-36B8BF5C6E2F} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
|
||||||
{E1082E26-D700-4127-9329-66D673FD2D55} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
|
||||||
{B8DC1324-977C-46F1-B697-9064ADE6099A} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
|
||||||
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
|
||||||
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30926.220
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core-net6", "src\Core\src\Core-net6.csproj", "{95BA42B5-B00E-4986-B9B5-517140378452}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{449F6071-A74F-4309-8D7B-7038CFD1B17B}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.nuspec\Microsoft.Maui.Controls.MultiTargeting.targets = .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets
|
||||||
|
README.md = README.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core-net6", "src\Controls\src\Core\Controls.Core-net6.csproj", "{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility-net6", "src\Compatibility\Core\src\Compatibility-net6.csproj", "{00A11C2F-969F-4964-8557-91ADF4B1523D}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.Android.FormsViewGroup-net6", "src\Compatibility\Core\src\Android.FormsViewGroup\Compatibility.Android.FormsViewGroup-net6.csproj", "{EB956381-F3E6-437C-9069-36B8BF5C6E2F}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Maui.Controls", "Maui.Controls", "{459BF674-83CB-46F6-881F-A2D2117DBF4D}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E1082E26-D700-4127-9329-66D673FD2D55}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample-net6", "src\Controls\samples\Controls.Sample\Maui.Controls.Sample-net6.csproj", "{B8DC1324-977C-46F1-B697-9064ADE6099A}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.Droid-net6", "src\Controls\samples\Controls.Sample.Droid\Maui.Controls.Sample.Droid-net6.csproj", "{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maui.Controls.Sample.iOS-net6", "src\Controls\samples\Controls.Sample.iOS\Maui.Controls.Sample.iOS-net6.csproj", "{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{95BA42B5-B00E-4986-B9B5-517140378452}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{95BA42B5-B00E-4986-B9B5-517140378452}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{00A11C2F-969F-4964-8557-91ADF4B1523D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EB956381-F3E6-437C-9069-36B8BF5C6E2F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B8DC1324-977C-46F1-B697-9064ADE6099A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{AF64451F-E2BD-41C2-B083-F60C26AE2A9F} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||||
|
{00A11C2F-969F-4964-8557-91ADF4B1523D} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||||
|
{EB956381-F3E6-437C-9069-36B8BF5C6E2F} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||||
|
{E1082E26-D700-4127-9329-66D673FD2D55} = {459BF674-83CB-46F6-881F-A2D2117DBF4D}
|
||||||
|
{B8DC1324-977C-46F1-B697-9064ADE6099A} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||||
|
{BE50FAEF-4096-48B5-B9CE-EE0C38F15A18} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||||
|
{1C3439E6-73D7-4F8E-A64A-5448F5CB18DE} = {E1082E26-D700-4127-9329-66D673FD2D55}
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,435 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30503.244
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7E12E071-51C0-4668-9FF3-E2DE9DC51962}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials", "src\Essentials\src\Essentials.csproj", "{8CB95D25-8442-42BC-82BE-319D21138549}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.UnitTests", "src\Essentials\test\UnitTests\Essentials.UnitTests.csproj", "{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials.DeviceTests.Android", "src\Essentials\test\DeviceTests.Android\Essentials.DeviceTests.Android.csproj", "{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials.DeviceTests.iOS", "src\Essentials\test\DeviceTests.iOS\Essentials.DeviceTests.iOS.csproj", "{B73EB308-70BE-49FD-91A7-1D1495663D6D}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.DeviceTests.Shared", "src\Essentials\test\DeviceTests.Shared\Essentials.DeviceTests.Shared.csproj", "{81128D28-CFC8-4EA4-B68D-9939339C461A}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{5817A848-0B04-4035-9F7E-B8621B61CBDD}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.UWP", "src\Essentials\samples\Samples.UWP\Samples.UWP.csproj", "{5A1D97F2-6703-4278-BBF2-12C065F7E94A}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Tizen", "src\Essentials\samples\Samples.Tizen\Samples.Tizen.csproj", "{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Mac", "src\Essentials\samples\Samples.Mac\Samples.Mac.csproj", "{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.iOS", "src\Essentials\samples\Samples.iOS\Samples.iOS.csproj", "{AB6242B7-634F-4839-A991-7629D0D2C636}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Android", "src\Essentials\samples\Samples.Android\Samples.Android.csproj", "{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples", "src\Essentials\samples\Samples\Samples.csproj", "{2C69EB76-02C4-4921-96A1-4D70CB7CE744}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Sample.Server.WebAuthenticator.csproj", "{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|ARM64 = Debug|ARM64
|
||||||
|
Debug|iPhone = Debug|iPhone
|
||||||
|
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|ARM64 = Release|ARM64
|
||||||
|
Release|iPhone = Release|iPhone
|
||||||
|
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Deploy.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Deploy.0 = Release|Any CPU
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Build.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Deploy.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Build.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Deploy.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Build.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Deploy.0 = Debug|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.ActiveCfg = Release|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Build.0 = Release|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Deploy.0 = Release|ARM
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Build.0 = Release|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Deploy.0 = Release|ARM64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhone.ActiveCfg = Release|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Build.0 = Release|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Build.0 = Release|x86
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Deploy.0 = Release|x86
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Deploy.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Deploy.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{8CB95D25-8442-42BC-82BE-319D21138549} = {7E12E071-51C0-4668-9FF3-E2DE9DC51962}
|
||||||
|
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||||
|
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||||
|
{B73EB308-70BE-49FD-91A7-1D1495663D6D} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||||
|
{81128D28-CFC8-4EA4-B68D-9939339C461A} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
||||||
|
{5A1D97F2-6703-4278-BBF2-12C065F7E94A} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{AB6242B7-634F-4839-A991-7629D0D2C636} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{2C69EB76-02C4-4921-96A1-4D70CB7CE744} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,435 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.30503.244
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7E12E071-51C0-4668-9FF3-E2DE9DC51962}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials", "src\Essentials\src\Xamarin.Essentials\Xamarin.Essentials.csproj", "{8CB95D25-8442-42BC-82BE-319D21138549}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials.UnitTests", "src\Essentials\test\UnitTests\Xamarin.Essentials.UnitTests.csproj", "{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Essentials.DeviceTests.Android", "src\Essentials\test\DeviceTests.Android\Xamarin.Essentials.DeviceTests.Android.csproj", "{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Essentials.DeviceTests.iOS", "src\Essentials\test\DeviceTests.iOS\Xamarin.Essentials.DeviceTests.iOS.csproj", "{B73EB308-70BE-49FD-91A7-1D1495663D6D}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Essentials.DeviceTests.Shared", "src\Essentials\test\DeviceTests.Shared\Xamarin.Essentials.DeviceTests.Shared.csproj", "{81128D28-CFC8-4EA4-B68D-9939339C461A}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{5817A848-0B04-4035-9F7E-B8621B61CBDD}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.UWP", "src\Essentials\samples\Samples.UWP\Samples.UWP.csproj", "{5A1D97F2-6703-4278-BBF2-12C065F7E94A}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Tizen", "src\Essentials\samples\Samples.Tizen\Samples.Tizen.csproj", "{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Mac", "src\Essentials\samples\Samples.Mac\Samples.Mac.csproj", "{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.iOS", "src\Essentials\samples\Samples.iOS\Samples.iOS.csproj", "{AB6242B7-634F-4839-A991-7629D0D2C636}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Android", "src\Essentials\samples\Samples.Android\Samples.Android.csproj", "{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples", "src\Essentials\samples\Samples\Samples.csproj", "{2C69EB76-02C4-4921-96A1-4D70CB7CE744}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Sample.Server.WebAuthenticator.csproj", "{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|ARM64 = Debug|ARM64
|
|
||||||
Debug|iPhone = Debug|iPhone
|
|
||||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|ARM64 = Release|ARM64
|
|
||||||
Release|iPhone = Release|iPhone
|
|
||||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x64.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Debug|x86.Deploy.0 = Debug|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|ARM64.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhone.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x64.Deploy.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1}.Release|x86.Deploy.0 = Release|Any CPU
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Build.0 = Debug|iPhone
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.ActiveCfg = Release|iPhone
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.Build.0 = Release|iPhone
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.ActiveCfg = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Build.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|Any CPU.Deploy.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Build.0 = Debug|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.ActiveCfg = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Build.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhone.Deploy.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Build.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.ActiveCfg = Release|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Build.0 = Release|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|ARM64.Deploy.0 = Release|ARM64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhone.ActiveCfg = Release|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Build.0 = Release|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Build.0 = Release|x86
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Build.0 = Debug|iPhone
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.ActiveCfg = Release|iPhone
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.Build.0 = Release|iPhone
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x64.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Debug|x86.Deploy.0 = Debug|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|ARM64.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhone.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x64.Deploy.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C}.Release|x86.Deploy.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{8CB95D25-8442-42BC-82BE-319D21138549} = {7E12E071-51C0-4668-9FF3-E2DE9DC51962}
|
|
||||||
{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
|
||||||
{CB2072E0-A437-4811-AE17-16CAE0DDA1B1} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
|
||||||
{B73EB308-70BE-49FD-91A7-1D1495663D6D} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
|
||||||
{81128D28-CFC8-4EA4-B68D-9939339C461A} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}
|
|
||||||
{5A1D97F2-6703-4278-BBF2-12C065F7E94A} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{CFBEEB38-D3E8-4100-8CFB-E0A9C4FC0348} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{89899D16-4BD1-49B1-9903-9F6BB26C5DC5} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{AB6242B7-634F-4839-A991-7629D0D2C636} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{3C0CDEF3-495E-45F4-8B12-0E05EF11295C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{2C69EB76-02C4-4921-96A1-4D70CB7CE744} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,972 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.30503.244
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Xamarin.Forms", "Xamarin.Forms", "{9AD757F5-E57A-459D-A0A7-E0675E045B84}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform.Renderers", "Platform.Renderers", "{29AC50BF-B4FB-450B-9386-0C5AD4B84226}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.Android", "src\Platform.Renderers\src\Xamarin.Forms.Platform.Android\Xamarin.Forms.Platform.Android.csproj", "{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuspec", ".nuspec", "{7E12C50D-A570-4DF1-94E1-8599843FA87C}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
.nuspec\proguard.cfg = .nuspec\proguard.cfg
|
|
||||||
.nuspec\Xamarin.Forms.AppLinks.nuspec = .nuspec\Xamarin.Forms.AppLinks.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Debug.targets = .nuspec\Xamarin.Forms.Debug.targets
|
|
||||||
.nuspec\Xamarin.Forms.DefaultItems.props = .nuspec\Xamarin.Forms.DefaultItems.props
|
|
||||||
.nuspec\Xamarin.Forms.DefaultItems.targets = .nuspec\Xamarin.Forms.DefaultItems.targets
|
|
||||||
.nuspec\Xamarin.Forms.DualScreen.nuspec = .nuspec\Xamarin.Forms.DualScreen.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Maps.GTK.nuspec = .nuspec\Xamarin.Forms.Maps.GTK.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Maps.nuspec = .nuspec\Xamarin.Forms.Maps.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Maps.WPF.nuspec = .nuspec\Xamarin.Forms.Maps.WPF.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.MultiTargeting.targets = .nuspec\Xamarin.Forms.MultiTargeting.targets
|
|
||||||
.nuspec\Xamarin.Forms.nuspec = .nuspec\Xamarin.Forms.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Platform.GTK.nuspec = .nuspec\Xamarin.Forms.Platform.GTK.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Platform.WPF.nuspec = .nuspec\Xamarin.Forms.Platform.WPF.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.props = .nuspec\Xamarin.Forms.props
|
|
||||||
.nuspec\Xamarin.Forms.targets = .nuspec\Xamarin.Forms.targets
|
|
||||||
.nuspec\Xamarin.Forms.Visual.Material.nuspec = .nuspec\Xamarin.Forms.Visual.Material.nuspec
|
|
||||||
.nuspec\Xamarin.Forms.Visual.Material.targets = .nuspec\Xamarin.Forms.Visual.Material.targets
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Core", "src\Forms\src\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj", "{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform.Handlers", "Platform.Handlers", "{31721EFD-3238-462B-B501-41F3D2B50E92}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Forms", "Forms", "{97FA536A-675D-41C7-A90E-97E2F79D1AE2}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{423C21C8-84CB-4A3C-BEB9-1C23D752D90F}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Platform.Handlers", "src\Platform.Handlers\src\Xamarin.Platform.Handlers\Xamarin.Platform.Handlers.csproj", "{29913989-0F70-48D8-8EDE-B1DD217F21D1}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Platform.Android.FormsViewGroup", "src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.FormsViewGroup\Xamarin.Forms.Platform.Android.FormsViewGroup.csproj", "{3B72465B-ACAE-43AE-9327-10F372FE5F80}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Platform.iOS", "src\Platform.Renderers\src\Xamarin.Forms.Platform.iOS\Xamarin.Forms.Platform.iOS.csproj", "{271193C1-6E7C-429C-A36D-3F1BE5267231}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D5B986A3-7FC9-437E-8030-349AA4698DFD}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{75A2CD30-BB85-4CA6-AC95-86A8A538A690}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Core.UnitTests", "src\Forms\test\Xamarin.Forms.Core.UnitTests\Xamarin.Forms.Core.UnitTests.csproj", "{00259593-A283-47A5-ACB7-9C3819B16364}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Xaml", "src\Forms\src\Xamarin.Forms.Xaml\Xamarin.Forms.Xaml.csproj", "{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Maps", "src\Controls\Maps\src\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj", "{F137FAC5-3385-4B19-988B-4A14ED84CCC6}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Build.Tasks", "src\Forms\src\Xamarin.Forms.Build.Tasks\Xamarin.Forms.Build.Tasks.csproj", "{C328C538-B69F-43D2-80EE-3C1EB8254CBA}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Platform.Handlers.UnitTests", "src\Platform.Handlers\tests\Xamarin.Platform.Handlers.UnitTests\Xamarin.Platform.Handlers.UnitTests.csproj", "{7A753001-1C3D-404D-A421-2E052A545EAC}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Control Gallery", "Control Gallery", "{F07FDC58-64A0-42DA-8556-09742721F15E}"
|
|
||||||
EndProject
|
|
||||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Controls.Issues.Shared", "src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.shproj", "{0F0DB9CC-EA65-429C-9363-38624BF8F49C}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Controls", "src\ControlGallery\src\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj", "{7AD93806-111D-4FDC-B48D-9566765185FF}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.Android", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.Android\Xamarin.Forms.ControlGallery.Android.csproj", "{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Xamarin.Forms.Maps", "Xamarin.Forms.Maps", "{8A70C15D-86D3-4086-A8C5-E17B299EA970}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Maps.Android", "src\Controls\Maps\src\Xamarin.Forms.Maps.Android\Xamarin.Forms.Maps.Android.csproj", "{1D11EC11-4734-47D4-9B62-4D03CFF67090}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Xamarin.Forms.Xaml", "Xamarin.Forms.Xaml", "{E7F90170-B71B-4730-A082-1DF4E4F04420}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Xaml.Design", "src\Forms\src\Xamarin.Forms.Xaml.Design\Xamarin.Forms.Xaml.Design.csproj", "{65BC4888-CC59-428A-9B75-540CF1C09480}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Xaml.UnitTests", "src\Forms\test\Xamarin.Forms.Xaml.UnitTests\Xamarin.Forms.Xaml.UnitTests.csproj", "{5997F786-4526-4A4B-BFC6-3832091D6544}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.Design", "src\Forms\src\Xamarin.Forms.Core.Design\Xamarin.Forms.Core.Design.csproj", "{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.Android.AppLinks", "src\Platform.Renderers\src\Xamarin.Forms.Platform.Android.AppLinks\Xamarin.Forms.Platform.Android.AppLinks.csproj", "{10553575-8E27-4E2C-9E88-90B015E80F1C}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.CustomAttributes", "src\Forms\test\Xamarin.Forms.CustomAttributes\Xamarin.Forms.CustomAttributes.csproj", "{2964F669-7CD9-4D78-B4D9-804A965D58C0}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5E27729-44E8-4BE6-A62E-45FF27449B8F}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5CE892DB-8CA2-42E4-8130-2836D28AD8DB}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Platform.Android.UnitTests", "src\Platform.Renderers\test\Xamarin.Forms.Platform.Android.UnitTests\Xamarin.Forms.Platform.Android.UnitTests.csproj", "{A4C57790-71D1-467C-A69E-2BD84CB6666C}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.iOS", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.iOS\Xamarin.Forms.ControlGallery.iOS.csproj", "{C7131F14-274F-4B55-ACA9-E81731AD012F}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Platform.iOS.UnitTests", "src\Platform.Renderers\test\Xamarin.Forms.Platform.iOS.UnitTests\Xamarin.Forms.Platform.iOS.UnitTests.csproj", "{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Maps.iOS", "src\Controls\Maps\src\Xamarin.Forms.Maps.iOS\Xamarin.Forms.Maps.iOS.csproj", "{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52963C98-6AD9-4B57-924F-BE58DC36D746}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.iOS.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.iOS.UITests\Xamarin.Forms.Core.iOS.UITests.csproj", "{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}"
|
|
||||||
EndProject
|
|
||||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Forms.Core.UITests.Shared", "src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.Shared.shproj", "{E175485B-3C8C-47D7-8DD5-F7FED627EB25}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Core.Android.UITests", "src\ControlGallery\test\Xamarin.Forms.Core.Android.UITests\Xamarin.Forms.Core.Android.UITests.csproj", "{A34EBE01-25BF-4E69-A2DC-2288DC625541}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.UAP", "src\Platform.Renderers\src\Xamarin.Forms.Platform.UAP\Xamarin.Forms.Platform.UAP.csproj", "{DD10263D-D580-4241-9E21-EB5DE0FC83C3}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.ControlGallery.WindowsUniversal", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal\Xamarin.Forms.ControlGallery.WindowsUniversal.csproj", "{AC257966-9368-478A-9DF4-F0D28E320FE3}"
|
|
||||||
EndProject
|
|
||||||
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Xamarin.Forms.ControlGallery.WindowsUniversal (Package)", "src\ControlGallery\src\Xamarin.Forms.ControlGallery.WindowsUniversal (Package)\Xamarin.Forms.ControlGallery.WindowsUniversal (Package).wapproj", "{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Platform.UAP.UnitTests", "src\Platform.Renderers\test\Xamarin.Forms.Platform.UAP.UnitTests\Xamarin.Forms.Platform.UAP.UnitTests.csproj", "{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{0f0db9cc-ea65-429c-9363-38624bf8f49c}*SharedItemsImports = 13
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{7ad93806-111d-4fdc-b48d-9566765185ff}*SharedItemsImports = 5
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{a34ebe01-25bf-4e69-a2dc-2288dc625541}*SharedItemsImports = 4
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{e175485b-3c8c-47d7-8dd5-f7fed627eb25}*SharedItemsImports = 13
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
|
||||||
src\ControlGallery\src\Xamarin.Forms.Core.UITests.Shared\Xamarin.Forms.Core.UITests.projitems*{eadd8100-b3ae-4a31-92c4-267a64a1c6eb}*SharedItemsImports = 4
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|ARM64 = Debug|ARM64
|
|
||||||
Debug|iPhone = Debug|iPhone
|
|
||||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|ARM64 = Release|ARM64
|
|
||||||
Release|iPhone = Release|iPhone
|
|
||||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|ARM64.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x64.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Debug|x86.Deploy.0 = Debug|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|ARM64.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhone.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x64.Deploy.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E}.Release|x86.Deploy.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Build.0 = Debug|iPhone
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.ActiveCfg = Release|iPhone
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhone.Build.0 = Release|iPhone
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x64.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F}.Release|x86.ActiveCfg = Release|iPhoneSimulator
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|Any CPU.ActiveCfg = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM.Deploy.0 = Debug|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|ARM64.ActiveCfg = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhone.ActiveCfg = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM.Deploy.0 = Release|ARM
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|ARM64.ActiveCfg = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhone.ActiveCfg = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Build.0 = Release|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Build.0 = Release|x86
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|Any CPU.ActiveCfg = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM.ActiveCfg = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.ActiveCfg = Debug|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Build.0 = Debug|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|ARM64.Deploy.0 = Debug|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhone.ActiveCfg = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x64.Deploy.0 = Debug|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Debug|x86.Deploy.0 = Debug|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|Any CPU.ActiveCfg = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM.ActiveCfg = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.ActiveCfg = Release|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Build.0 = Release|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|ARM64.Deploy.0 = Release|arm64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhone.ActiveCfg = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Build.0 = Release|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x64.Deploy.0 = Release|x64
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Build.0 = Release|x86
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6}.Release|x86.Deploy.0 = Release|x86
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhone.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhone.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{9AD757F5-E57A-459D-A0A7-E0675E045B84} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
|
||||||
{29AC50BF-B4FB-450B-9386-0C5AD4B84226} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
|
||||||
{0E16E70A-D6DD-4323-AD5D-363ABFF42D6A} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
|
||||||
{57B8B73D-C3B5-4C42-869E-7B2F17D354AC} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
|
||||||
{423C21C8-84CB-4A3C-BEB9-1C23D752D90F} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
|
||||||
{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} = {31721EFD-3238-462B-B501-41F3D2B50E92}
|
|
||||||
{29913989-0F70-48D8-8EDE-B1DD217F21D1} = {423C21C8-84CB-4A3C-BEB9-1C23D752D90F}
|
|
||||||
{3B72465B-ACAE-43AE-9327-10F372FE5F80} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
|
||||||
{271193C1-6E7C-429C-A36D-3F1BE5267231} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
|
||||||
{D5B986A3-7FC9-437E-8030-349AA4698DFD} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
|
||||||
{75A2CD30-BB85-4CA6-AC95-86A8A538A690} = {9AD757F5-E57A-459D-A0A7-E0675E045B84}
|
|
||||||
{00259593-A283-47A5-ACB7-9C3819B16364} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
|
||||||
{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
|
||||||
{F137FAC5-3385-4B19-988B-4A14ED84CCC6} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
|
||||||
{C328C538-B69F-43D2-80EE-3C1EB8254CBA} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
|
||||||
{7A753001-1C3D-404D-A421-2E052A545EAC} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}
|
|
||||||
{0F0DB9CC-EA65-429C-9363-38624BF8F49C} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{7AD93806-111D-4FDC-B48D-9566765185FF} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{1346A7F1-4457-4BB4-A371-2C8E28BBD53E} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{8A70C15D-86D3-4086-A8C5-E17B299EA970} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
|
||||||
{1D11EC11-4734-47D4-9B62-4D03CFF67090} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
|
||||||
{E7F90170-B71B-4730-A082-1DF4E4F04420} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2}
|
|
||||||
{65BC4888-CC59-428A-9B75-540CF1C09480} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
|
||||||
{5997F786-4526-4A4B-BFC6-3832091D6544} = {E7F90170-B71B-4730-A082-1DF4E4F04420}
|
|
||||||
{98637471-8E5C-4DDE-89CA-2EAA664FB0EF} = {D5B986A3-7FC9-437E-8030-349AA4698DFD}
|
|
||||||
{10553575-8E27-4E2C-9E88-90B015E80F1C} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
|
||||||
{2964F669-7CD9-4D78-B4D9-804A965D58C0} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690}
|
|
||||||
{B5E27729-44E8-4BE6-A62E-45FF27449B8F} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
|
||||||
{5CE892DB-8CA2-42E4-8130-2836D28AD8DB} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
|
|
||||||
{A4C57790-71D1-467C-A69E-2BD84CB6666C} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
|
||||||
{C7131F14-274F-4B55-ACA9-E81731AD012F} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{52C50E88-7F15-45FE-A63C-8E7C76CA2BAE} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
|
||||||
{ABA078C4-F9BB-4924-8B2B-10FE0D2F5491} = {8A70C15D-86D3-4086-A8C5-E17B299EA970}
|
|
||||||
{52963C98-6AD9-4B57-924F-BE58DC36D746} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
|
||||||
{FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E} = {F07FDC58-64A0-42DA-8556-09742721F15E}
|
|
||||||
{EADD8100-B3AE-4A31-92C4-267A64A1C6EB} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
|
||||||
{E175485B-3C8C-47D7-8DD5-F7FED627EB25} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
|
||||||
{A34EBE01-25BF-4E69-A2DC-2288DC625541} = {FFCE9E2C-327C-46E7-8AC1-18CB2E982C2E}
|
|
||||||
{DD10263D-D580-4241-9E21-EB5DE0FC83C3} = {B5E27729-44E8-4BE6-A62E-45FF27449B8F}
|
|
||||||
{AC257966-9368-478A-9DF4-F0D28E320FE3} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{9784DA17-DAEF-455C-8CFB-BA4B4119C1B6} = {52963C98-6AD9-4B57-924F-BE58DC36D746}
|
|
||||||
{73AD22E5-7E3A-4D1B-A604-687AB40FCC4D} = {5CE892DB-8CA2-42E4-8130-2836D28AD8DB}
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
1035
Xamarin.Forms.sln
1035
Xamarin.Forms.sln
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
60
build.cake
60
build.cake
|
@ -65,7 +65,7 @@ var ANDROID_CONTROLGALLERY_PROJ = $"{ANDROID_CONTROLGALLERY}Xamarin.Forms.Contro
|
||||||
var ANDROID_RENDERERS = Argument("ANDROID_RENDERERS", "FAST");
|
var ANDROID_RENDERERS = Argument("ANDROID_RENDERERS", "FAST");
|
||||||
var ANDROID_TEST_PROJ = "./src/ControlGallery/test/Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj";
|
var ANDROID_TEST_PROJ = "./src/ControlGallery/test/Xamarin.Forms.Core.Android.UITests/Xamarin.Forms.Core.Android.UITests.csproj";
|
||||||
|
|
||||||
var BUILD_TASKS_PROJ ="src/Forms/src/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj";
|
var BUILD_TASKS_PROJ ="src/Controls/src/Build.Tasks/Controls.Build.Tasks.csproj";
|
||||||
|
|
||||||
var XamarinFormsVersion = Argument("XamarinFormsVersion", "");
|
var XamarinFormsVersion = Argument("XamarinFormsVersion", "");
|
||||||
var packageVersion = Argument("packageVersion", "");
|
var packageVersion = Argument("packageVersion", "");
|
||||||
|
@ -74,6 +74,10 @@ releaseChannelArg = EnvironmentVariable("CHANNEL") ?? releaseChannelArg;
|
||||||
var teamProject = Argument("TeamProject", "");
|
var teamProject = Argument("TeamProject", "");
|
||||||
bool isHostedAgent = agentName.StartsWith("Azure Pipelines") || agentName.StartsWith("Hosted Agent");
|
bool isHostedAgent = agentName.StartsWith("Azure Pipelines") || agentName.StartsWith("Hosted Agent");
|
||||||
|
|
||||||
|
var MAUI_SLN = "./Microsoft.Maui.sln";
|
||||||
|
|
||||||
|
var CONTROLGALLERY_SLN = "./ControlGallery.sln";
|
||||||
|
|
||||||
string defaultUnitTestWhere = "";
|
string defaultUnitTestWhere = "";
|
||||||
|
|
||||||
if(target.ToLower().Contains("uwp"))
|
if(target.ToLower().Contains("uwp"))
|
||||||
|
@ -703,11 +707,11 @@ Task("_NuGetPack")
|
||||||
});
|
});
|
||||||
|
|
||||||
Task("Restore")
|
Task("Restore")
|
||||||
.Description("Restore target on Xamarin.Forms.sln")
|
.Description($"Restore target on {MAUI_SLN}")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
try{
|
try{
|
||||||
MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("restore"));
|
MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("restore"));
|
||||||
}
|
}
|
||||||
catch{
|
catch{
|
||||||
// ignore restore errors that come from uwp
|
// ignore restore errors that come from uwp
|
||||||
|
@ -742,8 +746,8 @@ Task("BuildForNuget")
|
||||||
};
|
};
|
||||||
|
|
||||||
msbuildSettings.BinaryLogger = binaryLogger;
|
msbuildSettings.BinaryLogger = binaryLogger;
|
||||||
binaryLogger.FileName = $"{artifactStagingDirectory}/Xamarin.Forms-{configuration}.binlog";
|
binaryLogger.FileName = $"{artifactStagingDirectory}/Maui.Controls-{configuration}.binlog";
|
||||||
MSBuild("./Xamarin.Forms.sln", msbuildSettings.WithRestore());
|
MSBuild(MAUI_SLN, msbuildSettings.WithRestore());
|
||||||
|
|
||||||
// // This currently fails on CI will revisit later
|
// // This currently fails on CI will revisit later
|
||||||
// if(isCIBuild)
|
// if(isCIBuild)
|
||||||
|
@ -752,7 +756,7 @@ Task("BuildForNuget")
|
||||||
// MSBuild("./Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj", GetMSBuildSettings());
|
// MSBuild("./Xamarin.Forms.Xaml.UnitTests/Xamarin.Forms.Xaml.UnitTests.csproj", GetMSBuildSettings());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("Restore"));
|
// MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("Restore"));
|
||||||
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||||
|
|
||||||
// if(isCIBuild)
|
// if(isCIBuild)
|
||||||
|
@ -768,7 +772,7 @@ Task("BuildForNuget")
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithTarget("Restore"));
|
// MSBuild(MAUI_SLN, GetMSBuildSettings().WithTarget("Restore"));
|
||||||
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
// MSBuild("./Xamarin.Forms.DualScreen.sln", GetMSBuildSettings().WithTarget("Restore"));
|
||||||
|
|
||||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||||
|
@ -807,13 +811,13 @@ Task("BuildForNuget")
|
||||||
|
|
||||||
|
|
||||||
// XAML Tests are currently having issues compiling in Release Mode
|
// XAML Tests are currently having issues compiling in Release Mode
|
||||||
if(configuration == "Debug")
|
// if(configuration == "Debug")
|
||||||
{
|
// {
|
||||||
msbuildSettings = GetMSBuildSettings();
|
// msbuildSettings = GetMSBuildSettings();
|
||||||
msbuildSettings.BinaryLogger = binaryLogger;
|
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||||
binaryLogger.FileName = $"{artifactStagingDirectory}/Xamarin.Forms.ControlGallery-{configuration}.binlog";
|
// binaryLogger.FileName = $"{artifactStagingDirectory}/ControlGallery-{configuration}.binlog";
|
||||||
MSBuild("./Xamarin.Forms.ControlGallery.sln", msbuildSettings.WithRestore());
|
// MSBuild(CONTROLGALLERY_SLN, msbuildSettings.WithRestore());
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(IsRunningOnWindows())
|
if(IsRunningOnWindows())
|
||||||
{
|
{
|
||||||
|
@ -834,15 +838,15 @@ Task("BuildForNuget")
|
||||||
// .WithProperty("UwpMinTargetFrameworks", "uap10.0.14393")
|
// .WithProperty("UwpMinTargetFrameworks", "uap10.0.14393")
|
||||||
// .WithRestore());
|
// .WithRestore());
|
||||||
|
|
||||||
msbuildSettings = GetMSBuildSettings();
|
// msbuildSettings = GetMSBuildSettings();
|
||||||
msbuildSettings.BinaryLogger = binaryLogger;
|
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||||
binaryLogger.FileName = $"{artifactStagingDirectory}/win-{configuration}-csproj.binlog";
|
// binaryLogger.FileName = $"{artifactStagingDirectory}/win-{configuration}-csproj.binlog";
|
||||||
MSBuild("./src/Platform.Renderers/src/Xamarin.Forms.Platform.UAP/Xamarin.Forms.Platform.UAP.csproj",
|
// MSBuild("./src/Compatibility/Core/src/UAP/Compatibility.UAP.csproj",
|
||||||
msbuildSettings
|
// msbuildSettings
|
||||||
.WithRestore()
|
// .WithRestore()
|
||||||
.WithTarget("rebuild")
|
// .WithTarget("rebuild")
|
||||||
.WithProperty("DisableEmbeddedXbf", "false")
|
// .WithProperty("DisableEmbeddedXbf", "false")
|
||||||
.WithProperty("EnableTypeInfoReflection", "false"));
|
// .WithProperty("EnableTypeInfoReflection", "false"));
|
||||||
|
|
||||||
// msbuildSettings = GetMSBuildSettings();
|
// msbuildSettings = GetMSBuildSettings();
|
||||||
// msbuildSettings.BinaryLogger = binaryLogger;
|
// msbuildSettings.BinaryLogger = binaryLogger;
|
||||||
|
@ -880,7 +884,7 @@ Task("Build")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
try{
|
try{
|
||||||
MSBuild("./Xamarin.Forms.sln", GetMSBuildSettings().WithRestore());
|
MSBuild(MAUI_SLN, GetMSBuildSettings().WithRestore());
|
||||||
}
|
}
|
||||||
catch(Exception)
|
catch(Exception)
|
||||||
{
|
{
|
||||||
|
@ -893,7 +897,7 @@ Task("Android100")
|
||||||
.Description("Builds Monodroid10.0 targets")
|
.Description("Builds Monodroid10.0 targets")
|
||||||
.Does(() =>
|
.Does(() =>
|
||||||
{
|
{
|
||||||
MSBuild("Xamarin.Forms.sln",
|
MSBuild(MAUI_SLN,
|
||||||
GetMSBuildSettings()
|
GetMSBuildSettings()
|
||||||
.WithRestore()
|
.WithRestore()
|
||||||
.WithProperty("AndroidTargetFrameworks", "MonoAndroid10.0"));
|
.WithProperty("AndroidTargetFrameworks", "MonoAndroid10.0"));
|
||||||
|
@ -1154,15 +1158,15 @@ T GetBuildVariable<T>(string key, T defaultValue)
|
||||||
return Argument(key, EnvironmentVariable(key, upperCaseReturnValue));
|
return Argument(key, EnvironmentVariable(key, upperCaseReturnValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartVisualStudio(string sln = "Xamarin.Forms.sln")
|
void StartVisualStudio(string sln = "./Microsoft.Maui.sln")
|
||||||
{
|
{
|
||||||
if(isCIBuild)
|
if(isCIBuild)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(IsRunningOnWindows())
|
if(IsRunningOnWindows())
|
||||||
StartProcess("start", new ProcessSettings{ Arguments = "Xamarin.Forms.sln" });
|
StartProcess("start", new ProcessSettings{ Arguments = MAUI_SLN });
|
||||||
else
|
else
|
||||||
StartProcess("open", new ProcessSettings{ Arguments = "Xamarin.Forms.sln" });
|
StartProcess("open", new ProcessSettings{ Arguments = MAUI_SLN });
|
||||||
}
|
}
|
||||||
|
|
||||||
MSBuildSettings GetMSBuildSettings(PlatformTarget? platformTarget = PlatformTarget.MSIL, string buildConfiguration = null)
|
MSBuildSettings GetMSBuildSettings(PlatformTarget? platformTarget = PlatformTarget.MSIL, string buildConfiguration = null)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<NightlyTag>nightly</NightlyTag>
|
<NightlyTag>nightly</NightlyTag>
|
||||||
<RegexPre>pre\d</RegexPre>
|
<RegexPre>pre\d</RegexPre>
|
||||||
|
|
|
@ -79,48 +79,48 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
provisionatorPath : '/build/provisioning/provisioning.csx'
|
provisionatorPath : '/build/provisioning/provisioning.csx'
|
||||||
|
|
||||||
- stage: build_osx
|
# - stage: build_osx
|
||||||
displayName: iOS
|
# displayName: iOS
|
||||||
dependsOn: []
|
# dependsOn: []
|
||||||
jobs:
|
# jobs:
|
||||||
- job: ios
|
# - job: ios
|
||||||
workspace:
|
# workspace:
|
||||||
clean: all
|
# clean: all
|
||||||
displayName: Build ControlGallery iOS
|
# displayName: Build ControlGallery iOS
|
||||||
timeoutInMinutes: 120
|
# timeoutInMinutes: 120
|
||||||
pool:
|
# pool:
|
||||||
name: $(macOSXVmPool)
|
# name: $(macOSXVmPool)
|
||||||
vmImage: $(macOSXVmImage)
|
# vmImage: $(macOSXVmImage)
|
||||||
demands:
|
# demands:
|
||||||
- sh
|
# - sh
|
||||||
- Xamarin.iOS
|
# - Xamarin.iOS
|
||||||
variables:
|
# variables:
|
||||||
provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
# provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||||
provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
# provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||||
provisionator.extraArguments : '--v'
|
# provisionator.extraArguments : '--v'
|
||||||
steps:
|
# steps:
|
||||||
- template: common/controlgallery-ios.yml
|
# - template: common/controlgallery-ios.yml
|
||||||
|
|
||||||
- stage: build_android
|
# - stage: build_android
|
||||||
displayName: Android
|
# displayName: Android
|
||||||
dependsOn: []
|
# dependsOn: []
|
||||||
jobs:
|
# jobs:
|
||||||
- job: android
|
# - job: android
|
||||||
workspace:
|
# workspace:
|
||||||
clean: all
|
# clean: all
|
||||||
displayName: Build ControlGallery Android
|
# displayName: Build ControlGallery Android
|
||||||
timeoutInMinutes: 120
|
# timeoutInMinutes: 120
|
||||||
pool:
|
# pool:
|
||||||
name: $(macOSXVmPool)
|
# name: $(macOSXVmPool)
|
||||||
vmImage: $(macOSXVmImage)
|
# vmImage: $(macOSXVmImage)
|
||||||
variables:
|
# variables:
|
||||||
renderers: 'FAST'
|
# renderers: 'FAST'
|
||||||
outputfolder: 'newRenderers'
|
# outputfolder: 'newRenderers'
|
||||||
provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
# provisionator.xcode : '$(System.DefaultWorkingDirectory)/eng/provisioning/xcode.csx'
|
||||||
provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
# provisionator.path : '$(System.DefaultWorkingDirectory)/eng/provisioning/provisioning.csx'
|
||||||
provisionator.extraArguments : '--v'
|
# provisionator.extraArguments : '--v'
|
||||||
steps:
|
# steps:
|
||||||
- template: common/controlgallery-android.yml
|
# - template: common/controlgallery-android.yml
|
||||||
|
|
||||||
- stage: build_net6_windows
|
- stage: build_net6_windows
|
||||||
displayName: NET6 Windows
|
displayName: NET6 Windows
|
||||||
|
@ -156,9 +156,9 @@ stages:
|
||||||
errorActionPreference: stop
|
errorActionPreference: stop
|
||||||
|
|
||||||
- powershell: |
|
- powershell: |
|
||||||
& dotnet restore Maui.sln
|
& dotnet restore Microsoft.Maui-net6.sln
|
||||||
& dotnet build Maui.sln -c Debug -bl:$(LogDirectory)\Debug.binlog
|
& dotnet build Microsoft.Maui-net6.sln -c Debug -bl:$(LogDirectory)\Debug.binlog
|
||||||
& dotnet build Maui.sln -c Release -bl:$(LogDirectory)\Release.binlog
|
& dotnet build Microsoft.Maui-net6.sln -c Release -bl:$(LogDirectory)\Release.binlog
|
||||||
displayName: build samples
|
displayName: build samples
|
||||||
errorActionPreference: stop
|
errorActionPreference: stop
|
||||||
|
|
||||||
|
@ -219,9 +219,9 @@ stages:
|
||||||
displayName: configure vsmac xcode
|
displayName: configure vsmac xcode
|
||||||
|
|
||||||
- bash: |
|
- bash: |
|
||||||
dotnet restore Maui.sln &&
|
dotnet restore Microsoft.Maui-net6.sln &&
|
||||||
dotnet build Maui.sln -c Debug -bl:$(LogDirectory)/Debug.binlog &&
|
dotnet build Microsoft.Maui-net6.sln -c Debug -bl:$(LogDirectory)/Debug.binlog &&
|
||||||
dotnet build Maui.sln -c Release -bl:$(LogDirectory)/Release.binlog
|
dotnet build Microsoft.Maui-net6.sln -c Release -bl:$(LogDirectory)/Release.binlog
|
||||||
displayName: build samples
|
displayName: build samples
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
|
|
|
@ -1,266 +0,0 @@
|
||||||
variables:
|
|
||||||
- name: DefaultBuildPlatform
|
|
||||||
value: 'any cpu'
|
|
||||||
- name: ApkName
|
|
||||||
value: AndroidControlGallery.AndroidControlGallery.apk
|
|
||||||
- name: SolutionFile
|
|
||||||
value: Xamarin.Forms.sln
|
|
||||||
- name: BuildVersion
|
|
||||||
value: $[counter('nuget-counter', 126)]
|
|
||||||
- name: NUGET_VERSION
|
|
||||||
value: 5.6.0
|
|
||||||
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
|
|
||||||
value: true
|
|
||||||
- name: DOTNET_VERSION
|
|
||||||
value: 5.0.102
|
|
||||||
|
|
||||||
resources:
|
|
||||||
repositories:
|
|
||||||
- repository: xamarin-templates
|
|
||||||
type: github
|
|
||||||
name: xamarin/yaml-templates
|
|
||||||
endpoint: xamarin
|
|
||||||
ref: refs/heads/main # still defaults to master even though main is the main branch
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branches:
|
|
||||||
include:
|
|
||||||
- main
|
|
||||||
- main-handler
|
|
||||||
tags:
|
|
||||||
include:
|
|
||||||
- '*'
|
|
||||||
paths:
|
|
||||||
exclude:
|
|
||||||
- README.md
|
|
||||||
|
|
||||||
pr:
|
|
||||||
autoCancel: false
|
|
||||||
branches:
|
|
||||||
include:
|
|
||||||
- main
|
|
||||||
- 3.*
|
|
||||||
- 4.*
|
|
||||||
- 5.*
|
|
||||||
|
|
||||||
schedules:
|
|
||||||
- cron: "0 0 * * *"
|
|
||||||
displayName: Daily midnight build
|
|
||||||
branches:
|
|
||||||
include:
|
|
||||||
- main
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- stage: windows
|
|
||||||
displayName: Build Windows
|
|
||||||
jobs:
|
|
||||||
- job: win_hosted
|
|
||||||
condition: eq(variables['vs2019VmPool'], 'Azure Pipelines')
|
|
||||||
workspace:
|
|
||||||
clean: all
|
|
||||||
displayName: Build Windows Phase
|
|
||||||
timeoutInMinutes: 60
|
|
||||||
pool:
|
|
||||||
name: $(vs2019VmPool)
|
|
||||||
vmImage: $(vs2019VmImage)
|
|
||||||
demands:
|
|
||||||
msbuild
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
debug:
|
|
||||||
BuildConfiguration: 'Debug'
|
|
||||||
release:
|
|
||||||
BuildConfiguration: 'Release'
|
|
||||||
steps:
|
|
||||||
- template: build/steps/build-windows.yml
|
|
||||||
parameters:
|
|
||||||
provisionatorPath : 'build/provisioning/provisioning.csx'
|
|
||||||
|
|
||||||
# - job: nuget_pack_hosted
|
|
||||||
# workspace:
|
|
||||||
# clean: all
|
|
||||||
# displayName: Nuget Phase
|
|
||||||
# dependsOn:
|
|
||||||
# - win_hosted
|
|
||||||
# condition: succeeded()
|
|
||||||
# pool:
|
|
||||||
# name: $(vs2019VmPool)
|
|
||||||
# vmImage: $(vs2019VmImage)
|
|
||||||
# demands:
|
|
||||||
# msbuild
|
|
||||||
# variables:
|
|
||||||
# FormsIdAppend: ''
|
|
||||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
|
||||||
# nugetPackageVersion : $[ dependencies.win_hosted.outputs['debug.winbuild.xamarinformspackageversion'] ]
|
|
||||||
# steps:
|
|
||||||
# - template: build/steps/build-nuget.yml
|
|
||||||
- job: win_bots
|
|
||||||
condition: ne(variables['vs2019VmPool'], 'Azure Pipelines')
|
|
||||||
workspace:
|
|
||||||
clean: all
|
|
||||||
displayName: Build Windows Phase Bots
|
|
||||||
timeoutInMinutes: 60
|
|
||||||
pool:
|
|
||||||
name: $(vs2019VmPool)
|
|
||||||
vmImage: $(vs2019VmImage)
|
|
||||||
demands:
|
|
||||||
- Agent.OS -equals Windows_NT
|
|
||||||
- msbuild
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
debug:
|
|
||||||
BuildConfiguration: 'Debug'
|
|
||||||
release:
|
|
||||||
BuildConfiguration: 'Release'
|
|
||||||
steps:
|
|
||||||
- template: build/steps/build-windows.yml
|
|
||||||
parameters:
|
|
||||||
provisionatorPath : 'build/provisioning/provisioning.csx'
|
|
||||||
# - job: nuget_pack_bots
|
|
||||||
# workspace:
|
|
||||||
# clean: all
|
|
||||||
# displayName: Nuget Phase
|
|
||||||
# dependsOn:
|
|
||||||
# - win_bots
|
|
||||||
# condition: succeeded()
|
|
||||||
# pool:
|
|
||||||
# name: $(vs2019VmPool)
|
|
||||||
# vmImage: $(vs2019VmImage)
|
|
||||||
# demands:
|
|
||||||
# - Agent.OS -equals Windows_NT
|
|
||||||
# - msbuild
|
|
||||||
# variables:
|
|
||||||
# FormsIdAppend: ''
|
|
||||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
|
||||||
# nugetPackageVersion : $[ dependencies.win_bots.outputs['debug.winbuild.xamarinformspackageversion'] ]
|
|
||||||
# steps:
|
|
||||||
# - template: build/steps/build-nuget.yml
|
|
||||||
|
|
||||||
# - stage: android
|
|
||||||
# displayName: Build Android
|
|
||||||
# ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
|
||||||
# dependsOn: windows
|
|
||||||
# ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
|
||||||
# dependsOn: []
|
|
||||||
# jobs:
|
|
||||||
# - template: build/steps/build-android.yml
|
|
||||||
# parameters:
|
|
||||||
# vmPool: $[coalesce(variables.macAndroid2019VmPool, 'Azure Pipelines')]
|
|
||||||
# vmImage: $[coalesce(variables.macAndroid2019VmImage, 'macOS-10.15')]
|
|
||||||
# provisionatorPath : 'build/provisioning/provisioning.csx'
|
|
||||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
|
||||||
# ${{ if ne(variables['MSBuildArguments_cg_android'], '') }}:
|
|
||||||
# MSBuildArguments_cg_android: $(MSBuildArguments_cg_android)
|
|
||||||
|
|
||||||
# - stage: build_osx
|
|
||||||
# displayName: Build OSX
|
|
||||||
# ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
|
|
||||||
# dependsOn: windows
|
|
||||||
# ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
|
||||||
# dependsOn: []
|
|
||||||
# jobs:
|
|
||||||
# - job: osx
|
|
||||||
# workspace:
|
|
||||||
# clean: all
|
|
||||||
# displayName: OSX Phase
|
|
||||||
# timeoutInMinutes: 120
|
|
||||||
# pool:
|
|
||||||
# name: $(osx2019VmPool)
|
|
||||||
# vmImage: $(macOSXVmImage)
|
|
||||||
# demands:
|
|
||||||
# - sh
|
|
||||||
# - Xamarin.iOS
|
|
||||||
# variables:
|
|
||||||
# provisionator.osxPath : 'build/provisioning/provisioning.csx'
|
|
||||||
# buildConfiguration: $(DefaultBuildConfiguration)
|
|
||||||
# iOSCertSecureFileName: 'Xamarin Forms iOS Certificate.p12'
|
|
||||||
# iOSProvisioningSecureFileName: 'Xamarin Forms iOS Provisioning.mobileprovision'
|
|
||||||
# steps:
|
|
||||||
# - template: build/steps/build-osx.yml
|
|
||||||
|
|
||||||
- stage: PoliCheck
|
|
||||||
displayName: 'Code Analysis'
|
|
||||||
dependsOn: windows
|
|
||||||
jobs:
|
|
||||||
- job: run_poli_check
|
|
||||||
displayName: 'Policheck And Credentials Compliance'
|
|
||||||
pool:
|
|
||||||
name: $(vs2019VmPool)
|
|
||||||
vmImage: $(vs2019VmImage)
|
|
||||||
timeoutInMinutes: 60
|
|
||||||
cancelTimeoutInMinutes: 5
|
|
||||||
steps:
|
|
||||||
- checkout: self
|
|
||||||
|
|
||||||
- template: security/policheck/v1.yml@xamarin-templates
|
|
||||||
|
|
||||||
- template: security/credscan/v2.yml@xamarin-templates
|
|
||||||
parameters:
|
|
||||||
suppressionsFile: $(System.DefaultWorkingDirectory)\build\automation\CredScanSuppressions.json
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-antimalware.AntiMalware@3
|
|
||||||
displayName: Run AntiMalware (Defender) Scan
|
|
||||||
inputs:
|
|
||||||
FileDirPath: $(System.DefaultWorkingDirectory)
|
|
||||||
EnableServices: true
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-report.SdtReport@1
|
|
||||||
displayName: Create Security Analysis Report
|
|
||||||
inputs:
|
|
||||||
CredScan: true
|
|
||||||
PoliCheck: true
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
|
|
||||||
displayName: Publish Security Analysis Logs
|
|
||||||
inputs:
|
|
||||||
ArtifactName: CodeAnalysisLogs
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
|
|
||||||
displayName: Fail Job if Security Issues are Detected
|
|
||||||
inputs:
|
|
||||||
CredScan: true
|
|
||||||
PoliCheck: true
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
|
|
||||||
# - job: api_scan
|
|
||||||
# displayName: APIScan Compliance
|
|
||||||
# pool:
|
|
||||||
# name: $(corpVmImage)
|
|
||||||
# steps:
|
|
||||||
# - checkout: none
|
|
||||||
# clean: true
|
|
||||||
|
|
||||||
# - task: DownloadBuildArtifacts@0
|
|
||||||
# displayName: 'Download build artifact win_build'
|
|
||||||
# inputs:
|
|
||||||
# artifactName: win_build
|
|
||||||
# downloadPath: $(Build.StagingDirectory)
|
|
||||||
|
|
||||||
# - task: securedevelopmentteam.vss-secure-development-tools.build-task-apiscan.APIScan@2
|
|
||||||
# displayName: 'Run APIScan'
|
|
||||||
# inputs:
|
|
||||||
# softwareFolder: '$(Build.StagingDirectory)\win_build'
|
|
||||||
# softwareName: Xamarin.Forms
|
|
||||||
# softwareVersionNum: $(Build.BuildNumber)
|
|
||||||
# isLargeApp: false
|
|
||||||
|
|
||||||
# only sign using the private server and not sigining Maui for now
|
|
||||||
# - ${{ if and(eq(variables['System.TeamProject'], 'devdiv'), ne(variables['System.DefinitionId'], '13330')) }}:
|
|
||||||
# - stage: nuget_signing
|
|
||||||
# dependsOn: windows
|
|
||||||
# displayName: Sign Nuget
|
|
||||||
# jobs:
|
|
||||||
# - job: nuget_sign
|
|
||||||
# displayName: Sign Phase
|
|
||||||
# pool:
|
|
||||||
# name: $(signVmImage)
|
|
||||||
# demands:
|
|
||||||
# msbuild
|
|
||||||
# steps:
|
|
||||||
# - template: build/steps/build-sign.yml
|
|
||||||
# condition: and(succeeded(), ne(variables['signVmImage'], ''), or(eq(variables['Sign'], 'true'), or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), startsWith(variables['Build.SourceBranch'],'refs/tags/'))))
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Gms.Tasks;
|
using Android.Gms.Tasks;
|
||||||
|
@ -9,7 +9,7 @@ using Actions = Firebase.AppIndexing.Builders.Actions;
|
||||||
using GMSTask = Android.Gms.Tasks.Task;
|
using GMSTask = Android.Gms.Tasks.Task;
|
||||||
using IndexingAction = Firebase.AppIndexing.IAction;
|
using IndexingAction = Firebase.AppIndexing.IAction;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppLinks
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks
|
||||||
{
|
{
|
||||||
[Preserve(AllMembers = true)]
|
[Preserve(AllMembers = true)]
|
||||||
public class AndroidAppLinks : IAppLinks, IDisposable
|
public class AndroidAppLinks : IAppLinks, IDisposable
|
|
@ -0,0 +1,29 @@
|
||||||
|
<Project Sdk="MSBuild.Sdk.Extras">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Description>Android AppLinks support for Xamarin.Forms</Description>
|
||||||
|
<AssemblyName>Microsoft.Maui.Controls.Compatibility.Android.AppLinks</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>$(AndroidTargetFrameworks)</TargetFrameworks>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<RootNamespace>Microsoft.Maui.Controls.Compatibility.Android.AppLinks</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)'=='Debug' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Resources\values\Strings.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\values\Strings.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Xamarin.Firebase.AppIndexing" Version="119.1.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid10.0'">
|
||||||
|
<ProjectReference Include="..\..\..\..\Controls\src\Core\Controls.Core.csproj" />
|
||||||
|
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
|
||||||
|
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,22 @@
|
||||||
|
using Android.Content;
|
||||||
|
using AActivity = Android.App.Activity;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks
|
||||||
|
{
|
||||||
|
internal static class ContextExtensions
|
||||||
|
{
|
||||||
|
public static AActivity GetActivity(this Context context)
|
||||||
|
{
|
||||||
|
if (context == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (context is AActivity activity)
|
||||||
|
return activity;
|
||||||
|
|
||||||
|
if (context is ContextWrapper contextWrapper)
|
||||||
|
return contextWrapper.BaseContext.GetActivity();
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>net6.0-android</TargetFrameworks>
|
||||||
|
<RootNamespace>Microsoft.Maui.Controls.Android</RootNamespace>
|
||||||
|
<AssemblyName>Microsoft.Maui.Controls.Android.FormsViewGroup</AssemblyName>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<Nullable>disable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Remove="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedJar Include="Jars\formsviewgroup.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Properties\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<TransformFile Include="Transforms\Metadata.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<AndroidCodeGenTarget>XAJavaInterop1</AndroidCodeGenTarget>
|
||||||
|
<RootNamespace>Microsoft.Maui.Controls.Android</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{3B72465B-ACAE-43AE-9327-10F372FE5F80}</ProjectGuid>
|
||||||
|
<ProjectTypeGuids>{10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>FormsViewGroup</RootNamespace>
|
||||||
|
<AssemblyName>FormsViewGroup</AssemblyName>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>portable</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<NoWarn>CS0109</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>portable</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<NoWarn>CS0109</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Mono.Android" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedJar Include="Jars\formsviewgroup.jar" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<TransformFile Include="Transforms\Metadata.xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.Bindings.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
|
@ -0,0 +1,6 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle ("FormsViewGroup")]
|
||||||
|
[assembly: AssemblyDescription ("")]
|
||||||
|
[assembly: ComVisible (false)]
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<metadata>
|
||||||
|
<!--
|
||||||
|
This sample removes the class: android.support.v4.content.AsyncTaskLoader.LoadTask:
|
||||||
|
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='AsyncTaskLoader.LoadTask']" />
|
||||||
|
|
||||||
|
This sample removes the method: android.support.v4.content.CursorLoader.loadInBackground:
|
||||||
|
<remove-node path="/api/package[@name='android.support.v4.content']/class[@name='CursorLoader']/method[@name='loadInBackground']" />
|
||||||
|
-->
|
||||||
|
|
||||||
|
<attr path="/api/package[@name='com.xamarin.forms.platform.android']" name="managedName">Microsoft.Maui.Controls.Android</attr>
|
||||||
|
<attr path="/api/package[@name='com.xamarin.formsviewgroup']" name="managedName">Microsoft.Maui.Controls.Android</attr>
|
||||||
|
</metadata>
|
|
@ -1,9 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public static class ActivityResultCallbackRegistry
|
public static class ActivityResultCallbackRegistry
|
||||||
{
|
{
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using Android.Content;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class AndroidAppIndexProvider : IAppIndexingProvider
|
||||||
|
{
|
||||||
|
public AndroidAppIndexProvider(Context context)
|
||||||
|
{
|
||||||
|
var fullyQualifiedName = $"{AppLinksAssemblyName}.{AppLinksClassName}, {AppLinksAssemblyName}";
|
||||||
|
var type = Type.GetType(fullyQualifiedName, throwOnError: false);
|
||||||
|
if (type != null)
|
||||||
|
{
|
||||||
|
AppLinks = Activator.CreateInstance(type, new object[] { context }, null) as IAppLinks;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IAppLinks AppLinks { get; }
|
||||||
|
|
||||||
|
const string AppLinksAssemblyName = "Microsoft.Maui.Controls.Compatibility.Platform.Android.AppLinks";
|
||||||
|
const string AppLinksClassName = "AndroidAppLinks";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
internal enum AndroidApplicationLifecycleState
|
||||||
|
{
|
||||||
|
Uninitialized,
|
||||||
|
OnCreate,
|
||||||
|
OnStart,
|
||||||
|
OnResume,
|
||||||
|
OnPause,
|
||||||
|
OnStop,
|
||||||
|
OnRestart,
|
||||||
|
OnDestroy
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,11 +2,11 @@ using System;
|
||||||
using Android.Animation;
|
using Android.Animation;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using GlobalSettings = Android.Provider.Settings.Global;
|
using GlobalSettings = Android.Provider.Settings.Global;
|
||||||
using SystemSettings = Android.Provider.Settings.System;
|
using SystemSettings = Android.Provider.Settings.System;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal class AndroidTicker : Ticker, IDisposable
|
internal class AndroidTicker : Ticker, IDisposable
|
||||||
{
|
{
|
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility
|
||||||
|
{
|
||||||
|
public enum AndroidTitleBarVisibility
|
||||||
|
{
|
||||||
|
Default = 0,
|
||||||
|
Never = 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,219 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics;
|
||||||
|
using Android.Util;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.AppCompat.Widget;
|
||||||
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||||
|
using AColor = Android.Graphics.Color;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
public class ButtonRenderer : ViewRenderer<Button, AppCompatButton>,
|
||||||
|
AView.IOnAttachStateChangeListener, AView.IOnClickListener, AView.IOnTouchListener,
|
||||||
|
IBorderVisualElementRenderer, IButtonLayoutRenderer, IDisposedState
|
||||||
|
{
|
||||||
|
BorderBackgroundManager _backgroundTracker;
|
||||||
|
TextColorSwitcher _textColorSwitcher;
|
||||||
|
float _defaultFontSize;
|
||||||
|
Typeface _defaultTypeface;
|
||||||
|
bool _isDisposed;
|
||||||
|
ButtonLayoutManager _buttonLayoutManager;
|
||||||
|
|
||||||
|
public ButtonRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
AutoPackage = false;
|
||||||
|
_backgroundTracker = new BorderBackgroundManager(this);
|
||||||
|
_buttonLayoutManager = new ButtonLayoutManager(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
global::Android.Widget.Button NativeButton => Control;
|
||||||
|
|
||||||
|
protected override void SetContentDescription()
|
||||||
|
=> base.SetContentDescription(false);
|
||||||
|
|
||||||
|
public override SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
return _buttonLayoutManager.GetDesiredSize(widthConstraint, heightConstraint);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AView.IOnAttachStateChangeListener.OnViewAttachedToWindow(AView attachedView) =>
|
||||||
|
_buttonLayoutManager?.OnViewAttachedToWindow(attachedView);
|
||||||
|
|
||||||
|
void AView.IOnAttachStateChangeListener.OnViewDetachedFromWindow(AView detachedView) =>
|
||||||
|
_buttonLayoutManager?.OnViewDetachedFromWindow(detachedView);
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
_buttonLayoutManager?.OnLayout(changed, l, t, r, b);
|
||||||
|
base.OnLayout(changed, l, t, r, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override AppCompatButton CreateNativeControl()
|
||||||
|
{
|
||||||
|
return new AppCompatButton(Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_isDisposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_isDisposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
if (Control != null)
|
||||||
|
{
|
||||||
|
Control.SetOnClickListener(null);
|
||||||
|
Control.SetOnTouchListener(null);
|
||||||
|
Control.RemoveOnAttachStateChangeListener(this);
|
||||||
|
_textColorSwitcher = null;
|
||||||
|
}
|
||||||
|
_backgroundTracker?.Dispose();
|
||||||
|
_backgroundTracker = null;
|
||||||
|
_buttonLayoutManager?.Dispose();
|
||||||
|
_buttonLayoutManager = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
|
||||||
|
{
|
||||||
|
base.OnElementChanged(e);
|
||||||
|
|
||||||
|
if (e.NewElement != null)
|
||||||
|
{
|
||||||
|
if (Control == null)
|
||||||
|
{
|
||||||
|
AppCompatButton button = CreateNativeControl();
|
||||||
|
|
||||||
|
button.SetOnClickListener(this);
|
||||||
|
button.SetOnTouchListener(this);
|
||||||
|
button.AddOnAttachStateChangeListener(this);
|
||||||
|
_textColorSwitcher = new TextColorSwitcher(button.TextColors, e.NewElement.UseLegacyColorManagement());
|
||||||
|
|
||||||
|
SetNativeControl(button);
|
||||||
|
}
|
||||||
|
|
||||||
|
_defaultFontSize = 0f;
|
||||||
|
|
||||||
|
_buttonLayoutManager?.Update();
|
||||||
|
UpdateAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.PropertyName == Button.TextColorProperty.PropertyName)
|
||||||
|
UpdateTextColor();
|
||||||
|
else if (e.PropertyName == VisualElement.IsEnabledProperty.PropertyName)
|
||||||
|
UpdateEnabled();
|
||||||
|
else if (e.PropertyName == Button.FontProperty.PropertyName)
|
||||||
|
UpdateFont();
|
||||||
|
else if (e.PropertyName == Button.CharacterSpacingProperty.PropertyName)
|
||||||
|
UpdateCharacterSpacing();
|
||||||
|
|
||||||
|
base.OnElementPropertyChanged(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
protected override void UpdateBackgroundColor()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_backgroundTracker?.UpdateDrawable();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateAll()
|
||||||
|
{
|
||||||
|
UpdateFont();
|
||||||
|
UpdateTextColor();
|
||||||
|
UpdateEnabled();
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
UpdateCharacterSpacing();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateEnabled()
|
||||||
|
{
|
||||||
|
Control.Enabled = Element.IsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFont()
|
||||||
|
{
|
||||||
|
Button button = Element;
|
||||||
|
Font font = button.Font;
|
||||||
|
|
||||||
|
if (font == Font.Default && _defaultFontSize == 0f)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_defaultFontSize == 0f)
|
||||||
|
{
|
||||||
|
_defaultTypeface = NativeButton.Typeface;
|
||||||
|
_defaultFontSize = NativeButton.TextSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font == Font.Default)
|
||||||
|
{
|
||||||
|
NativeButton.Typeface = _defaultTypeface;
|
||||||
|
NativeButton.SetTextSize(ComplexUnitType.Px, _defaultFontSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NativeButton.Typeface = font.ToTypeface();
|
||||||
|
NativeButton.SetTextSize(ComplexUnitType.Sp, font.ToScaledPixel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateTextColor()
|
||||||
|
{
|
||||||
|
_textColorSwitcher?.UpdateTextColor(Control, Element.TextColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateCharacterSpacing()
|
||||||
|
{
|
||||||
|
if (Forms.IsLollipopOrNewer)
|
||||||
|
{
|
||||||
|
NativeButton.LetterSpacing = Element.CharacterSpacing.ToEm();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void IOnClickListener.OnClick(AView v) => ButtonElementManager.OnClick(Element, Element, v);
|
||||||
|
|
||||||
|
bool IOnTouchListener.OnTouch(AView v, MotionEvent e) => ButtonElementManager.OnTouch(Element, Element, v, e);
|
||||||
|
|
||||||
|
float IBorderVisualElementRenderer.ShadowRadius => Control.ShadowRadius;
|
||||||
|
float IBorderVisualElementRenderer.ShadowDx => Control.ShadowDx;
|
||||||
|
float IBorderVisualElementRenderer.ShadowDy => Control.ShadowDy;
|
||||||
|
AColor IBorderVisualElementRenderer.ShadowColor => Control.ShadowColor;
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultPadding() => Element.OnThisPlatform().UseDefaultPadding();
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultShadow() => Element.OnThisPlatform().UseDefaultShadow();
|
||||||
|
bool IBorderVisualElementRenderer.IsShadowEnabled() => true;
|
||||||
|
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||||
|
AView IBorderVisualElementRenderer.View => Control;
|
||||||
|
event EventHandler<VisualElementChangedEventArgs> IBorderVisualElementRenderer.ElementChanged
|
||||||
|
{
|
||||||
|
add => ((IVisualElementRenderer)this).ElementChanged += value;
|
||||||
|
remove => ((IVisualElementRenderer)this).ElementChanged -= value;
|
||||||
|
}
|
||||||
|
|
||||||
|
event EventHandler<VisualElementChangedEventArgs> IButtonLayoutRenderer.ElementChanged
|
||||||
|
{
|
||||||
|
add => ((IVisualElementRenderer)this).ElementChanged += value;
|
||||||
|
remove => ((IVisualElementRenderer)this).ElementChanged -= value;
|
||||||
|
}
|
||||||
|
|
||||||
|
AppCompatButton IButtonLayoutRenderer.View => Control;
|
||||||
|
bool IDisposedState.IsDisposed => _isDisposed || !Control.IsAlive();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,194 @@
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.Fragment.App;
|
||||||
|
using AndroidX.ViewPager.Widget;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
|
||||||
|
public class CarouselPageRenderer : VisualElementRenderer<CarouselPage>, ViewPager.IOnPageChangeListener, IManageFragments
|
||||||
|
{
|
||||||
|
bool _disposed;
|
||||||
|
FormsViewPager _viewPager;
|
||||||
|
Page _previousPage;
|
||||||
|
FragmentManager _fragmentManager;
|
||||||
|
|
||||||
|
public CarouselPageRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
AutoPackage = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ViewPager.IOnPageChangeListener.OnPageScrolled(int position, float positionOffset, int positionOffsetPixels)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ViewPager.IOnPageChangeListener.OnPageScrollStateChanged(int state)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
IPageController PageController => Element as IPageController;
|
||||||
|
|
||||||
|
FragmentManager FragmentManager => _fragmentManager ?? (_fragmentManager = Context.GetFragmentManager());
|
||||||
|
|
||||||
|
void IManageFragments.SetFragmentManager(FragmentManager childFragmentManager)
|
||||||
|
{
|
||||||
|
if (_fragmentManager == null)
|
||||||
|
_fragmentManager = childFragmentManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ViewPager.IOnPageChangeListener.OnPageSelected(int position)
|
||||||
|
{
|
||||||
|
Element.CurrentPage = Element.Children[position];
|
||||||
|
if (_previousPage != Element.CurrentPage)
|
||||||
|
{
|
||||||
|
_previousPage?.SendDisappearing();
|
||||||
|
_previousPage = Element.CurrentPage;
|
||||||
|
}
|
||||||
|
Element.CurrentPage.SendAppearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && !_disposed)
|
||||||
|
{
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
PageController.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
|
||||||
|
|
||||||
|
if (_viewPager != null)
|
||||||
|
{
|
||||||
|
RemoveView(_viewPager);
|
||||||
|
|
||||||
|
_viewPager.ClearOnPageChangeListeners();
|
||||||
|
_viewPager.Adapter.Dispose();
|
||||||
|
_viewPager.Dispose();
|
||||||
|
_viewPager = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
RemoveAllViews();
|
||||||
|
|
||||||
|
_previousPage = null;
|
||||||
|
_fragmentManager = null;
|
||||||
|
|
||||||
|
if (Element?.Children != null)
|
||||||
|
{
|
||||||
|
foreach (ContentPage pageToRemove in Element.Children)
|
||||||
|
{
|
||||||
|
IVisualElementRenderer pageRenderer = Platform.GetRenderer(pageToRemove);
|
||||||
|
if (pageRenderer != null)
|
||||||
|
{
|
||||||
|
pageRenderer.View.RemoveFromParent();
|
||||||
|
pageRenderer.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
pageToRemove.ClearValue(Platform.RendererProperty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnAttachedToWindow()
|
||||||
|
{
|
||||||
|
base.OnAttachedToWindow();
|
||||||
|
if (Parent is PageContainer pageContainer && (pageContainer.IsInFragment || pageContainer.Visibility == ViewStates.Gone))
|
||||||
|
return;
|
||||||
|
PageController.SendAppearing();
|
||||||
|
Element.CurrentPage?.SendAppearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDetachedFromWindow()
|
||||||
|
{
|
||||||
|
base.OnDetachedFromWindow();
|
||||||
|
if (Parent is PageContainer pageContainer && pageContainer.IsInFragment)
|
||||||
|
return;
|
||||||
|
Element.CurrentPage?.SendDisappearing();
|
||||||
|
PageController.SendDisappearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementChanged(ElementChangedEventArgs<CarouselPage> e)
|
||||||
|
{
|
||||||
|
base.OnElementChanged(e);
|
||||||
|
|
||||||
|
var activity = (FormsAppCompatActivity)Context.GetActivity();
|
||||||
|
|
||||||
|
if (e.OldElement != null)
|
||||||
|
((IPageController)e.OldElement).InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
|
||||||
|
|
||||||
|
if (e.NewElement != null)
|
||||||
|
{
|
||||||
|
if (_viewPager != null)
|
||||||
|
{
|
||||||
|
_viewPager.RemoveOnPageChangeListener(this);
|
||||||
|
|
||||||
|
ViewGroup.RemoveView(_viewPager);
|
||||||
|
|
||||||
|
_viewPager.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
FormsViewPager pager = _viewPager = new FormsViewPager(activity)
|
||||||
|
{
|
||||||
|
OverScrollMode = OverScrollMode.Never,
|
||||||
|
EnableGesture = true,
|
||||||
|
LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent),
|
||||||
|
Adapter = new FormsFragmentPagerAdapter<ContentPage>(e.NewElement, FragmentManager) { CountOverride = e.NewElement.Children.Count }
|
||||||
|
};
|
||||||
|
pager.Id = Platform.GenerateViewId();
|
||||||
|
pager.AddOnPageChangeListener(this);
|
||||||
|
|
||||||
|
ViewGroup.AddView(pager);
|
||||||
|
CarouselPage carouselPage = e.NewElement;
|
||||||
|
if (carouselPage.CurrentPage != null)
|
||||||
|
{
|
||||||
|
_previousPage = carouselPage.CurrentPage;
|
||||||
|
ScrollToCurrentPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
((IPageController)carouselPage).InternalChildren.CollectionChanged += OnChildrenCollectionChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnElementPropertyChanged(sender, e);
|
||||||
|
|
||||||
|
if (e.PropertyName == nameof(Element.CurrentPage))
|
||||||
|
ScrollToCurrentPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
FormsViewPager pager = _viewPager;
|
||||||
|
Context context = Context;
|
||||||
|
int width = r - l;
|
||||||
|
int height = b - t;
|
||||||
|
|
||||||
|
pager.Measure(MeasureSpecFactory.MakeMeasureSpec(width, MeasureSpecMode.AtMost), MeasureSpecFactory.MakeMeasureSpec(height, MeasureSpecMode.AtMost));
|
||||||
|
|
||||||
|
if (width > 0 && height > 0)
|
||||||
|
{
|
||||||
|
PageController.ContainerArea = new Rectangle(0, 0, context.FromPixels(width), context.FromPixels(height));
|
||||||
|
pager.Layout(0, 0, width, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnLayout(changed, l, t, r, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
FormsViewPager pager = _viewPager;
|
||||||
|
|
||||||
|
((FormsFragmentPagerAdapter<ContentPage>)pager.Adapter).CountOverride = Element.Children.Count;
|
||||||
|
pager.Adapter.NotifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScrollToCurrentPage()
|
||||||
|
{
|
||||||
|
_viewPager.SetCurrentItem(Element.Children.IndexOf(Element.CurrentPage), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using Android.Content;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class CheckBoxRenderer : CheckBoxRendererBase
|
||||||
|
{
|
||||||
|
public CheckBoxRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,281 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Content.Res;
|
||||||
|
using Android.Graphics;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Widget;
|
||||||
|
using AndroidX.AppCompat.Widget;
|
||||||
|
using AndroidX.Core.Widget;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||||
|
using AAttribute = Android.Resource.Attribute;
|
||||||
|
using AColor = Android.Graphics.Color;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class CheckBoxRendererBase :
|
||||||
|
AppCompatCheckBox,
|
||||||
|
IVisualElementRenderer,
|
||||||
|
AView.IOnFocusChangeListener,
|
||||||
|
CompoundButton.IOnCheckedChangeListener,
|
||||||
|
ITabStop
|
||||||
|
{
|
||||||
|
bool _disposed;
|
||||||
|
int? _defaultLabelFor;
|
||||||
|
VisualElementTracker _tracker;
|
||||||
|
VisualElementRenderer _visualElementRenderer;
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, CheckBox> _platformElementConfiguration;
|
||||||
|
CheckBox _checkBox;
|
||||||
|
|
||||||
|
static int[][] _checkedStates = new int[][]
|
||||||
|
{
|
||||||
|
new int[] { AAttribute.StateEnabled, AAttribute.StateChecked },
|
||||||
|
new int[] { AAttribute.StateEnabled, -AAttribute.StateChecked },
|
||||||
|
new int[] { -AAttribute.StateEnabled, AAttribute.StateChecked },
|
||||||
|
new int[] { -AAttribute.StateEnabled, -AAttribute.StatePressed },
|
||||||
|
};
|
||||||
|
|
||||||
|
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||||
|
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||||
|
|
||||||
|
public CheckBoxRendererBase(Context context) : base(context) => Init();
|
||||||
|
|
||||||
|
public CheckBoxRendererBase(Context context, int defStyleAttr) : base(context, null, defStyleAttr) => Init();
|
||||||
|
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
SoundEffectsEnabled = false;
|
||||||
|
SetOnCheckedChangeListener(this);
|
||||||
|
Tag = this;
|
||||||
|
OnFocusChangeListener = this;
|
||||||
|
|
||||||
|
this.SetClipToOutline(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
_disposed = true;
|
||||||
|
_tracker?.Dispose();
|
||||||
|
_tracker = null;
|
||||||
|
SetOnCheckedChangeListener(null);
|
||||||
|
OnFocusChangeListener = null;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
|
||||||
|
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||||
|
{
|
||||||
|
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
Element = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
Size MinimumSize()
|
||||||
|
{
|
||||||
|
return Size.Zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return new SizeRequest();
|
||||||
|
}
|
||||||
|
Measure(widthConstraint, heightConstraint);
|
||||||
|
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight), MinimumSize());
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||||
|
{
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(element));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(element is CheckBox checkBox))
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Element is not of type " + typeof(CheckBox), nameof(element));
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckBox oldElement = Element;
|
||||||
|
Element = checkBox;
|
||||||
|
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
if (oldElement != null)
|
||||||
|
{
|
||||||
|
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.PropertyChanged += OnElementPropertyChanged;
|
||||||
|
|
||||||
|
if (_tracker == null)
|
||||||
|
{
|
||||||
|
_tracker = new VisualElementTracker(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_visualElementRenderer == null)
|
||||||
|
{
|
||||||
|
_visualElementRenderer = new VisualElementRenderer(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnElementChanged(new ElementChangedEventArgs<CheckBox>(oldElement as CheckBox, Element));
|
||||||
|
Element?.SendViewInitialized(Control);
|
||||||
|
Performance.Stop(reference);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementChanged(ElementChangedEventArgs<CheckBox> e)
|
||||||
|
{
|
||||||
|
if (e.NewElement != null && !_disposed)
|
||||||
|
{
|
||||||
|
this.EnsureId();
|
||||||
|
|
||||||
|
UpdateOnColor();
|
||||||
|
UpdateIsChecked();
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
UpdateBackground();
|
||||||
|
}
|
||||||
|
|
||||||
|
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.PropertyName == CheckBox.ColorProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateOnColor();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == CheckBox.IsCheckedProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateIsChecked();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == VisualElement.BackgroundProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateBackground();
|
||||||
|
}
|
||||||
|
|
||||||
|
ElementPropertyChanged?.Invoke(this, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IOnCheckedChangeListener.OnCheckedChanged(CompoundButton buttonView, bool isChecked)
|
||||||
|
{
|
||||||
|
((IElementController)Element).SetValueFromRenderer(CheckBox.IsCheckedProperty, isChecked);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsChecked()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Checked = Element.IsChecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual ColorStateList GetColorStateList()
|
||||||
|
{
|
||||||
|
var tintColor = Element.Color == Color.Default ? Color.Accent.ToAndroid() : Element.Color.ToAndroid();
|
||||||
|
|
||||||
|
var list = new ColorStateList(
|
||||||
|
_checkedStates,
|
||||||
|
new int[]
|
||||||
|
{
|
||||||
|
tintColor,
|
||||||
|
tintColor,
|
||||||
|
tintColor,
|
||||||
|
tintColor
|
||||||
|
});
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackgroundColor()
|
||||||
|
{
|
||||||
|
if (Element.BackgroundColor == Color.Default)
|
||||||
|
SetBackgroundColor(AColor.Transparent);
|
||||||
|
else
|
||||||
|
SetBackgroundColor(Element.BackgroundColor.ToAndroid());
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackground()
|
||||||
|
{
|
||||||
|
Brush background = Element.Background;
|
||||||
|
|
||||||
|
this.UpdateBackground(background);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateOnColor()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var mode = PorterDuff.Mode.SrcIn;
|
||||||
|
|
||||||
|
|
||||||
|
CompoundButtonCompat.SetButtonTintList(Control, GetColorStateList());
|
||||||
|
CompoundButtonCompat.SetButtonTintMode(Control, mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||||
|
{
|
||||||
|
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||||
|
}
|
||||||
|
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, CheckBox> OnThisPlatform()
|
||||||
|
{
|
||||||
|
if (_platformElementConfiguration == null)
|
||||||
|
_platformElementConfiguration = Element.OnThisPlatform();
|
||||||
|
|
||||||
|
return _platformElementConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLabelFor(int? id)
|
||||||
|
{
|
||||||
|
if (_defaultLabelFor == null)
|
||||||
|
_defaultLabelFor = LabelFor;
|
||||||
|
|
||||||
|
LabelFor = (int)(id ?? _defaultLabelFor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||||
|
VisualElement IVisualElementRenderer.Element => Element;
|
||||||
|
AView IVisualElementRenderer.View => this;
|
||||||
|
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||||
|
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||||
|
|
||||||
|
protected CheckBox Element
|
||||||
|
{
|
||||||
|
get => _checkBox;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
_checkBox = value;
|
||||||
|
_platformElementConfiguration = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected AppCompatCheckBox Control => this;
|
||||||
|
|
||||||
|
AView ITabStop.TabStop => this;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,15 +2,15 @@ using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Content.Res;
|
using Android.Content.Res;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using Xamarin.Forms.Platform.Android.AppCompat;
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||||
using APlatform = Xamarin.Forms.Platform.Android.AppCompat.Platform;
|
using APlatform = Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.Platform;
|
||||||
using Fragment = AndroidX.Fragment.App.Fragment;
|
using Fragment = AndroidX.Fragment.App.Fragment;
|
||||||
using FragmentContainer = Xamarin.Forms.Platform.Android.AppCompat.FragmentContainer;
|
using FragmentContainer = Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.FragmentContainer;
|
||||||
using FragmentManager = AndroidX.Fragment.App.FragmentManager;
|
using FragmentManager = AndroidX.Fragment.App.FragmentManager;
|
||||||
using FragmentTransaction = AndroidX.Fragment.App.FragmentTransaction;
|
using FragmentTransaction = AndroidX.Fragment.App.FragmentTransaction;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal class FlyoutPageContainer : ViewGroup, IManageFragments
|
internal class FlyoutPageContainer : ViewGroup, IManageFragments
|
||||||
{
|
{
|
|
@ -0,0 +1,508 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.DrawerLayout.Widget;
|
||||||
|
using AndroidX.Fragment.App;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||||
|
|
||||||
|
public class FlyoutPageRenderer : DrawerLayout, IVisualElementRenderer, DrawerLayout.IDrawerListener, IManageFragments, ILifeCycleState
|
||||||
|
{
|
||||||
|
#region Statics
|
||||||
|
|
||||||
|
//from Android source code
|
||||||
|
const uint DefaultScrimColor = 0x99000000;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
int _currentLockMode = -1;
|
||||||
|
FlyoutPageContainer _detailLayout;
|
||||||
|
FlyoutPageContainer _flyoutLayout;
|
||||||
|
bool _disposed;
|
||||||
|
bool _isPresentingFromCore;
|
||||||
|
bool _presented;
|
||||||
|
bool _defaultAutomationSet;
|
||||||
|
VisualElementTracker _tracker;
|
||||||
|
FragmentManager _fragmentManager;
|
||||||
|
string _defaultContentDescription;
|
||||||
|
|
||||||
|
public FlyoutPageRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
FlyoutPage Element { get; set; }
|
||||||
|
|
||||||
|
IFlyoutPageController FlyoutPageController => Element as IFlyoutPageController;
|
||||||
|
|
||||||
|
bool Presented
|
||||||
|
{
|
||||||
|
get { return _presented; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == _presented)
|
||||||
|
return;
|
||||||
|
UpdateSplitViewLayout();
|
||||||
|
_presented = value;
|
||||||
|
if (Element.FlyoutLayoutBehavior == FlyoutLayoutBehavior.Default && FlyoutPageController.ShouldShowSplitMode)
|
||||||
|
return;
|
||||||
|
if (_presented)
|
||||||
|
OpenDrawer(_flyoutLayout);
|
||||||
|
else
|
||||||
|
CloseDrawer(_flyoutLayout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IPageController FlyoutPagePageController => Element.Flyout as IPageController;
|
||||||
|
IPageController DetailPageController => Element.Detail as IPageController;
|
||||||
|
IPageController PageController => Element as IPageController;
|
||||||
|
|
||||||
|
void IDrawerListener.OnDrawerClosed(global::Android.Views.View drawerView)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void IDrawerListener.OnDrawerOpened(global::Android.Views.View drawerView)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void IDrawerListener.OnDrawerSlide(global::Android.Views.View drawerView, float slideOffset)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void IDrawerListener.OnDrawerStateChanged(int newState)
|
||||||
|
{
|
||||||
|
_presented = IsDrawerVisible(_flyoutLayout);
|
||||||
|
UpdateIsPresented();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IManageFragments.SetFragmentManager(FragmentManager fragmentManager)
|
||||||
|
{
|
||||||
|
if (_fragmentManager == null)
|
||||||
|
_fragmentManager = fragmentManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
VisualElement IVisualElementRenderer.Element => Element;
|
||||||
|
|
||||||
|
event EventHandler<VisualElementChangedEventArgs> IVisualElementRenderer.ElementChanged
|
||||||
|
{
|
||||||
|
add { ElementChanged += value; }
|
||||||
|
remove { ElementChanged -= value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
event EventHandler<PropertyChangedEventArgs> IVisualElementRenderer.ElementPropertyChanged
|
||||||
|
{
|
||||||
|
add { ElementPropertyChanged += value; }
|
||||||
|
remove { ElementPropertyChanged -= value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
Measure(widthConstraint, heightConstraint);
|
||||||
|
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight));
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||||
|
{
|
||||||
|
FlyoutPage oldElement = Element;
|
||||||
|
FlyoutPage newElement = Element = element as FlyoutPage;
|
||||||
|
|
||||||
|
if (oldElement != null)
|
||||||
|
{
|
||||||
|
Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;
|
||||||
|
|
||||||
|
((IFlyoutPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;
|
||||||
|
|
||||||
|
oldElement.PropertyChanged -= HandlePropertyChanged;
|
||||||
|
oldElement.Appearing -= FlyoutPageAppearing;
|
||||||
|
oldElement.Disappearing -= FlyoutPageDisappearing;
|
||||||
|
|
||||||
|
RemoveDrawerListener(this);
|
||||||
|
|
||||||
|
if (_detailLayout != null)
|
||||||
|
{
|
||||||
|
RemoveView(_detailLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_flyoutLayout != null)
|
||||||
|
{
|
||||||
|
RemoveView(_flyoutLayout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newElement != null)
|
||||||
|
{
|
||||||
|
if (_detailLayout == null)
|
||||||
|
{
|
||||||
|
_detailLayout = new FlyoutPageContainer(newElement, false, Context)
|
||||||
|
{
|
||||||
|
LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
|
||||||
|
};
|
||||||
|
|
||||||
|
_flyoutLayout = new FlyoutPageContainer(newElement, true, Context)
|
||||||
|
{
|
||||||
|
LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start }
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_fragmentManager != null)
|
||||||
|
{
|
||||||
|
_detailLayout.SetFragmentManager(_fragmentManager);
|
||||||
|
_flyoutLayout.SetFragmentManager(_fragmentManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
AddView(_detailLayout);
|
||||||
|
AddView(_flyoutLayout);
|
||||||
|
|
||||||
|
Device.Info.PropertyChanged += DeviceInfoPropertyChanged;
|
||||||
|
|
||||||
|
AddDrawerListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateBackgroundColor(newElement);
|
||||||
|
UpdateBackgroundImage(newElement);
|
||||||
|
|
||||||
|
UpdateFlyout();
|
||||||
|
UpdateDetail();
|
||||||
|
|
||||||
|
UpdateFlowDirection();
|
||||||
|
|
||||||
|
((IFlyoutPageController)newElement).BackButtonPressed += OnBackButtonPressed;
|
||||||
|
newElement.PropertyChanged += HandlePropertyChanged;
|
||||||
|
newElement.Appearing += FlyoutPageAppearing;
|
||||||
|
newElement.Disappearing += FlyoutPageDisappearing;
|
||||||
|
|
||||||
|
SetGestureState();
|
||||||
|
|
||||||
|
Presented = newElement.IsPresented;
|
||||||
|
|
||||||
|
newElement.SendViewInitialized(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnElementChanged(oldElement, newElement);
|
||||||
|
|
||||||
|
// Make sure to initialize this AFTER event is fired
|
||||||
|
if (_tracker == null)
|
||||||
|
_tracker = new VisualElementTracker(this);
|
||||||
|
|
||||||
|
if (element != null && !string.IsNullOrEmpty(element.AutomationId))
|
||||||
|
SetAutomationId(element.AutomationId);
|
||||||
|
|
||||||
|
SetContentDescription();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetLabelFor(int? id) => LabelFor = id ?? LabelFor;
|
||||||
|
|
||||||
|
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||||
|
|
||||||
|
void IVisualElementRenderer.UpdateLayout()
|
||||||
|
{
|
||||||
|
_tracker?.UpdateLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewGroup IVisualElementRenderer.ViewGroup => this;
|
||||||
|
|
||||||
|
AView IVisualElementRenderer.View => this;
|
||||||
|
|
||||||
|
bool ILifeCycleState.MarkedForDispose { get; set; } = false;
|
||||||
|
|
||||||
|
void SetupAutomationDefaults()
|
||||||
|
{
|
||||||
|
if (!_defaultAutomationSet)
|
||||||
|
{
|
||||||
|
_defaultAutomationSet = true;
|
||||||
|
AutomationPropertiesProvider.SetupDefaults(this, ref _defaultContentDescription);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void SetAutomationId(string id)
|
||||||
|
{
|
||||||
|
SetupAutomationDefaults();
|
||||||
|
AutomationPropertiesProvider.SetAutomationId(this, Element, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void SetContentDescription()
|
||||||
|
{
|
||||||
|
SetupAutomationDefaults();
|
||||||
|
AutomationPropertiesProvider.SetContentDescription(this, Element, _defaultContentDescription, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
FlyoutPageController.BackButtonPressed -= OnBackButtonPressed;
|
||||||
|
Element.PropertyChanged -= HandlePropertyChanged;
|
||||||
|
Element.Appearing -= FlyoutPageAppearing;
|
||||||
|
Element.Disappearing -= FlyoutPageDisappearing;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_flyoutLayout?.ChildView != null)
|
||||||
|
_flyoutLayout.ChildView.PropertyChanged -= HandleFlyoutPropertyChanged;
|
||||||
|
|
||||||
|
if (!this.IsDisposed())
|
||||||
|
RemoveDrawerListener(this);
|
||||||
|
|
||||||
|
if (_tracker != null)
|
||||||
|
{
|
||||||
|
_tracker.Dispose();
|
||||||
|
_tracker = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_detailLayout != null)
|
||||||
|
{
|
||||||
|
RemoveView(_detailLayout);
|
||||||
|
_detailLayout.Dispose();
|
||||||
|
_detailLayout = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_flyoutLayout != null)
|
||||||
|
{
|
||||||
|
RemoveView(_flyoutLayout);
|
||||||
|
_flyoutLayout.Dispose();
|
||||||
|
_flyoutLayout = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
Element.ClearValue(Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat.Platform.RendererProperty);
|
||||||
|
Element = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnAttachedToWindow()
|
||||||
|
{
|
||||||
|
base.OnAttachedToWindow();
|
||||||
|
PageController.SendAppearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDetachedFromWindow()
|
||||||
|
{
|
||||||
|
base.OnDetachedFromWindow();
|
||||||
|
PageController?.SendDisappearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementChanged(VisualElement oldElement, VisualElement newElement)
|
||||||
|
{
|
||||||
|
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(oldElement, newElement));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
base.OnLayout(changed, l, t, r, b);
|
||||||
|
//hack to make the split layout handle touches the full width
|
||||||
|
if (FlyoutPageController.ShouldShowSplitMode && _flyoutLayout != null)
|
||||||
|
_flyoutLayout.Right = r;
|
||||||
|
}
|
||||||
|
|
||||||
|
async void DeviceInfoPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (nameof(Device.Info.CurrentOrientation) == e.PropertyName)
|
||||||
|
{
|
||||||
|
if (!FlyoutPageController.ShouldShowSplitMode && Presented)
|
||||||
|
{
|
||||||
|
FlyoutPageController.CanChangeIsPresented = true;
|
||||||
|
//hack : when the orientation changes and we try to close the Flyout on Android
|
||||||
|
//sometimes Android picks the width of the screen previous to the rotation
|
||||||
|
//this leaves a little of the flyout visible, the hack is to delay for 100ms closing the drawer
|
||||||
|
await Task.Delay(100);
|
||||||
|
|
||||||
|
//Renderer may have been disposed during the delay
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseDrawer(_flyoutLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateSplitViewLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||||
|
event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||||
|
|
||||||
|
bool HasAncestorNavigationPage(Element element)
|
||||||
|
{
|
||||||
|
if (element.Parent == null)
|
||||||
|
return false;
|
||||||
|
else if (element.Parent is NavigationPage)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return HasAncestorNavigationPage(element.Parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleFlyoutPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandlePropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
ElementPropertyChanged?.Invoke(this, e);
|
||||||
|
if (e.PropertyName == "Flyout")
|
||||||
|
UpdateFlyout();
|
||||||
|
else if (e.PropertyName == "Detail")
|
||||||
|
UpdateDetail();
|
||||||
|
else if (e.PropertyName == FlyoutPage.IsGestureEnabledProperty.PropertyName)
|
||||||
|
SetGestureState();
|
||||||
|
else if (e.PropertyName == FlyoutPage.IsPresentedProperty.PropertyName)
|
||||||
|
{
|
||||||
|
_isPresentingFromCore = true;
|
||||||
|
Presented = Element.IsPresented;
|
||||||
|
_isPresentingFromCore = false;
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == Page.BackgroundImageSourceProperty.PropertyName)
|
||||||
|
UpdateBackgroundImage(Element);
|
||||||
|
else if (e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName)
|
||||||
|
UpdateBackgroundColor(Element);
|
||||||
|
else if (e.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||||
|
UpdateFlowDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FlyoutPageAppearing(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
FlyoutPagePageController?.SendAppearing();
|
||||||
|
DetailPageController?.SendAppearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FlyoutPageDisappearing(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
FlyoutPagePageController?.SendDisappearing();
|
||||||
|
DetailPageController?.SendDisappearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnBackButtonPressed(object sender, BackButtonPressedEventArgs backButtonPressedEventArgs)
|
||||||
|
{
|
||||||
|
if (!IsDrawerOpen((int)GravityFlags.Start) || _currentLockMode == LockModeLockedOpen)
|
||||||
|
return;
|
||||||
|
|
||||||
|
CloseDrawer((int)GravityFlags.Start);
|
||||||
|
backButtonPressedEventArgs.Handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetGestureState()
|
||||||
|
{
|
||||||
|
SetDrawerLockMode(Element.IsGestureEnabled ? LockModeUnlocked : LockModeLockedClosed);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetLockMode(int lockMode)
|
||||||
|
{
|
||||||
|
if (_currentLockMode != lockMode)
|
||||||
|
{
|
||||||
|
SetDrawerLockMode(lockMode);
|
||||||
|
_currentLockMode = lockMode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackgroundColor(Page view)
|
||||||
|
{
|
||||||
|
Color backgroundColor = view.BackgroundColor;
|
||||||
|
if (backgroundColor.IsDefault)
|
||||||
|
SetBackgroundColor(backgroundColor.ToAndroid());
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackgroundImage(Page view)
|
||||||
|
{
|
||||||
|
_ = this.ApplyDrawableAsync(view, Page.BackgroundImageSourceProperty, Context, drawable =>
|
||||||
|
{
|
||||||
|
if (drawable != null)
|
||||||
|
this.SetBackground(drawable);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateDetail()
|
||||||
|
{
|
||||||
|
if (_detailLayout.ChildView == null)
|
||||||
|
Update();
|
||||||
|
else
|
||||||
|
// Queue up disposal of the previous renderers after the current layout updates have finished
|
||||||
|
new Handler(Looper.MainLooper).Post(Update);
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (_detailLayout == null || _detailLayout.IsDisposed())
|
||||||
|
return;
|
||||||
|
|
||||||
|
Context.HideKeyboard(this);
|
||||||
|
_detailLayout.ChildView = Element.Detail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlowDirection()
|
||||||
|
{
|
||||||
|
this.UpdateFlowDirection(Element);
|
||||||
|
_detailLayout.UpdateFlowDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsPresented()
|
||||||
|
{
|
||||||
|
if (_isPresentingFromCore)
|
||||||
|
return;
|
||||||
|
if (Presented != Element.IsPresented)
|
||||||
|
((IElementController)Element).SetValueFromRenderer(FlyoutPage.IsPresentedProperty, Presented);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlyout()
|
||||||
|
{
|
||||||
|
if (_flyoutLayout.ChildView == null)
|
||||||
|
Update();
|
||||||
|
else
|
||||||
|
// Queue up disposal of the previous renderers after the current layout updates have finished
|
||||||
|
new Handler(Looper.MainLooper).Post(Update);
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (_flyoutLayout == null || _flyoutLayout.IsDisposed())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_flyoutLayout.ChildView != null)
|
||||||
|
_flyoutLayout.ChildView.PropertyChanged -= HandleFlyoutPropertyChanged;
|
||||||
|
|
||||||
|
_flyoutLayout.ChildView = Element.Flyout;
|
||||||
|
|
||||||
|
if (_flyoutLayout.ChildView != null)
|
||||||
|
_flyoutLayout.ChildView.PropertyChanged += HandleFlyoutPropertyChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateSplitViewLayout()
|
||||||
|
{
|
||||||
|
if (Device.Idiom == TargetIdiom.Tablet)
|
||||||
|
{
|
||||||
|
bool isShowingSplit = FlyoutPageController.ShouldShowSplitMode || (FlyoutPageController.ShouldShowSplitMode && Element.FlyoutLayoutBehavior != FlyoutLayoutBehavior.Default && Element.IsPresented);
|
||||||
|
SetLockMode(isShowingSplit ? LockModeLockedOpen : LockModeUnlocked);
|
||||||
|
unchecked
|
||||||
|
{
|
||||||
|
SetScrimColor(isShowingSplit ? Color.Transparent.ToAndroid() : (int)DefaultScrimColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
public class MasterDetailPageRenderer : FlyoutPageRenderer
|
||||||
|
{
|
||||||
|
public MasterDetailPageRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,15 +9,15 @@ using Android.OS;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using AndroidX.AppCompat.App;
|
using AndroidX.AppCompat.App;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using Xamarin.Forms.Platform.Android.AppCompat;
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat;
|
||||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||||
using AColor = Android.Graphics.Color;
|
using AColor = Android.Graphics.Color;
|
||||||
using ARelativeLayout = Android.Widget.RelativeLayout;
|
using ARelativeLayout = Android.Widget.RelativeLayout;
|
||||||
using AToolbar = AndroidX.AppCompat.Widget.Toolbar;
|
using AToolbar = AndroidX.AppCompat.Widget.Toolbar;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum ActivationFlags : long
|
public enum ActivationFlags : long
|
||||||
|
@ -81,7 +81,7 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
base.OnConfigurationChanged(newConfig);
|
base.OnConfigurationChanged(newConfig);
|
||||||
ConfigurationChanged?.Invoke(this, new EventArgs());
|
ConfigurationChanged?.Invoke(this, new EventArgs());
|
||||||
|
|
||||||
Xamarin.Forms.Application.Current?.TriggerThemeChanged(new AppThemeChangedEventArgs(Xamarin.Forms.Application.Current.RequestedTheme));
|
Microsoft.Maui.Controls.Application.Current?.TriggerThemeChanged(new AppThemeChangedEventArgs(Microsoft.Maui.Controls.Application.Current.RequestedTheme));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool OnOptionsItemSelected(IMenuItem item)
|
public override bool OnOptionsItemSelected(IMenuItem item)
|
||||||
|
@ -147,10 +147,10 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
((IApplicationController)application).SetAppIndexingProvider(new AndroidAppIndexProvider(this));
|
((IApplicationController)application).SetAppIndexingProvider(new AndroidAppIndexProvider(this));
|
||||||
|
|
||||||
Profile.FramePartition("SetCurrentApplication");
|
Profile.FramePartition("SetCurrentApplication");
|
||||||
Xamarin.Forms.Application.SetCurrentApplication(application);
|
Microsoft.Maui.Controls.Application.SetCurrentApplication(application);
|
||||||
|
|
||||||
Profile.FramePartition("SetSoftInputMode");
|
Profile.FramePartition("SetSoftInputMode");
|
||||||
if (Xamarin.Forms.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust() != WindowSoftInputModeAdjust.Unspecified)
|
if (Microsoft.Maui.Controls.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust() != WindowSoftInputModeAdjust.Unspecified)
|
||||||
SetSoftInputMode();
|
SetSoftInputMode();
|
||||||
|
|
||||||
Profile.FramePartition("CheckForAppLink");
|
Profile.FramePartition("CheckForAppLink");
|
||||||
|
@ -241,7 +241,7 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
SetContentView(_layout);
|
SetContentView(_layout);
|
||||||
|
|
||||||
Profile.FramePartition("OnStateChanged");
|
Profile.FramePartition("OnStateChanged");
|
||||||
Xamarin.Forms.Application.ClearCurrent();
|
Microsoft.Maui.Controls.Application.ClearCurrent();
|
||||||
|
|
||||||
_previousState = _currentState;
|
_previousState = _currentState;
|
||||||
_currentState = AndroidApplicationLifecycleState.OnCreate;
|
_currentState = AndroidApplicationLifecycleState.OnCreate;
|
||||||
|
@ -502,9 +502,9 @@ namespace Xamarin.Forms.Platform.Android
|
||||||
{
|
{
|
||||||
var adjust = SoftInput.AdjustPan;
|
var adjust = SoftInput.AdjustPan;
|
||||||
|
|
||||||
if (Xamarin.Forms.Application.Current != null)
|
if (Microsoft.Maui.Controls.Application.Current != null)
|
||||||
{
|
{
|
||||||
WindowSoftInputModeAdjust elementValue = Xamarin.Forms.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust();
|
WindowSoftInputModeAdjust elementValue = Microsoft.Maui.Controls.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust();
|
||||||
switch (elementValue)
|
switch (elementValue)
|
||||||
{
|
{
|
||||||
case WindowSoftInputModeAdjust.Resize:
|
case WindowSoftInputModeAdjust.Resize:
|
|
@ -2,10 +2,10 @@ using System.Collections.Generic;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
using AndroidX.Fragment.App;
|
using AndroidX.Fragment.App;
|
||||||
using Java.Lang;
|
using Java.Lang;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using FragmentTransit = Android.App.FragmentTransit;
|
using FragmentTransit = Android.App.FragmentTransit;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
{
|
{
|
||||||
internal class FormsFragmentPagerAdapter<T> : FragmentPagerAdapter where T : Page
|
internal class FormsFragmentPagerAdapter<T> : FragmentPagerAdapter where T : Page
|
||||||
{
|
{
|
|
@ -5,7 +5,7 @@ using Android.Util;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using AndroidX.ViewPager.Widget;
|
using AndroidX.ViewPager.Widget;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
{
|
{
|
||||||
internal class FormsViewPager : ViewPager
|
internal class FormsViewPager : ViewPager
|
||||||
{
|
{
|
|
@ -4,10 +4,10 @@ using Android.OS;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using AndroidX.Fragment.App;
|
using AndroidX.Fragment.App;
|
||||||
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.AppCompat;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
{
|
{
|
||||||
internal class FragmentContainer : Fragment
|
internal class FragmentContainer : Fragment
|
||||||
{
|
{
|
|
@ -0,0 +1,14 @@
|
||||||
|
using Android.Content;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
// This version of FrameRenderer is here for backward compatibility with anyone referencing
|
||||||
|
// FrameRenderer from this namespace
|
||||||
|
public class FrameRenderer : FastRenderers.FrameRenderer
|
||||||
|
{
|
||||||
|
public FrameRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
@ -10,7 +10,7 @@ using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using Android.Widget;
|
using Android.Widget;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal interface ILifeCycleState
|
internal interface ILifeCycleState
|
||||||
{
|
{
|
|
@ -1,6 +1,6 @@
|
||||||
using AndroidX.Fragment.App;
|
using AndroidX.Fragment.App;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Allows the platform to inject child fragment managers for renderers
|
/// Allows the platform to inject child fragment managers for renderers
|
|
@ -0,0 +1,345 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics;
|
||||||
|
using Android.Graphics.Drawables;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.AppCompat.Widget;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||||
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||||
|
using AColor = Android.Graphics.Color;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class ImageButtonRenderer :
|
||||||
|
AppCompatImageButton,
|
||||||
|
IVisualElementRenderer,
|
||||||
|
IBorderVisualElementRenderer,
|
||||||
|
IImageRendererController,
|
||||||
|
AView.IOnFocusChangeListener,
|
||||||
|
AView.IOnClickListener,
|
||||||
|
AView.IOnTouchListener,
|
||||||
|
ILayoutChanges,
|
||||||
|
IDisposedState
|
||||||
|
{
|
||||||
|
bool _hasLayoutOccurred;
|
||||||
|
bool _inputTransparent;
|
||||||
|
bool _disposed;
|
||||||
|
bool _skipInvalidate;
|
||||||
|
int? _defaultLabelFor;
|
||||||
|
VisualElementTracker _tracker;
|
||||||
|
VisualElementRenderer _visualElementRenderer;
|
||||||
|
BorderBackgroundManager _backgroundTracker;
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, ImageButton> _platformElementConfiguration;
|
||||||
|
ImageButton _imageButton;
|
||||||
|
|
||||||
|
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||||
|
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||||
|
|
||||||
|
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||||
|
VisualElement IVisualElementRenderer.Element => Element;
|
||||||
|
AView IVisualElementRenderer.View => this;
|
||||||
|
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||||
|
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||||
|
bool IDisposedState.IsDisposed => ((IImageRendererController)this).IsDisposed;
|
||||||
|
|
||||||
|
public ImageButton Element
|
||||||
|
{
|
||||||
|
get => _imageButton;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
_imageButton = value;
|
||||||
|
_platformElementConfiguration = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IImageRendererController.SkipInvalidate() => _skipInvalidate = true;
|
||||||
|
bool IImageRendererController.IsDisposed => _disposed || !Control.IsAlive();
|
||||||
|
|
||||||
|
AppCompatImageButton Control => this;
|
||||||
|
public ImageButtonRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
// These set the defaults so visually it matches up with other platforms
|
||||||
|
SetPadding(0, 0, 0, 0);
|
||||||
|
SoundEffectsEnabled = false;
|
||||||
|
SetOnClickListener(this);
|
||||||
|
SetOnTouchListener(this);
|
||||||
|
OnFocusChangeListener = this;
|
||||||
|
|
||||||
|
// Setting the tag will break Glide
|
||||||
|
// Tag = this;
|
||||||
|
|
||||||
|
_backgroundTracker = new BorderBackgroundManager(this, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int left, int top, int right, int bottom)
|
||||||
|
{
|
||||||
|
base.OnLayout(changed, left, top, right, bottom);
|
||||||
|
_hasLayoutOccurred = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetOnClickListener(null);
|
||||||
|
SetOnTouchListener(null);
|
||||||
|
OnFocusChangeListener = null;
|
||||||
|
|
||||||
|
ImageElementManager.Dispose(this);
|
||||||
|
|
||||||
|
_tracker?.Dispose();
|
||||||
|
_tracker = null;
|
||||||
|
|
||||||
|
_backgroundTracker?.Dispose();
|
||||||
|
_backgroundTracker = null;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||||
|
{
|
||||||
|
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
Element = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Invalidate()
|
||||||
|
{
|
||||||
|
if (_skipInvalidate)
|
||||||
|
{
|
||||||
|
_skipInvalidate = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
Size MinimumSize()
|
||||||
|
{
|
||||||
|
return new Size();
|
||||||
|
}
|
||||||
|
|
||||||
|
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return new SizeRequest();
|
||||||
|
}
|
||||||
|
Measure(widthConstraint, heightConstraint);
|
||||||
|
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight), MinimumSize());
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(element));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(element is ImageButton image))
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Element is not of type " + typeof(ImageButton), nameof(element));
|
||||||
|
}
|
||||||
|
|
||||||
|
ImageButton oldElement = Element;
|
||||||
|
Element = image;
|
||||||
|
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
if (oldElement != null)
|
||||||
|
{
|
||||||
|
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.PropertyChanged += OnElementPropertyChanged;
|
||||||
|
|
||||||
|
if (_tracker == null)
|
||||||
|
{
|
||||||
|
_tracker = new VisualElementTracker(this);
|
||||||
|
ImageElementManager.Init(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_visualElementRenderer == null)
|
||||||
|
{
|
||||||
|
_visualElementRenderer = new VisualElementRenderer(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
this.EnsureId();
|
||||||
|
|
||||||
|
UpdateInputTransparent();
|
||||||
|
UpdatePadding();
|
||||||
|
|
||||||
|
OnElementChanged(new ElementChangedEventArgs<ImageButton>(oldElement, Element));
|
||||||
|
Element?.SendViewInitialized(Control);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementChanged(ElementChangedEventArgs<ImageButton> e)
|
||||||
|
{
|
||||||
|
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(Canvas canvas)
|
||||||
|
{
|
||||||
|
if (Element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
canvas.ClipShape(Context, Element);
|
||||||
|
|
||||||
|
var backgroundDrawable = _backgroundTracker?.BackgroundDrawable;
|
||||||
|
RectF drawableBounds = null;
|
||||||
|
|
||||||
|
if (Drawable != null)
|
||||||
|
{
|
||||||
|
if ((int)Forms.SdkInt >= 18 && backgroundDrawable != null)
|
||||||
|
{
|
||||||
|
var outlineBounds = backgroundDrawable.GetPaddingBounds(canvas.Width, canvas.Height);
|
||||||
|
var width = (float)canvas.Width;
|
||||||
|
var height = (float)canvas.Height;
|
||||||
|
var widthRatio = 1f;
|
||||||
|
var heightRatio = 1f;
|
||||||
|
|
||||||
|
if (Element.Aspect == Aspect.AspectFill && OnThisPlatform().GetIsShadowEnabled())
|
||||||
|
Internals.Log.Warning(nameof(ImageButtonRenderer), "AspectFill isn't fully supported when using shadows. Image may be clipped incorrectly to Border");
|
||||||
|
|
||||||
|
switch (Element.Aspect)
|
||||||
|
{
|
||||||
|
case Aspect.Fill:
|
||||||
|
break;
|
||||||
|
case Aspect.AspectFill:
|
||||||
|
case Aspect.AspectFit:
|
||||||
|
heightRatio = (float)Drawable.IntrinsicHeight / height;
|
||||||
|
widthRatio = (float)Drawable.IntrinsicWidth / width;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
drawableBounds = new RectF(outlineBounds.Left * widthRatio, outlineBounds.Top * heightRatio, outlineBounds.Right * widthRatio, outlineBounds.Bottom * heightRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (drawableBounds != null)
|
||||||
|
Drawable.SetBounds((int)drawableBounds.Left, (int)drawableBounds.Top, (int)drawableBounds.Right, (int)drawableBounds.Bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_backgroundTracker?.BackgroundDrawable != null)
|
||||||
|
{
|
||||||
|
_backgroundTracker.BackgroundDrawable.DrawCircle(canvas, canvas.Width, canvas.Height, base.Draw);
|
||||||
|
_backgroundTracker.BackgroundDrawable.DrawOutline(canvas, canvas.Width, canvas.Height);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
base.Draw(canvas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetLabelFor(int? id)
|
||||||
|
{
|
||||||
|
if (_defaultLabelFor == null)
|
||||||
|
_defaultLabelFor = LabelFor;
|
||||||
|
|
||||||
|
LabelFor = (int)(id ?? _defaultLabelFor);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
if (!Enabled || (_inputTransparent && Enabled))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return base.OnTouchEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UpdatePadding()
|
||||||
|
{
|
||||||
|
SetPadding(
|
||||||
|
(int)(Context.ToPixels(Element.Padding.Left)),
|
||||||
|
(int)(Context.ToPixels(Element.Padding.Top)),
|
||||||
|
(int)(Context.ToPixels(Element.Padding.Right)),
|
||||||
|
(int)(Context.ToPixels(Element.Padding.Bottom))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateInputTransparent()
|
||||||
|
{
|
||||||
|
if (Element == null || _disposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_inputTransparent = Element.InputTransparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.PropertyName == VisualElement.InputTransparentProperty.PropertyName)
|
||||||
|
UpdateInputTransparent();
|
||||||
|
else if (e.PropertyName == ImageButton.PaddingProperty.PropertyName)
|
||||||
|
UpdatePadding();
|
||||||
|
|
||||||
|
ElementPropertyChanged?.Invoke(this, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// general state related
|
||||||
|
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||||
|
{
|
||||||
|
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||||
|
}
|
||||||
|
// general state related
|
||||||
|
|
||||||
|
|
||||||
|
// Button related
|
||||||
|
void IOnClickListener.OnClick(AView v) =>
|
||||||
|
ButtonElementManager.OnClick(Element, Element, v);
|
||||||
|
|
||||||
|
bool IOnTouchListener.OnTouch(AView v, MotionEvent e) =>
|
||||||
|
ButtonElementManager.OnTouch(Element, Element, v, e);
|
||||||
|
// Button related
|
||||||
|
|
||||||
|
float IBorderVisualElementRenderer.ShadowRadius => Context.ToPixels(OnThisPlatform().GetShadowRadius());
|
||||||
|
float IBorderVisualElementRenderer.ShadowDx => Context.ToPixels(OnThisPlatform().GetShadowOffset().Width);
|
||||||
|
float IBorderVisualElementRenderer.ShadowDy => Context.ToPixels(OnThisPlatform().GetShadowOffset().Height);
|
||||||
|
AColor IBorderVisualElementRenderer.ShadowColor => OnThisPlatform().GetShadowColor().ToAndroid();
|
||||||
|
bool IBorderVisualElementRenderer.IsShadowEnabled() => OnThisPlatform().GetIsShadowEnabled();
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultPadding() => false;
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultShadow() => false;
|
||||||
|
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||||
|
AView IBorderVisualElementRenderer.View => this;
|
||||||
|
|
||||||
|
bool ILayoutChanges.HasLayoutOccurred => _hasLayoutOccurred;
|
||||||
|
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, ImageButton> OnThisPlatform()
|
||||||
|
{
|
||||||
|
if (_platformElementConfiguration == null)
|
||||||
|
_platformElementConfiguration = Element.OnThisPlatform();
|
||||||
|
|
||||||
|
return _platformElementConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IImageRendererController.SetFormsAnimationDrawable(IFormsAnimationDrawable value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,115 @@
|
||||||
|
using System;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Views;
|
||||||
|
using Fragment = AndroidX.Fragment.App.Fragment;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public static class PageExtensions
|
||||||
|
{
|
||||||
|
class EmbeddedFragment : Fragment
|
||||||
|
{
|
||||||
|
readonly ViewGroup _content;
|
||||||
|
readonly AppCompat.Platform _platform;
|
||||||
|
bool _disposed;
|
||||||
|
|
||||||
|
// ReSharper disable once UnusedMember.Local (Android uses this on configuration change
|
||||||
|
public EmbeddedFragment()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public EmbeddedFragment(ViewGroup content, AppCompat.Platform platform)
|
||||||
|
{
|
||||||
|
_content = content;
|
||||||
|
_platform = platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override global::Android.Views.View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
return _content;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
(_platform as IDisposable)?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 618
|
||||||
|
|
||||||
|
public static Fragment CreateSupportFragment(this ContentPage view, Context context)
|
||||||
|
{
|
||||||
|
if (!Forms.IsInitialized)
|
||||||
|
throw new InvalidOperationException("call Forms.Init() before this");
|
||||||
|
|
||||||
|
if (!(view.RealParent is Application))
|
||||||
|
{
|
||||||
|
Application app = new DefaultApplication();
|
||||||
|
app.MainPage = view;
|
||||||
|
}
|
||||||
|
|
||||||
|
var platform = new AppCompat.Platform(context, true);
|
||||||
|
platform.SetPage(view);
|
||||||
|
|
||||||
|
var vg = platform.GetViewGroup();
|
||||||
|
|
||||||
|
return new EmbeddedSupportFragment(vg, platform);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DefaultApplication : Application
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
class EmbeddedSupportFragment : Fragment
|
||||||
|
{
|
||||||
|
readonly ViewGroup _content;
|
||||||
|
readonly AppCompat.Platform _platform;
|
||||||
|
bool _disposed;
|
||||||
|
|
||||||
|
// ReSharper disable once UnusedMember.Local (Android uses this on configuration change
|
||||||
|
public EmbeddedSupportFragment()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public EmbeddedSupportFragment(ViewGroup content, AppCompat.Platform platform)
|
||||||
|
{
|
||||||
|
_content = content;
|
||||||
|
_platform = platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override global::Android.Views.View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
return _content;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
(_platform as IDisposable)?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,227 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Text;
|
||||||
|
using Android.Text.Style;
|
||||||
|
using Android.Util;
|
||||||
|
using Android.Widget;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
public abstract class PickerRendererBase<TControl> : ViewRenderer<Picker, TControl>, IPickerRenderer
|
||||||
|
where TControl : global::Android.Views.View
|
||||||
|
{
|
||||||
|
AlertDialog _dialog;
|
||||||
|
bool _disposed;
|
||||||
|
EntryAccessibilityDelegate _pickerAccessibilityDelegate;
|
||||||
|
|
||||||
|
public PickerRendererBase(Context context) : base(context)
|
||||||
|
{
|
||||||
|
AutoPackage = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract EditText EditText { get; }
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && !_disposed)
|
||||||
|
{
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
((INotifyCollectionChanged)Element.Items).CollectionChanged -= RowsCollectionChanged;
|
||||||
|
|
||||||
|
_pickerAccessibilityDelegate?.Dispose();
|
||||||
|
_pickerAccessibilityDelegate = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
|
||||||
|
{
|
||||||
|
if (e.OldElement != null)
|
||||||
|
((INotifyCollectionChanged)e.OldElement.Items).CollectionChanged -= RowsCollectionChanged;
|
||||||
|
|
||||||
|
if (e.NewElement != null)
|
||||||
|
{
|
||||||
|
((INotifyCollectionChanged)e.NewElement.Items).CollectionChanged += RowsCollectionChanged;
|
||||||
|
if (Control == null)
|
||||||
|
{
|
||||||
|
var textField = CreateNativeControl();
|
||||||
|
|
||||||
|
SetNativeControl(textField);
|
||||||
|
|
||||||
|
ControlUsedForAutomation.SetAccessibilityDelegate(_pickerAccessibilityDelegate = new EntryAccessibilityDelegate(Element));
|
||||||
|
}
|
||||||
|
UpdateFont();
|
||||||
|
UpdatePicker();
|
||||||
|
UpdateTextColor();
|
||||||
|
UpdateCharacterSpacing();
|
||||||
|
UpdateGravity();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnElementChanged(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnElementPropertyChanged(sender, e);
|
||||||
|
|
||||||
|
if (e.PropertyName == Picker.TitleProperty.PropertyName || e.PropertyName == Picker.TitleColorProperty.PropertyName)
|
||||||
|
UpdatePicker();
|
||||||
|
else if (e.PropertyName == Picker.SelectedIndexProperty.PropertyName)
|
||||||
|
UpdatePicker();
|
||||||
|
else if (e.PropertyName == Picker.CharacterSpacingProperty.PropertyName)
|
||||||
|
UpdateCharacterSpacing();
|
||||||
|
else if (e.PropertyName == Picker.TextColorProperty.PropertyName)
|
||||||
|
UpdateTextColor();
|
||||||
|
else if (e.PropertyName == Picker.FontAttributesProperty.PropertyName || e.PropertyName == Picker.FontFamilyProperty.PropertyName || e.PropertyName == Picker.FontSizeProperty.PropertyName)
|
||||||
|
UpdateFont();
|
||||||
|
else if (e.PropertyName == Picker.HorizontalTextAlignmentProperty.PropertyName || e.PropertyName == Picker.VerticalTextAlignmentProperty.PropertyName)
|
||||||
|
UpdateGravity();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnFocusChangeRequested(object sender, VisualElement.FocusRequestArgs e)
|
||||||
|
{
|
||||||
|
base.OnFocusChangeRequested(sender, e);
|
||||||
|
|
||||||
|
if (e.Focus)
|
||||||
|
{
|
||||||
|
if (Clickable)
|
||||||
|
CallOnClick();
|
||||||
|
else
|
||||||
|
((IPickerRenderer)this)?.OnClick();
|
||||||
|
}
|
||||||
|
else if (_dialog != null)
|
||||||
|
{
|
||||||
|
_dialog.Hide();
|
||||||
|
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
|
||||||
|
Control.ClearFocus();
|
||||||
|
_dialog = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IPickerRenderer.OnClick()
|
||||||
|
{
|
||||||
|
Picker model = Element;
|
||||||
|
if (_dialog == null)
|
||||||
|
{
|
||||||
|
using (var builder = new AlertDialog.Builder(Context))
|
||||||
|
{
|
||||||
|
if (!Element.IsSet(Picker.TitleColorProperty))
|
||||||
|
{
|
||||||
|
builder.SetTitle(model.Title ?? "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var title = new SpannableString(model.Title ?? "");
|
||||||
|
title.SetSpan(new ForegroundColorSpan(model.TitleColor.ToAndroid()), 0, title.Length(), SpanTypes.ExclusiveExclusive);
|
||||||
|
|
||||||
|
builder.SetTitle(title);
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] items = model.Items.ToArray();
|
||||||
|
builder.SetItems(items, (s, e) => ((IElementController)model).SetValueFromRenderer(Picker.SelectedIndexProperty, e.Which));
|
||||||
|
|
||||||
|
builder.SetNegativeButton(global::Android.Resource.String.Cancel, (o, args) => { });
|
||||||
|
|
||||||
|
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, true);
|
||||||
|
|
||||||
|
_dialog = builder.Create();
|
||||||
|
}
|
||||||
|
_dialog.SetCanceledOnTouchOutside(true);
|
||||||
|
_dialog.DismissEvent += (sender, args) =>
|
||||||
|
{
|
||||||
|
(Element as IElementController)?.SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
|
||||||
|
_dialog?.Dispose();
|
||||||
|
_dialog = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
_dialog.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void RowsCollectionChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
UpdatePicker();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFont()
|
||||||
|
{
|
||||||
|
EditText.Typeface = Element.ToTypeface();
|
||||||
|
EditText.SetTextSize(ComplexUnitType.Sp, (float)Element.FontSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void UpdateCharacterSpacing()
|
||||||
|
{
|
||||||
|
if (Forms.IsLollipopOrNewer)
|
||||||
|
{
|
||||||
|
EditText.LetterSpacing = Element.CharacterSpacing.ToEm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdatePicker()
|
||||||
|
{
|
||||||
|
UpdatePlaceHolderText();
|
||||||
|
UpdateTitleColor();
|
||||||
|
|
||||||
|
if (Element.SelectedIndex == -1 || Element.Items == null || Element.SelectedIndex >= Element.Items.Count)
|
||||||
|
EditText.Text = null;
|
||||||
|
else
|
||||||
|
EditText.Text = Element.Items[Element.SelectedIndex];
|
||||||
|
|
||||||
|
_pickerAccessibilityDelegate.ValueText = EditText.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract protected void UpdateTextColor();
|
||||||
|
abstract protected void UpdateTitleColor();
|
||||||
|
abstract protected void UpdatePlaceHolderText();
|
||||||
|
abstract protected void UpdateGravity();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PickerRenderer : PickerRendererBase<EditText>
|
||||||
|
{
|
||||||
|
TextColorSwitcher _textColorSwitcher;
|
||||||
|
TextColorSwitcher _hintColorSwitcher;
|
||||||
|
|
||||||
|
public PickerRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override EditText CreateNativeControl()
|
||||||
|
{
|
||||||
|
return new PickerEditText(Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override EditText EditText => Control;
|
||||||
|
|
||||||
|
protected override void UpdateTitleColor()
|
||||||
|
{
|
||||||
|
_hintColorSwitcher = _hintColorSwitcher ?? new TextColorSwitcher(EditText.HintTextColors, Element.UseLegacyColorManagement());
|
||||||
|
_hintColorSwitcher.UpdateTextColor(EditText, Element.TitleColor, EditText.SetHintTextColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateTextColor()
|
||||||
|
{
|
||||||
|
_textColorSwitcher = _textColorSwitcher ?? new TextColorSwitcher(EditText.TextColors, Element.UseLegacyColorManagement());
|
||||||
|
_textColorSwitcher.UpdateTextColor(EditText, Element.TextColor);
|
||||||
|
}
|
||||||
|
protected override void UpdatePlaceHolderText()
|
||||||
|
{
|
||||||
|
EditText.Hint = Element.Title;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateGravity()
|
||||||
|
{
|
||||||
|
EditText.Gravity = Element.HorizontalTextAlignment.ToHorizontalGravityFlags() | Element.VerticalTextAlignment.ToVerticalGravityFlags();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,853 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Views.Animations;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
internal class Platform : BindableObject, IPlatformLayout, INavigation, IDisposable
|
||||||
|
{
|
||||||
|
readonly Context _context;
|
||||||
|
readonly PlatformRenderer _renderer;
|
||||||
|
bool _disposed;
|
||||||
|
bool _navAnimationInProgress;
|
||||||
|
NavigationModel _navModel = new NavigationModel();
|
||||||
|
NavigationModel _previousNavModel = null;
|
||||||
|
readonly bool _embedded;
|
||||||
|
|
||||||
|
internal static string PackageName { get; private set; }
|
||||||
|
internal static string GetPackageName() => PackageName;
|
||||||
|
|
||||||
|
internal const string CloseContextActionsSignalName = "Xamarin.CloseContextActions";
|
||||||
|
|
||||||
|
internal static readonly BindableProperty RendererProperty = BindableProperty.CreateAttached("Renderer", typeof(IVisualElementRenderer), typeof(Platform), default(IVisualElementRenderer),
|
||||||
|
propertyChanged: (bindable, oldvalue, newvalue) =>
|
||||||
|
{
|
||||||
|
var view = bindable as VisualElement;
|
||||||
|
if (view != null)
|
||||||
|
view.IsPlatformEnabled = newvalue != null;
|
||||||
|
});
|
||||||
|
|
||||||
|
public Platform(Context context) : this(context, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public Platform(Context context, bool embedded)
|
||||||
|
{
|
||||||
|
_embedded = embedded;
|
||||||
|
_context = context;
|
||||||
|
PackageName = context?.PackageName;
|
||||||
|
_renderer = new PlatformRenderer(context, this);
|
||||||
|
var activity = _context.GetActivity();
|
||||||
|
|
||||||
|
if (embedded && activity != null)
|
||||||
|
{
|
||||||
|
// Set up handling of DisplayAlert/DisplayActionSheet/UpdateProgressBarVisibility
|
||||||
|
if (_context == null)
|
||||||
|
{
|
||||||
|
// Can't show dialogs if it's not an activity
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PopupManager.Subscribe(_context.GetActivity());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FormsAppCompatActivity.BackPressed += HandleBackPressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal bool NavAnimationInProgress
|
||||||
|
{
|
||||||
|
get { return _navAnimationInProgress; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_navAnimationInProgress == value)
|
||||||
|
return;
|
||||||
|
_navAnimationInProgress = value;
|
||||||
|
if (value)
|
||||||
|
MessagingCenter.Send(this, CloseContextActionsSignalName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Page Page { get; set; }
|
||||||
|
|
||||||
|
IPageController CurrentPageController => _navModel.CurrentPage;
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
return;
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
FormsAppCompatActivity.BackPressed -= HandleBackPressed;
|
||||||
|
|
||||||
|
SetPage(null);
|
||||||
|
|
||||||
|
var activity = _context?.GetActivity();
|
||||||
|
if (_embedded && activity != null)
|
||||||
|
{
|
||||||
|
PopupManager.Unsubscribe(activity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void INavigation.InsertPageBefore(Page page, Page before)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("InsertPageBefore is not supported globally on Android, please use a NavigationPage.");
|
||||||
|
}
|
||||||
|
|
||||||
|
IReadOnlyList<Page> INavigation.ModalStack => _navModel.Modals.ToList();
|
||||||
|
|
||||||
|
IReadOnlyList<Page> INavigation.NavigationStack => new List<Page>();
|
||||||
|
|
||||||
|
Task<Page> INavigation.PopAsync()
|
||||||
|
{
|
||||||
|
return ((INavigation)this).PopAsync(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Task<Page> INavigation.PopAsync(bool animated)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("PopAsync is not supported globally on Android, please use a NavigationPage.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Task<Page> INavigation.PopModalAsync()
|
||||||
|
{
|
||||||
|
return ((INavigation)this).PopModalAsync(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Task<Page> INavigation.PopModalAsync(bool animated)
|
||||||
|
{
|
||||||
|
Page modal = _navModel.PopModal();
|
||||||
|
((IPageController)modal).SendDisappearing();
|
||||||
|
var source = new TaskCompletionSource<Page>();
|
||||||
|
|
||||||
|
IVisualElementRenderer modalRenderer = GetRenderer(modal);
|
||||||
|
if (modalRenderer != null)
|
||||||
|
{
|
||||||
|
var modalContainer = modalRenderer.View.Parent as ModalContainer;
|
||||||
|
if (animated)
|
||||||
|
{
|
||||||
|
modalContainer.Animate().TranslationY(_renderer.Height).SetInterpolator(new AccelerateInterpolator(1)).SetDuration(300).SetListener(new GenericAnimatorListener
|
||||||
|
{
|
||||||
|
OnEnd = a =>
|
||||||
|
{
|
||||||
|
modalContainer.RemoveFromParent();
|
||||||
|
modalContainer.Dispose();
|
||||||
|
source.TrySetResult(modal);
|
||||||
|
CurrentPageController?.SendAppearing();
|
||||||
|
modalContainer = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
modalContainer.RemoveFromParent();
|
||||||
|
modalContainer.Dispose();
|
||||||
|
source.TrySetResult(modal);
|
||||||
|
CurrentPageController?.SendAppearing();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateAccessibilityImportance(CurrentPageController as Page, ImportantForAccessibility.Auto, true);
|
||||||
|
|
||||||
|
return source.Task;
|
||||||
|
}
|
||||||
|
|
||||||
|
Task INavigation.PopToRootAsync()
|
||||||
|
{
|
||||||
|
return ((INavigation)this).PopToRootAsync(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Task INavigation.PopToRootAsync(bool animated)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("PopToRootAsync is not supported globally on Android, please use a NavigationPage.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Task INavigation.PushAsync(Page root)
|
||||||
|
{
|
||||||
|
return ((INavigation)this).PushAsync(root, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Task INavigation.PushAsync(Page root, bool animated)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("PushAsync is not supported globally on Android, please use a NavigationPage.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Task INavigation.PushModalAsync(Page modal)
|
||||||
|
{
|
||||||
|
return ((INavigation)this).PushModalAsync(modal, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
async Task INavigation.PushModalAsync(Page modal, bool animated)
|
||||||
|
{
|
||||||
|
CurrentPageController?.SendDisappearing();
|
||||||
|
UpdateAccessibilityImportance(CurrentPageController as Page, ImportantForAccessibility.NoHideDescendants, false);
|
||||||
|
|
||||||
|
_navModel.PushModal(modal);
|
||||||
|
|
||||||
|
Task presentModal = PresentModal(modal, animated);
|
||||||
|
|
||||||
|
await presentModal;
|
||||||
|
|
||||||
|
UpdateAccessibilityImportance(modal, ImportantForAccessibility.Auto, true);
|
||||||
|
|
||||||
|
// Verify that the modal is still on the stack
|
||||||
|
if (_navModel.CurrentPage == modal)
|
||||||
|
((IPageController)modal).SendAppearing();
|
||||||
|
}
|
||||||
|
|
||||||
|
void INavigation.RemovePage(Page page)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("RemovePage is not supported globally on Android, please use a NavigationPage.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SizeRequest GetNativeSize(VisualElement view, double widthConstraint, double heightConstraint)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
IVisualElementRenderer visualElementRenderer = GetRenderer(view);
|
||||||
|
|
||||||
|
if (visualElementRenderer == null || visualElementRenderer.View.IsDisposed())
|
||||||
|
{
|
||||||
|
return new SizeRequest(Size.Zero, Size.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
var context = visualElementRenderer.View.Context;
|
||||||
|
|
||||||
|
// negative numbers have special meanings to android they don't to us
|
||||||
|
widthConstraint = widthConstraint <= -1 ? double.PositiveInfinity : context.ToPixels(widthConstraint);
|
||||||
|
heightConstraint = heightConstraint <= -1 ? double.PositiveInfinity : context.ToPixels(heightConstraint);
|
||||||
|
|
||||||
|
bool widthConstrained = !double.IsPositiveInfinity(widthConstraint);
|
||||||
|
bool heightConstrained = !double.IsPositiveInfinity(heightConstraint);
|
||||||
|
|
||||||
|
int widthMeasureSpec = widthConstrained
|
||||||
|
? MeasureSpecFactory.MakeMeasureSpec((int)widthConstraint, MeasureSpecMode.AtMost)
|
||||||
|
: MeasureSpecFactory.MakeMeasureSpec(0, MeasureSpecMode.Unspecified);
|
||||||
|
|
||||||
|
int heightMeasureSpec = heightConstrained
|
||||||
|
? MeasureSpecFactory.MakeMeasureSpec((int)heightConstraint, MeasureSpecMode.AtMost)
|
||||||
|
: MeasureSpecFactory.MakeMeasureSpec(0, MeasureSpecMode.Unspecified);
|
||||||
|
|
||||||
|
SizeRequest rawResult = visualElementRenderer.GetDesiredSize(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
if (rawResult.Minimum == Size.Zero)
|
||||||
|
rawResult.Minimum = rawResult.Request;
|
||||||
|
var result = new SizeRequest(new Size(context.FromPixels(rawResult.Request.Width), context.FromPixels(rawResult.Request.Height)),
|
||||||
|
new Size(context.FromPixels(rawResult.Minimum.Width), context.FromPixels(rawResult.Minimum.Height)));
|
||||||
|
|
||||||
|
if ((widthConstrained && result.Request.Width < widthConstraint)
|
||||||
|
|| (heightConstrained && result.Request.Height < heightConstraint))
|
||||||
|
{
|
||||||
|
// Do a final exact measurement in case the native control needs to fill the container
|
||||||
|
(visualElementRenderer as IViewRenderer)?.MeasureExactly();
|
||||||
|
}
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ClearRenderer(AView renderedView)
|
||||||
|
{
|
||||||
|
var element = (renderedView as IVisualElementRenderer)?.Element;
|
||||||
|
var view = element as View;
|
||||||
|
if (view != null)
|
||||||
|
{
|
||||||
|
var renderer = GetRenderer(view);
|
||||||
|
if (renderer == renderedView)
|
||||||
|
element.ClearValue(RendererProperty);
|
||||||
|
renderer?.Dispose();
|
||||||
|
renderer = null;
|
||||||
|
}
|
||||||
|
var layout = view as IVisualElementRenderer;
|
||||||
|
layout?.Dispose();
|
||||||
|
layout = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static IVisualElementRenderer CreateRenderer(VisualElement element, Context context)
|
||||||
|
{
|
||||||
|
IVisualElementRenderer renderer = null;
|
||||||
|
|
||||||
|
// temporary hack to fix the following issues
|
||||||
|
// https://github.com/xamarin/Microsoft.Maui.Controls.Compatibility/issues/13261
|
||||||
|
// https://github.com/xamarin/Microsoft.Maui.Controls.Compatibility/issues/12484
|
||||||
|
if (element is RadioButton tv && tv.ResolveControlTemplate() != null)
|
||||||
|
{
|
||||||
|
renderer = new DefaultRenderer(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This code is duplicated across all platforms currently
|
||||||
|
// So if any changes are made here please make sure to apply them to other platform.cs files
|
||||||
|
if (renderer == null)
|
||||||
|
{
|
||||||
|
IViewHandler handler = null;
|
||||||
|
|
||||||
|
//TODO: Handle this with AppBuilderHost
|
||||||
|
//try
|
||||||
|
//{
|
||||||
|
// handler = Xamarin.Platform.Registrar.Handlers.GetHandler(element.GetType());
|
||||||
|
//}
|
||||||
|
//catch
|
||||||
|
//{
|
||||||
|
// // TODO define better catch response or define if this is needed?
|
||||||
|
//}
|
||||||
|
|
||||||
|
if (handler == null)
|
||||||
|
{
|
||||||
|
renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context)
|
||||||
|
?? new DefaultRenderer(context);
|
||||||
|
}
|
||||||
|
// This means the only thing registered is the RendererToHandlerShim
|
||||||
|
// Which is only used when you are running a .NET MAUI app
|
||||||
|
// This indicates that the user hasn't registered a specific handler for this given type
|
||||||
|
else if (handler is RendererToHandlerShim shim)
|
||||||
|
{
|
||||||
|
renderer = shim.VisualElementRenderer;
|
||||||
|
|
||||||
|
if (renderer == null)
|
||||||
|
{
|
||||||
|
renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context)
|
||||||
|
?? new DefaultRenderer(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (handler is IVisualElementRenderer ver)
|
||||||
|
renderer = ver;
|
||||||
|
else if (handler is IAndroidViewHandler vh)
|
||||||
|
{
|
||||||
|
vh.SetContext(context);
|
||||||
|
renderer = new HandlerToRendererShim(vh);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
renderer.SetElement(element);
|
||||||
|
return renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static IVisualElementRenderer CreateRenderer(VisualElement element, AndroidX.Fragment.App.FragmentManager fragmentManager, Context context)
|
||||||
|
{
|
||||||
|
IVisualElementRenderer renderer = Registrar.Registered.GetHandlerForObject<IVisualElementRenderer>(element, context) ?? new DefaultRenderer(context);
|
||||||
|
|
||||||
|
var managesFragments = renderer as IManageFragments;
|
||||||
|
managesFragments?.SetFragmentManager(fragmentManager);
|
||||||
|
|
||||||
|
renderer.SetElement(element);
|
||||||
|
|
||||||
|
return renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IVisualElementRenderer CreateRendererWithContext(VisualElement element, Context context)
|
||||||
|
{
|
||||||
|
// This is an interim method to allow public access to CreateRenderer(element, context), which we
|
||||||
|
// can't make public yet because it will break the previewer
|
||||||
|
return CreateRenderer(element, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IVisualElementRenderer GetRenderer(VisualElement bindable)
|
||||||
|
{
|
||||||
|
return (IVisualElementRenderer)bindable?.GetValue(RendererProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetRenderer(VisualElement bindable, IVisualElementRenderer value)
|
||||||
|
{
|
||||||
|
bindable.SetValue(RendererProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal ViewGroup GetViewGroup()
|
||||||
|
{
|
||||||
|
return _renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void IPlatformLayout.OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
if (Page == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (changed)
|
||||||
|
{
|
||||||
|
LayoutRootPage(Page, r - l, b - t);
|
||||||
|
}
|
||||||
|
|
||||||
|
GetRenderer(Page)?.UpdateLayout();
|
||||||
|
|
||||||
|
for (var i = 0; i < _renderer.ChildCount; i++)
|
||||||
|
{
|
||||||
|
AView child = _renderer.GetChildAt(i);
|
||||||
|
if (child is ModalContainer)
|
||||||
|
{
|
||||||
|
child.Measure(MeasureSpecFactory.MakeMeasureSpec(r - l, MeasureSpecMode.Exactly), MeasureSpecFactory.MakeMeasureSpec(t - b, MeasureSpecMode.Exactly));
|
||||||
|
child.Layout(l, t, r, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnBindingContextChanged()
|
||||||
|
{
|
||||||
|
SetInheritedBindingContext(Page, BindingContext);
|
||||||
|
|
||||||
|
base.OnBindingContextChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void SettingNewPage()
|
||||||
|
{
|
||||||
|
if (Page != null)
|
||||||
|
{
|
||||||
|
_previousNavModel = _navModel;
|
||||||
|
_navModel = new NavigationModel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void SetPage(Page newRoot)
|
||||||
|
{
|
||||||
|
if (Page == newRoot)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Page != null)
|
||||||
|
{
|
||||||
|
var navModel = (_previousNavModel ?? _navModel);
|
||||||
|
foreach (var rootPage in navModel.Roots)
|
||||||
|
{
|
||||||
|
if (GetRenderer(rootPage) is ILifeCycleState nr)
|
||||||
|
nr.MarkedForDispose = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
var viewsToRemove = new List<AView>();
|
||||||
|
var renderersToDispose = new List<IVisualElementRenderer>();
|
||||||
|
|
||||||
|
for (int i = 0; i < _renderer.ChildCount; i++)
|
||||||
|
viewsToRemove.Add(_renderer.GetChildAt(i));
|
||||||
|
|
||||||
|
foreach (var root in navModel.Roots)
|
||||||
|
renderersToDispose.Add(GetRenderer(root));
|
||||||
|
|
||||||
|
SetPageInternal(newRoot);
|
||||||
|
|
||||||
|
Cleanup(viewsToRemove, renderersToDispose);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetPageInternal(newRoot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateAccessibilityImportance(Page page, ImportantForAccessibility importantForAccessibility, bool forceFocus)
|
||||||
|
{
|
||||||
|
|
||||||
|
var pageRenderer = GetRenderer(page);
|
||||||
|
if (pageRenderer?.View == null)
|
||||||
|
return;
|
||||||
|
pageRenderer.View.ImportantForAccessibility = importantForAccessibility;
|
||||||
|
if (forceFocus)
|
||||||
|
pageRenderer.View.SendAccessibilityEvent(global::Android.Views.Accessibility.EventTypes.ViewFocused);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetPageInternal(Page newRoot)
|
||||||
|
{
|
||||||
|
var layout = false;
|
||||||
|
|
||||||
|
if (Page != null)
|
||||||
|
{
|
||||||
|
// if _previousNavModel has been set than _navModel has already been reinitialized
|
||||||
|
if (_previousNavModel != null)
|
||||||
|
{
|
||||||
|
_previousNavModel = null;
|
||||||
|
if (_navModel == null)
|
||||||
|
_navModel = new NavigationModel();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_navModel = new NavigationModel();
|
||||||
|
|
||||||
|
layout = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newRoot == null)
|
||||||
|
{
|
||||||
|
Page = null;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_navModel.Push(newRoot, null);
|
||||||
|
|
||||||
|
Page = newRoot;
|
||||||
|
|
||||||
|
AddChild(Page, layout);
|
||||||
|
|
||||||
|
Application.Current.NavigationProxy.Inner = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Cleanup(List<AView> viewsToRemove, List<IVisualElementRenderer> renderersToDispose)
|
||||||
|
{
|
||||||
|
// If trigger by dispose, cleanup now, otherwise queue it for later
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
DoCleanup();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new Handler(Looper.MainLooper).Post(DoCleanup);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoCleanup()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < viewsToRemove.Count; i++)
|
||||||
|
{
|
||||||
|
AView view = viewsToRemove[i];
|
||||||
|
_renderer?.RemoveView(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < renderersToDispose.Count; i++)
|
||||||
|
{
|
||||||
|
IVisualElementRenderer rootRenderer = renderersToDispose[i];
|
||||||
|
rootRenderer?.Element.ClearValue(RendererProperty);
|
||||||
|
rootRenderer?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddChild(Page page, bool layout = false)
|
||||||
|
{
|
||||||
|
if (page == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (GetRenderer(page) != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
IVisualElementRenderer renderView = CreateRenderer(page, _context);
|
||||||
|
SetRenderer(page, renderView);
|
||||||
|
|
||||||
|
if (layout)
|
||||||
|
LayoutRootPage(page, _renderer.Width, _renderer.Height);
|
||||||
|
|
||||||
|
_renderer.AddView(renderView.View);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HandleBackPressed(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (NavAnimationInProgress)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
Page root = _navModel.Roots.LastOrDefault();
|
||||||
|
bool handled = root?.SendBackButtonPressed() ?? false;
|
||||||
|
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LayoutRootPage(Page page, int width, int height)
|
||||||
|
{
|
||||||
|
page.Layout(new Rectangle(0, 0, _context.FromPixels(width), _context.FromPixels(height)));
|
||||||
|
}
|
||||||
|
|
||||||
|
Task PresentModal(Page modal, bool animated)
|
||||||
|
{
|
||||||
|
var modalContainer = new ModalContainer(_context, modal);
|
||||||
|
|
||||||
|
_renderer.AddView(modalContainer);
|
||||||
|
|
||||||
|
var source = new TaskCompletionSource<bool>();
|
||||||
|
NavAnimationInProgress = true;
|
||||||
|
if (animated)
|
||||||
|
{
|
||||||
|
modalContainer.TranslationY = _renderer.Height;
|
||||||
|
modalContainer.Animate().TranslationY(0).SetInterpolator(new DecelerateInterpolator(1)).SetDuration(300).SetListener(new GenericAnimatorListener
|
||||||
|
{
|
||||||
|
OnEnd = a =>
|
||||||
|
{
|
||||||
|
source.TrySetResult(false);
|
||||||
|
modalContainer = null;
|
||||||
|
},
|
||||||
|
OnCancel = a =>
|
||||||
|
{
|
||||||
|
source.TrySetResult(true);
|
||||||
|
modalContainer = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
source.TrySetResult(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return source.Task.ContinueWith(task => NavAnimationInProgress = false);
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class ModalContainer : ViewGroup
|
||||||
|
{
|
||||||
|
AView _backgroundView;
|
||||||
|
bool _disposed;
|
||||||
|
Page _modal;
|
||||||
|
IVisualElementRenderer _renderer;
|
||||||
|
|
||||||
|
public ModalContainer(Context context, Page modal) : base(context)
|
||||||
|
{
|
||||||
|
_modal = modal;
|
||||||
|
|
||||||
|
_backgroundView = new AView(context);
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
AddView(_backgroundView);
|
||||||
|
|
||||||
|
_renderer = CreateRenderer(modal, context);
|
||||||
|
SetRenderer(modal, _renderer);
|
||||||
|
|
||||||
|
AddView(_renderer.View);
|
||||||
|
|
||||||
|
Id = Platform.GenerateViewId();
|
||||||
|
|
||||||
|
_modal.PropertyChanged += OnModalPagePropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
RemoveAllViews();
|
||||||
|
if (_renderer != null)
|
||||||
|
{
|
||||||
|
_renderer.Dispose();
|
||||||
|
_renderer = null;
|
||||||
|
_modal.ClearValue(RendererProperty);
|
||||||
|
_modal.PropertyChanged -= OnModalPagePropertyChanged;
|
||||||
|
_modal = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_backgroundView != null)
|
||||||
|
{
|
||||||
|
_backgroundView.Dispose();
|
||||||
|
_backgroundView = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
if (changed)
|
||||||
|
{
|
||||||
|
_modal.Layout(new Rectangle(0, 0, Context.FromPixels(r - l), Context.FromPixels(b - t)));
|
||||||
|
_backgroundView.Layout(0, 0, r - l, b - t);
|
||||||
|
}
|
||||||
|
|
||||||
|
_renderer.UpdateLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnModalPagePropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == Page.BackgroundColorProperty.PropertyName)
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackgroundColor()
|
||||||
|
{
|
||||||
|
Color modalBkgndColor = _modal.BackgroundColor;
|
||||||
|
if (modalBkgndColor.IsDefault)
|
||||||
|
_backgroundView.SetWindowBackground();
|
||||||
|
else
|
||||||
|
_backgroundView.SetBackgroundColor(modalBkgndColor.ToAndroid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static int GenerateViewId()
|
||||||
|
{
|
||||||
|
// getting unique Id's is an art, and I consider myself the Jackson Pollock of the field
|
||||||
|
if ((int)Forms.SdkInt >= 17)
|
||||||
|
return global::Android.Views.View.GenerateViewId();
|
||||||
|
|
||||||
|
// Numbers higher than this range reserved for xml
|
||||||
|
// If we roll over, it can be exceptionally problematic for the user if they are still retaining things, android's internal implementation is
|
||||||
|
// basically identical to this except they do a lot of locking we don't have to because we know we only do this
|
||||||
|
// from the UI thread
|
||||||
|
if (s_id >= 0x00ffffff)
|
||||||
|
s_id = 0x00000400;
|
||||||
|
|
||||||
|
return s_id++;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int s_id = 0x00000400;
|
||||||
|
|
||||||
|
#region Statics
|
||||||
|
|
||||||
|
public static implicit operator ViewGroup(Platform canvas)
|
||||||
|
{
|
||||||
|
return canvas._renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Previewer Stuff
|
||||||
|
|
||||||
|
internal static readonly BindableProperty PageContextProperty =
|
||||||
|
BindableProperty.CreateAttached("PageContext", typeof(Context), typeof(Platform), null);
|
||||||
|
|
||||||
|
internal static void SetPageContext(BindableObject bindable, Context context)
|
||||||
|
{
|
||||||
|
// Set a context for this page and its child controls
|
||||||
|
bindable.SetValue(PageContextProperty, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Context GetPreviewerContext(Element element)
|
||||||
|
{
|
||||||
|
// Walk up the tree and find the Page this element is hosted in
|
||||||
|
Element parent = element;
|
||||||
|
while (!Application.IsApplicationOrNull(parent.RealParent))
|
||||||
|
{
|
||||||
|
parent = parent.RealParent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a page is found, return the PageContext set by the previewer for that page (if any)
|
||||||
|
return (parent as Page)?.GetValue(PageContextProperty) as Context;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
internal class DefaultRenderer : VisualElementRenderer<View>, ILayoutChanges
|
||||||
|
{
|
||||||
|
public bool NotReallyHandled { get; private set; }
|
||||||
|
|
||||||
|
IOnTouchListener _touchListener;
|
||||||
|
bool _disposed;
|
||||||
|
bool _hasLayoutOccurred;
|
||||||
|
|
||||||
|
readonly MotionEventHelper _motionEventHelper = new MotionEventHelper();
|
||||||
|
|
||||||
|
public DefaultRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
ChildrenDrawingOrderEnabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void NotifyFakeHandling()
|
||||||
|
{
|
||||||
|
NotReallyHandled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
if (base.OnTouchEvent(e))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return _motionEventHelper.HandleMotionEvent(Parent, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
|
||||||
|
{
|
||||||
|
base.OnElementChanged(e);
|
||||||
|
|
||||||
|
_motionEventHelper.UpdateElement(e.NewElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool DispatchTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
#region Excessive explanation
|
||||||
|
// Normally dispatchTouchEvent feeds the touch events to its children one at a time, top child first,
|
||||||
|
// (and only to the children in the hit-test area of the event) stopping as soon as one of them has handled
|
||||||
|
// the event.
|
||||||
|
|
||||||
|
// But to be consistent across the platforms, we don't want this behavior; if an element is not input transparent
|
||||||
|
// we don't want an event to "pass through it" and be handled by an element "behind/under" it. We just want the processing
|
||||||
|
// to end after the first non-transparent child, regardless of whether the event has been handled.
|
||||||
|
|
||||||
|
// This is only an issue for a couple of controls; the interactive controls (switch, button, slider, etc) already "handle" their touches
|
||||||
|
// and the events don't propagate to other child controls. But for image, label, and box that doesn't happen. We can't have those controls
|
||||||
|
// lie about their events being handled because then the events won't propagate to *parent* controls (e.g., a frame with a label in it would
|
||||||
|
// never get a tap gesture from the label). In other words, we *want* parent propagation, but *do not want* sibling propagation. So we need to short-circuit
|
||||||
|
// base.DispatchTouchEvent here, but still return "false".
|
||||||
|
|
||||||
|
// Duplicating the logic of ViewGroup.dispatchTouchEvent and modifying it slightly for our purposes is a non-starter; the method is too
|
||||||
|
// complex and does a lot of micro-optimization. Instead, we provide a signalling mechanism for the controls which don't already "handle" touch
|
||||||
|
// events to tell us that they will be lying about handling their event; they then return "true" to short-circuit base.DispatchTouchEvent.
|
||||||
|
|
||||||
|
// The container gets this message and after it gets the "handled" result from dispatchTouchEvent,
|
||||||
|
// it then knows to ignore that result and return false/unhandled. This allows the event to propagate up the tree.
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
NotReallyHandled = false;
|
||||||
|
|
||||||
|
var result = base.DispatchTouchEvent(e);
|
||||||
|
|
||||||
|
if (result && NotReallyHandled)
|
||||||
|
{
|
||||||
|
// If the child control returned true from its touch event handler but signalled that it was a fake "true", then we
|
||||||
|
// don't consider the event truly "handled" yet.
|
||||||
|
// Since a child control short-circuited the normal dispatchTouchEvent stuff, this layout never got the chance for
|
||||||
|
// IOnTouchListener.OnTouch and the OnTouchEvent override to try handling the touches; we'll do that now
|
||||||
|
// Any associated Touch Listeners are called from DispatchTouchEvents if all children of this view return false
|
||||||
|
// So here we are simulating both calls that would have typically been called from inside DispatchTouchEvent
|
||||||
|
// but were not called due to the fake "true"
|
||||||
|
result = _touchListener?.OnTouch(this, e) ?? false;
|
||||||
|
return result || OnTouchEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetOnTouchListener(IOnTouchListener l)
|
||||||
|
{
|
||||||
|
_touchListener = l;
|
||||||
|
base.SetOnTouchListener(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_disposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
SetOnTouchListener(null);
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ILayoutChanges.HasLayoutOccurred => _hasLayoutOccurred;
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int left, int top, int right, int bottom)
|
||||||
|
{
|
||||||
|
base.OnLayout(changed, left, top, right, bottom);
|
||||||
|
_hasLayoutOccurred = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static string ResolveMsAppDataUri(Uri uri)
|
||||||
|
{
|
||||||
|
if (uri.Scheme == "ms-appdata")
|
||||||
|
{
|
||||||
|
string filePath = string.Empty;
|
||||||
|
|
||||||
|
if (uri.LocalPath.StartsWith("/local"))
|
||||||
|
{
|
||||||
|
filePath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), uri.LocalPath.Substring(7));
|
||||||
|
}
|
||||||
|
else if (uri.LocalPath.StartsWith("/temp"))
|
||||||
|
{
|
||||||
|
filePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), uri.LocalPath.Substring(6));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid Uri", "Source");
|
||||||
|
}
|
||||||
|
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("uri");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,339 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics;
|
||||||
|
using Android.Util;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Widget;
|
||||||
|
using AndroidX.AppCompat.Widget;
|
||||||
|
using AndroidX.Core.View;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.FastRenderers;
|
||||||
|
using AColor = Android.Graphics.Color;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class RadioButtonRenderer : AppCompatRadioButton,
|
||||||
|
IBorderVisualElementRenderer, IVisualElementRenderer, IViewRenderer, ITabStop,
|
||||||
|
AView.IOnFocusChangeListener,
|
||||||
|
CompoundButton.IOnCheckedChangeListener
|
||||||
|
{
|
||||||
|
float _defaultFontSize;
|
||||||
|
int? _defaultLabelFor;
|
||||||
|
Typeface _defaultTypeface;
|
||||||
|
bool _isDisposed;
|
||||||
|
bool _inputTransparent;
|
||||||
|
Lazy<TextColorSwitcher> _textColorSwitcher;
|
||||||
|
AutomationPropertiesProvider _automationPropertiesProvider;
|
||||||
|
VisualElementTracker _tracker;
|
||||||
|
VisualElementRenderer _visualElementRenderer;
|
||||||
|
BorderBackgroundManager _backgroundTracker;
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, RadioButton> _platformElementConfiguration;
|
||||||
|
|
||||||
|
public event EventHandler<VisualElementChangedEventArgs> ElementChanged;
|
||||||
|
public event EventHandler<PropertyChangedEventArgs> ElementPropertyChanged;
|
||||||
|
|
||||||
|
public RadioButtonRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected RadioButton Element { get; set; }
|
||||||
|
protected AppCompatRadioButton Control => this;
|
||||||
|
|
||||||
|
VisualElement IBorderVisualElementRenderer.Element => Element;
|
||||||
|
|
||||||
|
VisualElement IVisualElementRenderer.Element => Element;
|
||||||
|
AView IVisualElementRenderer.View => this;
|
||||||
|
ViewGroup IVisualElementRenderer.ViewGroup => null;
|
||||||
|
VisualElementTracker IVisualElementRenderer.Tracker => _tracker;
|
||||||
|
|
||||||
|
AView ITabStop.TabStop => this;
|
||||||
|
|
||||||
|
void IOnFocusChangeListener.OnFocusChange(AView v, bool hasFocus)
|
||||||
|
{
|
||||||
|
((IElementController)Element).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, hasFocus);
|
||||||
|
}
|
||||||
|
|
||||||
|
SizeRequest IVisualElementRenderer.GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
Measure(widthConstraint, heightConstraint);
|
||||||
|
return new SizeRequest(new Size(MeasuredWidth, MeasuredHeight));
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetElement(VisualElement element)
|
||||||
|
{
|
||||||
|
if (element == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(element));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(element is RadioButton))
|
||||||
|
{
|
||||||
|
throw new ArgumentException($"{nameof(element)} must be of type {nameof(RadioButton)}");
|
||||||
|
}
|
||||||
|
|
||||||
|
RadioButton oldElement = Element;
|
||||||
|
Element = (RadioButton)element;
|
||||||
|
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
if (oldElement != null)
|
||||||
|
{
|
||||||
|
oldElement.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.PropertyChanged += OnElementPropertyChanged;
|
||||||
|
|
||||||
|
if (_tracker == null)
|
||||||
|
{
|
||||||
|
// Can't set up the tracker in the constructor because it access the Element (for now)
|
||||||
|
SetTracker(new VisualElementTracker(this));
|
||||||
|
}
|
||||||
|
if (_visualElementRenderer == null)
|
||||||
|
{
|
||||||
|
_visualElementRenderer = new VisualElementRenderer(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnElementChanged(new ElementChangedEventArgs<RadioButton>(oldElement, Element));
|
||||||
|
|
||||||
|
SendVisualElementInitialized(element, this);
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.SetLabelFor(int? id)
|
||||||
|
{
|
||||||
|
if (_defaultLabelFor == null)
|
||||||
|
{
|
||||||
|
_defaultLabelFor = ViewCompat.GetLabelFor(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewCompat.SetLabelFor(this, (int)(id ?? _defaultLabelFor));
|
||||||
|
}
|
||||||
|
|
||||||
|
void IVisualElementRenderer.UpdateLayout() => _tracker?.UpdateLayout();
|
||||||
|
|
||||||
|
void IViewRenderer.MeasureExactly()
|
||||||
|
{
|
||||||
|
ViewRenderer.MeasureExactly(this, Element, Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_isDisposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_isDisposed = true;
|
||||||
|
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
SetOnClickListener(null);
|
||||||
|
SetOnTouchListener(null);
|
||||||
|
OnFocusChangeListener = null;
|
||||||
|
SetOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
Element.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
_automationPropertiesProvider?.Dispose();
|
||||||
|
_tracker?.Dispose();
|
||||||
|
_visualElementRenderer?.Dispose();
|
||||||
|
_backgroundTracker?.Dispose();
|
||||||
|
_backgroundTracker = null;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
{
|
||||||
|
if (AppCompat.Platform.GetRenderer(Element) == this)
|
||||||
|
Element.ClearValue(AppCompat.Platform.RendererProperty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
if (!Enabled || (_inputTransparent && Enabled))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return base.OnTouchEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementChanged(ElementChangedEventArgs<RadioButton> e)
|
||||||
|
{
|
||||||
|
if (e.NewElement != null && !_isDisposed)
|
||||||
|
{
|
||||||
|
this.EnsureId();
|
||||||
|
|
||||||
|
_textColorSwitcher = new Lazy<TextColorSwitcher>(
|
||||||
|
() => new TextColorSwitcher(TextColors, e.NewElement.UseLegacyColorManagement()));
|
||||||
|
|
||||||
|
UpdateFont();
|
||||||
|
UpdateTextColor();
|
||||||
|
UpdateInputTransparent();
|
||||||
|
UpdateBackgroundColor();
|
||||||
|
UpdateIsChecked();
|
||||||
|
UpdateContent();
|
||||||
|
ElevationHelper.SetElevation(this, e.NewElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.PropertyName == RadioButton.TextColorProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateTextColor();
|
||||||
|
}
|
||||||
|
else if (e.IsOneOf(RadioButton.FontAttributesProperty, RadioButton.FontFamilyProperty, RadioButton.FontSizeProperty))
|
||||||
|
{
|
||||||
|
UpdateFont();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == VisualElement.InputTransparentProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateInputTransparent();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == RadioButton.IsCheckedProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateIsChecked();
|
||||||
|
}
|
||||||
|
else if (e.PropertyName == RadioButton.ContentProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
ElementPropertyChanged?.Invoke(this, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetTracker(VisualElementTracker tracker)
|
||||||
|
{
|
||||||
|
_tracker = tracker;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateBackgroundColor()
|
||||||
|
{
|
||||||
|
_backgroundTracker?.UpdateDrawable();
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void OnNativeFocusChanged(bool hasFocus)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void SendVisualElementInitialized(VisualElement element, AView nativeView)
|
||||||
|
{
|
||||||
|
element.SendViewInitialized(nativeView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Initialize()
|
||||||
|
{
|
||||||
|
_automationPropertiesProvider = new AutomationPropertiesProvider(this);
|
||||||
|
_backgroundTracker = new BorderBackgroundManager(this);
|
||||||
|
|
||||||
|
SoundEffectsEnabled = false;
|
||||||
|
OnFocusChangeListener = this;
|
||||||
|
SetOnCheckedChangeListener(this);
|
||||||
|
|
||||||
|
Tag = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFont()
|
||||||
|
{
|
||||||
|
if (Element == null || _isDisposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Font font = Font.OfSize(Element.FontFamily, Element.FontSize).WithAttributes(Element.FontAttributes);
|
||||||
|
|
||||||
|
if (font == Font.Default && _defaultFontSize == 0f)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_defaultFontSize == 0f)
|
||||||
|
{
|
||||||
|
_defaultTypeface = Typeface;
|
||||||
|
_defaultFontSize = TextSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font == Font.Default)
|
||||||
|
{
|
||||||
|
Typeface = _defaultTypeface;
|
||||||
|
SetTextSize(ComplexUnitType.Px, _defaultFontSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Typeface = font.ToTypeface();
|
||||||
|
SetTextSize(ComplexUnitType.Sp, font.ToScaledPixel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateInputTransparent()
|
||||||
|
{
|
||||||
|
if (Element == null || _isDisposed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_inputTransparent = Element.InputTransparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateTextColor()
|
||||||
|
{
|
||||||
|
if (Element == null || _isDisposed || _textColorSwitcher == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_textColorSwitcher.Value.UpdateTextColor(this, Element.TextColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsChecked()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Checked = ((RadioButton)Element).IsChecked;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateContent()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Control.Text = Element.ContentAsString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IOnCheckedChangeListener.OnCheckedChanged(CompoundButton buttonView, bool isChecked)
|
||||||
|
{
|
||||||
|
((IElementController)Element).SetValueFromRenderer(RadioButton.IsCheckedProperty, isChecked);
|
||||||
|
}
|
||||||
|
|
||||||
|
float IBorderVisualElementRenderer.ShadowRadius => ShadowRadius;
|
||||||
|
float IBorderVisualElementRenderer.ShadowDx => ShadowDx;
|
||||||
|
float IBorderVisualElementRenderer.ShadowDy => ShadowDy;
|
||||||
|
AColor IBorderVisualElementRenderer.ShadowColor => ShadowColor;
|
||||||
|
bool IBorderVisualElementRenderer.IsShadowEnabled() => true;
|
||||||
|
AView IBorderVisualElementRenderer.View => this;
|
||||||
|
|
||||||
|
IPlatformElementConfiguration<PlatformConfiguration.Android, RadioButton> OnThisPlatform()
|
||||||
|
{
|
||||||
|
if (_platformElementConfiguration == null)
|
||||||
|
_platformElementConfiguration = Element.OnThisPlatform();
|
||||||
|
|
||||||
|
return _platformElementConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultPadding() => true;
|
||||||
|
bool IBorderVisualElementRenderer.UseDefaultShadow() => true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
|
|
||||||
[assembly: ResourceDesigner("Xamarin.Forms.Platform.Android.Resource", IsApplication = false)]
|
[assembly: ResourceDesigner("Microsoft.Maui.Controls.Compatibility.Platform.Android.Resource", IsApplication = false)]
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public class Resource
|
public class Resource
|
||||||
{
|
{
|
|
@ -6,7 +6,7 @@ using Android.Views;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
using LP = Android.Views.ViewGroup.LayoutParams;
|
using LP = Android.Views.ViewGroup.LayoutParams;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.AppCompat
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
{
|
{
|
||||||
internal class ShellFragmentContainer : FragmentContainer
|
internal class ShellFragmentContainer : FragmentContainer
|
||||||
{
|
{
|
|
@ -0,0 +1,168 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics.Drawables;
|
||||||
|
using Android.Widget;
|
||||||
|
using AndroidX.AppCompat.Widget;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
public class SwitchRenderer : ViewRenderer<Switch, SwitchCompat>, CompoundButton.IOnCheckedChangeListener
|
||||||
|
{
|
||||||
|
bool _disposed;
|
||||||
|
Drawable _defaultTrackDrawable;
|
||||||
|
bool _changedThumbColor;
|
||||||
|
|
||||||
|
public SwitchRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
AutoPackage = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SetContentDescription() =>
|
||||||
|
base.SetContentDescription(false);
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
void CompoundButton.IOnCheckedChangeListener.OnCheckedChanged(CompoundButton buttonView, bool isChecked)
|
||||||
|
{
|
||||||
|
((IViewController)Element).SetValueFromRenderer(Switch.IsToggledProperty, isChecked);
|
||||||
|
UpdateOnColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
public override SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
SizeRequest sizeConstraint = base.GetDesiredSize(widthConstraint, heightConstraint);
|
||||||
|
|
||||||
|
if (sizeConstraint.Request.Width == 0)
|
||||||
|
{
|
||||||
|
int width = widthConstraint;
|
||||||
|
if (widthConstraint <= 0)
|
||||||
|
width = (int)Context.GetThemeAttributeDp(global::Android.Resource.Attribute.SwitchMinWidth);
|
||||||
|
|
||||||
|
sizeConstraint = new SizeRequest(new Size(width, sizeConstraint.Request.Height), new Size(width, sizeConstraint.Minimum.Height));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sizeConstraint;
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
protected override SwitchCompat CreateNativeControl()
|
||||||
|
{
|
||||||
|
return new SwitchCompat(Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && !_disposed)
|
||||||
|
{
|
||||||
|
_disposed = true;
|
||||||
|
|
||||||
|
if (Element != null)
|
||||||
|
Element.Toggled -= HandleToggled;
|
||||||
|
|
||||||
|
Control?.SetOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
_defaultTrackDrawable?.Dispose();
|
||||||
|
_defaultTrackDrawable = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementChanged(ElementChangedEventArgs<Switch> e)
|
||||||
|
{
|
||||||
|
base.OnElementChanged(e);
|
||||||
|
|
||||||
|
if (e.OldElement != null)
|
||||||
|
e.OldElement.Toggled -= HandleToggled;
|
||||||
|
|
||||||
|
if (e.NewElement != null)
|
||||||
|
{
|
||||||
|
if (Control == null)
|
||||||
|
{
|
||||||
|
SwitchCompat aswitch = CreateNativeControl();
|
||||||
|
aswitch.SetOnCheckedChangeListener(this);
|
||||||
|
SetNativeControl(aswitch);
|
||||||
|
_defaultTrackDrawable = aswitch.TrackDrawable;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
UpdateEnabled(); // Normally set by SetNativeControl, but not when the Control is reused.
|
||||||
|
|
||||||
|
e.NewElement.Toggled += HandleToggled;
|
||||||
|
Control.Checked = e.NewElement.IsToggled;
|
||||||
|
UpdateOnColor();
|
||||||
|
UpdateThumbColor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (this.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnElementPropertyChanged(sender, e);
|
||||||
|
|
||||||
|
if (e.PropertyName == Switch.OnColorProperty.PropertyName)
|
||||||
|
UpdateOnColor();
|
||||||
|
else if (e.PropertyName == Slider.ThumbColorProperty.PropertyName)
|
||||||
|
UpdateThumbColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
void UpdateOnColor()
|
||||||
|
{
|
||||||
|
if (Element == null || Control == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Control.Checked)
|
||||||
|
{
|
||||||
|
if (Element.OnColor == Color.Default)
|
||||||
|
{
|
||||||
|
Control.TrackDrawable = _defaultTrackDrawable;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Control.TrackDrawable?.SetColorFilter(Element.OnColor, FilterMode.SrcAtop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Control.TrackDrawable?.ClearColorFilter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
void UpdateThumbColor()
|
||||||
|
{
|
||||||
|
if (Element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Element.ThumbColor != Color.Default)
|
||||||
|
{
|
||||||
|
Control.ThumbDrawable?.SetColorFilter(Element.ThumbColor, FilterMode.SrcAtop);
|
||||||
|
_changedThumbColor = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_changedThumbColor)
|
||||||
|
{
|
||||||
|
Control.ThumbDrawable?.ClearColorFilter();
|
||||||
|
_changedThumbColor = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[PortHandler]
|
||||||
|
void HandleToggled(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Control.Checked = Element.IsToggled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateEnabled()
|
||||||
|
{
|
||||||
|
Control.Enabled = Element.IsEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,11 @@
|
||||||
|
using Android.Content;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.AppCompat
|
||||||
|
{
|
||||||
|
public abstract class ViewRenderer<TView, TControl> : Android.ViewRenderer<TView, TControl> where TView : View where TControl : global::Android.Views.View
|
||||||
|
{
|
||||||
|
protected ViewRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal static class BackgroundManager
|
internal static class BackgroundManager
|
||||||
{
|
{
|
|
@ -4,9 +4,9 @@ using Android.Content.Res;
|
||||||
using Android.Graphics.Drawables;
|
using Android.Graphics.Drawables;
|
||||||
using AColor = Android.Graphics.Color;
|
using AColor = Android.Graphics.Color;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
using Specifics = Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
|
using Specifics = Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal class BorderBackgroundManager : IDisposable
|
internal class BorderBackgroundManager : IDisposable
|
||||||
{
|
{
|
|
@ -0,0 +1,28 @@
|
||||||
|
using Android.Views;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public static class ButtonElementManager
|
||||||
|
{
|
||||||
|
public static bool OnTouch(VisualElement element, IButtonController buttonController, AView v, MotionEvent e)
|
||||||
|
{
|
||||||
|
switch (e.ActionMasked)
|
||||||
|
{
|
||||||
|
case MotionEventActions.Down:
|
||||||
|
buttonController?.SendPressed();
|
||||||
|
break;
|
||||||
|
case MotionEventActions.Up:
|
||||||
|
buttonController?.SendReleased();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OnClick(VisualElement element, IButtonController buttonController, AView v)
|
||||||
|
{
|
||||||
|
buttonController?.SendClicked();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,383 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics.Drawables;
|
||||||
|
using Android.Text.Method;
|
||||||
|
using AndroidX.Core.View;
|
||||||
|
using AndroidX.Core.Widget;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using AButton = Android.Widget.Button;
|
||||||
|
using ARect = Android.Graphics.Rect;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
// TODO: Currently the drawable is reloaded if the text or the layout changes.
|
||||||
|
// This is obviously not great, but it works. An optimization should
|
||||||
|
// be made to find the drawable in the view and just re-position.
|
||||||
|
// If we do this, we must remember to undo the offset in OnLayout.
|
||||||
|
|
||||||
|
public class ButtonLayoutManager : IDisposable
|
||||||
|
{
|
||||||
|
// we use left/right as this does not resize the button when there is no text
|
||||||
|
Button.ButtonContentLayout _imageOnlyLayout = new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Left, 0);
|
||||||
|
|
||||||
|
// reuse this instance to save on allocations
|
||||||
|
ARect _drawableBounds = new ARect();
|
||||||
|
|
||||||
|
bool _disposed;
|
||||||
|
IButtonLayoutRenderer _renderer;
|
||||||
|
Thickness? _defaultPaddingPix;
|
||||||
|
Button _element;
|
||||||
|
bool _alignIconWithText;
|
||||||
|
bool _preserveInitialPadding;
|
||||||
|
bool _borderAdjustsPadding;
|
||||||
|
bool _maintainLegacyMeasurements;
|
||||||
|
bool _hasLayoutOccurred;
|
||||||
|
ITransformationMethod _defaultTransformationMethod;
|
||||||
|
bool _elementAlreadyChanged = false;
|
||||||
|
|
||||||
|
public ButtonLayoutManager(IButtonLayoutRenderer renderer)
|
||||||
|
: this(renderer, false, false, false, true)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public ButtonLayoutManager(IButtonLayoutRenderer renderer,
|
||||||
|
bool alignIconWithText,
|
||||||
|
bool preserveInitialPadding,
|
||||||
|
bool borderAdjustsPadding,
|
||||||
|
bool maintainLegacyMeasurements)
|
||||||
|
{
|
||||||
|
_renderer = renderer ?? throw new ArgumentNullException(nameof(renderer));
|
||||||
|
_renderer.ElementChanged += OnElementChanged;
|
||||||
|
_alignIconWithText = alignIconWithText;
|
||||||
|
_preserveInitialPadding = preserveInitialPadding;
|
||||||
|
_borderAdjustsPadding = borderAdjustsPadding;
|
||||||
|
_maintainLegacyMeasurements = maintainLegacyMeasurements;
|
||||||
|
}
|
||||||
|
|
||||||
|
AButton View => _renderer?.View ?? _renderer as AButton;
|
||||||
|
|
||||||
|
Context Context => _renderer?.View?.Context;
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (!_disposed)
|
||||||
|
{
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
if (_renderer != null)
|
||||||
|
{
|
||||||
|
if (_element != null)
|
||||||
|
{
|
||||||
|
_element.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
_renderer.ElementChanged -= OnElementChanged;
|
||||||
|
_renderer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_disposed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal SizeRequest GetDesiredSize(int widthConstraint, int heightConstraint)
|
||||||
|
{
|
||||||
|
var previousHeight = View.MeasuredHeight;
|
||||||
|
var previousWidth = View.MeasuredWidth;
|
||||||
|
|
||||||
|
View.Measure(widthConstraint, heightConstraint);
|
||||||
|
|
||||||
|
// if the measure of the view has changed then trigger a request for layout
|
||||||
|
// if the measure hasn't changed then force a layout of the button
|
||||||
|
if (previousHeight != View.MeasuredHeight || previousWidth != View.MeasuredWidth)
|
||||||
|
View.MaybeRequestLayout();
|
||||||
|
else
|
||||||
|
View.ForceLayout();
|
||||||
|
|
||||||
|
return new SizeRequest(new Size(View.MeasuredWidth, View.MeasuredHeight), Size.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLayout(bool changed, int left, int top, int right, int bottom)
|
||||||
|
{
|
||||||
|
if (_disposed || _renderer == null || _element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
AButton view = View;
|
||||||
|
if (view == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Drawable drawable = null;
|
||||||
|
Drawable[] drawables = TextViewCompat.GetCompoundDrawablesRelative(view);
|
||||||
|
if (drawables != null)
|
||||||
|
{
|
||||||
|
foreach (var compoundDrawable in drawables)
|
||||||
|
{
|
||||||
|
if (compoundDrawable != null)
|
||||||
|
{
|
||||||
|
drawable = compoundDrawable;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (drawable != null)
|
||||||
|
{
|
||||||
|
int iconWidth = drawable.IntrinsicWidth;
|
||||||
|
drawable.CopyBounds(_drawableBounds);
|
||||||
|
|
||||||
|
// Center the drawable in the button if there is no text.
|
||||||
|
// We do not need to undo this as when we get some text, the drawable recreated
|
||||||
|
if (string.IsNullOrEmpty(_element.Text))
|
||||||
|
{
|
||||||
|
var newLeft = (right - left - iconWidth) / 2 - view.PaddingLeft;
|
||||||
|
|
||||||
|
_drawableBounds.Set(newLeft, _drawableBounds.Top, newLeft + iconWidth, _drawableBounds.Bottom);
|
||||||
|
drawable.Bounds = _drawableBounds;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_alignIconWithText && _element.ContentLayout.IsHorizontal())
|
||||||
|
{
|
||||||
|
var buttonText = view.TextFormatted;
|
||||||
|
|
||||||
|
// if text is transformed, add that transformation to to ensure correct calculation of icon padding
|
||||||
|
if (view.TransformationMethod != null)
|
||||||
|
buttonText = view.TransformationMethod.GetTransformationFormatted(buttonText, view);
|
||||||
|
|
||||||
|
var measuredTextWidth = view.Paint.MeasureText(buttonText, 0, buttonText.Length());
|
||||||
|
var textWidth = Math.Min((int)measuredTextWidth, view.Layout.Width);
|
||||||
|
var contentsWidth = ViewCompat.GetPaddingStart(view) + iconWidth + view.CompoundDrawablePadding + textWidth + ViewCompat.GetPaddingEnd(view);
|
||||||
|
|
||||||
|
var newLeft = (view.MeasuredWidth - contentsWidth) / 2;
|
||||||
|
if (_element.ContentLayout.Position == Button.ButtonContentLayout.ImagePosition.Right)
|
||||||
|
newLeft = -newLeft;
|
||||||
|
if (ViewCompat.GetLayoutDirection(view) == ViewCompat.LayoutDirectionRtl)
|
||||||
|
newLeft = -newLeft;
|
||||||
|
|
||||||
|
_drawableBounds.Set(newLeft, _drawableBounds.Top, newLeft + iconWidth, _drawableBounds.Bottom);
|
||||||
|
drawable.Bounds = _drawableBounds;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_hasLayoutOccurred = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnViewAttachedToWindow(AView attachedView)
|
||||||
|
{
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnViewDetachedFromWindow(AView detachedView)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update()
|
||||||
|
{
|
||||||
|
if (View?.LayoutParameters == null && _hasLayoutOccurred)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (View != null && !_elementAlreadyChanged)
|
||||||
|
{
|
||||||
|
_defaultTransformationMethod = View.TransformationMethod;
|
||||||
|
_elementAlreadyChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!UpdateTextAndImage())
|
||||||
|
UpdateImage();
|
||||||
|
|
||||||
|
UpdatePadding();
|
||||||
|
UpdateLineBreakMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnElementChanged(object sender, VisualElementChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_element != null)
|
||||||
|
{
|
||||||
|
_element.PropertyChanged -= OnElementPropertyChanged;
|
||||||
|
_element = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.NewElement is Button button)
|
||||||
|
{
|
||||||
|
_element = button;
|
||||||
|
_element.PropertyChanged += OnElementPropertyChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
Update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (_disposed || _renderer == null || _element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (e.PropertyName == Button.PaddingProperty.PropertyName)
|
||||||
|
UpdatePadding();
|
||||||
|
else if (e.PropertyName == Button.ImageSourceProperty.PropertyName || e.PropertyName == Button.ContentLayoutProperty.PropertyName)
|
||||||
|
UpdateImage();
|
||||||
|
else if (e.IsOneOf(Button.TextProperty, VisualElement.IsVisibleProperty, Button.TextTransformProperty))
|
||||||
|
UpdateTextAndImage();
|
||||||
|
else if (e.PropertyName == Button.BorderWidthProperty.PropertyName && _borderAdjustsPadding)
|
||||||
|
_element.InvalidateMeasureNonVirtual(InvalidationTrigger.MeasureChanged);
|
||||||
|
else if (e.PropertyName == Button.LineBreakModeProperty.PropertyName)
|
||||||
|
UpdateLineBreakMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdatePadding()
|
||||||
|
{
|
||||||
|
AButton view = View;
|
||||||
|
if (view == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_disposed || _renderer == null || _element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!_defaultPaddingPix.HasValue)
|
||||||
|
_defaultPaddingPix = new Thickness(view.PaddingLeft, view.PaddingTop, view.PaddingRight, view.PaddingBottom);
|
||||||
|
|
||||||
|
// Currently the Padding Bindable property uses a creator factory so once it is set it can't become unset
|
||||||
|
// I would say this is currently a bug but it's a bug that exists already in the code base.
|
||||||
|
// Having this comment and this code more accurately demonstrates behavior then
|
||||||
|
// having an else clause for when the PaddingProperty isn't set
|
||||||
|
if (!_element.IsSet(Button.PaddingProperty))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var padding = _element.Padding;
|
||||||
|
var adjustment = 0.0;
|
||||||
|
if (_borderAdjustsPadding && _element is IBorderElement borderElement && borderElement.IsBorderWidthSet() && borderElement.BorderWidth != borderElement.BorderWidthDefaultValue)
|
||||||
|
adjustment = borderElement.BorderWidth;
|
||||||
|
|
||||||
|
var defaultPadding = _preserveInitialPadding && _defaultPaddingPix.HasValue
|
||||||
|
? _defaultPaddingPix.Value
|
||||||
|
: new Thickness();
|
||||||
|
|
||||||
|
view.SetPadding(
|
||||||
|
(int)(Context.ToPixels(padding.Left + adjustment) + defaultPadding.Left),
|
||||||
|
(int)(Context.ToPixels(padding.Top + adjustment) + defaultPadding.Top),
|
||||||
|
(int)(Context.ToPixels(padding.Right + adjustment) + defaultPadding.Right),
|
||||||
|
(int)(Context.ToPixels(padding.Bottom + adjustment) + defaultPadding.Bottom));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UpdateTextAndImage()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_disposed || _renderer?.View == null || _element == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (View?.LayoutParameters == null && _hasLayoutOccurred)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
AButton view = View;
|
||||||
|
if (view == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
UpdateTransformationMethod(view);
|
||||||
|
|
||||||
|
string oldText = view.Text;
|
||||||
|
view.Text = _element.UpdateFormsText(_element.Text, _element.TextTransform);
|
||||||
|
|
||||||
|
// If we went from or to having no text, we need to update the image position
|
||||||
|
if (string.IsNullOrEmpty(oldText) != string.IsNullOrEmpty(view.Text))
|
||||||
|
{
|
||||||
|
UpdateImage();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateTransformationMethod(AButton view)
|
||||||
|
{
|
||||||
|
// Use defaults only when user hasn't specified alternative TextTransform settings
|
||||||
|
if (_element.TextTransform == TextTransform.Default)
|
||||||
|
view.TransformationMethod = _defaultTransformationMethod;
|
||||||
|
else
|
||||||
|
view.TransformationMethod = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateImage()
|
||||||
|
{
|
||||||
|
if (_disposed || _renderer == null || _element == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
AButton view = View;
|
||||||
|
if (view == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ImageSource elementImage = _element.ImageSource;
|
||||||
|
|
||||||
|
if (elementImage == null || elementImage.IsEmpty)
|
||||||
|
{
|
||||||
|
view.SetCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// No text, so no need for relative position; just center the image
|
||||||
|
// There's no option for just plain-old centering, so we'll use Top
|
||||||
|
// (which handles the horizontal centering) and some tricksy padding (in OnLayout)
|
||||||
|
// to handle the vertical centering
|
||||||
|
var layout = string.IsNullOrEmpty(_element.Text) ? _imageOnlyLayout : _element.ContentLayout;
|
||||||
|
|
||||||
|
if (_maintainLegacyMeasurements)
|
||||||
|
view.CompoundDrawablePadding = (int)layout.Spacing;
|
||||||
|
else
|
||||||
|
view.CompoundDrawablePadding = (int)Context.ToPixels(layout.Spacing);
|
||||||
|
|
||||||
|
Drawable existingImage = null;
|
||||||
|
var images = TextViewCompat.GetCompoundDrawablesRelative(view);
|
||||||
|
for (int i = 0; i < images.Length; i++)
|
||||||
|
if (images[i] != null)
|
||||||
|
{
|
||||||
|
existingImage = images[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_renderer is IVisualElementRenderer visualElementRenderer)
|
||||||
|
{
|
||||||
|
visualElementRenderer.ApplyDrawableAsync(Button.ImageSourceProperty, Context, image =>
|
||||||
|
{
|
||||||
|
if (image == existingImage)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (layout.Position)
|
||||||
|
{
|
||||||
|
case Button.ButtonContentLayout.ImagePosition.Top:
|
||||||
|
TextViewCompat.SetCompoundDrawablesRelativeWithIntrinsicBounds(view, null, image, null, null);
|
||||||
|
break;
|
||||||
|
case Button.ButtonContentLayout.ImagePosition.Right:
|
||||||
|
TextViewCompat.SetCompoundDrawablesRelativeWithIntrinsicBounds(view, null, null, image, null);
|
||||||
|
break;
|
||||||
|
case Button.ButtonContentLayout.ImagePosition.Bottom:
|
||||||
|
TextViewCompat.SetCompoundDrawablesRelativeWithIntrinsicBounds(view, null, null, null, image);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Defaults to image on the left
|
||||||
|
TextViewCompat.SetCompoundDrawablesRelativeWithIntrinsicBounds(view, image, null, null, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_hasLayoutOccurred)
|
||||||
|
_element?.InvalidateMeasureNonVirtual(InvalidationTrigger.MeasureChanged);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateLineBreakMode()
|
||||||
|
{
|
||||||
|
AButton view = View;
|
||||||
|
|
||||||
|
if (view == null || _element == null || _renderer?.View == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
view.SetLineBreakMode(_element);
|
||||||
|
UpdateTransformationMethod(view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,7 +15,7 @@ using AMenu = Android.Views.IMenu;
|
||||||
using AMenu = Android.Views.Menu;
|
using AMenu = Android.Views.Menu;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public abstract class CellAdapter : BaseAdapter<object>, AdapterView.IOnItemLongClickListener, ActionMode.ICallback, AdapterView.IOnItemClickListener, AActionMode.ICallback
|
public abstract class CellAdapter : BaseAdapter<object>, AdapterView.IOnItemLongClickListener, ActionMode.ICallback, AdapterView.IOnItemClickListener, AActionMode.ICallback
|
||||||
{
|
{
|
|
@ -4,10 +4,10 @@ using Android.Text;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using Android.Widget;
|
using Android.Widget;
|
||||||
using AndroidX.Core.Widget;
|
using AndroidX.Core.Widget;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public class BaseCellView : LinearLayout, INativeElementView
|
public class BaseCellView : LinearLayout, INativeElementView
|
||||||
{
|
{
|
|
@ -1,10 +1,10 @@
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
using Xamarin.Forms.Internals;
|
using Microsoft.Maui.Controls.Internals;
|
||||||
using AListView = Android.Widget.ListView;
|
using AListView = Android.Widget.ListView;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public static class CellFactory
|
public static class CellFactory
|
||||||
{
|
{
|
|
@ -0,0 +1,153 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Views;
|
||||||
|
using Android.Widget;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
using Object = Java.Lang.Object;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class CellRenderer : IRegisterable
|
||||||
|
{
|
||||||
|
static readonly PropertyChangedEventHandler PropertyChangedHandler = OnGlobalCellPropertyChanged;
|
||||||
|
|
||||||
|
static readonly BindableProperty RendererProperty = BindableProperty.CreateAttached("Renderer", typeof(CellRenderer), typeof(Cell), null);
|
||||||
|
|
||||||
|
EventHandler _onForceUpdateSizeRequested;
|
||||||
|
|
||||||
|
public View ParentView { get; set; }
|
||||||
|
|
||||||
|
protected Cell Cell { get; set; }
|
||||||
|
|
||||||
|
public AView GetCell(Cell item, AView convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
Cell = item;
|
||||||
|
Cell.PropertyChanged -= PropertyChangedHandler;
|
||||||
|
|
||||||
|
SetRenderer(Cell, this);
|
||||||
|
|
||||||
|
if (convertView != null)
|
||||||
|
{
|
||||||
|
Object tag = convertView.Tag;
|
||||||
|
CellRenderer renderer = (tag as RendererHolder)?.Renderer;
|
||||||
|
|
||||||
|
Cell oldCell = renderer?.Cell;
|
||||||
|
|
||||||
|
if (oldCell != null)
|
||||||
|
{
|
||||||
|
((ICellController)oldCell).SendDisappearing();
|
||||||
|
|
||||||
|
if (Cell != oldCell)
|
||||||
|
{
|
||||||
|
SetRenderer(oldCell, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AView view = GetCellCore(item, convertView, parent, context);
|
||||||
|
|
||||||
|
WireUpForceUpdateSizeRequested(item, view);
|
||||||
|
|
||||||
|
var holder = view.Tag as RendererHolder;
|
||||||
|
if (holder == null)
|
||||||
|
view.Tag = new RendererHolder(this);
|
||||||
|
else
|
||||||
|
holder.Renderer = this;
|
||||||
|
|
||||||
|
Cell.PropertyChanged += PropertyChangedHandler;
|
||||||
|
((ICellController)Cell).SendAppearing();
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual AView GetCellCore(Cell item, AView convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference, "GetCellCore");
|
||||||
|
|
||||||
|
LayoutInflater inflater = LayoutInflater.FromContext(context);
|
||||||
|
const int type = global::Android.Resource.Layout.SimpleListItem1;
|
||||||
|
AView view = inflater.Inflate(type, null);
|
||||||
|
|
||||||
|
var textView = view.FindViewById<TextView>(global::Android.Resource.Id.Text1);
|
||||||
|
textView.Text = item.ToString();
|
||||||
|
textView.SetBackgroundColor(global::Android.Graphics.Color.Transparent);
|
||||||
|
view.SetBackgroundColor(global::Android.Graphics.Color.Black);
|
||||||
|
|
||||||
|
Performance.Stop(reference, "GetCellCore");
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnCellPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void WireUpForceUpdateSizeRequested(Cell cell, AView nativeCell)
|
||||||
|
{
|
||||||
|
ICellController cellController = cell;
|
||||||
|
cellController.ForceUpdateSizeRequested -= _onForceUpdateSizeRequested;
|
||||||
|
|
||||||
|
_onForceUpdateSizeRequested = (sender, e) =>
|
||||||
|
{
|
||||||
|
if (nativeCell.Handle == IntPtr.Zero)
|
||||||
|
return;
|
||||||
|
// RenderHeight may not be changed, but that's okay, since we
|
||||||
|
// don't actually use the height argument in the OnMeasure override.
|
||||||
|
nativeCell.Measure(nativeCell.Width, (int)cell.RenderHeight);
|
||||||
|
nativeCell.SetMinimumHeight(nativeCell.MeasuredHeight);
|
||||||
|
nativeCell.SetMinimumWidth(nativeCell.MeasuredWidth);
|
||||||
|
};
|
||||||
|
|
||||||
|
cellController.ForceUpdateSizeRequested += _onForceUpdateSizeRequested;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static CellRenderer GetRenderer(BindableObject cell)
|
||||||
|
{
|
||||||
|
return (CellRenderer)cell.GetValue(RendererProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void SetRenderer(BindableObject cell, CellRenderer renderer)
|
||||||
|
{
|
||||||
|
cell.SetValue(RendererProperty, renderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OnGlobalCellPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var cell = (Cell)sender;
|
||||||
|
CellRenderer renderer = GetRenderer(cell);
|
||||||
|
if (renderer == null)
|
||||||
|
{
|
||||||
|
cell.PropertyChanged -= PropertyChangedHandler;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderer.OnCellPropertyChanged(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
class RendererHolder : Object
|
||||||
|
{
|
||||||
|
readonly WeakReference<CellRenderer> _rendererRef;
|
||||||
|
|
||||||
|
public RendererHolder(CellRenderer renderer)
|
||||||
|
{
|
||||||
|
_rendererRef = new WeakReference<CellRenderer>(renderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CellRenderer Renderer
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
CellRenderer renderer;
|
||||||
|
return _rendererRef.TryGetTarget(out renderer) ? renderer : null;
|
||||||
|
}
|
||||||
|
set { _rendererRef.SetTarget(value); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ using Android.Views;
|
||||||
using Android.Widget;
|
using Android.Widget;
|
||||||
using ARect = Android.Graphics.Rect;
|
using ARect = Android.Graphics.Rect;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public sealed class EntryCellEditText : EditText
|
public sealed class EntryCellEditText : EditText
|
||||||
{
|
{
|
|
@ -0,0 +1,160 @@
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Text;
|
||||||
|
using Android.Text.Method;
|
||||||
|
using Android.Views;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class EntryCellRenderer : CellRenderer
|
||||||
|
{
|
||||||
|
EntryCellView _view;
|
||||||
|
|
||||||
|
protected override global::Android.Views.View GetCellCore(Cell item, global::Android.Views.View convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
if ((_view = convertView as EntryCellView) == null)
|
||||||
|
_view = new EntryCellView(context, item);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_view.TextChanged = null;
|
||||||
|
_view.FocusChanged = null;
|
||||||
|
_view.EditingCompleted = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateLabel();
|
||||||
|
UpdateLabelColor();
|
||||||
|
UpdatePlaceholder();
|
||||||
|
UpdateKeyboard();
|
||||||
|
UpdateHorizontalTextAlignment();
|
||||||
|
UpdateVerticalTextAlignment();
|
||||||
|
UpdateText();
|
||||||
|
UpdateIsEnabled();
|
||||||
|
UpdateHeight();
|
||||||
|
UpdateFlowDirection();
|
||||||
|
|
||||||
|
_view.TextChanged = OnTextChanged;
|
||||||
|
_view.EditingCompleted = OnEditingCompleted;
|
||||||
|
|
||||||
|
return _view;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!_view.IsAlive())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base.OnCellPropertyChanged(sender, e);
|
||||||
|
|
||||||
|
if (e.PropertyName == EntryCell.LabelProperty.PropertyName)
|
||||||
|
UpdateLabel();
|
||||||
|
else if (e.PropertyName == EntryCell.TextProperty.PropertyName)
|
||||||
|
UpdateText();
|
||||||
|
else if (e.PropertyName == EntryCell.PlaceholderProperty.PropertyName)
|
||||||
|
UpdatePlaceholder();
|
||||||
|
else if (e.PropertyName == EntryCell.KeyboardProperty.PropertyName)
|
||||||
|
UpdateKeyboard();
|
||||||
|
else if (e.PropertyName == EntryCell.LabelColorProperty.PropertyName)
|
||||||
|
UpdateLabelColor();
|
||||||
|
else if (e.PropertyName == EntryCell.HorizontalTextAlignmentProperty.PropertyName)
|
||||||
|
UpdateHorizontalTextAlignment();
|
||||||
|
else if (e.PropertyName == EntryCell.VerticalTextAlignmentProperty.PropertyName)
|
||||||
|
UpdateVerticalTextAlignment();
|
||||||
|
else if (e.PropertyName == Cell.IsEnabledProperty.PropertyName)
|
||||||
|
UpdateIsEnabled();
|
||||||
|
else if (e.PropertyName == "RenderHeight")
|
||||||
|
UpdateHeight();
|
||||||
|
else if (e.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateFlowDirection();
|
||||||
|
UpdateHorizontalTextAlignment();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual NumberKeyListener GetDigitsKeyListener(InputTypes inputTypes)
|
||||||
|
{
|
||||||
|
// Override this in a custom renderer to use a different NumberKeyListener
|
||||||
|
// or to filter out input types you don't want to allow
|
||||||
|
// (e.g., inputTypes &= ~InputTypes.NumberFlagSigned to disallow the sign)
|
||||||
|
return LocalizedDigitsKeyListener.Create(inputTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnEditingCompleted()
|
||||||
|
{
|
||||||
|
var entryCell = (IEntryCellController)Cell;
|
||||||
|
entryCell.SendCompleted();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnTextChanged(string text)
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
entryCell.Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHeight()
|
||||||
|
{
|
||||||
|
_view.SetRenderHeight(Cell.RenderHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHorizontalTextAlignment()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
_view.EditText.UpdateHorizontalAlignment(entryCell.HorizontalTextAlignment, _view.Context.HasRtlSupport());
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateVerticalTextAlignment()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
_view.EditText.UpdateVerticalAlignment(entryCell.VerticalTextAlignment);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsEnabled()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
_view.EditText.Enabled = entryCell.IsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateKeyboard()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
var keyboard = entryCell.Keyboard;
|
||||||
|
_view.EditText.InputType = keyboard.ToInputType();
|
||||||
|
|
||||||
|
if (keyboard == Keyboard.Numeric)
|
||||||
|
{
|
||||||
|
_view.EditText.KeyListener = GetDigitsKeyListener(_view.EditText.InputType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateLabel()
|
||||||
|
{
|
||||||
|
_view.LabelText = ((EntryCell)Cell).Label;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateLabelColor()
|
||||||
|
{
|
||||||
|
_view.SetLabelTextColor(((EntryCell)Cell).LabelColor, global::Android.Resource.Attribute.TextColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlowDirection()
|
||||||
|
{
|
||||||
|
_view.UpdateFlowDirection(ParentView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdatePlaceholder()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
_view.EditText.Hint = entryCell.Placeholder;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateText()
|
||||||
|
{
|
||||||
|
var entryCell = (EntryCell)Cell;
|
||||||
|
if (_view.EditText.Text == entryCell.Text)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_view.EditText.Text = entryCell.Text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,7 +7,7 @@ using Android.Widget;
|
||||||
using AndroidX.Core.Widget;
|
using AndroidX.Core.Widget;
|
||||||
using Java.Lang;
|
using Java.Lang;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public sealed class EntryCellView : LinearLayout, ITextWatcher, global::Android.Views.View.IOnFocusChangeListener, TextView.IOnEditorActionListener, INativeElementView
|
public sealed class EntryCellView : LinearLayout, ITextWatcher, global::Android.Views.View.IOnFocusChangeListener, TextView.IOnEditorActionListener, INativeElementView
|
||||||
{
|
{
|
|
@ -0,0 +1,45 @@
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Views;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class ImageCellRenderer : TextCellRenderer
|
||||||
|
{
|
||||||
|
protected override global::Android.Views.View GetCellCore(Cell item, global::Android.Views.View convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
var result = (BaseCellView)base.GetCellCore(item, convertView, parent, context);
|
||||||
|
|
||||||
|
UpdateImage();
|
||||||
|
UpdateFlowDirection();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs args)
|
||||||
|
{
|
||||||
|
base.OnCellPropertyChanged(sender, args);
|
||||||
|
if (args.PropertyName == ImageCell.ImageSourceProperty.PropertyName)
|
||||||
|
UpdateImage();
|
||||||
|
else if (args.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||||
|
UpdateFlowDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateImage()
|
||||||
|
{
|
||||||
|
var cell = (ImageCell)Cell;
|
||||||
|
if (cell.ImageSource != null)
|
||||||
|
{
|
||||||
|
View.SetImageVisible(true);
|
||||||
|
View.SetImageSource(cell.ImageSource);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
View.SetImageVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlowDirection()
|
||||||
|
{
|
||||||
|
View.UpdateFlowDirection(ParentView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Graphics;
|
||||||
|
using Android.Graphics.Drawables;
|
||||||
|
using Android.OS;
|
||||||
|
using Android.Views;
|
||||||
|
using ASwitch = Android.Widget.Switch;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class SwitchCellRenderer : CellRenderer
|
||||||
|
{
|
||||||
|
SwitchCellView _view;
|
||||||
|
Drawable _defaultTrackDrawable;
|
||||||
|
|
||||||
|
protected override AView GetCellCore(Cell item, AView convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
var cell = (SwitchCell)Cell;
|
||||||
|
|
||||||
|
if ((_view = convertView as SwitchCellView) == null)
|
||||||
|
_view = new SwitchCellView(context, item);
|
||||||
|
|
||||||
|
_view.Cell = cell;
|
||||||
|
|
||||||
|
var aSwitch = _view.AccessoryView as ASwitch;
|
||||||
|
if (aSwitch != null)
|
||||||
|
_defaultTrackDrawable = aSwitch.TrackDrawable;
|
||||||
|
|
||||||
|
UpdateText();
|
||||||
|
UpdateChecked();
|
||||||
|
UpdateHeight();
|
||||||
|
UpdateIsEnabled(_view, cell);
|
||||||
|
UpdateFlowDirection();
|
||||||
|
UpdateOnColor(_view, cell);
|
||||||
|
|
||||||
|
return _view;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs args)
|
||||||
|
{
|
||||||
|
if (args.PropertyName == SwitchCell.TextProperty.PropertyName)
|
||||||
|
UpdateText();
|
||||||
|
else if (args.PropertyName == SwitchCell.OnProperty.PropertyName)
|
||||||
|
{
|
||||||
|
UpdateChecked();
|
||||||
|
UpdateOnColor(_view, (SwitchCell)sender);
|
||||||
|
}
|
||||||
|
else if (args.PropertyName == "RenderHeight")
|
||||||
|
UpdateHeight();
|
||||||
|
else if (args.PropertyName == Cell.IsEnabledProperty.PropertyName)
|
||||||
|
UpdateIsEnabled(_view, (SwitchCell)sender);
|
||||||
|
else if (args.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||||
|
UpdateFlowDirection();
|
||||||
|
else if (args.PropertyName == SwitchCell.OnColorProperty.PropertyName)
|
||||||
|
UpdateOnColor(_view, (SwitchCell)sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateChecked()
|
||||||
|
{
|
||||||
|
((ASwitch)_view.AccessoryView).Checked = ((SwitchCell)Cell).On;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsEnabled(SwitchCellView cell, SwitchCell switchCell)
|
||||||
|
{
|
||||||
|
cell.Enabled = switchCell.IsEnabled;
|
||||||
|
var aSwitch = cell.AccessoryView as ASwitch;
|
||||||
|
if (aSwitch != null)
|
||||||
|
aSwitch.Enabled = switchCell.IsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlowDirection()
|
||||||
|
{
|
||||||
|
_view.UpdateFlowDirection(ParentView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHeight()
|
||||||
|
{
|
||||||
|
_view.SetRenderHeight(Cell.RenderHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateText()
|
||||||
|
{
|
||||||
|
_view.MainText = ((SwitchCell)Cell).Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateOnColor(SwitchCellView cell, SwitchCell switchCell)
|
||||||
|
{
|
||||||
|
var aSwitch = cell.AccessoryView as ASwitch;
|
||||||
|
if (aSwitch != null)
|
||||||
|
{
|
||||||
|
if (switchCell.On)
|
||||||
|
{
|
||||||
|
if (switchCell.OnColor == Color.Default)
|
||||||
|
{
|
||||||
|
aSwitch.TrackDrawable = _defaultTrackDrawable;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Forms.SdkInt >= BuildVersionCodes.JellyBean)
|
||||||
|
{
|
||||||
|
aSwitch.TrackDrawable.SetColorFilter(switchCell.OnColor, FilterMode.Multiply);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aSwitch.TrackDrawable.ClearColorFilter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Widget;
|
using Android.Widget;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public class SwitchCellView : BaseCellView, CompoundButton.IOnCheckedChangeListener
|
public class SwitchCellView : BaseCellView, CompoundButton.IOnCheckedChangeListener
|
||||||
{
|
{
|
|
@ -0,0 +1,100 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Views;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class TextCellRenderer : CellRenderer
|
||||||
|
{
|
||||||
|
internal TextCellView View { get; private set; }
|
||||||
|
|
||||||
|
protected override AView GetCellCore(Cell item, AView convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
if ((View = convertView as TextCellView) == null)
|
||||||
|
View = new TextCellView(context, item);
|
||||||
|
|
||||||
|
UpdateMainText();
|
||||||
|
UpdateDetailText();
|
||||||
|
UpdateHeight();
|
||||||
|
UpdateIsEnabled();
|
||||||
|
UpdateFlowDirection();
|
||||||
|
UpdateAutomationId();
|
||||||
|
View.SetImageVisible(false);
|
||||||
|
|
||||||
|
return View;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs args)
|
||||||
|
{
|
||||||
|
if (View.IsDisposed())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.PropertyName == TextCell.TextProperty.PropertyName || args.PropertyName == TextCell.TextColorProperty.PropertyName)
|
||||||
|
UpdateMainText();
|
||||||
|
else if (args.PropertyName == TextCell.DetailProperty.PropertyName || args.PropertyName == TextCell.DetailColorProperty.PropertyName)
|
||||||
|
UpdateDetailText();
|
||||||
|
else if (args.PropertyName == Cell.IsEnabledProperty.PropertyName)
|
||||||
|
UpdateIsEnabled();
|
||||||
|
else if (args.PropertyName == "RenderHeight")
|
||||||
|
UpdateHeight();
|
||||||
|
else if (args.PropertyName == VisualElement.FlowDirectionProperty.PropertyName)
|
||||||
|
UpdateFlowDirection();
|
||||||
|
else if (args.PropertyName == VisualElement.AutomationIdProperty.PropertyName)
|
||||||
|
UpdateAutomationId();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateAutomationId()
|
||||||
|
{
|
||||||
|
View.ContentDescription = Cell.AutomationId;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateDetailText()
|
||||||
|
{
|
||||||
|
var cell = (TextCell)Cell;
|
||||||
|
View.DetailText = cell.Detail;
|
||||||
|
View.SetDetailTextColor(cell.DetailColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateHeight()
|
||||||
|
{
|
||||||
|
View.SetRenderHeight(Cell.RenderHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsEnabled()
|
||||||
|
{
|
||||||
|
var cell = (TextCell)Cell;
|
||||||
|
View.SetIsEnabled(cell.IsEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFlowDirection()
|
||||||
|
{
|
||||||
|
View.UpdateFlowDirection(ParentView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateMainText()
|
||||||
|
{
|
||||||
|
var cell = (TextCell)Cell;
|
||||||
|
View.MainText = cell.Text;
|
||||||
|
|
||||||
|
if (!cell.GetIsGroupHeader<ItemsView<Cell>, Cell>())
|
||||||
|
View.SetDefaultMainTextColor(Color.Accent);
|
||||||
|
else
|
||||||
|
View.SetDefaultMainTextColor(Color.Default);
|
||||||
|
|
||||||
|
View.SetMainTextColor(cell.TextColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure we don't get other people's BaseCellView's
|
||||||
|
internal class TextCellView : BaseCellView
|
||||||
|
{
|
||||||
|
public TextCellView(Context context, Cell cell) : base(context, cell)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,412 @@
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Runtime;
|
||||||
|
using Android.Views;
|
||||||
|
using Microsoft.Maui.Controls.Internals;
|
||||||
|
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class ViewCellRenderer : CellRenderer
|
||||||
|
{
|
||||||
|
protected override AView GetCellCore(Cell item, AView convertView, ViewGroup parent, Context context)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference, "GetCellCore");
|
||||||
|
var cell = (ViewCell)item;
|
||||||
|
|
||||||
|
var container = convertView as ViewCellContainer;
|
||||||
|
if (container != null)
|
||||||
|
{
|
||||||
|
container.Update(cell);
|
||||||
|
Performance.Stop(reference, "GetCellCore");
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
BindableProperty unevenRows = null, rowHeight = null;
|
||||||
|
if (ParentView is TableView)
|
||||||
|
{
|
||||||
|
unevenRows = TableView.HasUnevenRowsProperty;
|
||||||
|
rowHeight = TableView.RowHeightProperty;
|
||||||
|
}
|
||||||
|
else if (ParentView is ListView)
|
||||||
|
{
|
||||||
|
cell.IsContextActionsLegacyModeEnabled = item.On<PlatformConfiguration.Android>().GetIsContextActionsLegacyModeEnabled();
|
||||||
|
|
||||||
|
unevenRows = ListView.HasUnevenRowsProperty;
|
||||||
|
rowHeight = ListView.RowHeightProperty;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cell.View == null)
|
||||||
|
throw new InvalidOperationException($"ViewCell must have a {nameof(cell.View)}");
|
||||||
|
|
||||||
|
IVisualElementRenderer view = AppCompat.Platform.CreateRenderer(cell.View, context);
|
||||||
|
AppCompat.Platform.SetRenderer(cell.View, view);
|
||||||
|
cell.View.IsPlatformEnabled = true;
|
||||||
|
var c = new ViewCellContainer(context, view, cell, ParentView, unevenRows, rowHeight);
|
||||||
|
|
||||||
|
Performance.Stop(reference, "GetCellCore");
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class ViewCellContainer : ViewGroup, INativeElementView
|
||||||
|
{
|
||||||
|
readonly View _parent;
|
||||||
|
readonly BindableProperty _rowHeight;
|
||||||
|
readonly BindableProperty _unevenRows;
|
||||||
|
IVisualElementRenderer _view;
|
||||||
|
ViewCell _viewCell;
|
||||||
|
GestureDetector _tapGestureDetector;
|
||||||
|
GestureDetector _longPressGestureDetector;
|
||||||
|
ListViewRenderer _listViewRenderer;
|
||||||
|
bool _watchForLongPress;
|
||||||
|
|
||||||
|
ListViewRenderer ListViewRenderer
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_listViewRenderer != null)
|
||||||
|
{
|
||||||
|
return _listViewRenderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
var listView = _parent as ListView;
|
||||||
|
|
||||||
|
if (listView == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
_listViewRenderer = AppCompat.Platform.GetRenderer(listView) as ListViewRenderer;
|
||||||
|
|
||||||
|
return _listViewRenderer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GestureDetector TapGestureDetector
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_tapGestureDetector != null)
|
||||||
|
{
|
||||||
|
return _tapGestureDetector;
|
||||||
|
}
|
||||||
|
|
||||||
|
_tapGestureDetector = new GestureDetector(Context, new TapGestureListener(TriggerClick));
|
||||||
|
return _tapGestureDetector;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GestureDetector LongPressGestureDetector
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_longPressGestureDetector != null)
|
||||||
|
{
|
||||||
|
return _longPressGestureDetector;
|
||||||
|
}
|
||||||
|
|
||||||
|
_longPressGestureDetector = new GestureDetector(Context, new LongPressGestureListener(TriggerLongClick));
|
||||||
|
return _longPressGestureDetector;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ViewCellContainer(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
|
||||||
|
{
|
||||||
|
// Added default constructor to prevent crash when accessing selected row in ListViewAdapter.Dispose
|
||||||
|
}
|
||||||
|
|
||||||
|
public ViewCellContainer(Context context, IVisualElementRenderer view, ViewCell viewCell, View parent,
|
||||||
|
BindableProperty unevenRows, BindableProperty rowHeight) : base(context)
|
||||||
|
{
|
||||||
|
_view = view;
|
||||||
|
_parent = parent;
|
||||||
|
_unevenRows = unevenRows;
|
||||||
|
_rowHeight = rowHeight;
|
||||||
|
_viewCell = viewCell;
|
||||||
|
AddView(view.View);
|
||||||
|
UpdateIsEnabled();
|
||||||
|
UpdateWatchForLongPress();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool ParentHasUnevenRows
|
||||||
|
{
|
||||||
|
get { return (bool)_parent.GetValue(_unevenRows); }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int ParentRowHeight
|
||||||
|
{
|
||||||
|
get { return (int)_parent.GetValue(_rowHeight); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public Element Element
|
||||||
|
{
|
||||||
|
get { return _viewCell; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnInterceptTouchEvent(MotionEvent ev)
|
||||||
|
{
|
||||||
|
if (!Enabled)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return base.OnInterceptTouchEvent(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool DispatchTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
// Give the child controls a shot at the event (in case they've get Tap gestures and such
|
||||||
|
var handled = base.DispatchTouchEvent(e);
|
||||||
|
|
||||||
|
if (_watchForLongPress)
|
||||||
|
{
|
||||||
|
// Feed the gesture through the LongPress detector; for this to work we *must* return true
|
||||||
|
// afterward (or the LPGD goes nuts and immediately fires onLongPress)
|
||||||
|
LongPressGestureDetector.OnTouchEvent(e);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (WatchForSwipeViewTap())
|
||||||
|
{
|
||||||
|
TapGestureDetector.OnTouchEvent(e);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Update(ViewCell cell)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
var renderer = GetChildAt(0) as IVisualElementRenderer;
|
||||||
|
var viewHandlerType = Registrar.Registered.GetHandlerTypeForObject(cell.View) ?? typeof(AppCompat.Platform.DefaultRenderer);
|
||||||
|
var reflectableType = renderer as System.Reflection.IReflectableType;
|
||||||
|
var rendererType = reflectableType != null ? reflectableType.GetTypeInfo().AsType() : (renderer != null ? renderer.GetType() : typeof(System.Object));
|
||||||
|
if (renderer != null && rendererType == viewHandlerType)
|
||||||
|
{
|
||||||
|
Performance.Start(reference, "Reuse");
|
||||||
|
_viewCell = cell;
|
||||||
|
|
||||||
|
cell.View.DisableLayout = true;
|
||||||
|
foreach (VisualElement c in cell.View.Descendants())
|
||||||
|
c.DisableLayout = true;
|
||||||
|
|
||||||
|
Performance.Start(reference, "Reuse.SetElement");
|
||||||
|
renderer.SetElement(cell.View);
|
||||||
|
Performance.Stop(reference, "Reuse.SetElement");
|
||||||
|
|
||||||
|
AppCompat.Platform.SetRenderer(cell.View, _view);
|
||||||
|
|
||||||
|
cell.View.DisableLayout = false;
|
||||||
|
foreach (VisualElement c in cell.View.Descendants())
|
||||||
|
c.DisableLayout = false;
|
||||||
|
|
||||||
|
var viewAsLayout = cell.View as Layout;
|
||||||
|
if (viewAsLayout != null)
|
||||||
|
viewAsLayout.ForceLayout();
|
||||||
|
|
||||||
|
Invalidate();
|
||||||
|
|
||||||
|
Performance.Stop(reference, "Reuse");
|
||||||
|
Performance.Stop(reference);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RemoveView(_view.View);
|
||||||
|
AppCompat.Platform.SetRenderer(_viewCell.View, null);
|
||||||
|
_viewCell.View.IsPlatformEnabled = false;
|
||||||
|
_view.View.Dispose();
|
||||||
|
|
||||||
|
_viewCell = cell;
|
||||||
|
_view = AppCompat.Platform.CreateRenderer(_viewCell.View, Context);
|
||||||
|
|
||||||
|
AppCompat.Platform.SetRenderer(_viewCell.View, _view);
|
||||||
|
AddView(_view.View);
|
||||||
|
|
||||||
|
UpdateIsEnabled();
|
||||||
|
UpdateWatchForLongPress();
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateIsEnabled()
|
||||||
|
{
|
||||||
|
Enabled = _viewCell.IsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnLayout(bool changed, int l, int t, int r, int b)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
double width = Context.FromPixels(r - l);
|
||||||
|
double height = Context.FromPixels(b - t);
|
||||||
|
|
||||||
|
Performance.Start(reference, "Element.Layout");
|
||||||
|
Microsoft.Maui.Controls.Layout.LayoutChildIntoBoundingRegion(_view.Element, new Rectangle(0, 0, width, height));
|
||||||
|
Performance.Stop(reference, "Element.Layout");
|
||||||
|
|
||||||
|
_view.UpdateLayout();
|
||||||
|
Performance.Stop(reference);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
||||||
|
{
|
||||||
|
Performance.Start(out string reference);
|
||||||
|
|
||||||
|
int width = MeasureSpec.GetSize(widthMeasureSpec);
|
||||||
|
int height;
|
||||||
|
|
||||||
|
if (ParentHasUnevenRows)
|
||||||
|
{
|
||||||
|
SizeRequest measure = _view.Element.Measure(Context.FromPixels(width), double.PositiveInfinity, MeasureFlags.IncludeMargins);
|
||||||
|
height = (int)Context.ToPixels(_viewCell.Height > 0 ? _viewCell.Height : measure.Request.Height);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
height = (int)Context.ToPixels(ParentRowHeight == -1 ? BaseCellView.DefaultMinHeight : ParentRowHeight);
|
||||||
|
|
||||||
|
SetMeasuredDimension(width, height);
|
||||||
|
|
||||||
|
Performance.Stop(reference);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WatchForSwipeViewTap()
|
||||||
|
{
|
||||||
|
if (!(_view.Element is SwipeView swipeView))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// If the cell contains a SwipeView, we will have conflicts capturing the touch.
|
||||||
|
// So we need to watch locally for Tap and if we see it (and the SwipeView is open),
|
||||||
|
// trigger the Click manually.
|
||||||
|
if (!((ISwipeViewController)swipeView).IsOpen)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateWatchForLongPress()
|
||||||
|
{
|
||||||
|
var vw = _view.Element as Microsoft.Maui.Controls.View;
|
||||||
|
if (vw == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the view cell has any context actions and the View itself has any Tap Gestures, they're going
|
||||||
|
// to conflict with one another - the Tap Gesture handling will prevent the ListViewAdapter's
|
||||||
|
// LongClick handling from happening. So we need to watch locally for LongPress and if we see it,
|
||||||
|
// trigger the LongClick manually.
|
||||||
|
_watchForLongPress = _viewCell.ContextActions.Count > 0
|
||||||
|
&& HasTapGestureRecognizers(vw);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool HasTapGestureRecognizers(View view)
|
||||||
|
{
|
||||||
|
return view.GestureRecognizers.Any(t => t is TapGestureRecognizer)
|
||||||
|
|| view.LogicalChildren.OfType<View>().Any(HasTapGestureRecognizers);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriggerClick()
|
||||||
|
{
|
||||||
|
ListViewRenderer?.ClickOn(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriggerLongClick()
|
||||||
|
{
|
||||||
|
ListViewRenderer?.LongClickOn(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class TapGestureListener : Java.Lang.Object, GestureDetector.IOnGestureListener
|
||||||
|
{
|
||||||
|
readonly Action _onClick;
|
||||||
|
|
||||||
|
internal TapGestureListener(Action onClick)
|
||||||
|
{
|
||||||
|
_onClick = onClick;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal TapGestureListener(IntPtr handle, JniHandleOwnership ownership) : base(handle, ownership)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnDown(MotionEvent e)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLongPress(MotionEvent e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnShowPress(MotionEvent e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnSingleTapUp(MotionEvent e)
|
||||||
|
{
|
||||||
|
_onClick();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class LongPressGestureListener : Java.Lang.Object, GestureDetector.IOnGestureListener
|
||||||
|
{
|
||||||
|
readonly Action _onLongClick;
|
||||||
|
|
||||||
|
internal LongPressGestureListener(Action onLongClick)
|
||||||
|
{
|
||||||
|
_onLongClick = onLongClick;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal LongPressGestureListener(IntPtr handle, JniHandleOwnership ownership) : base(handle, ownership)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnDown(MotionEvent e)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLongPress(MotionEvent e)
|
||||||
|
{
|
||||||
|
_onLongClick();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnShowPress(MotionEvent e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool OnSingleTapUp(MotionEvent e)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
using AndroidX.RecyclerView.Widget;
|
using AndroidX.RecyclerView.Widget;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
// Passes change notifications directly through to a RecyclerView.Adapter
|
// Passes change notifications directly through to a RecyclerView.Adapter
|
||||||
internal class AdapterNotifier : ICollectionChangedNotifier
|
internal class AdapterNotifier : ICollectionChangedNotifier
|
|
@ -1,10 +1,10 @@
|
||||||
using System;
|
using System;
|
||||||
using AndroidX.RecyclerView.Widget;
|
using AndroidX.RecyclerView.Widget;
|
||||||
using ARect = Android.Graphics.Rect;
|
using ARect = Android.Graphics.Rect;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
using FormsCarouselView = Xamarin.Forms.CarouselView;
|
using FormsCarouselView = Microsoft.Maui.Controls.CarouselView;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
public class CarouselSpacingItemDecoration : RecyclerView.ItemDecoration
|
public class CarouselSpacingItemDecoration : RecyclerView.ItemDecoration
|
||||||
{
|
{
|
|
@ -1,9 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using AndroidX.RecyclerView.Widget;
|
using AndroidX.RecyclerView.Widget;
|
||||||
using static Xamarin.Forms.Platform.Android.CarouselViewRenderer;
|
using static Microsoft.Maui.Controls.Compatibility.Platform.Android.CarouselViewRenderer;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android.CollectionView
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android.CollectionView
|
||||||
{
|
{
|
||||||
public class CarouselViewAdapter<TItemsView, TItemsViewSource> : ItemsViewAdapter<TItemsView, TItemsViewSource>
|
public class CarouselViewAdapter<TItemsView, TItemsViewSource> : ItemsViewAdapter<TItemsView, TItemsViewSource>
|
||||||
where TItemsView : ItemsView
|
where TItemsView : ItemsView
|
|
@ -0,0 +1,748 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Runtime;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.RecyclerView.Widget;
|
||||||
|
using Microsoft.Maui.Controls.Compatibility.Platform.Android.CollectionView;
|
||||||
|
using FormsCarouselView = Microsoft.Maui.Controls.CarouselView;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class CarouselViewRenderer : ItemsViewRenderer<ItemsView, ItemsViewAdapter<ItemsView, IItemsViewSource>, IItemsViewSource>
|
||||||
|
{
|
||||||
|
protected FormsCarouselView Carousel => ItemsView as FormsCarouselView;
|
||||||
|
ItemDecoration _itemDecoration;
|
||||||
|
CarouselViewLoopManager _carouselViewLoopManager;
|
||||||
|
bool _isSwipeEnabled;
|
||||||
|
int _oldPosition;
|
||||||
|
int _gotoPosition = -1;
|
||||||
|
bool _noNeedForScroll;
|
||||||
|
bool _initialized;
|
||||||
|
bool _isVisible;
|
||||||
|
bool _disposed;
|
||||||
|
|
||||||
|
List<View> _oldViews;
|
||||||
|
CarouselViewwOnGlobalLayoutListener _carouselViewLayoutListener;
|
||||||
|
|
||||||
|
public CarouselViewRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
_oldViews = new List<View>();
|
||||||
|
_carouselViewLoopManager = new CarouselViewLoopManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnInterceptTouchEvent(MotionEvent ev)
|
||||||
|
{
|
||||||
|
if (!_isSwipeEnabled)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return base.OnInterceptTouchEvent(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual bool IsHorizontal => (Carousel?.ItemsLayout)?.Orientation == ItemsLayoutOrientation.Horizontal;
|
||||||
|
|
||||||
|
protected override int DetermineTargetPosition(ScrollToRequestEventArgs args)
|
||||||
|
{
|
||||||
|
if (args.Mode == ScrollToMode.Element)
|
||||||
|
return ItemsViewAdapter.GetPositionForItem(args.Item);
|
||||||
|
|
||||||
|
if (!Carousel.Loop)
|
||||||
|
return args.Index;
|
||||||
|
|
||||||
|
if (_carouselViewLoopManager == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
var carouselPosition = GetCarouselViewCurrentIndex(Carousel.Position);
|
||||||
|
var getGoIndex = _carouselViewLoopManager.GetGoToIndex(this, carouselPosition, args.Index);
|
||||||
|
|
||||||
|
return getGoIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnTouchEvent(MotionEvent e)
|
||||||
|
{
|
||||||
|
if (Carousel.Loop)
|
||||||
|
_carouselViewLoopManager.CenterIfNeeded(this, IsHorizontal);
|
||||||
|
|
||||||
|
return base.OnTouchEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && !_disposed)
|
||||||
|
{
|
||||||
|
_disposed = true;
|
||||||
|
_carouselViewLoopManager?.SetItemsSource(null);
|
||||||
|
_carouselViewLoopManager = null;
|
||||||
|
|
||||||
|
if (_itemDecoration != null)
|
||||||
|
{
|
||||||
|
_itemDecoration.Dispose();
|
||||||
|
_itemDecoration = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ClearLayoutListener();
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void SetUpNewElement(ItemsView newElement)
|
||||||
|
{
|
||||||
|
base.SetUpNewElement(newElement);
|
||||||
|
|
||||||
|
if (newElement == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
AddLayoutListener();
|
||||||
|
UpdateIsSwipeEnabled();
|
||||||
|
UpdateIsBounceEnabled();
|
||||||
|
UpdateItemSpacing();
|
||||||
|
UpdateInitialPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override RecyclerViewScrollListener<ItemsView, IItemsViewSource> CreateScrollListener()
|
||||||
|
{
|
||||||
|
return new CarouselViewOnScrollListener(ItemsView, ItemsViewAdapter, _carouselViewLoopManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void TearDownOldElement(ItemsView oldElement)
|
||||||
|
{
|
||||||
|
if (Carousel != null)
|
||||||
|
Carousel.Scrolled -= CarouselViewScrolled;
|
||||||
|
|
||||||
|
ClearLayoutListener();
|
||||||
|
base.TearDownOldElement(oldElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateAdapter()
|
||||||
|
{
|
||||||
|
// By default the CollectionViewAdapter creates the items at whatever size the template calls for
|
||||||
|
// But for the Carousel, we want it to create the items to fit the width/height of the viewport
|
||||||
|
// So we give it an alternate delegate for creating the views
|
||||||
|
|
||||||
|
var oldItemViewAdapter = ItemsViewAdapter;
|
||||||
|
UnsubscribeCollectionItemsSourceChanged(oldItemViewAdapter);
|
||||||
|
if (oldItemViewAdapter != null)
|
||||||
|
{
|
||||||
|
Carousel.SetValueFromRenderer(FormsCarouselView.PositionProperty, 0);
|
||||||
|
Carousel.SetValueFromRenderer(FormsCarouselView.CurrentItemProperty, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemsViewAdapter = new CarouselViewAdapter<ItemsView, IItemsViewSource>(Carousel,
|
||||||
|
(view, context) => new SizedItemContentView(Context, GetItemWidth, GetItemHeight));
|
||||||
|
|
||||||
|
_gotoPosition = -1;
|
||||||
|
|
||||||
|
SwapAdapter(ItemsViewAdapter, false);
|
||||||
|
|
||||||
|
UpdateInitialPosition();
|
||||||
|
|
||||||
|
if (ItemsViewAdapter?.ItemsSource is ObservableItemsSource observableItemsSource)
|
||||||
|
observableItemsSource.CollectionItemsSourceChanged += CollectionItemsSourceChanged;
|
||||||
|
|
||||||
|
oldItemViewAdapter?.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateItemsSource()
|
||||||
|
{
|
||||||
|
UpdateAdapter();
|
||||||
|
UpdateEmptyView();
|
||||||
|
_carouselViewLoopManager.SetItemsSource(ItemsViewAdapter.ItemsSource);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs changedProperty)
|
||||||
|
{
|
||||||
|
base.OnElementPropertyChanged(sender, changedProperty);
|
||||||
|
|
||||||
|
if (changedProperty.Is(FormsCarouselView.PeekAreaInsetsProperty))
|
||||||
|
UpdatePeekAreaInsets();
|
||||||
|
else if (changedProperty.Is(FormsCarouselView.IsSwipeEnabledProperty))
|
||||||
|
UpdateIsSwipeEnabled();
|
||||||
|
else if (changedProperty.Is(FormsCarouselView.IsBounceEnabledProperty))
|
||||||
|
UpdateIsBounceEnabled();
|
||||||
|
else if (changedProperty.Is(LinearItemsLayout.ItemSpacingProperty))
|
||||||
|
UpdateItemSpacing();
|
||||||
|
else if (changedProperty.Is(FormsCarouselView.PositionProperty))
|
||||||
|
UpdateFromPosition();
|
||||||
|
else if (changedProperty.Is(FormsCarouselView.CurrentItemProperty))
|
||||||
|
UpdateFromCurrentItem();
|
||||||
|
else if (changedProperty.Is(FormsCarouselView.LoopProperty))
|
||||||
|
UpdateAdapter();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override ItemDecoration CreateSpacingDecoration(IItemsLayout itemsLayout)
|
||||||
|
{
|
||||||
|
return new CarouselSpacingItemDecoration(itemsLayout, Carousel);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateItemSpacing()
|
||||||
|
{
|
||||||
|
if (ItemsLayout == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateItemDecoration();
|
||||||
|
|
||||||
|
var adapter = GetAdapter();
|
||||||
|
|
||||||
|
if (adapter != null)
|
||||||
|
{
|
||||||
|
adapter.NotifyItemChanged(_oldPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
base.UpdateItemSpacing();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override IItemsLayout GetItemsLayout() => Carousel.ItemsLayout;
|
||||||
|
|
||||||
|
protected override void ScrollTo(ScrollToRequestEventArgs args)
|
||||||
|
{
|
||||||
|
var position = DetermineTargetPosition(args);
|
||||||
|
|
||||||
|
if (_carouselViewLoopManager == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Special case here
|
||||||
|
// We could have a race condition where we are scrolling our collection to center the first item
|
||||||
|
// And at the same time the user is requesting we go to a particular item
|
||||||
|
if (position == -1)
|
||||||
|
{
|
||||||
|
if (Carousel.Loop)
|
||||||
|
_carouselViewLoopManager.AddPendingScrollTo(args);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.IsAnimated)
|
||||||
|
{
|
||||||
|
ScrollHelper.AnimateScrollToPosition(position, args.ScrollToPosition);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ScrollHelper.JumpScrollToPosition(position, args.ScrollToPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetItemWidth()
|
||||||
|
{
|
||||||
|
var itemWidth = Width;
|
||||||
|
|
||||||
|
if (ItemsLayout is LinearItemsLayout listItemsLayout && listItemsLayout.Orientation == ItemsLayoutOrientation.Horizontal)
|
||||||
|
itemWidth = (int)(Width - Context?.ToPixels(Carousel.PeekAreaInsets.Left) - Context?.ToPixels(Carousel.PeekAreaInsets.Right) - Context?.ToPixels(listItemsLayout.ItemSpacing));
|
||||||
|
|
||||||
|
return itemWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetItemHeight()
|
||||||
|
{
|
||||||
|
var itemHeight = Height;
|
||||||
|
|
||||||
|
if (ItemsLayout is LinearItemsLayout listItemsLayout && listItemsLayout.Orientation == ItemsLayoutOrientation.Vertical)
|
||||||
|
itemHeight = (int)(Height - Context?.ToPixels(Carousel.PeekAreaInsets.Top) - Context?.ToPixels(Carousel.PeekAreaInsets.Bottom) - Context?.ToPixels(listItemsLayout.ItemSpacing));
|
||||||
|
|
||||||
|
return itemHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateIsSwipeEnabled() => _isSwipeEnabled = Carousel?.IsSwipeEnabled ?? false;
|
||||||
|
|
||||||
|
void UpdateIsBounceEnabled() => OverScrollMode = Carousel?.IsBounceEnabled == true ? OverScrollMode.Always : OverScrollMode.Never;
|
||||||
|
|
||||||
|
void UpdatePeekAreaInsets() => UpdateAdapter();
|
||||||
|
|
||||||
|
void UnsubscribeCollectionItemsSourceChanged(ItemsViewAdapter<ItemsView, IItemsViewSource> oldItemViewAdapter)
|
||||||
|
{
|
||||||
|
if (oldItemViewAdapter?.ItemsSource is ObservableItemsSource oldObservableItemsSource)
|
||||||
|
oldObservableItemsSource.CollectionItemsSourceChanged -= CollectionItemsSourceChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CollectionItemsSourceChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(ItemsViewAdapter?.ItemsSource is IItemsViewSource observableItemsSource))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var carouselPosition = Carousel.Position;
|
||||||
|
var currentItemPosition = observableItemsSource.GetPosition(Carousel.CurrentItem);
|
||||||
|
var count = observableItemsSource.Count;
|
||||||
|
|
||||||
|
bool removingCurrentElement = currentItemPosition == -1;
|
||||||
|
bool removingLastElement = e.OldStartingIndex == count;
|
||||||
|
bool removingFirstElement = e.OldStartingIndex == 0;
|
||||||
|
bool removingAnyPrevious =
|
||||||
|
e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove
|
||||||
|
&& e.OldStartingIndex < carouselPosition;
|
||||||
|
|
||||||
|
_noNeedForScroll = true;
|
||||||
|
_gotoPosition = -1;
|
||||||
|
|
||||||
|
if (removingCurrentElement)
|
||||||
|
{
|
||||||
|
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Reset)
|
||||||
|
{
|
||||||
|
carouselPosition = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removingFirstElement)
|
||||||
|
carouselPosition = 0;
|
||||||
|
else if (removingLastElement)
|
||||||
|
carouselPosition = Carousel.Position - 1;
|
||||||
|
|
||||||
|
if (Carousel.Loop)
|
||||||
|
{
|
||||||
|
UpdateAdapter();
|
||||||
|
ScrollToPosition(carouselPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//If we are adding a new item make sure to maintain the CurrentItemPosition
|
||||||
|
else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add
|
||||||
|
&& currentItemPosition != -1)
|
||||||
|
{
|
||||||
|
carouselPosition = currentItemPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Queue the rest up for later after the Adapter has finished processing item change notifications
|
||||||
|
|
||||||
|
if (removingAnyPrevious)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Device.BeginInvokeOnMainThread(() =>
|
||||||
|
{
|
||||||
|
|
||||||
|
SetCurrentItem(carouselPosition);
|
||||||
|
UpdatePosition(carouselPosition);
|
||||||
|
|
||||||
|
//If we are adding or removing the last item we need to update
|
||||||
|
//the inset that we give to items so they are centered
|
||||||
|
if (e.NewStartingIndex == count - 1 || removingLastElement)
|
||||||
|
{
|
||||||
|
UpdateItemDecoration();
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateVisualStates();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateItemDecoration()
|
||||||
|
{
|
||||||
|
if (_itemDecoration != null)
|
||||||
|
RemoveItemDecoration(_itemDecoration);
|
||||||
|
_itemDecoration = CreateSpacingDecoration(ItemsLayout);
|
||||||
|
AddItemDecoration(_itemDecoration);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateInitialPosition()
|
||||||
|
{
|
||||||
|
int itemCount = 0;
|
||||||
|
int position;
|
||||||
|
|
||||||
|
if (Carousel.CurrentItem != null)
|
||||||
|
{
|
||||||
|
var carouselEnumerator = Carousel.ItemsSource.GetEnumerator();
|
||||||
|
var items = new List<object>();
|
||||||
|
|
||||||
|
while (carouselEnumerator.MoveNext())
|
||||||
|
{
|
||||||
|
items.Add(carouselEnumerator.Current);
|
||||||
|
itemCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
position = items.IndexOf(Carousel.CurrentItem);
|
||||||
|
Carousel.Position = position;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
position = Carousel.Position;
|
||||||
|
|
||||||
|
_oldPosition = position;
|
||||||
|
|
||||||
|
SetCurrentItem(_oldPosition);
|
||||||
|
|
||||||
|
var index = Carousel.Loop ? LoopedPosition(itemCount) + _oldPosition : _oldPosition;
|
||||||
|
ScrollHelper.JumpScrollToPosition(index, Microsoft.Maui.Controls.ScrollToPosition.Center);
|
||||||
|
_gotoPosition = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int LoopedPosition(int itemCount)
|
||||||
|
{
|
||||||
|
if (itemCount == 0)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var loopScale = CarouselViewLoopManager.LoopScale / 2;
|
||||||
|
return loopScale - (loopScale % itemCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdatePositionFromVisibilityChanges()
|
||||||
|
{
|
||||||
|
if (_isVisible != Carousel.IsVisible)
|
||||||
|
UpdateInitialPosition();
|
||||||
|
|
||||||
|
_isVisible = Carousel.IsVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateVisualStates()
|
||||||
|
{
|
||||||
|
if (!(GetLayoutManager() is LinearLayoutManager layoutManager))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var first = layoutManager.FindFirstVisibleItemPosition();
|
||||||
|
var last = layoutManager.FindLastVisibleItemPosition();
|
||||||
|
|
||||||
|
|
||||||
|
if (first == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var newViews = new List<View>();
|
||||||
|
var carouselPosition = this.CalculateCenterItemIndex(first, layoutManager, false);
|
||||||
|
var previousPosition = carouselPosition - 1;
|
||||||
|
var nextPosition = carouselPosition + 1;
|
||||||
|
|
||||||
|
for (int i = first; i <= last; i++)
|
||||||
|
{
|
||||||
|
var cell = layoutManager.FindViewByPosition(i);
|
||||||
|
if (!((cell as ItemContentView)?.VisualElementRenderer?.Element is View itemView))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (i == carouselPosition)
|
||||||
|
{
|
||||||
|
VisualStateManager.GoToState(itemView, FormsCarouselView.CurrentItemVisualState);
|
||||||
|
}
|
||||||
|
else if (i == previousPosition)
|
||||||
|
{
|
||||||
|
VisualStateManager.GoToState(itemView, FormsCarouselView.PreviousItemVisualState);
|
||||||
|
}
|
||||||
|
else if (i == nextPosition)
|
||||||
|
{
|
||||||
|
VisualStateManager.GoToState(itemView, FormsCarouselView.NextItemVisualState);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VisualStateManager.GoToState(itemView, FormsCarouselView.DefaultItemVisualState);
|
||||||
|
}
|
||||||
|
|
||||||
|
newViews.Add(itemView);
|
||||||
|
|
||||||
|
if (!Carousel.VisibleViews.Contains(itemView))
|
||||||
|
{
|
||||||
|
Carousel.VisibleViews.Add(itemView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var itemView in _oldViews)
|
||||||
|
{
|
||||||
|
if (!newViews.Contains(itemView))
|
||||||
|
{
|
||||||
|
VisualStateManager.GoToState(itemView, FormsCarouselView.DefaultItemVisualState);
|
||||||
|
if (Carousel.VisibleViews.Contains(itemView))
|
||||||
|
{
|
||||||
|
Carousel.VisibleViews.Remove(itemView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_oldViews = newViews;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CarouselViewScrolled(object sender, ItemsViewScrolledEventArgs e)
|
||||||
|
{
|
||||||
|
if (!_initialized || !_isVisible)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_noNeedForScroll = false;
|
||||||
|
var index = e.CenterItemIndex;
|
||||||
|
if (Carousel?.Loop == true)
|
||||||
|
{
|
||||||
|
index = GetCarouselViewCurrentIndex(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
UpdatePosition(index);
|
||||||
|
UpdateVisualStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetCarouselViewCurrentIndex(int index)
|
||||||
|
{
|
||||||
|
var centeredView = this.GetCenteredView();
|
||||||
|
|
||||||
|
if (centeredView is ItemContentView templatedCell)
|
||||||
|
{
|
||||||
|
var bContext = templatedCell?.Element?.BindingContext;
|
||||||
|
index = ItemsViewAdapter.GetPositionForItem(bContext);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdatePosition(int position)
|
||||||
|
{
|
||||||
|
var carouselPosition = Carousel.Position;
|
||||||
|
|
||||||
|
// We arrived center
|
||||||
|
if (position == _gotoPosition)
|
||||||
|
_gotoPosition = -1;
|
||||||
|
|
||||||
|
if (_gotoPosition == -1 && carouselPosition != position)
|
||||||
|
Carousel.SetValueFromRenderer(FormsCarouselView.PositionProperty, position);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCurrentItem(int carouselPosition)
|
||||||
|
{
|
||||||
|
if (ItemsViewAdapter?.ItemsSource?.Count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var item = ItemsViewAdapter.ItemsSource.GetItem(carouselPosition);
|
||||||
|
Carousel.SetValueFromRenderer(FormsCarouselView.CurrentItemProperty, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFromCurrentItem()
|
||||||
|
{
|
||||||
|
var currentItemPosition = ItemsViewAdapter.ItemsSource.GetPosition(Carousel.CurrentItem);
|
||||||
|
var carouselPosition = Carousel.Position;
|
||||||
|
|
||||||
|
if (_gotoPosition == -1 && currentItemPosition != carouselPosition)
|
||||||
|
{
|
||||||
|
_gotoPosition = currentItemPosition;
|
||||||
|
Carousel.ScrollTo(currentItemPosition, position: Microsoft.Maui.Controls.ScrollToPosition.Center, animate: Carousel.AnimateCurrentItemChanges);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateFromPosition()
|
||||||
|
{
|
||||||
|
if (!_initialized)
|
||||||
|
{
|
||||||
|
_carouselViewLoopManager.AddPendingScrollTo(new ScrollToRequestEventArgs(Carousel.Position, -1, Microsoft.Maui.Controls.ScrollToPosition.Center, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
var itemCount = ItemsViewAdapter?.ItemsSource.Count ?? 0;
|
||||||
|
var carouselPosition = Carousel.Position;
|
||||||
|
|
||||||
|
if (itemCount == 0)
|
||||||
|
{
|
||||||
|
//we are trying to set a position but our Collection doesn't have items still
|
||||||
|
_oldPosition = carouselPosition;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (carouselPosition >= itemCount || carouselPosition < 0)
|
||||||
|
throw new IndexOutOfRangeException($"Can't set CarouselView to position {carouselPosition}. ItemsSource has {itemCount} items.");
|
||||||
|
|
||||||
|
if (carouselPosition == _gotoPosition)
|
||||||
|
_gotoPosition = -1;
|
||||||
|
|
||||||
|
if (_noNeedForScroll)
|
||||||
|
{
|
||||||
|
_noNeedForScroll = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var centerPosition = GetCarouselViewCurrentIndex(carouselPosition);
|
||||||
|
if (_gotoPosition == -1 && !Carousel.IsDragging && !Carousel.IsScrolling && centerPosition != carouselPosition)
|
||||||
|
{
|
||||||
|
_gotoPosition = carouselPosition;
|
||||||
|
|
||||||
|
Carousel.ScrollTo(carouselPosition, position: Microsoft.Maui.Controls.ScrollToPosition.Center, animate: Carousel.AnimatePositionChanges);
|
||||||
|
}
|
||||||
|
SetCurrentItem(carouselPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddLayoutListener()
|
||||||
|
{
|
||||||
|
if (_carouselViewLayoutListener != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_carouselViewLayoutListener = new CarouselViewwOnGlobalLayoutListener();
|
||||||
|
_carouselViewLayoutListener.LayoutReady += LayoutReady;
|
||||||
|
|
||||||
|
ViewTreeObserver.AddOnGlobalLayoutListener(_carouselViewLayoutListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LayoutReady(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!_initialized)
|
||||||
|
{
|
||||||
|
Carousel.Scrolled += CarouselViewScrolled;
|
||||||
|
if (Carousel.Loop)
|
||||||
|
{
|
||||||
|
_carouselViewLoopManager.CenterIfNeeded(this, IsHorizontal);
|
||||||
|
_carouselViewLoopManager.CheckPendingScrollToEvents(this);
|
||||||
|
}
|
||||||
|
_initialized = true;
|
||||||
|
_isVisible = Carousel.IsVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdatePositionFromVisibilityChanges();
|
||||||
|
UpdateVisualStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearLayoutListener()
|
||||||
|
{
|
||||||
|
if (_carouselViewLayoutListener == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ViewTreeObserver?.RemoveOnGlobalLayoutListener(_carouselViewLayoutListener);
|
||||||
|
_carouselViewLayoutListener.LayoutReady -= LayoutReady;
|
||||||
|
_carouselViewLayoutListener = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CarouselViewOnScrollListener : RecyclerViewScrollListener<ItemsView, IItemsViewSource>
|
||||||
|
{
|
||||||
|
readonly FormsCarouselView _carouselView;
|
||||||
|
readonly CarouselViewLoopManager _carouselViewLoopManager;
|
||||||
|
|
||||||
|
public CarouselViewOnScrollListener(ItemsView itemsView, ItemsViewAdapter<ItemsView, IItemsViewSource> itemsViewAdapter, CarouselViewLoopManager carouselViewLoopManager) : base(itemsView, itemsViewAdapter, true)
|
||||||
|
{
|
||||||
|
_carouselView = itemsView as FormsCarouselView;
|
||||||
|
_carouselViewLoopManager = carouselViewLoopManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnScrollStateChanged(RecyclerView recyclerView, int state)
|
||||||
|
{
|
||||||
|
base.OnScrollStateChanged(recyclerView, state);
|
||||||
|
|
||||||
|
if (_carouselView.IsSwipeEnabled)
|
||||||
|
{
|
||||||
|
if (state == ScrollStateDragging)
|
||||||
|
_carouselView.SetIsDragging(true);
|
||||||
|
else
|
||||||
|
_carouselView.SetIsDragging(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
_carouselView.IsScrolling = state != ScrollStateIdle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnScrolled(RecyclerView recyclerView, int dx, int dy)
|
||||||
|
{
|
||||||
|
base.OnScrolled(recyclerView, dx, dy);
|
||||||
|
|
||||||
|
if (_carouselView.Loop)
|
||||||
|
{
|
||||||
|
//We could have a race condition where we are scrolling our collection to center the first item
|
||||||
|
//We save that ScrollToEventARgs and call it again
|
||||||
|
_carouselViewLoopManager.CheckPendingScrollToEvents(recyclerView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override (int First, int Center, int Last) GetVisibleItemsIndex(RecyclerView recyclerView)
|
||||||
|
{
|
||||||
|
var firstVisibleItemIndex = -1;
|
||||||
|
var lastVisibleItemIndex = -1;
|
||||||
|
var centerItemIndex = -1;
|
||||||
|
|
||||||
|
if (recyclerView.GetLayoutManager() is LinearLayoutManager linearLayoutManager)
|
||||||
|
{
|
||||||
|
var firstView = recyclerView.FindViewHolderForAdapterPosition(linearLayoutManager.FindFirstVisibleItemPosition());
|
||||||
|
var lastView = recyclerView.FindViewHolderForAdapterPosition(linearLayoutManager.FindLastVisibleItemPosition());
|
||||||
|
var centerView = recyclerView.GetCenteredView();
|
||||||
|
firstVisibleItemIndex = GetIndexFromTemplatedCell(firstView?.ItemView);
|
||||||
|
lastVisibleItemIndex = GetIndexFromTemplatedCell(lastView?.ItemView);
|
||||||
|
centerItemIndex = GetIndexFromTemplatedCell(centerView);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (firstVisibleItemIndex, centerItemIndex, lastVisibleItemIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetIndexFromTemplatedCell(global::Android.Views.View view)
|
||||||
|
{
|
||||||
|
int itemIndex = -1;
|
||||||
|
|
||||||
|
if (view is ItemContentView templatedCell)
|
||||||
|
{
|
||||||
|
var bContext = templatedCell?.Element?.BindingContext;
|
||||||
|
itemIndex = ItemsViewAdapter.GetPositionForItem(bContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CarouselViewwOnGlobalLayoutListener : Java.Lang.Object, ViewTreeObserver.IOnGlobalLayoutListener
|
||||||
|
{
|
||||||
|
public EventHandler<EventArgs> LayoutReady;
|
||||||
|
public void OnGlobalLayout()
|
||||||
|
{
|
||||||
|
LayoutReady?.Invoke(this, new EventArgs());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class CarouselViewLoopManager
|
||||||
|
{
|
||||||
|
public const int LoopScale = 16384;
|
||||||
|
|
||||||
|
IItemsViewSource _itemsSource;
|
||||||
|
readonly Queue<ScrollToRequestEventArgs> _pendingScrollTo = new Queue<ScrollToRequestEventArgs>();
|
||||||
|
|
||||||
|
public void CenterIfNeeded(RecyclerView recyclerView, bool isHorizontal)
|
||||||
|
{
|
||||||
|
if (!(recyclerView.GetLayoutManager() is LinearLayoutManager linearLayoutManager))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var itemSourceCount = _itemsSource.Count;
|
||||||
|
|
||||||
|
var firstCompletelyItemVisible = linearLayoutManager.FindFirstCompletelyVisibleItemPosition();
|
||||||
|
|
||||||
|
var offSet = recyclerView.ComputeHorizontalScrollOffset();
|
||||||
|
|
||||||
|
if (!isHorizontal)
|
||||||
|
offSet = recyclerView.ComputeVerticalScrollOffset();
|
||||||
|
|
||||||
|
if (firstCompletelyItemVisible == 0)
|
||||||
|
linearLayoutManager.ScrollToPositionWithOffset(itemSourceCount, -offSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckPendingScrollToEvents(RecyclerView recyclerView)
|
||||||
|
{
|
||||||
|
if (!(recyclerView is CarouselViewRenderer carouselViewRenderer))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_pendingScrollTo.TryDequeue(out ScrollToRequestEventArgs scrollToRequestEventArgs))
|
||||||
|
carouselViewRenderer.ScrollTo(scrollToRequestEventArgs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddPendingScrollTo(ScrollToRequestEventArgs args) => _pendingScrollTo.Enqueue(args);
|
||||||
|
|
||||||
|
public int GetGoToIndex(RecyclerView recyclerView, int carouselPosition, int newPosition)
|
||||||
|
{
|
||||||
|
if (!(recyclerView.GetLayoutManager() is LinearLayoutManager linearLayoutManager))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
var currentCarouselPosition = carouselPosition;
|
||||||
|
var itemSourceCount = _itemsSource.Count;
|
||||||
|
|
||||||
|
var diffToStart = currentCarouselPosition + (itemSourceCount - newPosition);
|
||||||
|
var diffToEnd = itemSourceCount - currentCarouselPosition + newPosition;
|
||||||
|
var centerView = recyclerView.GetCenteredView();
|
||||||
|
|
||||||
|
if (centerView == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
var centerPosition = linearLayoutManager.GetPosition(centerView);
|
||||||
|
var increment = currentCarouselPosition - newPosition;
|
||||||
|
var incrementAbs = System.Math.Abs(increment);
|
||||||
|
|
||||||
|
int goToPosition;
|
||||||
|
if (diffToStart < incrementAbs)
|
||||||
|
goToPosition = centerPosition - diffToStart;
|
||||||
|
else if (diffToEnd < incrementAbs)
|
||||||
|
goToPosition = centerPosition + diffToEnd;
|
||||||
|
else
|
||||||
|
goToPosition = centerPosition - increment;
|
||||||
|
|
||||||
|
return goToPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetItemsSource(IItemsViewSource itemsSource) => _itemsSource = itemsSource;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
using AndroidX.RecyclerView.Widget;
|
||||||
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
internal class CenterSnapHelper : NongreedySnapHelper
|
||||||
|
{
|
||||||
|
public override AView FindSnapView(RecyclerView.LayoutManager layoutManager)
|
||||||
|
{
|
||||||
|
if (!CanSnap)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.FindSnapView(layoutManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using Android.Content;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
public class CollectionViewRenderer : GroupableItemsViewRenderer<GroupableItemsView, GroupableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource>, IGroupableItemsViewSource>
|
||||||
|
{
|
||||||
|
public CollectionViewRenderer(Context context) : base(context)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ using AndroidX.RecyclerView.Widget;
|
||||||
using static AndroidX.RecyclerView.Widget.RecyclerView;
|
using static AndroidX.RecyclerView.Widget.RecyclerView;
|
||||||
using Object = Java.Lang.Object;
|
using Object = Java.Lang.Object;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal class DataChangeObserver : RecyclerView.AdapterDataObserver
|
internal class DataChangeObserver : RecyclerView.AdapterDataObserver
|
||||||
{
|
{
|
|
@ -2,7 +2,7 @@ using AndroidX.RecyclerView.Widget;
|
||||||
using ALayoutDirection = Android.Views.LayoutDirection;
|
using ALayoutDirection = Android.Views.LayoutDirection;
|
||||||
using AView = Android.Views.View;
|
using AView = Android.Views.View;
|
||||||
|
|
||||||
namespace Xamarin.Forms.Platform.Android
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
{
|
{
|
||||||
internal abstract class EdgeSnapHelper : NongreedySnapHelper
|
internal abstract class EdgeSnapHelper : NongreedySnapHelper
|
||||||
{
|
{
|
|
@ -0,0 +1,47 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Microsoft.Maui.Controls.Compatibility.Platform.Android
|
||||||
|
{
|
||||||
|
sealed internal class EmptySource : IItemsViewSource
|
||||||
|
{
|
||||||
|
public int Count => 0;
|
||||||
|
|
||||||
|
public bool HasHeader { get; set; }
|
||||||
|
public bool HasFooter { get; set; }
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsHeader(int index)
|
||||||
|
{
|
||||||
|
return HasHeader && index == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsFooter(int index)
|
||||||
|
{
|
||||||
|
if (!HasFooter)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HasHeader)
|
||||||
|
{
|
||||||
|
return index == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return index == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetPosition(object item)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object GetItem(int position)
|
||||||
|
{
|
||||||
|
throw new IndexOutOfRangeException("IItemsViewSource is empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче