Showing preview only (2,211K chars total). Download the full file or copy to clipboard to get everything.
Repository: Clancey/SimpleAuth
Branch: main
Commit: 4317c3a53e66
Files: 233
Total size: 2.1 MB
Directory structure:
gitextract_9s2872fj/
├── .github/
│ └── workflows/
│ └── mainPackage.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SimpleAuth.Droid.CustomTabs.nuspec
├── SimpleAuth.Facebook.Droid.nuspec
├── SimpleAuth.Facebook.iOS.nuspec
├── SimpleAuth.Google.Droid.nuspec
├── SimpleAuth.Google.iOS.nuspec
├── SimpleAuth.nuspec
├── samples/
│ ├── .nuget/
│ │ └── NuGet.Config
│ ├── Sample.Droid/
│ │ ├── Assets/
│ │ │ └── AboutAssets.txt
│ │ ├── MainActivity.cs
│ │ ├── Properties/
│ │ │ ├── AndroidManifest.xml
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ ├── AboutResources.txt
│ │ │ ├── Resource.Designer.cs
│ │ │ ├── layout/
│ │ │ │ └── Main.axml
│ │ │ └── values/
│ │ │ └── Strings.xml
│ │ └── Sample.Droid.csproj
│ ├── Sample.Forms/
│ │ ├── Sample.Forms/
│ │ │ ├── App.cs
│ │ │ ├── LoginPage.xaml
│ │ │ ├── LoginPage.xaml.cs
│ │ │ ├── Sample.Forms.projitems
│ │ │ └── Sample.Forms.shproj
│ │ ├── Sample.Forms.Droid/
│ │ │ ├── Assets/
│ │ │ │ └── AboutAssets.txt
│ │ │ ├── MainActivity.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Resources/
│ │ │ │ ├── AboutResources.txt
│ │ │ │ └── Resource.Designer.cs
│ │ │ ├── Sample.Forms.Droid.csproj
│ │ │ └── SimpleAuth.keystore
│ │ ├── Sample.Forms.UWP/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Default.rd.xml
│ │ │ ├── Sample.Forms.UWP.csproj
│ │ │ ├── Sample.Forms.UWP.nuget.props
│ │ │ └── Sample.Forms.UWP.nuget.targets
│ │ ├── Sample.Forms.WinPhone/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.Forms.WinPhone.csproj
│ │ │ └── packages.config
│ │ ├── Sample.Forms.Windows/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.Forms.Windows.csproj
│ │ │ └── packages.config
│ │ └── Sample.Forms.iOS/
│ │ ├── AppDelegate.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ └── LaunchScreen.storyboard
│ │ ├── Sample.Forms.iOS.csproj
│ │ ├── iTunesArtwork
│ │ └── iTunesArtwork@2x
│ ├── Sample.Mac/
│ │ ├── AppDelegate.cs
│ │ ├── AppDelegate.designer.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── MainMenu.xib
│ │ ├── MainWindow.cs
│ │ ├── MainWindow.designer.cs
│ │ ├── MainWindow.xib
│ │ ├── MainWindowController.cs
│ │ ├── MainWindowController.designer.cs
│ │ ├── Resources/
│ │ │ └── Images.xcassets/
│ │ │ └── AppIcons.appiconset/
│ │ │ └── Contents.json
│ │ └── Sample.Mac.csproj
│ ├── Sample.Maui/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── LoginPage.xaml
│ │ ├── LoginPage.xaml.cs
│ │ ├── MauiProgram.cs
│ │ ├── Platforms/
│ │ │ ├── Android/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── MainActivity.cs
│ │ │ │ ├── MainApplication.cs
│ │ │ │ └── Resources/
│ │ │ │ └── values/
│ │ │ │ └── colors.xml
│ │ │ ├── MacCatalyst/
│ │ │ │ ├── AppDelegate.cs
│ │ │ │ ├── Info.plist
│ │ │ │ └── Program.cs
│ │ │ ├── Windows/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── Package.appxmanifest
│ │ │ │ └── app.manifest
│ │ │ └── iOS/
│ │ │ ├── AppDelegate.cs
│ │ │ ├── Info.plist
│ │ │ └── Program.cs
│ │ ├── Properties/
│ │ │ └── launchSettings.json
│ │ ├── Resources/
│ │ │ ├── Raw/
│ │ │ │ └── AboutAssets.txt
│ │ │ └── Styles/
│ │ │ ├── Colors.xaml
│ │ │ └── Styles.xaml
│ │ └── Sample.Maui.csproj
│ ├── Sample.iOS/
│ │ ├── AppDelegate.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ └── LaunchScreen.xib
│ │ ├── Sample.iOS.csproj
│ │ └── Spinner.cs
│ ├── SimpleAuth.Samples.Windows.sln
│ └── SimpleAuth.Samples.sln
└── src/
├── .nuget/
│ └── NuGet.Config
├── SimpleAuth/
│ ├── Api/
│ │ ├── Account.cs
│ │ ├── Api.cs
│ │ ├── ApiResponse.cs
│ │ ├── Attributes.cs
│ │ ├── AuthenticatedApi.cs
│ │ ├── Authenticator.cs
│ │ ├── JSonExtensions.cs
│ │ └── WebAuthenticator.cs
│ ├── ApiKey/
│ │ ├── ApiKeyApi.cs
│ │ └── AuthLocation.cs
│ ├── BasicAuth/
│ │ ├── BasicAuthAccount.cs
│ │ ├── BasicAuthApi.cs
│ │ ├── BasicAuthAuthenticator.cs
│ │ └── IBasicAuthenicator.cs
│ ├── Converters/
│ │ ├── Converter.cs
│ │ └── JsonConverter.cs
│ ├── Helpers/
│ │ ├── CookieHolder.cs
│ │ ├── IAuthStorage.cs
│ │ ├── Resolver.cs
│ │ └── UrlUtility.cs
│ ├── OAuth/
│ │ ├── OAuthAccount.cs
│ │ ├── OAuthApi.cs
│ │ ├── OAuthAuthenticator.cs
│ │ ├── OAuthPasswordApi.cs
│ │ ├── OauthApiKeyApi.cs
│ │ └── OauthResponse.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Providers/
│ │ ├── ADFS.cs
│ │ ├── Amazon.cs
│ │ ├── AzureB2CApi.cs
│ │ ├── DropBox.cs
│ │ ├── Facebook.cs
│ │ ├── FitBitApi.cs
│ │ ├── Github.cs
│ │ ├── Google.cs
│ │ ├── Instagram.cs
│ │ ├── LinkedIn.cs
│ │ ├── MicrosoftLiveConnectApi.cs
│ │ └── Twitter.cs
│ ├── SimpleAuth.projitems
│ └── SimpleAuth.shproj
├── SimpleAuth.Droid/
│ ├── ActivityStateRepository.cs
│ ├── App.config
│ ├── AuthStorage.cs
│ ├── LoginActvity.cs
│ ├── Native.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.Designer.cs
│ │ ├── Values/
│ │ │ └── Strings.xml
│ │ └── layout/
│ │ └── login.axml
│ ├── SimpleAuth.Droid.csproj
│ ├── TypeForwarded.cs
│ └── WebAuthenticatorActivity.cs
├── SimpleAuth.Droid.CustomTabs/
│ ├── ActivityLifecycleCallbackManager.cs
│ ├── NativeCustomTabsAuthenticator.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ └── Resource.Designer.cs
│ ├── SimpleAuth.Droid.CustomTabs.csproj
│ └── SimpleAuthCallbackActivity.cs
├── SimpleAuth.Facebook.Droid/
│ ├── ActivityLifecycleManager.cs
│ ├── Facebook.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.designer.cs
│ │ └── values/
│ │ └── Strings.xml
│ └── SimpleAuth.Facebook.Droid.csproj
├── SimpleAuth.Facebook.iOS/
│ ├── Facebook.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── SimpleAuth.Facebook.iOS.csproj
├── SimpleAuth.Google.Droid/
│ ├── ActivityLifecycleManager.cs
│ ├── Google.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.designer.cs
│ │ └── values/
│ │ └── Strings.xml
│ └── SimpleAuth.Google.Droid.csproj
├── SimpleAuth.Google.iOS/
│ ├── Google.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── SimpleAuth.Google.iOS.csproj
├── SimpleAuth.Mac/
│ ├── AppleEventsHelper.cs
│ ├── AuthStorage.cs
│ ├── Entitlements.plist
│ ├── Native.cs
│ ├── NativeSafariAuthenticator.cs
│ ├── SimpleAuth.Mac.csproj
│ └── WebAuthenticator.cs
├── SimpleAuth.Mac.sln
├── SimpleAuth.Net/
│ ├── AuthStorage.cs
│ └── SimpleAuth.Net.csproj
├── SimpleAuth.Net6/
│ └── SimpleAuth-net6.csproj
├── SimpleAuth.Tests/
│ ├── Helpers/
│ │ ├── FakeHttpHandler.cs
│ │ ├── InMemoryAuthStorage.cs
│ │ └── RequestMessage.cs
│ ├── OAuth/
│ │ ├── OAuthApiTests.cs
│ │ ├── OAuthData.cs
│ │ └── OAuthTestApi.cs
│ └── SimpleAuth.Tests.csproj
├── SimpleAuth.UWP/
│ ├── AuthStorage.cs
│ ├── CustomWebAuthenticationBroker.cs
│ ├── CustomWebAuthenticationResult.cs
│ ├── SimpleAuth.UWP.csproj
│ ├── SimpleAuth.UWP.nuget.props
│ └── WebAuthenticatorWebView.cs
├── SimpleAuth.iOS/
│ ├── App.config
│ ├── AuthStorage.cs
│ ├── BasicAuthController.cs
│ ├── Entitlements.plist
│ ├── Native.cs
│ ├── NativeSafariAuthenticator.cs
│ ├── SimpleAuth.iOS.csproj
│ ├── Twitter.cs
│ ├── TypeForwarded.cs
│ ├── WebAuthenticatorViewController.cs
│ └── WebAuthenticatorWindow.cs
└── SimpleAuth.sln
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/mainPackage.yml
================================================
name: .NET
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
name: Build SimpleAuth Nuget
env:
NUPKG_MAJOR: 0.2
BASE: 334
NUPKG_SUFFIX: -alpha
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
vs-prerelease: true
- name: Install Maui Workload
shell: pwsh
run: |
& dotnet workload install maui `
--skip-sign-check `
- name: install Xamarin
shell: pwsh
run: |
dotnet tool install --global boots
boots --stable Xamarin.iOS
boots --stable Xamarin.Mac
- name: Build
run: msbuild /r src/SimpleAuth.sln
- name: Nuget Pack step
shell: bash
run: |
MINOR_VERSION=$(( $BASE + $GITHUB_RUN_NUMBER ))
VERSION=$NUPKG_MAJOR.$MINOR_VERSION$NUPKG_SUFFIX
echo "PACKAGE VERSION: $VERSION"
nuget pack SimpleAuth.nuspec -version $VERSION -Symbols -SymbolPackageFormat snupkg
- uses: actions/upload-artifact@v2
name: Upload Nuget Artifact
with:
name: nuget-artifact.${{env.GITHUB_RUN_NUMBER}}
path: |
**\*.nupkg
**\*.snupkg
**\*.symbols.nupkg
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
.droidres
[Cc]omponents/
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Visual Studo 2015 cache/options directory
.vs/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# 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
# TODO: 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
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
[Cc]omponents
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
*.[Cc]ache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
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
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Universal Windows Platform
project.lock.json
.DS_Store
*.bak
*.bak
.idea
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at james.clancey@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
# Simple Auth
Every API needs authentication, yet no developer wants to deal with authentication. Simple Auth embeds authentication into the API so you dont need to deal with it. Most importantly it works great with traditional Xamarin and Xamarin.Forms
[](https://gitter.im/simpleauth/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Android: [](https://appcenter.ms)
iOS/MacOS: [](https://appcenter.ms)
# General information
## Available on Nuget
[Clancey.SimpleAuth](https://www.nuget.org/packages/Clancey.SimpleAuth/)
## Providers
### Current Built in Providers
* Azure Active Directory
* Amazon
* Dropbox
* Facebook
* Github
* Google
* Instagram
* Linked In
* Microsoft Live Connect
* Twitter
Simple auth ships with some built in providers so you just need to add your keys and scopes.
```cs
var scopes = new[]
{
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
};
var api = new GoogleApi("google",
"clientid",
"clientsecret")
{
Scopes = scopes,
};
var account = await api.Authenticate();
```
## Restful Api Requests
Restful Api Requests couldnt be simpler
```cs
var song = await api.Get<Song>("http://myapi/Song/",songId);
```
Paramaters can be added as part of the path
```cs
var todoItem = await api.Get<TodoItem>("http://myapi/user/{UserId}/TodoItem",new Dictionary<string,string>{["UserId"] = "1", ["itemID"] = "22"});
```
Generates the following Url:
```cs
http://myapi/user/1/TodoItem?itemID=22
```
## Attribute your Api Requests (Optional)
```cs
[Path("/pet")]
[ContentType("application/json")]
[Accepts("application/json")]
public virtual Task AddPet(Pet body) {
return Post( body);
}
```
# iOS/Mac Specific
## OnePassword Support (iOS)
One password support is for iOS Only.
Simply add the project or the Nuget
[Clancey.SimpleAuth.OnePassword](https://www.nuget.org/packages/Clancey.SimpleAuth.OnePassword/)
Then call the following line in your iOS project prior to calling api.Authenticate();
```cs
SimpleAuth.OnePassword.Activate();
```
## Native Twitter Support via Twitter App
You can use the Twitter app to authenticate with SimpleAuth on iOS.
Add the following to your Info.Plist
```
// Info.plist
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>twitterkit-<consumerKey></string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>twitter</string>
<string>twitterauth</string>
</array>
```
Then call the following line in your iOS AppDelegate FinishedLaunching method;
```cs
SimpleAuth.Providers.Twitter.Init();
```
Also add the following override in your AppDelegate
```cs
public override bool OpenUrl (UIApplication app, NSUrl url, NSDictionary options)
{
if (SimpleAuth.Native.OpenUrl(app, url, options))
return true;
return base.OpenUrl(app,url,options);
}
```
## Native Facebook Support via iOS SDK
Simply add the project or the Nuget
[Clancey.SimpleAuth.Facebook.iOS](https://www.nuget.org/packages/Clancey.SimpleAuth.Facebook.iOS/)
The Facebook SDK requires you modify your info.plist : https://components.xamarin.com/gettingstarted/facebookios
Then call the following line in your iOS AppDelegate FinishedLaunching method;
```cs
SimpleAuth.Providers.Facebook.Init(app, options);
```
Also add the following override in your AppDelegate
```cs
public override bool OpenUrl (UIApplication app, NSUrl url, NSDictionary options)
{
if (SimpleAuth.Native.OpenUrl(app, url, options))
return true;
return base.OpenUrl(app,url,options);
}
```
## Native Google Support via iOS SDK
[Clancey.SimpleAuth.Google.iOS](https://www.nuget.org/packages/Clancey.SimpleAuth.Google.iOS/)
The Google SDK can do Cross-Client Login. This allows you to get tokens for the server, with one login.
To use Cross-client you need to set the ServerClientId on the GoogleApi.
Call the following in your FinishedLaunching Method;
```cs
SimpleAuth.Providers.Google.Init()
```
Also add the following to your AppDelegate
```cs
public override bool OpenUrl (UIApplication app, NSUrl url, NSDictionary options)
{
if (SimpleAuth.Native.OpenUrl(app, url, options))
return true;
return base.OpenUrl(app,url,options);
}
```
If you need Cross-client authentication
```cs
var api = new GoogleApi("google","client_id"){
ServerClientId = "server_client_id""
};
var account = await api.Authenticate ();
var serverToken = account.UserData ["ServerToken"];
```
### Troubleshooting
```
System.Exception: Error Domain=com.google.GIDSignIn Code=-2 "keychain error" UserInfo={NSLocalizedDescription=keychain error}
```
Under the iOS Build Signing, Custom Entitlements: make sure an entitlement.plist is set
## Native SFSafariViewController iOS/MacOS
SFSafariViewController Allows users to use Safari to login, instead of embedded webviews.
Google now requires this mode and is enabled by default for Google Authentication on iOS/MacOS.
To use the Native Safari Authenticator, you are required to add the following snippet in your AppDelegate (**iOS Only**)
```cs
public override bool OpenUrl (UIApplication app, NSUrl url, NSDictionary options)
{
if (SimpleAuth.Native.OpenUrl(app, url, options))
return true;
return base.OpenUrl(app,url,options);
}
```
You are also required to add the following to add a CFBundleURLSchemes to your info.plist
For Google: com.googleusercontent.apps.YOUR_CLIENT_ID
```
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>com.googleusercontent.apps.YOURCLIENTID</string>
</array>
<key>CFBundleURLName</key>
<string>googleLogin</string>
</dict>
</array>
```
# Android
## Google Sign-In on Android
Simple Auth supports the native Google Sign-in for Android.
1. Add the nuget
[Clancey.SimpleAuth.Google.Droid](https://www.nuget.org/packages/Clancey.SimpleAuth.Google.Droid/)
2. Create OAuth Client Id (Web Application): [Link](https://console.developers.google.com/apis/credentials)
3. Create and OAuth Android app: [Link](https://console.developers.google.com/apis/credentials)
* Sign your app using the same Keystore
4. Use both the Web Application ClientID. ClientSecret is not required but reccomended.
5. Add the following code to your Main Activity
```cs
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SimpleAuth.Providers.Google.Init(this.Application);
//The rest of your initialize code
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
SimpleAuth.Native.OnActivityResult (requestCode,resultCode,data);
}
```
If you need Cross-Client authentication pass your ServerClientId into the google api
```cs
var api = new GoogleApi("google","client_id"){
ServerClientId = "server_client_id""
};
var account = await api.Authenticate ();
var serverToken = account.UserData ["ServerToken"];
```
### Troubleshooting
If you get:
```Unable to find explicit activity class {com.google.android.gms.auth.api.signin.internal.SignInHubActivity}; have you declared this activity in your AndroidManifest.xml?```
Add the following to your AndroidManifest.xml
```
<activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
</application>
```
### Status Code 12501 (unknown) Your app signing or tokens are invalid
1. Check your app is signed with the same KeyStore noted in for your android app [Link](https://console.developers.google.com/apis/credentials)
2. Regenerate new OAuth 2 Client id, create the WebApplication kind.
## Native Facebook for Android
Simple Auth supports the native Facebook SDK for Android.
1. Add the nuget
[Clancey.SimpleAuth.Facebook.Droid](https://www.nuget.org/packages/Clancey.SimpleAuth.Facebook.Droid/)
2. Create an Android App: [Link](https://developers.facebook.com/docs/facebook-login/android)
3. Add the following to your String.xml in Resources/values. If your appId was 1066763793431980
```
<string name="facebook_app_id">1066763793431980</string>
<string name="fb_login_protocol_scheme">fb1066763793431980</string>
```
4. Add a meta-data element to the application element:
```
[assembly: MetaData("com.facebook.sdk.ApplicationId", Value = "@string/facebook_app_id")]
```
5. Add FacebookActivity to your AndroidManifest.xml:
```
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
```
6. Add the following code to your Main Activity
```cs
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SimpleAuth.Providers.Google.Init(this.Application);
//The rest of your initialize code
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
Native.OnActivityResult (requestCode,resultCode,data);
}
```
## CustomTabs for Android
SimpleAuth supports using Custom Tabs for authorization.
1. Add the nuget [Clancey.SimpleAuth.Droid.CustomTabs](https://www.nuget.org/packages/Clancey.SimpleAuth.Droid.CustomTabs)
2. In your Droid project, create a subclass of SimpleAuthCallbackActivity to handle your url scheme, replacing the value of DataScheme with the scheme you used for the redirectUrl parameter of the Api constructor
```cs
[Activity(NoHistory = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop)]
[IntentFilter(new [] { Intent.ActionView},
Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable},
DataScheme = "YOUR CUSTOM SCHEME")]
public class MyCallbackActivity : SimpleAuthCallbackActivity
{
}
```
## .Net Core
You will need to implement an AuthStorage
```cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Linq;
namespace SimpleAuth
{
public class AuthStorage : IAuthStorage
{
private const int Keysize = 128;
private const int DerivationIterations = 1000;
public static string EncryptString(string plainText, string passPhrase)
{
var saltStringBytes = Generate256BitsOfRandomEntropy();
var ivStringBytes = Generate256BitsOfRandomEntropy();
var plainTextBytes = Encoding.UTF8.GetBytes(plainText);
using (var password = new Rfc2898DeriveBytes(passPhrase, saltStringBytes, DerivationIterations))
{
var keyBytes = password.GetBytes(Keysize / 8);
using (var symmetricKey = new RijndaelManaged())
{
symmetricKey.BlockSize = Keysize;
symmetricKey.Mode = CipherMode.CBC;
symmetricKey.Padding = PaddingMode.PKCS7;
using (var encryptor = symmetricKey.CreateEncryptor(keyBytes, ivStringBytes))
{
using (var memoryStream = new MemoryStream())
{
using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
{
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptoStream.FlushFinalBlock();
// Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes.
var cipherTextBytes = saltStringBytes;
cipherTextBytes = cipherTextBytes.Concat(ivStringBytes).ToArray();
cipherTextBytes = cipherTextBytes.Concat(memoryStream.ToArray()).ToArray();
memoryStream.Close();
cryptoStream.Close();
return Convert.ToBase64String(cipherTextBytes);
}
}
}
}
}
}
public static string DecryptString(string cipherText, string passPhrase)
{
var cipherTextBytesWithSaltAndIv = Convert.FromBase64String(cipherText);
var saltStringBytes = cipherTextBytesWithSaltAndIv.Take(Keysize / 8).ToArray();
var ivStringBytes = cipherTextBytesWithSaltAndIv.Skip(Keysize / 8).Take(Keysize / 8).ToArray();
var cipherTextBytes = cipherTextBytesWithSaltAndIv.Skip((Keysize / 8) * 2).Take(cipherTextBytesWithSaltAndIv.Length - ((Keysize / 8) * 2)).ToArray();
using (var password = new Rfc2898DeriveBytes(passPhrase, saltStringBytes, DerivationIterations))
{
var keyBytes = password.GetBytes(Keysize / 8);
using (var symmetricKey = new RijndaelManaged())
{
symmetricKey.BlockSize = Keysize;
symmetricKey.Mode = CipherMode.CBC;
symmetricKey.Padding = PaddingMode.PKCS7;
using (var decryptor = symmetricKey.CreateDecryptor(keyBytes, ivStringBytes))
{
using (var memoryStream = new MemoryStream(cipherTextBytes))
{
using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
{
var plainTextBytes = new byte[cipherTextBytes.Length];
var decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
memoryStream.Close();
cryptoStream.Close();
return Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount);
}
}
}
}
}
}
private static byte[] Generate256BitsOfRandomEntropy()
{
var randomBytes = new byte[16];
using (var rngCsp = new RNGCryptoServiceProvider())
{
rngCsp.GetBytes(randomBytes);
}
return randomBytes;
}
static string CalculateMD5Hash(string input)
{
var md5 = MD5.Create();
var inputBytes = Encoding.ASCII.GetBytes(input);
var hash = md5.ComputeHash(inputBytes);
var sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
public void SetSecured(string identifier, string value, string clientId, string clientSecret, string sharedGroup)
{
var key = $"{clientId}-{identifier}-{clientId}-{sharedGroup}";
var newKey = CalculateMD5Hash(key);
var encrypted = EncryptString(value, clientSecret);
Plugin.Settings.CrossSettings.Current.AddOrUpdateValue(newKey, encrypted);
}
public string GetSecured(string identifier, string clientId, string clientSecret, string sharedGroup)
{
try
{
var key = $"{clientId}-{identifier}-{clientId}-{sharedGroup}";
var newKey = CalculateMD5Hash(key);
var cryptText = Plugin.Settings.CrossSettings.Current.GetValueOrDefault(newKey, "");
return DecryptString(cryptText, clientSecret);
}
catch (Exception ex)
{
//Console.WriteLine(ex);
}
return null;
}
}
}
```
For console apps, you will also need to implement the Authenticators:
Basic Auth
```cs
using System;
using System.Security;
using System.Threading.Tasks;
namespace SimpleAuth
{
public class BasicAuthController
{
readonly IBasicAuthenicator authenticator;
public BasicAuthController(IBasicAuthenicator authenticator)
{
this.authenticator = authenticator;
}
public async Task<Tuple<string, string>> GetCredentials(string title, string details = "")
{
try
{
Console.WriteLine("******************");
Console.WriteLine(title);
Console.WriteLine(details);
Console.WriteLine("******************");
Console.WriteLine("Enter Username:");
var username = Console.ReadLine();
Console.WriteLine("Enter Password:");
var password = GetPassword();
var result = new Tuple<string, string>(username, password);
try
{
bool success = false;
var basic = authenticator;
if (basic != null)
{
success = await basic.VerifyCredentials(result.Item1, result.Item2);
}
if (!success)
throw new Exception("Invalid Credentials");
}
catch (Exception ex)
{
result = await GetCredentials(title, $"Error: {ex.Message}");
}
return result;
}
catch (TaskCanceledException)
{
authenticator.OnCancelled();
return null;
}
}
public string GetPassword()
{
var pwd = "";
while (true)
{
ConsoleKeyInfo i = Console.ReadKey(true);
if (i.Key == ConsoleKey.Enter)
{
break;
}
else if (i.Key == ConsoleKey.Backspace)
{
if (pwd.Length > 0)
{
pwd.Remove(pwd.Length - 1);
Console.Write("\b \b");
}
}
else
{
pwd += (i.KeyChar);
Console.Write("*");
}
}
return pwd;
}
}
}
```
Web Authenticator
```cs
using System;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace SimpleAuth
{
public class WebAuthenticatorController
{
readonly WebAuthenticator authenticator;
public WebAuthenticatorController(WebAuthenticator authenticator)
{
this.authenticator = authenticator;
}
public async Task GetCredentials(string title, string details = "")
{
try
{
var url = await authenticator.GetInitialUrl();
Console.WriteLine("******************");
Console.WriteLine(title);
Console.WriteLine(details);
Console.WriteLine($"Launching Url: \"{url}\"");
Console.WriteLine("******************");
Console.WriteLine("Paste the Redirected URL Here:");
OpenBrowser(url);
var username = Console.ReadLine();
try
{
bool success = false;
var basic = authenticator;
if (basic != null)
{
success = basic.CheckUrl(new Uri(username), null);
}
if (!success)
throw new Exception("Invalid Credentials");
}
catch (Exception ex)
{
await GetCredentials(title, $"Error: {ex.Message}");
}
}
catch (TaskCanceledException)
{
authenticator.OnCancelled();
}
}
public static void OpenBrowser(Uri uri)
{
OpenBrowser(uri.AbsoluteUri);
}
public static void OpenBrowser(string url)
{
try
{
Process.Start(url);
}
catch
{
// hack because of this: https://github.com/dotnet/corefx/issues/10361
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
url = url.Replace("&", "^&");
Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Process.Start("xdg-open", url);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Process.Start("open", url);
}
else
{
throw;
}
}
}
}
}
```
================================================
FILE: SimpleAuth.Droid.CustomTabs.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth.Droid.CustomTabs</id>
<version>1.0.3</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Adds CustomTabs support to SimpleAuth</description>
<releaseNotes>Updated dependencies</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<dependency id="Clancey.SimpleAuth" version="1.0.53"/>
<dependency id="Xamarin.Android.Support.CustomTabs" version="28.0.0.3"/>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Droid.CustomTabs\bin\Debug\SimpleAuth.Droid.CustomTabs.dll" target="lib\MonoAndroid\SimpleAuth.Droid.CustomTabs.dll" />
</files>
</package>
================================================
FILE: SimpleAuth.Facebook.Droid.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth.Facebook.Droid</id>
<version>1.0.6</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Native Facebook support for SimpleAuth</description>
<releaseNotes>Updated dependencies</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<dependency id="Clancey.SimpleAuth" version="1.0.53"/>
<dependency id="Xamarin.Facebook.Android" version="7.1.0"/>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Facebook.Droid\bin\Debug\SimpleAuth.Facebook.Droid.dll" target="lib\MonoAndroid\SimpleAuth.Facebook.Droid.dll" />
<file src="src\SimpleAuth.Facebook.Droid\bin\Debug\SimpleAuth.Facebook.Droid.pdb" target="lib\MonoAndroid\SimpleAuth.Facebook.Droid.pdb" />
</files>
</package>
================================================
FILE: SimpleAuth.Facebook.iOS.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth.Facebook.iOS</id>
<version>1.0.7</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Native Facebook support for SimpleAuth</description>
<summary>Added hookeups for Simplified plugins
Required Callbacks:
SimpleAuth.Providers.Facebook.Init(app, options);
SimpleAuth.Native.OpenUrl(application, url, options);</summary>
<releaseNotes>Updated Dependencies</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<dependency id="Clancey.SimpleAuth" version="1.0.53"/>
<dependency id="Xamarin.Facebook.iOS" version="7.1.1"/>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Facebook.iOS\bin\Debug\SimpleAuth.Facebook.iOS.dll" target="lib\Xamarin.iOS10\SimpleAuth.Facebook.iOS.dll" />
<file src="src\SimpleAuth.Facebook.iOS\bin\Debug\SimpleAuth.Facebook.iOS.pdb" target="lib\Xamarin.iOS10\SimpleAuth.Facebook.iOS.pdb" />
</files>
</package>
================================================
FILE: SimpleAuth.Google.Droid.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth.Google.Droid</id>
<version>1.0.13</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Native Google support for SimpleAuth</description>
<releaseNotes>Updated dependencies</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<dependency id="Clancey.SimpleAuth" version="1.0.53"/>
<dependency id="Xamarin.GooglePlayServices.Auth" version="71.1600.4"/>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Google.Droid\bin\Debug\SimpleAuth.Google.Droid.dll" target="lib\MonoAndroid\SimpleAuth.Google.Droid.dll" />
</files>
</package>
================================================
FILE: SimpleAuth.Google.iOS.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth.Google.iOS</id>
<version>1.0.4</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Native Google support for SimpleAuth</description>
<summary> Just call
SimpleAuth.Providers.Google.Init();
Required Callbacks:
SimpleAuth.Native.OpenUrl(application, url, options);</summary>
<releaseNotes>Updated dependencies</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<dependency id="Clancey.SimpleAuth" version="1.0.53"/>
<dependency id="Xamarin.Google.iOS.SignIn" version="5.0.2.1"/>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Google.iOS\bin\Debug\SimpleAuth.Google.iOS.dll" target="lib\Xamarin.iOS10\SimpleAuth.Google.iOS.dll" />
</files>
</package>
================================================
FILE: SimpleAuth.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Clancey.SimpleAuth</id>
<version>1.0.56</version>
<authors>Clancey</authors>
<licenseUrl>https://github.com/Clancey/SimpleAuth/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/clancey/SimpleAuth</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>The Simplest OAuth client for Xamarin and UWP</description>
<summary>Every API needs authentication, yet no developer wants to deal with authentication. Simple Auth embeds authentication into the API so you dont need to deal with it.</summary>
<releaseNotes>Added WKWebView for iOS</releaseNotes>
<copyright>James Clancey</copyright>
<dependencies>
<group>
<dependency id="Newtonsoft.Json" version="10.0.3" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="NETStandard.Library" version="2.0.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="src\SimpleAuth.Droid\bin\Debug\SimpleAuth.dll" target="lib\MonoAndroid\SimpleAuth.dll" />
<file src="src\SimpleAuth.Droid\bin\Debug\SimpleAuth.pdb" target="lib\MonoAndroid\SimpleAuth.pdb" />
<file src="src\SimpleAuth.Net\bin\Debug\netstandard2.0\SimpleAuth.dll" target="lib\netstandard2.0\SimpleAuth.dll" />
<file src="src\SimpleAuth.Net\bin\Debug\netstandard2.0\SimpleAuth.pdb" target="lib\netstandard2.0\SimpleAuth.pdb" />
<file src="src\SimpleAuth.iOS\bin\iPhone\Debug\SimpleAuth.dll" target="lib\Xamarin.iOS10\SimpleAuth.dll" />
<file src="src\SimpleAuth.iOS\bin\iPhone\Debug\SimpleAuth.pdb" target="lib\Xamarin.iOS10\SimpleAuth.pdb" />
<file src="src\SimpleAuth.UWP\bin\Debug\SimpleAuth.dll" target="lib\uap\SimpleAuth.dll" />
<file src="src\SimpleAuth.UWP\bin\Debug\SimpleAuth.pdb" target="lib\uap\SimpleAuth.pdb" />
<file src="src\SimpleAuth.Mac\bin\Debug\SimpleAuth.dll" target="lib\Xamarin.Mac20\SimpleAuth.dll" />
<file src="src\SimpleAuth.Mac\bin\Debug\SimpleAuth.pdb" target="lib\Xamarin.Mac20\SimpleAuth.pdb" />
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-ios/SimpleAuth.dll" target="lib/net6.0-ios13.6/SimpleAuth.dll"/>
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-ios/SimpleAuth.pdb" target="lib/net6.0-ios13.6/SimpleAuth.pdb"/>
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-android/SimpleAuth.dll" target="lib/net6.0-android30.0/SimpleAuth.dll"/>
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-android/SimpleAuth.pdb" target="lib/net6.0-android30.0/SimpleAuth.pdb"/>
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-maccatalyst/SimpleAuth.dll" target="lib/net6.0-maccatalyst13.5/SimpleAuth.dll"/>
<file src="src/SimpleAuth.Net6/bin/Debug/net6.0-maccatalyst/SimpleAuth.pdb" target="lib/net6.0-maccatalyst13.5/SimpleAuth.pdb"/>
</files>
</package>
================================================
FILE: samples/.nuget/NuGet.Config
================================================
<configuration>
<config>
<add key="repositoryPath" value="../../packages" />
</config>
</configuration>
================================================
FILE: samples/Sample.Droid/Assets/AboutAssets.txt
================================================
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
These files will be deployed with you package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
InputStream input = Assets.Open ("my_asset.txt");
}
}
Additionally, some Android functions will automatically load asset files:
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
================================================
FILE: samples/Sample.Droid/MainActivity.cs
================================================
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using SimpleAuth;
using Android.Support.V4.App;
using System.Threading.Tasks;
[assembly: MetaData ("com.facebook.sdk.ApplicationId", Value = "@string/facebook_app_id")]
namespace Sample.Droid {
// We need to give the activity an explicit name for our acvitity that we provide to Facebook when we setup the app
// in the dev console, so it can callback to the right deep link.
[Activity (Label = "Sample.Droid", MainLauncher = true, Icon = "@drawable/icon", Name = "com.simpleauth.sample.MainActivity")]
public class MainActivity : FragmentActivity {
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Initialize our native providers
SimpleAuth.Providers.Google.Init (this.Application);
//SimpleAuth.Providers.Facebook.Init(this.Application, false);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
FindViewById<Button> (Resource.Id.loginGoogleNative).Click += async (sender, e) => {
// Create an OAuth credential and use its clientId
var clientId = "419855213697-uq56vcune334omgqi51ou7jg08i3dnb1.apps.googleusercontent.com"; // Provide with or without the '.apps.googleusercontent.com' suffix
var google = new SimpleAuth.Providers.GoogleApi ("google", clientId) {//, "UwQ8aUXKDpqPzH0gpJnSij3i") {
ServerClientId = "419855213697-uq56vcune334omgqi51ou7jg08i3dnb1.apps.googleusercontent.com",
Scopes = new [] { "https://www.googleapis.com/auth/userinfo.profile" }
};
var account = await AuthAsync (google);
var user = await google.GetUserInfo ();
// .. Do something with account
};
FindViewById<Button> (Resource.Id.loginFacebookNative).Click += async (sender, e) => {
// Use the App ID
var clientId = "1475840585777919";
var fb = new SimpleAuth.Providers.FacebookApi ("facebook", clientId, "native");
var account = await AuthAsync (fb);
// .. Do something with account
};
FindViewById<Button> (Resource.Id.loginGeneric).Click += async (sender, e) => {
var oauth = new OAuthApi ("someprovider", new OAuthAuthenticator (
"authUrl",
"tokenUrl",
"redirecturl",
"clientid",
"clientsecret"));
var account = await AuthAsync (oauth);
// .. Do something with account
};
}
async Task<Account> AuthAsync (OAuthApi api)
{
Account result = null;
try {
result = await api.Authenticate ();
Toast.MakeText (this, "Successfully Authenticated!", ToastLength.Long).Show ();
} catch (TaskCanceledException) {
Toast.MakeText (this, "Authentication Canceled!", ToastLength.Long).Show ();
} catch (Exception ex) {
Console.WriteLine (ex);
Toast.MakeText (this, "Authentication Faild!", ToastLength.Long).Show ();
}
if (result != null)
Console.WriteLine (await result.ToJsonAsync ());
return result;
}
protected override void OnActivityResult (int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult (requestCode, resultCode, data);
Native.OnActivityResult (requestCode, resultCode, data);
}
}
}
================================================
FILE: samples/Sample.Droid/Properties/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.socialauth.sample" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="28" />
<application android:label="Sample.Droid" android:icon="@drawable/Icon">
<activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="SimpleAuth Test" />
<activity android:name="com.facebook.CustomTabActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
</application>
</manifest>
================================================
FILE: samples/Sample.Droid/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Android.App;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Sample.Droid")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Sample.Droid")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
================================================
FILE: samples/Sample.Droid/Resources/AboutResources.txt
================================================
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files. Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.xml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
drawable-hdpi/
icon.png
drawable-ldpi/
icon.png
drawable-mdpi/
icon.png
layout/
main.xml
values/
strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource". The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs. When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called
"Resource" that contains the tokens for each one of the resources included. For example,
for the above Resources layout, this is what the Resource class would expose:
public class Resource {
public class drawable {
public const int icon = 0x123;
}
public class layout {
public const int main = 0x456;
}
public class strings {
public const int first_string = 0xabc;
public const int second_string = 0xbcd;
}
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
================================================
FILE: samples/Sample.Droid/Resources/Resource.Designer.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: global::Android.Runtime.ResourceDesignerAttribute("Sample.Droid.Resource", IsApplication=true)]
namespace Sample.Droid
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
static Resource()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
public static void UpdateIdValues()
{
global::SimpleAuth.Resource.Id.loginButton = global::Sample.Droid.Resource.Id.loginButton;
global::SimpleAuth.Resource.Id.password = global::Sample.Droid.Resource.Id.password;
global::SimpleAuth.Resource.Id.username = global::Sample.Droid.Resource.Id.username;
global::SimpleAuth.Resource.Layout.login = global::Sample.Droid.Resource.Layout.login;
global::SimpleAuth.Resource.String.ApplicationName = global::Sample.Droid.Resource.String.ApplicationName;
global::SimpleAuth.Resource.String.Hello = global::Sample.Droid.Resource.String.Hello;
global::SimpleAuth.Google.Droid.Resource.Attribute.alpha = global::Sample.Droid.Resource.Attribute.alpha;
global::SimpleAuth.Google.Droid.Resource.Attribute.buttonSize = global::Sample.Droid.Resource.Attribute.buttonSize;
global::SimpleAuth.Google.Droid.Resource.Attribute.circleCrop = global::Sample.Droid.Resource.Attribute.circleCrop;
global::SimpleAuth.Google.Droid.Resource.Attribute.colorScheme = global::Sample.Droid.Resource.Attribute.colorScheme;
global::SimpleAuth.Google.Droid.Resource.Attribute.coordinatorLayoutStyle = global::Sample.Droid.Resource.Attribute.coordinatorLayoutStyle;
global::SimpleAuth.Google.Droid.Resource.Attribute.font = global::Sample.Droid.Resource.Attribute.font;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderAuthority = global::Sample.Droid.Resource.Attribute.fontProviderAuthority;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderCerts = global::Sample.Droid.Resource.Attribute.fontProviderCerts;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderFetchStrategy = global::Sample.Droid.Resource.Attribute.fontProviderFetchStrategy;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderFetchTimeout = global::Sample.Droid.Resource.Attribute.fontProviderFetchTimeout;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderPackage = global::Sample.Droid.Resource.Attribute.fontProviderPackage;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontProviderQuery = global::Sample.Droid.Resource.Attribute.fontProviderQuery;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontStyle = global::Sample.Droid.Resource.Attribute.fontStyle;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontVariationSettings = global::Sample.Droid.Resource.Attribute.fontVariationSettings;
global::SimpleAuth.Google.Droid.Resource.Attribute.fontWeight = global::Sample.Droid.Resource.Attribute.fontWeight;
global::SimpleAuth.Google.Droid.Resource.Attribute.imageAspectRatio = global::Sample.Droid.Resource.Attribute.imageAspectRatio;
global::SimpleAuth.Google.Droid.Resource.Attribute.imageAspectRatioAdjust = global::Sample.Droid.Resource.Attribute.imageAspectRatioAdjust;
global::SimpleAuth.Google.Droid.Resource.Attribute.keylines = global::Sample.Droid.Resource.Attribute.keylines;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_anchor = global::Sample.Droid.Resource.Attribute.layout_anchor;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_anchorGravity = global::Sample.Droid.Resource.Attribute.layout_anchorGravity;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_behavior = global::Sample.Droid.Resource.Attribute.layout_behavior;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_dodgeInsetEdges = global::Sample.Droid.Resource.Attribute.layout_dodgeInsetEdges;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_insetEdge = global::Sample.Droid.Resource.Attribute.layout_insetEdge;
global::SimpleAuth.Google.Droid.Resource.Attribute.layout_keyline = global::Sample.Droid.Resource.Attribute.layout_keyline;
global::SimpleAuth.Google.Droid.Resource.Attribute.scopeUris = global::Sample.Droid.Resource.Attribute.scopeUris;
global::SimpleAuth.Google.Droid.Resource.Attribute.statusBarBackground = global::Sample.Droid.Resource.Attribute.statusBarBackground;
global::SimpleAuth.Google.Droid.Resource.Attribute.ttcIndex = global::Sample.Droid.Resource.Attribute.ttcIndex;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_dark = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_dark;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_dark_default = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_dark_default;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_dark_disabled = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_dark_disabled;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_dark_focused = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_dark_focused;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_dark_pressed = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_dark_pressed;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_light = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_light;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_light_default = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_light_default;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_light_disabled = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_light_disabled;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_light_focused = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_light_focused;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_text_light_pressed = global::Sample.Droid.Resource.Color.common_google_signin_btn_text_light_pressed;
global::SimpleAuth.Google.Droid.Resource.Color.common_google_signin_btn_tint = global::Sample.Droid.Resource.Color.common_google_signin_btn_tint;
global::SimpleAuth.Google.Droid.Resource.Color.notification_action_color_filter = global::Sample.Droid.Resource.Color.notification_action_color_filter;
global::SimpleAuth.Google.Droid.Resource.Color.notification_icon_bg_color = global::Sample.Droid.Resource.Color.notification_icon_bg_color;
global::SimpleAuth.Google.Droid.Resource.Color.notification_material_background_media_default_color = global::Sample.Droid.Resource.Color.notification_material_background_media_default_color;
global::SimpleAuth.Google.Droid.Resource.Color.primary_text_default_material_dark = global::Sample.Droid.Resource.Color.primary_text_default_material_dark;
global::SimpleAuth.Google.Droid.Resource.Color.ripple_material_light = global::Sample.Droid.Resource.Color.ripple_material_light;
global::SimpleAuth.Google.Droid.Resource.Color.secondary_text_default_material_dark = global::Sample.Droid.Resource.Color.secondary_text_default_material_dark;
global::SimpleAuth.Google.Droid.Resource.Color.secondary_text_default_material_light = global::Sample.Droid.Resource.Color.secondary_text_default_material_light;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_button_inset_horizontal_material = global::Sample.Droid.Resource.Dimension.compat_button_inset_horizontal_material;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_button_inset_vertical_material = global::Sample.Droid.Resource.Dimension.compat_button_inset_vertical_material;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_button_padding_horizontal_material = global::Sample.Droid.Resource.Dimension.compat_button_padding_horizontal_material;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_button_padding_vertical_material = global::Sample.Droid.Resource.Dimension.compat_button_padding_vertical_material;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_control_corner_material = global::Sample.Droid.Resource.Dimension.compat_control_corner_material;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_notification_large_icon_max_height = global::Sample.Droid.Resource.Dimension.compat_notification_large_icon_max_height;
global::SimpleAuth.Google.Droid.Resource.Dimension.compat_notification_large_icon_max_width = global::Sample.Droid.Resource.Dimension.compat_notification_large_icon_max_width;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_action_icon_size = global::Sample.Droid.Resource.Dimension.notification_action_icon_size;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_action_text_size = global::Sample.Droid.Resource.Dimension.notification_action_text_size;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_big_circle_margin = global::Sample.Droid.Resource.Dimension.notification_big_circle_margin;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_content_margin_start = global::Sample.Droid.Resource.Dimension.notification_content_margin_start;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_large_icon_height = global::Sample.Droid.Resource.Dimension.notification_large_icon_height;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_large_icon_width = global::Sample.Droid.Resource.Dimension.notification_large_icon_width;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_main_column_padding_top = global::Sample.Droid.Resource.Dimension.notification_main_column_padding_top;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_media_narrow_margin = global::Sample.Droid.Resource.Dimension.notification_media_narrow_margin;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_right_icon_size = global::Sample.Droid.Resource.Dimension.notification_right_icon_size;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_right_side_padding_top = global::Sample.Droid.Resource.Dimension.notification_right_side_padding_top;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_small_icon_background_padding = global::Sample.Droid.Resource.Dimension.notification_small_icon_background_padding;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_small_icon_size_as_large = global::Sample.Droid.Resource.Dimension.notification_small_icon_size_as_large;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_subtext_size = global::Sample.Droid.Resource.Dimension.notification_subtext_size;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_top_pad = global::Sample.Droid.Resource.Dimension.notification_top_pad;
global::SimpleAuth.Google.Droid.Resource.Dimension.notification_top_pad_large_text = global::Sample.Droid.Resource.Dimension.notification_top_pad_large_text;
global::SimpleAuth.Google.Droid.Resource.Dimension.subtitle_corner_radius = global::Sample.Droid.Resource.Dimension.subtitle_corner_radius;
global::SimpleAuth.Google.Droid.Resource.Dimension.subtitle_outline_width = global::Sample.Droid.Resource.Dimension.subtitle_outline_width;
global::SimpleAuth.Google.Droid.Resource.Dimension.subtitle_shadow_offset = global::Sample.Droid.Resource.Dimension.subtitle_shadow_offset;
global::SimpleAuth.Google.Droid.Resource.Dimension.subtitle_shadow_radius = global::Sample.Droid.Resource.Dimension.subtitle_shadow_radius;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_full_open_on_phone = global::Sample.Droid.Resource.Drawable.common_full_open_on_phone;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_dark = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_dark;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_focused = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_focused;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_normal = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_normal_background = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_dark_normal_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_disabled = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_disabled;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_light = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_light;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_light_focused = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_light_focused;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_light_normal = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_light_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_icon_light_normal_background = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_icon_light_normal_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_dark = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_dark;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_dark_focused = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_dark_focused;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_dark_normal = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_dark_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_dark_normal_background = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_dark_normal_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_disabled = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_disabled;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_light = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_light;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_light_focused = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_light_focused;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_light_normal = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_light_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.common_google_signin_btn_text_light_normal_background = global::Sample.Droid.Resource.Drawable.common_google_signin_btn_text_light_normal_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.googleg_disabled_color_18 = global::Sample.Droid.Resource.Drawable.googleg_disabled_color_18;
global::SimpleAuth.Google.Droid.Resource.Drawable.googleg_standard_color_18 = global::Sample.Droid.Resource.Drawable.googleg_standard_color_18;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_action_background = global::Sample.Droid.Resource.Drawable.notification_action_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg = global::Sample.Droid.Resource.Drawable.notification_bg;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg_low = global::Sample.Droid.Resource.Drawable.notification_bg_low;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg_low_normal = global::Sample.Droid.Resource.Drawable.notification_bg_low_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg_low_pressed = global::Sample.Droid.Resource.Drawable.notification_bg_low_pressed;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg_normal = global::Sample.Droid.Resource.Drawable.notification_bg_normal;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_bg_normal_pressed = global::Sample.Droid.Resource.Drawable.notification_bg_normal_pressed;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_icon_background = global::Sample.Droid.Resource.Drawable.notification_icon_background;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_template_icon_bg = global::Sample.Droid.Resource.Drawable.notification_template_icon_bg;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_template_icon_low_bg = global::Sample.Droid.Resource.Drawable.notification_template_icon_low_bg;
global::SimpleAuth.Google.Droid.Resource.Drawable.notification_tile_bg = global::Sample.Droid.Resource.Drawable.notification_tile_bg;
global::SimpleAuth.Google.Droid.Resource.Drawable.notify_panel_notification_icon_bg = global::Sample.Droid.Resource.Drawable.notify_panel_notification_icon_bg;
global::SimpleAuth.Google.Droid.Resource.Id.action0 = global::Sample.Droid.Resource.Id.action0;
global::SimpleAuth.Google.Droid.Resource.Id.actions = global::Sample.Droid.Resource.Id.actions;
global::SimpleAuth.Google.Droid.Resource.Id.action_container = global::Sample.Droid.Resource.Id.action_container;
global::SimpleAuth.Google.Droid.Resource.Id.action_divider = global::Sample.Droid.Resource.Id.action_divider;
global::SimpleAuth.Google.Droid.Resource.Id.action_image = global::Sample.Droid.Resource.Id.action_image;
global::SimpleAuth.Google.Droid.Resource.Id.action_text = global::Sample.Droid.Resource.Id.action_text;
global::SimpleAuth.Google.Droid.Resource.Id.adjust_height = global::Sample.Droid.Resource.Id.adjust_height;
global::SimpleAuth.Google.Droid.Resource.Id.adjust_width = global::Sample.Droid.Resource.Id.adjust_width;
global::SimpleAuth.Google.Droid.Resource.Id.all = global::Sample.Droid.Resource.Id.all;
global::SimpleAuth.Google.Droid.Resource.Id.async = global::Sample.Droid.Resource.Id.async;
global::SimpleAuth.Google.Droid.Resource.Id.auto = global::Sample.Droid.Resource.Id.auto;
global::SimpleAuth.Google.Droid.Resource.Id.blocking = global::Sample.Droid.Resource.Id.blocking;
global::SimpleAuth.Google.Droid.Resource.Id.bottom = global::Sample.Droid.Resource.Id.bottom;
global::SimpleAuth.Google.Droid.Resource.Id.cancel_action = global::Sample.Droid.Resource.Id.cancel_action;
global::SimpleAuth.Google.Droid.Resource.Id.center = global::Sample.Droid.Resource.Id.center;
global::SimpleAuth.Google.Droid.Resource.Id.center_horizontal = global::Sample.Droid.Resource.Id.center_horizontal;
global::SimpleAuth.Google.Droid.Resource.Id.center_vertical = global::Sample.Droid.Resource.Id.center_vertical;
global::SimpleAuth.Google.Droid.Resource.Id.chronometer = global::Sample.Droid.Resource.Id.chronometer;
global::SimpleAuth.Google.Droid.Resource.Id.clip_horizontal = global::Sample.Droid.Resource.Id.clip_horizontal;
global::SimpleAuth.Google.Droid.Resource.Id.clip_vertical = global::Sample.Droid.Resource.Id.clip_vertical;
global::SimpleAuth.Google.Droid.Resource.Id.dark = global::Sample.Droid.Resource.Id.dark;
global::SimpleAuth.Google.Droid.Resource.Id.end = global::Sample.Droid.Resource.Id.end;
global::SimpleAuth.Google.Droid.Resource.Id.end_padder = global::Sample.Droid.Resource.Id.end_padder;
global::SimpleAuth.Google.Droid.Resource.Id.fill = global::Sample.Droid.Resource.Id.fill;
global::SimpleAuth.Google.Droid.Resource.Id.fill_horizontal = global::Sample.Droid.Resource.Id.fill_horizontal;
global::SimpleAuth.Google.Droid.Resource.Id.fill_vertical = global::Sample.Droid.Resource.Id.fill_vertical;
global::SimpleAuth.Google.Droid.Resource.Id.forever = global::Sample.Droid.Resource.Id.forever;
global::SimpleAuth.Google.Droid.Resource.Id.icon = global::Sample.Droid.Resource.Id.icon;
global::SimpleAuth.Google.Droid.Resource.Id.icon_group = global::Sample.Droid.Resource.Id.icon_group;
global::SimpleAuth.Google.Droid.Resource.Id.icon_only = global::Sample.Droid.Resource.Id.icon_only;
global::SimpleAuth.Google.Droid.Resource.Id.info = global::Sample.Droid.Resource.Id.info;
global::SimpleAuth.Google.Droid.Resource.Id.italic = global::Sample.Droid.Resource.Id.italic;
global::SimpleAuth.Google.Droid.Resource.Id.left = global::Sample.Droid.Resource.Id.left;
global::SimpleAuth.Google.Droid.Resource.Id.light = global::Sample.Droid.Resource.Id.light;
global::SimpleAuth.Google.Droid.Resource.Id.line1 = global::Sample.Droid.Resource.Id.line1;
global::SimpleAuth.Google.Droid.Resource.Id.line3 = global::Sample.Droid.Resource.Id.line3;
global::SimpleAuth.Google.Droid.Resource.Id.loginButton = global::Sample.Droid.Resource.Id.loginButton;
global::SimpleAuth.Google.Droid.Resource.Id.media_actions = global::Sample.Droid.Resource.Id.media_actions;
global::SimpleAuth.Google.Droid.Resource.Id.none = global::Sample.Droid.Resource.Id.none;
global::SimpleAuth.Google.Droid.Resource.Id.normal = global::Sample.Droid.Resource.Id.normal;
global::SimpleAuth.Google.Droid.Resource.Id.notification_background = global::Sample.Droid.Resource.Id.notification_background;
global::SimpleAuth.Google.Droid.Resource.Id.notification_main_column = global::Sample.Droid.Resource.Id.notification_main_column;
global::SimpleAuth.Google.Droid.Resource.Id.notification_main_column_container = global::Sample.Droid.Resource.Id.notification_main_column_container;
global::SimpleAuth.Google.Droid.Resource.Id.password = global::Sample.Droid.Resource.Id.password;
global::SimpleAuth.Google.Droid.Resource.Id.right = global::Sample.Droid.Resource.Id.right;
global::SimpleAuth.Google.Droid.Resource.Id.right_icon = global::Sample.Droid.Resource.Id.right_icon;
global::SimpleAuth.Google.Droid.Resource.Id.right_side = global::Sample.Droid.Resource.Id.right_side;
global::SimpleAuth.Google.Droid.Resource.Id.standard = global::Sample.Droid.Resource.Id.standard;
global::SimpleAuth.Google.Droid.Resource.Id.start = global::Sample.Droid.Resource.Id.start;
global::SimpleAuth.Google.Droid.Resource.Id.status_bar_latest_event_content = global::Sample.Droid.Resource.Id.status_bar_latest_event_content;
global::SimpleAuth.Google.Droid.Resource.Id.tag_transition_group = global::Sample.Droid.Resource.Id.tag_transition_group;
global::SimpleAuth.Google.Droid.Resource.Id.tag_unhandled_key_event_manager = global::Sample.Droid.Resource.Id.tag_unhandled_key_event_manager;
global::SimpleAuth.Google.Droid.Resource.Id.tag_unhandled_key_listeners = global::Sample.Droid.Resource.Id.tag_unhandled_key_listeners;
global::SimpleAuth.Google.Droid.Resource.Id.text = global::Sample.Droid.Resource.Id.text;
global::SimpleAuth.Google.Droid.Resource.Id.text2 = global::Sample.Droid.Resource.Id.text2;
global::SimpleAuth.Google.Droid.Resource.Id.time = global::Sample.Droid.Resource.Id.time;
global::SimpleAuth.Google.Droid.Resource.Id.title = global::Sample.Droid.Resource.Id.title;
global::SimpleAuth.Google.Droid.Resource.Id.top = global::Sample.Droid.Resource.Id.top;
global::SimpleAuth.Google.Droid.Resource.Id.username = global::Sample.Droid.Resource.Id.username;
global::SimpleAuth.Google.Droid.Resource.Id.wide = global::Sample.Droid.Resource.Id.wide;
global::SimpleAuth.Google.Droid.Resource.Integer.cancel_button_image_alpha = global::Sample.Droid.Resource.Integer.cancel_button_image_alpha;
global::SimpleAuth.Google.Droid.Resource.Integer.google_play_services_version = global::Sample.Droid.Resource.Integer.google_play_services_version;
global::SimpleAuth.Google.Droid.Resource.Integer.status_bar_notification_info_maxnum = global::Sample.Droid.Resource.Integer.status_bar_notification_info_maxnum;
global::SimpleAuth.Google.Droid.Resource.Layout.login = global::Sample.Droid.Resource.Layout.login;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_action = global::Sample.Droid.Resource.Layout.notification_action;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_action_tombstone = global::Sample.Droid.Resource.Layout.notification_action_tombstone;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_media_action = global::Sample.Droid.Resource.Layout.notification_media_action;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_media_cancel_action = global::Sample.Droid.Resource.Layout.notification_media_cancel_action;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_big_media = global::Sample.Droid.Resource.Layout.notification_template_big_media;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_big_media_custom = global::Sample.Droid.Resource.Layout.notification_template_big_media_custom;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_big_media_narrow = global::Sample.Droid.Resource.Layout.notification_template_big_media_narrow;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_big_media_narrow_custom = global::Sample.Droid.Resource.Layout.notification_template_big_media_narrow_custom;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_custom_big = global::Sample.Droid.Resource.Layout.notification_template_custom_big;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_icon_group = global::Sample.Droid.Resource.Layout.notification_template_icon_group;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_lines_media = global::Sample.Droid.Resource.Layout.notification_template_lines_media;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_media = global::Sample.Droid.Resource.Layout.notification_template_media;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_media_custom = global::Sample.Droid.Resource.Layout.notification_template_media_custom;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_part_chronometer = global::Sample.Droid.Resource.Layout.notification_template_part_chronometer;
global::SimpleAuth.Google.Droid.Resource.Layout.notification_template_part_time = global::Sample.Droid.Resource.Layout.notification_template_part_time;
global::SimpleAuth.Google.Droid.Resource.String.ApplicationName = global::Sample.Droid.Resource.String.ApplicationName;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_enable_button = global::Sample.Droid.Resource.String.common_google_play_services_enable_button;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_enable_text = global::Sample.Droid.Resource.String.common_google_play_services_enable_text;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_enable_title = global::Sample.Droid.Resource.String.common_google_play_services_enable_title;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_install_button = global::Sample.Droid.Resource.String.common_google_play_services_install_button;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_install_text = global::Sample.Droid.Resource.String.common_google_play_services_install_text;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_install_title = global::Sample.Droid.Resource.String.common_google_play_services_install_title;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_notification_channel_name = global::Sample.Droid.Resource.String.common_google_play_services_notification_channel_name;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_notification_ticker = global::Sample.Droid.Resource.String.common_google_play_services_notification_ticker;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_unknown_issue = global::Sample.Droid.Resource.String.common_google_play_services_unknown_issue;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_unsupported_text = global::Sample.Droid.Resource.String.common_google_play_services_unsupported_text;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_update_button = global::Sample.Droid.Resource.String.common_google_play_services_update_button;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_update_text = global::Sample.Droid.Resource.String.common_google_play_services_update_text;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_update_title = global::Sample.Droid.Resource.String.common_google_play_services_update_title;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_updating_text = global::Sample.Droid.Resource.String.common_google_play_services_updating_text;
global::SimpleAuth.Google.Droid.Resource.String.common_google_play_services_wear_update_text = global::Sample.Droid.Resource.String.common_google_play_services_wear_update_text;
global::SimpleAuth.Google.Droid.Resource.String.common_open_on_phone = global::Sample.Droid.Resource.String.common_open_on_phone;
global::SimpleAuth.Google.Droid.Resource.String.common_signin_button_text = global::Sample.Droid.Resource.String.common_signin_button_text;
global::SimpleAuth.Google.Droid.Resource.String.common_signin_button_text_long = global::Sample.Droid.Resource.String.common_signin_button_text_long;
global::SimpleAuth.Google.Droid.Resource.String.Hello = global::Sample.Droid.Resource.String.Hello;
global::SimpleAuth.Google.Droid.Resource.String.library_name = global::Sample.Droid.Resource.String.library_name;
global::SimpleAuth.Google.Droid.Resource.String.status_bar_notification_info_overflow = global::Sample.Droid.Resource.String.status_bar_notification_info_overflow;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Info = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Info;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Info_Media = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Info_Media;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2 = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2_Media = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Line2_Media;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Media = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Media;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Time = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Time;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Time_Media = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Time_Media;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Title = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Title;
global::SimpleAuth.Google.Droid.Resource.Style.TextAppearance_Compat_Notification_Title_Media = global::Sample.Droid.Resource.Style.TextAppearance_Compat_Notification_Title_Media;
global::SimpleAuth.Google.Droid.Resource.Style.Widget_Compat_NotificationActionContainer = global::Sample.Droid.Resource.Style.Widget_Compat_NotificationActionContainer;
global::SimpleAuth.Google.Droid.Resource.Style.Widget_Compat_NotificationActionText = global::Sample.Droid.Resource.Style.Widget_Compat_NotificationActionText;
global::SimpleAuth.Google.Droid.Resource.Style.Widget_Support_CoordinatorLayout = global::Sample.Droid.Resource.Style.Widget_Support_CoordinatorLayout;
global::SimpleAuth.Google.Droid.Resource.Styleable.ColorStateListItem = global::Sample.Droid.Resource.Styleable.ColorStateListItem;
global::SimpleAuth.Google.Droid.Resource.Styleable.ColorStateListItem_alpha = global::Sample.Droid.Resource.Styleable.ColorStateListItem_alpha;
global::SimpleAuth.Google.Droid.Resource.Styleable.ColorStateListItem_android_alpha = global::Sample.Droid.Resource.Styleable.ColorStateListItem_android_alpha;
global::SimpleAuth.Google.Droid.Resource.Styleable.ColorStateListItem_android_color = global::Sample.Droid.Resource.Styleable.ColorStateListItem_android_color;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout = global::Sample.Droid.Resource.Styleable.CoordinatorLayout;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_keylines = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_keylines;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_android_layout_gravity;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchor;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_anchorGravity;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_behavior;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_dodgeInsetEdges;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_insetEdge;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_Layout_layout_keyline;
global::SimpleAuth.Google.Droid.Resource.Styleable.CoordinatorLayout_statusBarBackground = global::Sample.Droid.Resource.Styleable.CoordinatorLayout_statusBarBackground;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily = global::Sample.Droid.Resource.Styleable.FontFamily;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont = global::Sample.Droid.Resource.Styleable.FontFamilyFont;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_android_font = global::Sample.Droid.Resource.Styleable.FontFamilyFont_android_font;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle = global::Sample.Droid.Resource.Styleable.FontFamilyFont_android_fontStyle;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_android_fontVariationSettings = global::Sample.Droid.Resource.Styleable.FontFamilyFont_android_fontVariationSettings;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight = global::Sample.Droid.Resource.Styleable.FontFamilyFont_android_fontWeight;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_android_ttcIndex = global::Sample.Droid.Resource.Styleable.FontFamilyFont_android_ttcIndex;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_font = global::Sample.Droid.Resource.Styleable.FontFamilyFont_font;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_fontStyle = global::Sample.Droid.Resource.Styleable.FontFamilyFont_fontStyle;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_fontVariationSettings = global::Sample.Droid.Resource.Styleable.FontFamilyFont_fontVariationSettings;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_fontWeight = global::Sample.Droid.Resource.Styleable.FontFamilyFont_fontWeight;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamilyFont_ttcIndex = global::Sample.Droid.Resource.Styleable.FontFamilyFont_ttcIndex;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderAuthority = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderAuthority;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderCerts = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderCerts;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderFetchStrategy;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderFetchTimeout;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderPackage = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderPackage;
global::SimpleAuth.Google.Droid.Resource.Styleable.FontFamily_fontProviderQuery = global::Sample.Droid.Resource.Styleable.FontFamily_fontProviderQuery;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor = global::Sample.Droid.Resource.Styleable.GradientColor;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColorItem = global::Sample.Droid.Resource.Styleable.GradientColorItem;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColorItem_android_color = global::Sample.Droid.Resource.Styleable.GradientColorItem_android_color;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColorItem_android_offset = global::Sample.Droid.Resource.Styleable.GradientColorItem_android_offset;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_centerColor = global::Sample.Droid.Resource.Styleable.GradientColor_android_centerColor;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_centerX = global::Sample.Droid.Resource.Styleable.GradientColor_android_centerX;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_centerY = global::Sample.Droid.Resource.Styleable.GradientColor_android_centerY;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_endColor = global::Sample.Droid.Resource.Styleable.GradientColor_android_endColor;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_endX = global::Sample.Droid.Resource.Styleable.GradientColor_android_endX;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_endY = global::Sample.Droid.Resource.Styleable.GradientColor_android_endY;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_gradientRadius = global::Sample.Droid.Resource.Styleable.GradientColor_android_gradientRadius;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_startColor = global::Sample.Droid.Resource.Styleable.GradientColor_android_startColor;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_startX = global::Sample.Droid.Resource.Styleable.GradientColor_android_startX;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_startY = global::Sample.Droid.Resource.Styleable.GradientColor_android_startY;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_tileMode = global::Sample.Droid.Resource.Styleable.GradientColor_android_tileMode;
global::SimpleAuth.Google.Droid.Resource.Styleable.GradientColor_android_type = global::Sample.Droid.Resource.Styleable.GradientColor_android_type;
global::SimpleAuth.Google.Droid.Resource.Styleable.LoadingImageView = global::Sample.Droid.Resource.Styleable.LoadingImageView;
global::SimpleAuth.Google.Droid.Resource.Styleable.LoadingImageView_circleCrop = global::Sample.Droid.Resource.Styleable.LoadingImageView_circleCrop;
global::SimpleAuth.Google.Droid.Resource.Styleable.LoadingImageView_imageAspectRatio = global::Sample.Droid.Resource.Styleable.LoadingImageView_imageAspectRatio;
global::SimpleAuth.Google.Droid.Resource.Styleable.LoadingImageView_imageAspectRatioAdjust = global::Sample.Droid.Resource.Styleable.LoadingImageView_imageAspectRatioAdjust;
global::SimpleAuth.Google.Droid.Resource.Styleable.SignInButton = global::Sample.Droid.Resource.Styleable.SignInButton;
global::SimpleAuth.Google.Droid.Resource.Styleable.SignInButton_buttonSize = global::Sample.Droid.Resource.Styleable.SignInButton_buttonSize;
global::SimpleAuth.Google.Droid.Resource.Styleable.SignInButton_colorScheme = global::Sample.Droid.Resource.Styleable.SignInButton_colorScheme;
global::SimpleAuth.Google.Droid.Resource.Styleable.SignInButton_scopeUris = global::Sample.Droid.Resource.Styleable.SignInButton_scopeUris;
}
public partial class Attribute
{
// aapt resource value: 0x7F010000
public const int alpha = 2130771968;
// aapt resource value: 0x7F010001
public const int buttonSize = 2130771969;
// aapt resource value: 0x7F010002
public const int circleCrop = 2130771970;
// aapt resource value: 0x7F010003
public const int colorScheme = 2130771971;
// aapt resource value: 0x7F010004
public const int coordinatorLayoutStyle = 2130771972;
// aapt resource value: 0x7F010005
public const int font = 2130771973;
// aapt resource value: 0x7F010006
public const int fontProviderAuthority = 2130771974;
// aapt resource value: 0x7F010007
public const int fontProviderCerts = 2130771975;
// aapt resource value: 0x7F010008
public const int fontProviderFetchStrategy = 2130771976;
// aapt resource value: 0x7F010009
public const int fontProviderFetchTimeout = 2130771977;
// aapt resource value: 0x7F01000A
public const int fontProviderPackage = 2130771978;
// aapt resource value: 0x7F01000B
public const int fontProviderQuery = 2130771979;
// aapt resource value: 0x7F01000C
public const int fontStyle = 2130771980;
// aapt resource value: 0x7F01000D
public const int fontVariationSettings = 2130771981;
// aapt resource value: 0x7F01000E
public const int fontWeight = 2130771982;
// aapt resource value: 0x7F01000F
public const int imageAspectRatio = 2130771983;
// aapt resource value: 0x7F010010
public const int imageAspectRatioAdjust = 2130771984;
// aapt resource value: 0x7F010011
public const int keylines = 2130771985;
// aapt resource value: 0x7F010012
public const int layout_anchor = 2130771986;
// aapt resource value: 0x7F010013
public const int layout_anchorGravity = 2130771987;
// aapt resource value: 0x7F010014
public const int layout_behavior = 2130771988;
// aapt resource value: 0x7F010015
public const int layout_dodgeInsetEdges = 2130771989;
// aapt resource value: 0x7F010016
public const int layout_insetEdge = 2130771990;
// aapt resource value: 0x7F010017
public const int layout_keyline = 2130771991;
// aapt resource value: 0x7F010018
public const int scopeUris = 2130771992;
// aapt resource value: 0x7F010019
public const int statusBarBackground = 2130771993;
// aapt resource value: 0x7F01001A
public const int ttcIndex = 2130771994;
static Attribute()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Attribute()
{
}
}
public partial class Color
{
// aapt resource value: 0x7F020000
public const int common_google_signin_btn_text_dark = 2130837504;
// aapt resource value: 0x7F020001
public const int common_google_signin_btn_text_dark_default = 2130837505;
// aapt resource value: 0x7F020002
public const int common_google_signin_btn_text_dark_disabled = 2130837506;
// aapt resource value: 0x7F020003
public const int common_google_signin_btn_text_dark_focused = 2130837507;
// aapt resource value: 0x7F020004
public const int common_google_signin_btn_text_dark_pressed = 2130837508;
// aapt resource value: 0x7F020005
public const int common_google_signin_btn_text_light = 2130837509;
// aapt resource value: 0x7F020006
public const int common_google_signin_btn_text_light_default = 2130837510;
// aapt resource value: 0x7F020007
public const int common_google_signin_btn_text_light_disabled = 2130837511;
// aapt resource value: 0x7F020008
public const int common_google_signin_btn_text_light_focused = 2130837512;
// aapt resource value: 0x7F020009
public const int common_google_signin_btn_text_light_pressed = 2130837513;
// aapt resource value: 0x7F02000A
public const int common_google_signin_btn_tint = 2130837514;
// aapt resource value: 0x7F02000B
public const int notification_action_color_filter = 2130837515;
// aapt resource value: 0x7F02000C
public const int notification_icon_bg_color = 2130837516;
// aapt resource value: 0x7F02000D
public const int notification_material_background_media_default_color = 2130837517;
// aapt resource value: 0x7F02000E
public const int primary_text_default_material_dark = 2130837518;
// aapt resource value: 0x7F02000F
public const int ripple_material_light = 2130837519;
// aapt resource value: 0x7F020010
public const int secondary_text_default_material_dark = 2130837520;
// aapt resource value: 0x7F020011
public const int secondary_text_default_material_light = 2130837521;
static Color()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Color()
{
}
}
public partial class Dimension
{
// aapt resource value: 0x7F030000
public const int compat_button_inset_horizontal_material = 2130903040;
// aapt resource value: 0x7F030001
public const int compat_button_inset_vertical_material = 2130903041;
// aapt resource value: 0x7F030002
public const int compat_button_padding_horizontal_material = 2130903042;
// aapt resource value: 0x7F030003
public const int compat_button_padding_vertical_material = 2130903043;
// aapt resource value: 0x7F030004
public const int compat_control_corner_material = 2130903044;
// aapt resource value: 0x7F030005
public const int compat_notification_large_icon_max_height = 2130903045;
// aapt resource value: 0x7F030006
public const int compat_notification_large_icon_max_width = 2130903046;
// aapt resource value: 0x7F030007
public const int notification_action_icon_size = 2130903047;
// aapt resource value: 0x7F030008
public const int notification_action_text_size = 2130903048;
// aapt resource value: 0x7F030009
public const int notification_big_circle_margin = 2130903049;
// aapt resource value: 0x7F03000A
public const int notification_content_margin_start = 2130903050;
// aapt resource value: 0x7F03000B
public const int notification_large_icon_height = 2130903051;
// aapt resource value: 0x7F03000C
public const int notification_large_icon_width = 2130903052;
// aapt resource value: 0x7F03000D
public const int notification_main_column_padding_top = 2130903053;
// aapt resource value: 0x7F03000E
public const int notification_media_narrow_margin = 2130903054;
// aapt resource value: 0x7F03000F
public const int notification_right_icon_size = 2130903055;
// aapt resource value: 0x7F030010
public const int notification_right_side_padding_top = 2130903056;
// aapt resource value: 0x7F030011
public const int notification_small_icon_background_padding = 2130903057;
// aapt resource value: 0x7F030012
public const int notification_small_icon_size_as_large = 2130903058;
// aapt resource value: 0x7F030013
public const int notification_subtext_size = 2130903059;
// aapt resource value: 0x7F030014
public const int notification_top_pad = 2130903060;
// aapt resource value: 0x7F030015
public const int notification_top_pad_large_text = 2130903061;
// aapt resource value: 0x7F030016
public const int subtitle_corner_radius = 2130903062;
// aapt resource value: 0x7F030017
public const int subtitle_outline_width = 2130903063;
// aapt resource value: 0x7F030018
public const int subtitle_shadow_offset = 2130903064;
// aapt resource value: 0x7F030019
public const int subtitle_shadow_radius = 2130903065;
static Dimension()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Dimension()
{
}
}
public partial class Drawable
{
// aapt resource value: 0x7F040000
public const int common_full_open_on_phone = 2130968576;
// aapt resource value: 0x7F040001
public const int common_google_signin_btn_icon_dark = 2130968577;
// aapt resource value: 0x7F040002
public const int common_google_signin_btn_icon_dark_focused = 2130968578;
// aapt resource value: 0x7F040003
public const int common_google_signin_btn_icon_dark_normal = 2130968579;
// aapt resource value: 0x7F040004
public const int common_google_signin_btn_icon_dark_normal_background = 2130968580;
// aapt resource value: 0x7F040005
public const int common_google_signin_btn_icon_disabled = 2130968581;
// aapt resource value: 0x7F040006
public const int common_google_signin_btn_icon_light = 2130968582;
// aapt resource value: 0x7F040007
public const int common_google_signin_btn_icon_light_focused = 2130968583;
// aapt resource value: 0x7F040008
public const int common_google_signin_btn_icon_light_normal = 2130968584;
// aapt resource value: 0x7F040009
public const int common_google_signin_btn_icon_light_normal_background = 2130968585;
// aapt resource value: 0x7F04000A
public const int common_google_signin_btn_text_dark = 2130968586;
// aapt resource value: 0x7F04000B
public const int common_google_signin_btn_text_dark_focused = 2130968587;
// aapt resource value: 0x7F04000C
public const int common_google_signin_btn_text_dark_normal = 2130968588;
// aapt resource value: 0x7F04000D
public const int common_google_signin_btn_text_dark_normal_background = 2130968589;
// aapt resource value: 0x7F04000E
public const int common_google_signin_btn_text_disabled = 2130968590;
// aapt resource value: 0x7F04000F
public const int common_google_signin_btn_text_light = 2130968591;
// aapt resource value: 0x7F040010
public const int common_google_signin_btn_text_light_focused = 2130968592;
// aapt resource value: 0x7F040011
public const int common_google_signin_btn_text_light_normal = 2130968593;
// aapt resource value: 0x7F040012
public const int common_google_signin_btn_text_light_normal_background = 2130968594;
// aapt resource value: 0x7F040013
public const int googleg_disabled_color_18 = 2130968595;
// aapt resource value: 0x7F040014
public const int googleg_standard_color_18 = 2130968596;
// aapt resource value: 0x7F040015
public const int Icon = 2130968597;
// aapt resource value: 0x7F040016
public const int notification_action_background = 2130968598;
// aapt resource value: 0x7F040017
public const int notification_bg = 2130968599;
// aapt resource value: 0x7F040018
public const int notification_bg_low = 2130968600;
// aapt resource value: 0x7F040019
public const int notification_bg_low_normal = 2130968601;
// aapt resource value: 0x7F04001A
public const int notification_bg_low_pressed = 2130968602;
// aapt resource value: 0x7F04001B
public const int notification_bg_normal = 2130968603;
// aapt resource value: 0x7F04001C
public const int notification_bg_normal_pressed = 2130968604;
// aapt resource value: 0x7F04001D
public const int notification_icon_background = 2130968605;
// aapt resource value: 0x7F04001E
public const int notification_template_icon_bg = 2130968606;
// aapt resource value: 0x7F04001F
public const int notification_template_icon_low_bg = 2130968607;
// aapt resource value: 0x7F040020
public const int notification_tile_bg = 2130968608;
// aapt resource value: 0x7F040021
public const int notify_panel_notification_icon_bg = 2130968609;
static Drawable()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Drawable()
{
}
}
public partial class Id
{
// aapt resource value: 0x7F050000
public const int action0 = 2131034112;
// aapt resource value: 0x7F050005
public const int actions = 2131034117;
// aapt resource value: 0x7F050001
public const int action_container = 2131034113;
// aapt resource value: 0x7F050002
public const int action_divider = 2131034114;
// aapt resource value: 0x7F050003
public const int action_image = 2131034115;
// aapt resource value: 0x7F050004
public const int action_text = 2131034116;
// aapt resource value: 0x7F050006
public const int adjust_height = 2131034118;
// aapt resource value: 0x7F050007
public const int adjust_width = 2131034119;
// aapt resource value: 0x7F050008
public const int all = 2131034120;
// aapt resource value: 0x7F050009
public const int async = 2131034121;
// aapt resource value: 0x7F05000A
public const int auto = 2131034122;
// aapt resource value: 0x7F05000B
public const int blocking = 2131034123;
// aapt resource value: 0x7F05000C
public const int bottom = 2131034124;
// aapt resource value: 0x7F05000D
public const int cancel_action = 2131034125;
// aapt resource value: 0x7F05000E
public const int center = 2131034126;
// aapt resource value: 0x7F05000F
public const int center_horizontal = 2131034127;
// aapt resource value: 0x7F050010
public const int center_vertical = 2131034128;
// aapt resource value: 0x7F050011
public const int chronometer = 2131034129;
// aapt resource value: 0x7F050012
public const int clip_horizontal = 2131034130;
// aapt resource value: 0x7F050013
public const int clip_vertical = 2131034131;
// aapt resource value: 0x7F050014
public const int dark = 2131034132;
// aapt resource value: 0x7F050015
public const int end = 2131034133;
// aapt resource value: 0x7F050016
public const int end_padder = 2131034134;
// aapt resource value: 0x7F050017
public const int fill = 2131034135;
// aapt resource value: 0x7F050018
public const int fill_horizontal = 2131034136;
// aapt resource value: 0x7F050019
public const int fill_vertical = 2131034137;
// aapt resource value: 0x7F05001A
public const int forever = 2131034138;
// aapt resource value: 0x7F05001B
public const int icon = 2131034139;
// aapt resource value: 0x7F05001C
public const int icon_group = 2131034140;
// aapt resource value: 0x7F05001D
public const int icon_only = 2131034141;
// aapt resource value: 0x7F05001E
public const int info = 2131034142;
// aapt resource value: 0x7F05001F
public const int italic = 2131034143;
// aapt resource value: 0x7F050020
public const int left = 2131034144;
// aapt resource value: 0x7F050021
public const int light = 2131034145;
// aapt resource value: 0x7F050022
public const int line1 = 2131034146;
// aapt resource value: 0x7F050023
public const int line3 = 2131034147;
// aapt resource value: 0x7F050024
public const int loginButton = 2131034148;
// aapt resource value: 0x7F050025
public const int loginFacebookNative = 2131034149;
// aapt resource value: 0x7F050026
public const int loginGeneric = 2131034150;
// aapt resource value: 0x7F050027
public const int loginGoogleNative = 2131034151;
// aapt resource value: 0x7F050028
public const int media_actions = 2131034152;
// aapt resource value: 0x7F050029
public const int none = 2131034153;
// aapt resource value: 0x7F05002A
public const int normal = 2131034154;
// aapt resource value: 0x7F05002B
public const int notification_background = 2131034155;
// aapt resource value: 0x7F05002C
public const int notification_main_column = 2131034156;
// aapt resource value: 0x7F05002D
public const int notification_main_column_container = 2131034157;
// aapt resource value: 0x7F05002E
public const int password = 2131034158;
// aapt resource value: 0x7F05002F
public const int right = 2131034159;
// aapt resource value: 0x7F050030
public const int right_icon = 2131034160;
// aapt resource value: 0x7F050031
public const int right_side = 2131034161;
// aapt resource value: 0x7F050032
public const int standard = 2131034162;
// aapt resource value: 0x7F050033
public const int start = 2131034163;
// aapt resource value: 0x7F050034
public const int status_bar_latest_event_content = 2131034164;
// aapt resource value: 0x7F050035
public const int tag_transition_group = 2131034165;
// aapt resource value: 0x7F050036
public const int tag_unhandled_key_event_manager = 2131034166;
// aapt resource value: 0x7F050037
public const int tag_unhandled_key_listeners = 2131034167;
// aapt resource value: 0x7F050038
public const int text = 2131034168;
// aapt resource value: 0x7F050039
public const int text2 = 2131034169;
// aapt resource value: 0x7F05003A
public const int textView1 = 2131034170;
// aapt resource value: 0x7F05003B
public const int time = 2131034171;
// aapt resource value: 0x7F05003C
public const int title = 2131034172;
// aapt resource value: 0x7F05003D
public const int top = 2131034173;
// aapt resource value: 0x7F05003E
public const int username = 2131034174;
// aapt resource value: 0x7F05003F
public const int wide = 2131034175;
static Id()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Id()
{
}
}
public partial class Integer
{
// aapt resource value: 0x7F060000
public const int cancel_button_image_alpha = 2131099648;
// aapt resource value: 0x7F060001
public const int google_play_services_version = 2131099649;
// aapt resource value: 0x7F060002
public const int status_bar_notification_info_maxnum = 2131099650;
static Integer()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Integer()
{
}
}
public partial class Layout
{
// aapt resource value: 0x7F070000
public const int login = 2131165184;
// aapt resource value: 0x7F070001
public const int Main = 2131165185;
// aapt resource value: 0x7F070002
public const int notification_action = 2131165186;
// aapt resource value: 0x7F070003
public const int notification_action_tombstone = 2131165187;
// aapt resource value: 0x7F070004
public const int notification_media_action = 2131165188;
// aapt resource value: 0x7F070005
public const int notification_media_cancel_action = 2131165189;
// aapt resource value: 0x7F070006
public const int notification_template_big_media = 2131165190;
// aapt resource value: 0x7F070007
public const int notification_template_big_media_custom = 2131165191;
// aapt resource value: 0x7F070008
public const int notification_template_big_media_narrow = 2131165192;
// aapt resource value: 0x7F070009
public const int notification_template_big_media_narrow_custom = 2131165193;
// aapt resource value: 0x7F07000A
public const int notification_template_custom_big = 2131165194;
// aapt resource value: 0x7F07000B
public const int notification_template_icon_group = 2131165195;
// aapt resource value: 0x7F07000C
public const int notification_template_lines_media = 2131165196;
// aapt resource value: 0x7F07000D
public const int notification_template_media = 2131165197;
// aapt resource value: 0x7F07000E
public const int notification_template_media_custom = 2131165198;
// aapt resource value: 0x7F07000F
public const int notification_template_part_chronometer = 2131165199;
// aapt resource value: 0x7F070010
public const int notification_template_part_time = 2131165200;
static Layout()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Layout()
{
}
}
public partial class String
{
// aapt resource value: 0x7F080000
public const int ApplicationName = 2131230720;
// aapt resource value: 0x7F080002
public const int common_google_play_services_enable_button = 2131230722;
// aapt resource value: 0x7F080003
public const int common_google_play_services_enable_text = 2131230723;
// aapt resource value: 0x7F080004
public const int common_google_play_services_enable_title = 2131230724;
// aapt resource value: 0x7F080005
public const int common_google_play_services_install_button = 2131230725;
// aapt resource value: 0x7F080006
public const int common_google_play_services_install_text = 2131230726;
// aapt resource value: 0x7F080007
public const int common_google_play_services_install_title = 2131230727;
// aapt resource value: 0x7F080008
public const int common_google_play_services_notification_channel_name = 2131230728;
// aapt resource value: 0x7F080009
public const int common_google_play_services_notification_ticker = 2131230729;
// aapt resource value: 0x7F08000A
public const int common_google_play_services_unknown_issue = 2131230730;
// aapt resource value: 0x7F08000B
public const int common_google_play_services_unsupported_text = 2131230731;
// aapt resource value: 0x7F08000C
public const int common_google_play_services_update_button = 2131230732;
// aapt resource value: 0x7F08000D
public const int common_google_play_services_update_text = 2131230733;
// aapt resource value: 0x7F08000E
public const int common_google_play_services_update_title = 2131230734;
// aapt resource value: 0x7F08000F
public const int common_google_play_services_updating_text = 2131230735;
// aapt resource value: 0x7F080010
public const int common_google_play_services_wear_update_text = 2131230736;
// aapt resource value: 0x7F080011
public const int common_open_on_phone = 2131230737;
// aapt resource value: 0x7F080012
public const int common_signin_button_text = 2131230738;
// aapt resource value: 0x7F080013
public const int common_signin_button_text_long = 2131230739;
// aapt resource value: 0x7F080014
public const int facebook_app_id = 2131230740;
// aapt resource value: 0x7F080015
public const int fb_login_protocol_scheme = 2131230741;
// aapt resource value: 0x7F080001
public const int Hello = 2131230721;
// aapt resource value: 0x7F080016
public const int library_name = 2131230742;
// aapt resource value: 0x7F080017
public const int status_bar_notification_info_overflow = 2131230743;
static String()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private String()
{
}
}
public partial class Style
{
// aapt resource value: 0x7F090000
public const int TextAppearance_Compat_Notification = 2131296256;
// aapt resource value: 0x7F090001
public const int TextAppearance_Compat_Notification_Info = 2131296257;
// aapt resource value: 0x7F090002
public const int TextAppearance_Compat_Notification_Info_Media = 2131296258;
// aapt resource value: 0x7F090003
public const int TextAppearance_Compat_Notification_Line2 = 2131296259;
// aapt resource value: 0x7F090004
public const int TextAppearance_Compat_Notification_Line2_Media = 2131296260;
// aapt resource value: 0x7F090005
public const int TextAppearance_Compat_Notification_Media = 2131296261;
// aapt resource value: 0x7F090006
public const int TextAppearance_Compat_Notification_Time = 2131296262;
// aapt resource value: 0x7F090007
public const int TextAppearance_Compat_Notification_Time_Media = 2131296263;
// aapt resource value: 0x7F090008
public const int TextAppearance_Compat_Notification_Title = 2131296264;
// aapt resource value: 0x7F090009
public const int TextAppearance_Compat_Notification_Title_Media = 2131296265;
// aapt resource value: 0x7F09000A
public const int Widget_Compat_NotificationActionContainer = 2131296266;
// aapt resource value: 0x7F09000B
public const int Widget_Compat_NotificationActionText = 2131296267;
// aapt resource value: 0x7F09000C
public const int Widget_Support_CoordinatorLayout = 2131296268;
static Style()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Style()
{
}
}
public partial class Styleable
{
// aapt resource value: { 0x10101A5,0x101031F,0x7F010000 }
public static int[] ColorStateListItem = new int[] {
16843173,
16843551,
2130771968};
// aapt resource value: 2
public const int ColorStateListItem_alpha = 2;
// aapt resource value: 1
public const int ColorStateListItem_android_alpha = 1;
// aapt resource value: 0
public const int ColorStateListItem_android_color = 0;
// aapt resource value: { 0x7F010011,0x7F010019 }
public static int[] CoordinatorLayout = new int[] {
2130771985,
2130771993};
// aapt resource value: 0
public const int CoordinatorLayout_keylines = 0;
// aapt resource value: { 0x10100B3,0x7F010012,0x7F010013,0x7F010014,0x7F010015,0x7F010016,0x7F010017 }
public static int[] CoordinatorLayout_Layout = new int[] {
16842931,
2130771986,
2130771987,
2130771988,
2130771989,
2130771990,
2130771991};
// aapt resource value: 0
public const int CoordinatorLayout_Layout_android_layout_gravity = 0;
// aapt resource value: 1
public const int CoordinatorLayout_Layout_layout_anchor = 1;
// aapt resource value: 2
public const int CoordinatorLayout_Layout_layout_anchorGravity = 2;
// aapt resource value: 3
public const int CoordinatorLayout_Layout_layout_behavior = 3;
// aapt resource value: 4
public const int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 4;
// aapt resource value: 5
public const int CoordinatorLayout_Layout_layout_insetEdge = 5;
// aapt resource value: 6
public const int CoordinatorLayout_Layout_layout_keyline = 6;
// aapt resource value: 1
public const int CoordinatorLayout_statusBarBackground = 1;
// aapt resource value: { 0x7F010006,0x7F010007,0x7F010008,0x7F010009,0x7F01000A,0x7F01000B }
public static int[] FontFamily = new int[] {
2130771974,
2130771975,
2130771976,
2130771977,
2130771978,
2130771979};
// aapt resource value: { 0x1010532,0x1010533,0x101053F,0x101056F,0x1010570,0x7F010005,0x7F01000C,0x7F01000D,0x7F01000E,0x7F01001A }
public static int[] FontFamilyFont = new int[] {
16844082,
16844083,
16844095,
16844143,
16844144,
2130771973,
2130771980,
2130771981,
2130771982,
2130771994};
// aapt resource value: 0
public const int FontFamilyFont_android_font = 0;
// aapt resource value: 2
public const int FontFamilyFont_android_fontStyle = 2;
// aapt resource value: 4
public const int FontFamilyFont_android_fontVariationSettings = 4;
// aapt resource value: 1
public const int FontFamilyFont_android_fontWeight = 1;
// aapt resource value: 3
public const int FontFamilyFont_android_ttcIndex = 3;
// aapt resource value: 5
public const int FontFamilyFont_font = 5;
// aapt resource value: 6
public const int FontFamilyFont_fontStyle = 6;
// aapt resource value: 7
public const int FontFamilyFont_fontVariationSettings = 7;
// aapt resource value: 8
public const int FontFamilyFont_fontWeight = 8;
// aapt resource value: 9
public const int FontFamilyFont_ttcIndex = 9;
// aapt resource value: 0
public const int FontFamily_fontProviderAuthority = 0;
// aapt resource value: 1
public const int FontFamily_fontProviderCerts = 1;
// aapt resource value: 2
public const int FontFamily_fontProviderFetchStrategy = 2;
// aapt resource value: 3
public const int FontFamily_fontProviderFetchTimeout = 3;
// aapt resource value: 4
public const int FontFamily_fontProviderPackage = 4;
// aapt resource value: 5
public const int FontFamily_fontProviderQuery = 5;
// aapt resource value: { 0x101019D,0x101019E,0x10101A1,0x10101A2,0x10101A3,0x10101A4,0x1010201,0x101020B,0x1010510,0x1010511,0x1010512,0x1010513 }
public static int[] GradientColor = new int[] {
16843165,
16843166,
16843169,
16843170,
16843171,
16843172,
16843265,
16843275,
16844048,
16844049,
16844050,
16844051};
// aapt resource value: { 0x10101A5,0x1010514 }
public static int[] GradientColorItem = new int[] {
16843173,
16844052};
// aapt resource value: 0
public const int GradientColorItem_android_color = 0;
// aapt resource value: 1
public const int GradientColorItem_android_offset = 1;
// aapt resource value: 7
public const int GradientColor_android_centerColor = 7;
// aapt resource value: 3
public const int GradientColor_android_centerX = 3;
// aapt resource value: 4
public const int GradientColor_android_centerY = 4;
// aapt resource value: 1
public const int GradientColor_android_endColor = 1;
// aapt resource value: 10
public const int GradientColor_android_endX = 10;
// aapt resource value: 11
public const int GradientColor_android_endY = 11;
// aapt resource value: 5
public const int GradientColor_android_gradientRadius = 5;
// aapt resource value: 0
public const int GradientColor_android_startColor = 0;
// aapt resource value: 8
public const int GradientColor_android_startX = 8;
// aapt resource value: 9
public const int GradientColor_android_startY = 9;
// aapt resource value: 6
public const int GradientColor_android_tileMode = 6;
// aapt resource value: 2
public const int GradientColor_android_type = 2;
// aapt resource value: { 0x7F010002,0x7F01000F,0x7F010010 }
public static int[] LoadingImageView = new int[] {
2130771970,
2130771983,
2130771984};
// aapt resource value: 0
public const int LoadingImageView_circleCrop = 0;
// aapt resource value: 1
public const int LoadingImageView_imageAspectRatio = 1;
// aapt resource value: 2
public const int LoadingImageView_imageAspectRatioAdjust = 2;
// aapt resource value: { 0x7F010001,0x7F010003,0x7F010018 }
public static int[] SignInButton = new int[] {
2130771969,
2130771971,
2130771992};
// aapt resource value: 0
public const int SignInButton_buttonSize = 0;
// aapt resource value: 1
public const int SignInButton_colorScheme = 1;
// aapt resource value: 2
public const int SignInButton_scopeUris = 2;
static Styleable()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Styleable()
{
}
}
}
}
#pragma warning restore 1591
================================================
FILE: samples/Sample.Droid/Resources/layout/Main.axml
================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="Authenticate:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:gravity="center" />
<Button
android:text="Generic OAuth"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/loginGeneric" />
<Button
android:id="@+id/loginGoogleNative"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Google Native" />
<Button
android:text="Facebook Native"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/loginFacebookNative" />
</LinearLayout>
================================================
FILE: samples/Sample.Droid/Resources/values/Strings.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Hello">Hello World, Click Me!</string>
<string name="ApplicationName">Sample.Droid</string>
<string name="facebook_app_id">1475840585777919</string>
<string name="fb_login_protocol_scheme">fb1475840585777919</string>
</resources>
================================================
FILE: samples/Sample.Droid/Sample.Droid.csproj
================================================
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A8FF54E0-324F-4216-90A8-65F1B3DEA518}</ProjectGuid>
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Sample.Droid</RootNamespace>
<AssemblyName>Sample.Droid</AssemblyName>
<FileAlignment>512</FileAlignment>
<AndroidApplication>true</AndroidApplication>
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
<TargetFrameworkVersion>v9.0</TargetFrameworkVersion>
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
<AndroidTlsProvider>
</AndroidTlsProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidLinkMode>None</AndroidLinkMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Xamarin.GooglePlayServices.Auth" Version="71.1600.4" />
</ItemGroup>
<ItemGroup>
<Reference Include="Mono.Android" />
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />
<Compile Include="Resources\Resource.Designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
<None Include="Assets\AboutAssets.txt" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\Main.axml" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\values\Strings.xml" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\drawable\Icon.png" />
</ItemGroup>
<ItemGroup>
<None Include="Properties\AndroidManifest.xml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\SimpleAuth.Droid\SimpleAuth.Droid.csproj">
<Project>{5B44ED27-DAD7-43FA-8A06-BA2469A1AF9E}</Project>
<Name>SimpleAuth.Droid</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\SimpleAuth.Google.Droid\SimpleAuth.Google.Droid.csproj">
<Project>{37786399-48f8-48b1-81b1-ce3fae15faca}</Project>
<Name>SimpleAuth.Google.Droid</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.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>
================================================
FILE: samples/Sample.Forms/Sample.Forms/App.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SimpleAuth;
using SimpleAuth.Providers;
using Xamarin.Forms;
namespace Sample.Forms
{
public class App : Application
{
AuthenticatedApi _sourceApi;
public App ()
{
//Hook up our Forms login page for Basic Auth
BasicAuthApi.ShowAuthenticator = (IBasicAuthenicator obj) => {
MainPage.Navigation.PushModalAsync (new LoginPage (obj));
};
string FacebookClientId = "528997441203195";
string FacebookSecret = "db801dd6f6bc40702ebbd70ecdef4d4e";
string InstagramClientId = "f2c421d810824581ac758861e56e5340";
string InstagramSecret = "2465b93d4cc44355a4ccf32f3eca707a";
#if __ANDROID__
string GoogleClientId = "646679266669-quj4b4frm8gi4knn6269me7ss9cefj7c.apps.googleusercontent.com";
string GoogleSecret = GoogleApi.NativeClientSecret; //"uzj06SA8A66Y9mOA1rSjmQH7";
#else
string GoogleClientId = "992461286651-k3tsbcreniknqptanrugsetiimt0lkvo.apps.googleusercontent.com";
string GoogleSecret = "avrYAIxweNZwcHpsBlIzTp04";
#endif
var logoutButton = new Button()
{
Text = "Logout"
};
logoutButton.Clicked += async (sender, args) =>
{
if (_sourceApi != null)
{
_sourceApi.Logout();
_sourceApi = null;
}
};
// The root page of your application
MainPage = new NavigationPage(new ContentPage
{
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
CreateApiButton( new GoogleApi("google", GoogleClientId, GoogleSecret)
{
Scopes = new[]
{
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
},
}),
CreateApiButton(new FacebookApi("facebook", FacebookClientId, FacebookSecret)),
CreateApiButton(new InstagramApi("instagram" ,InstagramClientId, InstagramSecret)),
CreateApiButton(new OAuthPasswordApi ("myapi", "clientid", "clientsecret",
"https://serverurl.com",
"https://tokenurl.com",
"https://refreshurl.com")),
logoutButton
}
}
});
}
Button CreateApiButton(AuthenticatedApi api)
{
var button = new Button
{
Text = $"Login: {api.GetType().Name}",
};
button.Clicked += async (sender, args) =>
{
try
{
_sourceApi = api;
var account = await api.Authenticate () as OAuthAccount;
Console.WriteLine (account.Identifier + " : " + account.Token);
await MainPage.DisplayAlert ("Success!", "User is logged in", "Ok");
} catch (TaskCanceledException) {
Console.WriteLine ("Canceled");
await MainPage.DisplayAlert ("Error", "User Canceled", "Ok");
} catch (Exception ex) {
Console.WriteLine (ex);
await MainPage.DisplayAlert ("Error", ex.Message,"Ok");
}
};
return button;
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
================================================
FILE: samples/Sample.Forms/Sample.Forms/LoginPage.xaml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Sample.Forms.LoginPage">
<StackLayout Padding="10,40,10,10">
<Entry x:Name="Username" Placeholder="Username" ></Entry>
<Entry x:Name="Password" Placeholder="Password" IsPassword="true"/>
<Button Text="Login" Clicked="Handle_Clicked" />
</StackLayout>
</ContentPage>
================================================
FILE: samples/Sample.Forms/Sample.Forms/LoginPage.xaml.cs
================================================
//
// Copyright 2016 Clancey
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Collections.Generic;
using Xamarin.Forms;
using SimpleAuth;
using System.Windows.Input;
using System.Threading.Tasks;
namespace Sample.Forms
{
public partial class LoginPage : ContentPage
{
IBasicAuthenicator authenticator;
public LoginPage (IBasicAuthenicator authenticator)
{
this.authenticator = authenticator;
InitializeComponent ();
}
async void Handle_Clicked (object sender, System.EventArgs e)
{
if (string.IsNullOrWhiteSpace (Username.Text)) {
await this.DisplayAlert ("Error", "Username is invalid", "Ok");
return;
}
if (string.IsNullOrWhiteSpace (Password.Text)) {
await this.DisplayAlert ("Error", "Password is invalid", "Ok");
return;
}
try {
bool success = await authenticator.VerifyCredentials (Username.Text, Password.Text);
if (success)
await this.Navigation.PopModalAsync ();
else
await this.DisplayAlert ("Error", "Invalid credentials", "Ok");
} catch (Exception ex) {
await this.DisplayAlert ("Error", ex.Message, "Ok");
}
}
protected override bool OnBackButtonPressed ()
{
authenticator.OnCancelled ();
return base.OnBackButtonPressed ();
}
}
}
================================================
FILE: samples/Sample.Forms/Sample.Forms/Sample.Forms.projitems
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>20acc87e-10d0-4ead-a610-b21ed05dbcf4</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>Sample.Forms</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)App.cs" />
<Compile Include="$(MSBuildThisFileDirectory)LoginPage.xaml.cs">
<DependentUpon>LoginPage.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)LoginPage.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>
</Project>
================================================
FILE: samples/Sample.Forms/Sample.Forms/Sample.Forms.shproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>20acc87e-10d0-4ead-a610-b21ed05dbcf4</ProjectGuid>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="Sample.Forms.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/Assets/AboutAssets.txt
================================================
Any raw assets you want to be deployed with your application can be placed in
this directory (and child directories) and given a Build Action of "AndroidAsset".
These files will be deployed with you package and will be accessible using Android's
AssetManager, like this:
public class ReadAsset : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
InputStream input = Assets.Open ("my_asset.txt");
}
}
Additionally, some Android functions will automatically load asset files:
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/MainActivity.cs
================================================
using System;
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Content;
namespace Sample.Forms.Droid
{
[Activity (Label = "Sample.Forms", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SimpleAuth.Providers.Google.Init (this.Application);
global::Xamarin.Forms.Forms.Init (this, bundle);
LoadApplication (new Sample.Forms.App ());
}
protected override void OnActivityResult (int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult (requestCode, resultCode, data);
SimpleAuth.Native.OnActivityResult (requestCode, resultCode, data);
}
}
}
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/Properties/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.simpleauth.forms.sample">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="28" />
<application android:label="Simple Auth Forms">
<activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
</application>
</manifest>
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Android.App;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Sample.Forms.Droid")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Sample.Forms.Droid")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
// Add some common permissions, these can be removed if not needed
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/Resources/AboutResources.txt
================================================
Images, layout descriptions, binary blobs and string dictionaries can be included
in your application as resource files. Various Android APIs are designed to
operate on the resource IDs instead of dealing with images, strings or binary blobs
directly.
For example, a sample Android app that contains a user interface layout (main.xml),
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
would keep its resources in the "Resources" directory of the application:
Resources/
drawable-hdpi/
icon.png
drawable-ldpi/
icon.png
drawable-mdpi/
icon.png
layout/
main.xml
values/
strings.xml
In order to get the build system to recognize Android resources, set the build action to
"AndroidResource". The native Android APIs do not operate directly with filenames, but
instead operate on resource IDs. When you compile an Android application that uses resources,
the build system will package the resources for distribution and generate a class called
"Resource" that contains the tokens for each one of the resources included. For example,
for the above Resources layout, this is what the Resource class would expose:
public class Resource {
public class drawable {
public const int icon = 0x123;
}
public class layout {
public const int main = 0x456;
}
public class strings {
public const int first_string = 0xabc;
public const int second_string = 0xbcd;
}
}
You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
string in the dictionary file values/strings.xml.
================================================
FILE: samples/Sample.Forms/Sample.Forms.Droid/Resources/Resource.Designer.cs
================================================
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: global::Android.Runtime.ResourceDesignerAttribute("Sample.Forms.Droid.Resource", IsApplication=true)]
namespace Sample.Forms.Droid
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
static Resource()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
public static void UpdateIdValues()
{
global::ModernHttpClient.Resource.String.library_name = global::Sample.Forms.Droid.Resource.String.library_name;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_in = global::Sample.Forms.Droid.Resource.Animation.abc_fade_in;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_fade_out = global::Sample.Forms.Droid.Resource.Animation.abc_fade_out;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_grow_fade_in_from_bottom = global::Sample.Forms.Droid.Resource.Animation.abc_grow_fade_in_from_bottom;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_popup_enter = global::Sample.Forms.Droid.Resource.Animation.abc_popup_enter;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_popup_exit = global::Sample.Forms.Droid.Resource.Animation.abc_popup_exit;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_shrink_fade_out_from_bottom = global::Sample.Forms.Droid.Resource.Animation.abc_shrink_fade_out_from_bottom;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_in_bottom = global::Sample.Forms.Droid.Resource.Animation.abc_slide_in_bottom;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_in_top = global::Sample.Forms.Droid.Resource.Animation.abc_slide_in_top;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_out_bottom = global::Sample.Forms.Droid.Resource.Animation.abc_slide_out_bottom;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_slide_out_top = global::Sample.Forms.Droid.Resource.Animation.abc_slide_out_top;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_tooltip_enter = global::Sample.Forms.Droid.Resource.Animation.abc_tooltip_enter;
global::Xamarin.Forms.Platform.Android.Resource.Animation.abc_tooltip_exit = global::Sample.Forms.Droid.Resource.Animation.abc_tooltip_exit;
global::Xamarin.Forms.Platform.Android.Resource.Animation.design_bottom_sheet_slide_in = global::Sample.Forms.Droid.Resource.Animation.design_bottom_sheet_slide_in;
global::Xamarin.Forms.Platform.Android.Resource.Animation.design_bottom_sheet_slide_out = global::Sample.Forms.Droid.Resource.Animation.design_bottom_sheet_slide_out;
global::Xamarin.Forms.Platform.Android.Resource.Animation.design_snackbar_in = global::Sample.Forms.Droid.Resource.Animation.design_snackbar_in;
global::Xamarin.Forms.Platform.Android.Resource.Animation.design_snackbar_out = global::Sample.Forms.Droid.Resource.Animation.design_snackbar_out;
global::Xamarin.Forms.Platform.Android.Resource.Animation.EnterFromLeft = global::Sample.Forms.Droid.Resource.Animation.EnterFromLeft;
global::Xamarin.Forms.Platform.Android.Resource.Animation.EnterFromRight = global::Sample.Forms.Droid.Resource.Animation.EnterFromRight;
global::Xamarin.Forms.Platform.Android.Resource.Animation.ExitToLeft = global::Sample.Forms.Droid.Resource.Animation.ExitToLeft;
global::Xamarin.Forms.Platform.Android.Resource.Animation.ExitToRight = global::Sample.Forms.Droid.Resource.Animation.ExitToRight;
global::Xamarin.Forms.Platform.Android.Resource.Animator.design_appbar_state_list_animator = global::Sample.Forms.Droid.Resource.Animator.design_appbar_state_list_animator;
global::Xamarin.Forms.Platform.Android.Resource.Animator.design_fab_hide_motion_spec = global::Sample.Forms.Droid.Resource.Animator.design_fab_hide_motion_spec;
global::Xamarin.Forms.Platform.Android.Resource.Animator.design_fab_show_motion_spec = global::Sample.Forms.Droid.Resource.Animator.design_fab_show_motion_spec;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_btn_state_list_anim = global::Sample.Forms.Droid.Resource.Animator.mtrl_btn_state_list_anim;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_btn_unelevated_state_list_anim = global::Sample.Forms.Droid.Resource.Animator.mtrl_btn_unelevated_state_list_anim;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_chip_state_list_anim = global::Sample.Forms.Droid.Resource.Animator.mtrl_chip_state_list_anim;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_fab_hide_motion_spec = global::Sample.Forms.Droid.Resource.Animator.mtrl_fab_hide_motion_spec;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_fab_show_motion_spec = global::Sample.Forms.Droid.Resource.Animator.mtrl_fab_show_motion_spec;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_fab_transformation_sheet_collapse_spec = global::Sample.Forms.Droid.Resource.Animator.mtrl_fab_transformation_sheet_collapse_spec;
global::Xamarin.Forms.Platform.Android.Resource.Animator.mtrl_fab_transformation_sheet_expand_spec = global::Sample.Forms.Droid.Resource.Animator.mtrl_fab_transformation_sheet_expand_spec;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarDivider = global::Sample.Forms.Droid.Resource.Attribute.actionBarDivider;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarItemBackground = global::Sample.Forms.Droid.Resource.Attribute.actionBarItemBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarPopupTheme = global::Sample.Forms.Droid.Resource.Attribute.actionBarPopupTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::Sample.Forms.Droid.Resource.Attribute.actionBarSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSplitStyle = global::Sample.Forms.Droid.Resource.Attribute.actionBarSplitStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarStyle = global::Sample.Forms.Droid.Resource.Attribute.actionBarStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabBarStyle = global::Sample.Forms.Droid.Resource.Attribute.actionBarTabBarStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabStyle = global::Sample.Forms.Droid.Resource.Attribute.actionBarTabStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTabTextStyle = global::Sample.Forms.Droid.Resource.Attribute.actionBarTabTextStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarTheme = global::Sample.Forms.Droid.Resource.Attribute.actionBarTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarWidgetTheme = global::Sample.Forms.Droid.Resource.Attribute.actionBarWidgetTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.actionButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionDropDownStyle = global::Sample.Forms.Droid.Resource.Attribute.actionDropDownStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionLayout = global::Sample.Forms.Droid.Resource.Attribute.actionLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionMenuTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.actionMenuTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionMenuTextColor = global::Sample.Forms.Droid.Resource.Attribute.actionMenuTextColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeBackground = global::Sample.Forms.Droid.Resource.Attribute.actionModeBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCloseButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.actionModeCloseButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCloseDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeCloseDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCopyDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeCopyDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeCutDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeCutDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeFindDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeFindDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModePasteDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModePasteDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModePopupWindowStyle = global::Sample.Forms.Droid.Resource.Attribute.actionModePopupWindowStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeSelectAllDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeSelectAllDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeShareDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeShareDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeSplitBackground = global::Sample.Forms.Droid.Resource.Attribute.actionModeSplitBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeStyle = global::Sample.Forms.Droid.Resource.Attribute.actionModeStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionModeWebSearchDrawable = global::Sample.Forms.Droid.Resource.Attribute.actionModeWebSearchDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionOverflowButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.actionOverflowButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionOverflowMenuStyle = global::Sample.Forms.Droid.Resource.Attribute.actionOverflowMenuStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionProviderClass = global::Sample.Forms.Droid.Resource.Attribute.actionProviderClass;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionViewClass = global::Sample.Forms.Droid.Resource.Attribute.actionViewClass;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.activityChooserViewStyle = global::Sample.Forms.Droid.Resource.Attribute.activityChooserViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogButtonGroupStyle = global::Sample.Forms.Droid.Resource.Attribute.alertDialogButtonGroupStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogCenterButtons = global::Sample.Forms.Droid.Resource.Attribute.alertDialogCenterButtons;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogStyle = global::Sample.Forms.Droid.Resource.Attribute.alertDialogStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alertDialogTheme = global::Sample.Forms.Droid.Resource.Attribute.alertDialogTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.allowStacking = global::Sample.Forms.Droid.Resource.Attribute.allowStacking;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alpha = global::Sample.Forms.Droid.Resource.Attribute.alpha;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.alphabeticModifiers = global::Sample.Forms.Droid.Resource.Attribute.alphabeticModifiers;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.arrowHeadLength = global::Sample.Forms.Droid.Resource.Attribute.arrowHeadLength;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.arrowShaftLength = global::Sample.Forms.Droid.Resource.Attribute.arrowShaftLength;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoCompleteTextViewStyle = global::Sample.Forms.Droid.Resource.Attribute.autoCompleteTextViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeMaxTextSize = global::Sample.Forms.Droid.Resource.Attribute.autoSizeMaxTextSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeMinTextSize = global::Sample.Forms.Droid.Resource.Attribute.autoSizeMinTextSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizePresetSizes = global::Sample.Forms.Droid.Resource.Attribute.autoSizePresetSizes;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeStepGranularity = global::Sample.Forms.Droid.Resource.Attribute.autoSizeStepGranularity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.autoSizeTextType = global::Sample.Forms.Droid.Resource.Attribute.autoSizeTextType;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.background = global::Sample.Forms.Droid.Resource.Attribute.background;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundSplit = global::Sample.Forms.Droid.Resource.Attribute.backgroundSplit;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundStacked = global::Sample.Forms.Droid.Resource.Attribute.backgroundStacked;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundTint = global::Sample.Forms.Droid.Resource.Attribute.backgroundTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.backgroundTintMode = global::Sample.Forms.Droid.Resource.Attribute.backgroundTintMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.barLength = global::Sample.Forms.Droid.Resource.Attribute.barLength;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_autoHide = global::Sample.Forms.Droid.Resource.Attribute.behavior_autoHide;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_fitToContents = global::Sample.Forms.Droid.Resource.Attribute.behavior_fitToContents;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_hideable = global::Sample.Forms.Droid.Resource.Attribute.behavior_hideable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_overlapTop = global::Sample.Forms.Droid.Resource.Attribute.behavior_overlapTop;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_peekHeight = global::Sample.Forms.Droid.Resource.Attribute.behavior_peekHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.behavior_skipCollapsed = global::Sample.Forms.Droid.Resource.Attribute.behavior_skipCollapsed;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.borderlessButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.borderlessButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.borderWidth = global::Sample.Forms.Droid.Resource.Attribute.borderWidth;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomAppBarStyle = global::Sample.Forms.Droid.Resource.Attribute.bottomAppBarStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomNavigationStyle = global::Sample.Forms.Droid.Resource.Attribute.bottomNavigationStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomSheetDialogTheme = global::Sample.Forms.Droid.Resource.Attribute.bottomSheetDialogTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.bottomSheetStyle = global::Sample.Forms.Droid.Resource.Attribute.bottomSheetStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxBackgroundColor = global::Sample.Forms.Droid.Resource.Attribute.boxBackgroundColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxBackgroundMode = global::Sample.Forms.Droid.Resource.Attribute.boxBackgroundMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxCollapsedPaddingTop = global::Sample.Forms.Droid.Resource.Attribute.boxCollapsedPaddingTop;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxCornerRadiusBottomEnd = global::Sample.Forms.Droid.Resource.Attribute.boxCornerRadiusBottomEnd;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxCornerRadiusBottomStart = global::Sample.Forms.Droid.Resource.Attribute.boxCornerRadiusBottomStart;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxCornerRadiusTopEnd = global::Sample.Forms.Droid.Resource.Attribute.boxCornerRadiusTopEnd;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxCornerRadiusTopStart = global::Sample.Forms.Droid.Resource.Attribute.boxCornerRadiusTopStart;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxStrokeColor = global::Sample.Forms.Droid.Resource.Attribute.boxStrokeColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.boxStrokeWidth = global::Sample.Forms.Droid.Resource.Attribute.boxStrokeWidth;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonBarButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarNegativeButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonBarNegativeButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarNeutralButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonBarNeutralButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarPositiveButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonBarPositiveButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonBarStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonBarStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonGravity = global::Sample.Forms.Droid.Resource.Attribute.buttonGravity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonIconDimen = global::Sample.Forms.Droid.Resource.Attribute.buttonIconDimen;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonPanelSideLayout = global::Sample.Forms.Droid.Resource.Attribute.buttonPanelSideLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonStyle = global::Sample.Forms.Droid.Resource.Attribute.buttonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonStyleSmall = global::Sample.Forms.Droid.Resource.Attribute.buttonStyleSmall;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonTint = global::Sample.Forms.Droid.Resource.Attribute.buttonTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.buttonTintMode = global::Sample.Forms.Droid.Resource.Attribute.buttonTintMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardBackgroundColor = global::Sample.Forms.Droid.Resource.Attribute.cardBackgroundColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardCornerRadius = global::Sample.Forms.Droid.Resource.Attribute.cardCornerRadius;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardElevation = global::Sample.Forms.Droid.Resource.Attribute.cardElevation;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardMaxElevation = global::Sample.Forms.Droid.Resource.Attribute.cardMaxElevation;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardPreventCornerOverlap = global::Sample.Forms.Droid.Resource.Attribute.cardPreventCornerOverlap;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardUseCompatPadding = global::Sample.Forms.Droid.Resource.Attribute.cardUseCompatPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cardViewStyle = global::Sample.Forms.Droid.Resource.Attribute.cardViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkboxStyle = global::Sample.Forms.Droid.Resource.Attribute.checkboxStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedChip = global::Sample.Forms.Droid.Resource.Attribute.checkedChip;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedIcon = global::Sample.Forms.Droid.Resource.Attribute.checkedIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedIconEnabled = global::Sample.Forms.Droid.Resource.Attribute.checkedIconEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedIconVisible = global::Sample.Forms.Droid.Resource.Attribute.checkedIconVisible;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.checkedTextViewStyle = global::Sample.Forms.Droid.Resource.Attribute.checkedTextViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipBackgroundColor = global::Sample.Forms.Droid.Resource.Attribute.chipBackgroundColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipCornerRadius = global::Sample.Forms.Droid.Resource.Attribute.chipCornerRadius;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipEndPadding = global::Sample.Forms.Droid.Resource.Attribute.chipEndPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipGroupStyle = global::Sample.Forms.Droid.Resource.Attribute.chipGroupStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipIcon = global::Sample.Forms.Droid.Resource.Attribute.chipIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipIconEnabled = global::Sample.Forms.Droid.Resource.Attribute.chipIconEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipIconSize = global::Sample.Forms.Droid.Resource.Attribute.chipIconSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipIconTint = global::Sample.Forms.Droid.Resource.Attribute.chipIconTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipIconVisible = global::Sample.Forms.Droid.Resource.Attribute.chipIconVisible;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipMinHeight = global::Sample.Forms.Droid.Resource.Attribute.chipMinHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipSpacing = global::Sample.Forms.Droid.Resource.Attribute.chipSpacing;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipSpacingHorizontal = global::Sample.Forms.Droid.Resource.Attribute.chipSpacingHorizontal;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipSpacingVertical = global::Sample.Forms.Droid.Resource.Attribute.chipSpacingVertical;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipStandaloneStyle = global::Sample.Forms.Droid.Resource.Attribute.chipStandaloneStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipStartPadding = global::Sample.Forms.Droid.Resource.Attribute.chipStartPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipStrokeColor = global::Sample.Forms.Droid.Resource.Attribute.chipStrokeColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipStrokeWidth = global::Sample.Forms.Droid.Resource.Attribute.chipStrokeWidth;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.chipStyle = global::Sample.Forms.Droid.Resource.Attribute.chipStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIcon = global::Sample.Forms.Droid.Resource.Attribute.closeIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconEnabled = global::Sample.Forms.Droid.Resource.Attribute.closeIconEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconEndPadding = global::Sample.Forms.Droid.Resource.Attribute.closeIconEndPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconSize = global::Sample.Forms.Droid.Resource.Attribute.closeIconSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconStartPadding = global::Sample.Forms.Droid.Resource.Attribute.closeIconStartPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconTint = global::Sample.Forms.Droid.Resource.Attribute.closeIconTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeIconVisible = global::Sample.Forms.Droid.Resource.Attribute.closeIconVisible;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.closeItemLayout = global::Sample.Forms.Droid.Resource.Attribute.closeItemLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapseContentDescription = global::Sample.Forms.Droid.Resource.Attribute.collapseContentDescription;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapsedTitleGravity = global::Sample.Forms.Droid.Resource.Attribute.collapsedTitleGravity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapsedTitleTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.collapsedTitleTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.collapseIcon = global::Sample.Forms.Droid.Resource.Attribute.collapseIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.collectionViewStyle = global::Sample.Forms.Droid.Resource.Attribute.collectionViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.color = global::Sample.Forms.Droid.Resource.Attribute.color;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorAccent = global::Sample.Forms.Droid.Resource.Attribute.colorAccent;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorBackgroundFloating = global::Sample.Forms.Droid.Resource.Attribute.colorBackgroundFloating;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorButtonNormal = global::Sample.Forms.Droid.Resource.Attribute.colorButtonNormal;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlActivated = global::Sample.Forms.Droid.Resource.Attribute.colorControlActivated;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlHighlight = global::Sample.Forms.Droid.Resource.Attribute.colorControlHighlight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorControlNormal = global::Sample.Forms.Droid.Resource.Attribute.colorControlNormal;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorError = global::Sample.Forms.Droid.Resource.Attribute.colorError;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorPrimary = global::Sample.Forms.Droid.Resource.Attribute.colorPrimary;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorPrimaryDark = global::Sample.Forms.Droid.Resource.Attribute.colorPrimaryDark;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorSecondary = global::Sample.Forms.Droid.Resource.Attribute.colorSecondary;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.colorSwitchThumbNormal = global::Sample.Forms.Droid.Resource.Attribute.colorSwitchThumbNormal;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.commitIcon = global::Sample.Forms.Droid.Resource.Attribute.commitIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentDescription = global::Sample.Forms.Droid.Resource.Attribute.contentDescription;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetEnd = global::Sample.Forms.Droid.Resource.Attribute.contentInsetEnd;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetEndWithActions = global::Sample.Forms.Droid.Resource.Attribute.contentInsetEndWithActions;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetLeft = global::Sample.Forms.Droid.Resource.Attribute.contentInsetLeft;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetRight = global::Sample.Forms.Droid.Resource.Attribute.contentInsetRight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetStart = global::Sample.Forms.Droid.Resource.Attribute.contentInsetStart;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentInsetStartWithNavigation = global::Sample.Forms.Droid.Resource.Attribute.contentInsetStartWithNavigation;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPadding = global::Sample.Forms.Droid.Resource.Attribute.contentPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingBottom = global::Sample.Forms.Droid.Resource.Attribute.contentPaddingBottom;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingLeft = global::Sample.Forms.Droid.Resource.Attribute.contentPaddingLeft;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingRight = global::Sample.Forms.Droid.Resource.Attribute.contentPaddingRight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentPaddingTop = global::Sample.Forms.Droid.Resource.Attribute.contentPaddingTop;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.contentScrim = global::Sample.Forms.Droid.Resource.Attribute.contentScrim;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.controlBackground = global::Sample.Forms.Droid.Resource.Attribute.controlBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.coordinatorLayoutStyle = global::Sample.Forms.Droid.Resource.Attribute.coordinatorLayoutStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.cornerRadius = global::Sample.Forms.Droid.Resource.Attribute.cornerRadius;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterEnabled = global::Sample.Forms.Droid.Resource.Attribute.counterEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterMaxLength = global::Sample.Forms.Droid.Resource.Attribute.counterMaxLength;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterOverflowTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.counterOverflowTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.counterTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.counterTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.customNavigationLayout = global::Sample.Forms.Droid.Resource.Attribute.customNavigationLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.defaultQueryHint = global::Sample.Forms.Droid.Resource.Attribute.defaultQueryHint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dialogCornerRadius = global::Sample.Forms.Droid.Resource.Attribute.dialogCornerRadius;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dialogPreferredPadding = global::Sample.Forms.Droid.Resource.Attribute.dialogPreferredPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dialogTheme = global::Sample.Forms.Droid.Resource.Attribute.dialogTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.displayOptions = global::Sample.Forms.Droid.Resource.Attribute.displayOptions;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.divider = global::Sample.Forms.Droid.Resource.Attribute.divider;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerHorizontal = global::Sample.Forms.Droid.Resource.Attribute.dividerHorizontal;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerPadding = global::Sample.Forms.Droid.Resource.Attribute.dividerPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dividerVertical = global::Sample.Forms.Droid.Resource.Attribute.dividerVertical;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.drawableSize = global::Sample.Forms.Droid.Resource.Attribute.drawableSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.drawerArrowStyle = global::Sample.Forms.Droid.Resource.Attribute.drawerArrowStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dropdownListPreferredItemHeight = global::Sample.Forms.Droid.Resource.Attribute.dropdownListPreferredItemHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.dropDownListViewStyle = global::Sample.Forms.Droid.Resource.Attribute.dropDownListViewStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextBackground = global::Sample.Forms.Droid.Resource.Attribute.editTextBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextColor = global::Sample.Forms.Droid.Resource.Attribute.editTextColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.editTextStyle = global::Sample.Forms.Droid.Resource.Attribute.editTextStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.elevation = global::Sample.Forms.Droid.Resource.Attribute.elevation;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.enforceMaterialTheme = global::Sample.Forms.Droid.Resource.Attribute.enforceMaterialTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.enforceTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.enforceTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.errorEnabled = global::Sample.Forms.Droid.Resource.Attribute.errorEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.errorTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.errorTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandActivityOverflowButtonDrawable = global::Sample.Forms.Droid.Resource.Attribute.expandActivityOverflowButtonDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expanded = global::Sample.Forms.Droid.Resource.Attribute.expanded;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleGravity = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleGravity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMargin = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleMargin;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginBottom = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleMarginBottom;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginEnd = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleMarginEnd;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginStart = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleMarginStart;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleMarginTop = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleMarginTop;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.expandedTitleTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.expandedTitleTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabAlignmentMode = global::Sample.Forms.Droid.Resource.Attribute.fabAlignmentMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabCradleMargin = global::Sample.Forms.Droid.Resource.Attribute.fabCradleMargin;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabCradleRoundedCornerRadius = global::Sample.Forms.Droid.Resource.Attribute.fabCradleRoundedCornerRadius;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabCradleVerticalOffset = global::Sample.Forms.Droid.Resource.Attribute.fabCradleVerticalOffset;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabCustomSize = global::Sample.Forms.Droid.Resource.Attribute.fabCustomSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fabSize = global::Sample.Forms.Droid.Resource.Attribute.fabSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollEnabled = global::Sample.Forms.Droid.Resource.Attribute.fastScrollEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollHorizontalThumbDrawable = global::Sample.Forms.Droid.Resource.Attribute.fastScrollHorizontalThumbDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollHorizontalTrackDrawable = global::Sample.Forms.Droid.Resource.Attribute.fastScrollHorizontalTrackDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollVerticalThumbDrawable = global::Sample.Forms.Droid.Resource.Attribute.fastScrollVerticalThumbDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fastScrollVerticalTrackDrawable = global::Sample.Forms.Droid.Resource.Attribute.fastScrollVerticalTrackDrawable;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.firstBaselineToTopHeight = global::Sample.Forms.Droid.Resource.Attribute.firstBaselineToTopHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.floatingActionButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.floatingActionButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.font = global::Sample.Forms.Droid.Resource.Attribute.font;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontFamily = global::Sample.Forms.Droid.Resource.Attribute.fontFamily;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderAuthority = global::Sample.Forms.Droid.Resource.Attribute.fontProviderAuthority;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderCerts = global::Sample.Forms.Droid.Resource.Attribute.fontProviderCerts;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderFetchStrategy = global::Sample.Forms.Droid.Resource.Attribute.fontProviderFetchStrategy;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderFetchTimeout = global::Sample.Forms.Droid.Resource.Attribute.fontProviderFetchTimeout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderPackage = global::Sample.Forms.Droid.Resource.Attribute.fontProviderPackage;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontProviderQuery = global::Sample.Forms.Droid.Resource.Attribute.fontProviderQuery;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontStyle = global::Sample.Forms.Droid.Resource.Attribute.fontStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontVariationSettings = global::Sample.Forms.Droid.Resource.Attribute.fontVariationSettings;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.fontWeight = global::Sample.Forms.Droid.Resource.Attribute.fontWeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.foregroundInsidePadding = global::Sample.Forms.Droid.Resource.Attribute.foregroundInsidePadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.gapBetweenBars = global::Sample.Forms.Droid.Resource.Attribute.gapBetweenBars;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.goIcon = global::Sample.Forms.Droid.Resource.Attribute.goIcon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.headerLayout = global::Sample.Forms.Droid.Resource.Attribute.headerLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.height = global::Sample.Forms.Droid.Resource.Attribute.height;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.helperText = global::Sample.Forms.Droid.Resource.Attribute.helperText;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.helperTextEnabled = global::Sample.Forms.Droid.Resource.Attribute.helperTextEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.helperTextTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.helperTextTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hideMotionSpec = global::Sample.Forms.Droid.Resource.Attribute.hideMotionSpec;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hideOnContentScroll = global::Sample.Forms.Droid.Resource.Attribute.hideOnContentScroll;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hideOnScroll = global::Sample.Forms.Droid.Resource.Attribute.hideOnScroll;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintAnimationEnabled = global::Sample.Forms.Droid.Resource.Attribute.hintAnimationEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintEnabled = global::Sample.Forms.Droid.Resource.Attribute.hintEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hintTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.hintTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.homeAsUpIndicator = global::Sample.Forms.Droid.Resource.Attribute.homeAsUpIndicator;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.homeLayout = global::Sample.Forms.Droid.Resource.Attribute.homeLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.hoveredFocusedTranslationZ = global::Sample.Forms.Droid.Resource.Attribute.hoveredFocusedTranslationZ;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.icon = global::Sample.Forms.Droid.Resource.Attribute.icon;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconEndPadding = global::Sample.Forms.Droid.Resource.Attribute.iconEndPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconGravity = global::Sample.Forms.Droid.Resource.Attribute.iconGravity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconifiedByDefault = global::Sample.Forms.Droid.Resource.Attribute.iconifiedByDefault;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconPadding = global::Sample.Forms.Droid.Resource.Attribute.iconPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconSize = global::Sample.Forms.Droid.Resource.Attribute.iconSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconStartPadding = global::Sample.Forms.Droid.Resource.Attribute.iconStartPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconTint = global::Sample.Forms.Droid.Resource.Attribute.iconTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.iconTintMode = global::Sample.Forms.Droid.Resource.Attribute.iconTintMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.imageButtonStyle = global::Sample.Forms.Droid.Resource.Attribute.imageButtonStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.indeterminateProgressStyle = global::Sample.Forms.Droid.Resource.Attribute.indeterminateProgressStyle;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.initialActivityCount = global::Sample.Forms.Droid.Resource.Attribute.initialActivityCount;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.insetForeground = global::Sample.Forms.Droid.Resource.Attribute.insetForeground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.isLightTheme = global::Sample.Forms.Droid.Resource.Attribute.isLightTheme;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemBackground = global::Sample.Forms.Droid.Resource.Attribute.itemBackground;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemHorizontalPadding = global::Sample.Forms.Droid.Resource.Attribute.itemHorizontalPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemHorizontalTranslationEnabled = global::Sample.Forms.Droid.Resource.Attribute.itemHorizontalTranslationEnabled;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemIconPadding = global::Sample.Forms.Droid.Resource.Attribute.itemIconPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemIconSize = global::Sample.Forms.Droid.Resource.Attribute.itemIconSize;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemIconTint = global::Sample.Forms.Droid.Resource.Attribute.itemIconTint;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemPadding = global::Sample.Forms.Droid.Resource.Attribute.itemPadding;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemSpacing = global::Sample.Forms.Droid.Resource.Attribute.itemSpacing;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextAppearance = global::Sample.Forms.Droid.Resource.Attribute.itemTextAppearance;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextAppearanceActive = global::Sample.Forms.Droid.Resource.Attribute.itemTextAppearanceActive;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextAppearanceInactive = global::Sample.Forms.Droid.Resource.Attribute.itemTextAppearanceInactive;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.itemTextColor = global::Sample.Forms.Droid.Resource.Attribute.itemTextColor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.keylines = global::Sample.Forms.Droid.Resource.Attribute.keylines;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.labelVisibilityMode = global::Sample.Forms.Droid.Resource.Attribute.labelVisibilityMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.lastBaselineToBottomHeight = global::Sample.Forms.Droid.Resource.Attribute.lastBaselineToBottomHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout = global::Sample.Forms.Droid.Resource.Attribute.layout;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layoutManager = global::Sample.Forms.Droid.Resource.Attribute.layoutManager;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_anchor = global::Sample.Forms.Droid.Resource.Attribute.layout_anchor;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_anchorGravity = global::Sample.Forms.Droid.Resource.Attribute.layout_anchorGravity;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_behavior = global::Sample.Forms.Droid.Resource.Attribute.layout_behavior;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_collapseMode = global::Sample.Forms.Droid.Resource.Attribute.layout_collapseMode;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_collapseParallaxMultiplier = global::Sample.Forms.Droid.Resource.Attribute.layout_collapseParallaxMultiplier;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_dodgeInsetEdges = global::Sample.Forms.Droid.Resource.Attribute.layout_dodgeInsetEdges;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_insetEdge = global::Sample.Forms.Droid.Resource.Attribute.layout_insetEdge;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_keyline = global::Sample.Forms.Droid.Resource.Attribute.layout_keyline;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_scrollFlags = global::Sample.Forms.Droid.Resource.Attribute.layout_scrollFlags;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.layout_scrollInterpolator = global::Sample.Forms.Droid.Resource.Attribute.layout_scrollInterpolator;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.liftOnScroll = global::Sample.Forms.Droid.Resource.Attribute.liftOnScroll;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.lineHeight = global::Sample.Forms.Droid.Resource.Attribute.lineHeight;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.lineSpacing = global::Sample.Forms.Droid.Resource.Attribute.lineSpacing;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.listChoiceBackgroundIndicator = global::Sample.Forms.Droid.Resource.Attribute.listChoiceBackgroundIndicator;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.listDividerAlertDialog = global::Sample.Forms.Droid.Resource.Attribute.listDividerAlertDialog;
global::Xamarin.Forms.Platform.Android.Resource.Attribute.listItemLayout = global::Sample.Forms.Droid.Resource.Attribute.listItemLayout;
global::Xamarin.Forms.Platform.Android.Resource.Attribut
gitextract_9s2872fj/
├── .github/
│ └── workflows/
│ └── mainPackage.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── SimpleAuth.Droid.CustomTabs.nuspec
├── SimpleAuth.Facebook.Droid.nuspec
├── SimpleAuth.Facebook.iOS.nuspec
├── SimpleAuth.Google.Droid.nuspec
├── SimpleAuth.Google.iOS.nuspec
├── SimpleAuth.nuspec
├── samples/
│ ├── .nuget/
│ │ └── NuGet.Config
│ ├── Sample.Droid/
│ │ ├── Assets/
│ │ │ └── AboutAssets.txt
│ │ ├── MainActivity.cs
│ │ ├── Properties/
│ │ │ ├── AndroidManifest.xml
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ ├── AboutResources.txt
│ │ │ ├── Resource.Designer.cs
│ │ │ ├── layout/
│ │ │ │ └── Main.axml
│ │ │ └── values/
│ │ │ └── Strings.xml
│ │ └── Sample.Droid.csproj
│ ├── Sample.Forms/
│ │ ├── Sample.Forms/
│ │ │ ├── App.cs
│ │ │ ├── LoginPage.xaml
│ │ │ ├── LoginPage.xaml.cs
│ │ │ ├── Sample.Forms.projitems
│ │ │ └── Sample.Forms.shproj
│ │ ├── Sample.Forms.Droid/
│ │ │ ├── Assets/
│ │ │ │ └── AboutAssets.txt
│ │ │ ├── MainActivity.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Resources/
│ │ │ │ ├── AboutResources.txt
│ │ │ │ └── Resource.Designer.cs
│ │ │ ├── Sample.Forms.Droid.csproj
│ │ │ └── SimpleAuth.keystore
│ │ ├── Sample.Forms.UWP/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Default.rd.xml
│ │ │ ├── Sample.Forms.UWP.csproj
│ │ │ ├── Sample.Forms.UWP.nuget.props
│ │ │ └── Sample.Forms.UWP.nuget.targets
│ │ ├── Sample.Forms.WinPhone/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.Forms.WinPhone.csproj
│ │ │ └── packages.config
│ │ ├── Sample.Forms.Windows/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.Forms.Windows.csproj
│ │ │ └── packages.config
│ │ └── Sample.Forms.iOS/
│ │ ├── AppDelegate.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ └── LaunchScreen.storyboard
│ │ ├── Sample.Forms.iOS.csproj
│ │ ├── iTunesArtwork
│ │ └── iTunesArtwork@2x
│ ├── Sample.Mac/
│ │ ├── AppDelegate.cs
│ │ ├── AppDelegate.designer.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── MainMenu.xib
│ │ ├── MainWindow.cs
│ │ ├── MainWindow.designer.cs
│ │ ├── MainWindow.xib
│ │ ├── MainWindowController.cs
│ │ ├── MainWindowController.designer.cs
│ │ ├── Resources/
│ │ │ └── Images.xcassets/
│ │ │ └── AppIcons.appiconset/
│ │ │ └── Contents.json
│ │ └── Sample.Mac.csproj
│ ├── Sample.Maui/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── LoginPage.xaml
│ │ ├── LoginPage.xaml.cs
│ │ ├── MauiProgram.cs
│ │ ├── Platforms/
│ │ │ ├── Android/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── MainActivity.cs
│ │ │ │ ├── MainApplication.cs
│ │ │ │ └── Resources/
│ │ │ │ └── values/
│ │ │ │ └── colors.xml
│ │ │ ├── MacCatalyst/
│ │ │ │ ├── AppDelegate.cs
│ │ │ │ ├── Info.plist
│ │ │ │ └── Program.cs
│ │ │ ├── Windows/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── Package.appxmanifest
│ │ │ │ └── app.manifest
│ │ │ └── iOS/
│ │ │ ├── AppDelegate.cs
│ │ │ ├── Info.plist
│ │ │ └── Program.cs
│ │ ├── Properties/
│ │ │ └── launchSettings.json
│ │ ├── Resources/
│ │ │ ├── Raw/
│ │ │ │ └── AboutAssets.txt
│ │ │ └── Styles/
│ │ │ ├── Colors.xaml
│ │ │ └── Styles.xaml
│ │ └── Sample.Maui.csproj
│ ├── Sample.iOS/
│ │ ├── AppDelegate.cs
│ │ ├── Entitlements.plist
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ └── LaunchScreen.xib
│ │ ├── Sample.iOS.csproj
│ │ └── Spinner.cs
│ ├── SimpleAuth.Samples.Windows.sln
│ └── SimpleAuth.Samples.sln
└── src/
├── .nuget/
│ └── NuGet.Config
├── SimpleAuth/
│ ├── Api/
│ │ ├── Account.cs
│ │ ├── Api.cs
│ │ ├── ApiResponse.cs
│ │ ├── Attributes.cs
│ │ ├── AuthenticatedApi.cs
│ │ ├── Authenticator.cs
│ │ ├── JSonExtensions.cs
│ │ └── WebAuthenticator.cs
│ ├── ApiKey/
│ │ ├── ApiKeyApi.cs
│ │ └── AuthLocation.cs
│ ├── BasicAuth/
│ │ ├── BasicAuthAccount.cs
│ │ ├── BasicAuthApi.cs
│ │ ├── BasicAuthAuthenticator.cs
│ │ └── IBasicAuthenicator.cs
│ ├── Converters/
│ │ ├── Converter.cs
│ │ └── JsonConverter.cs
│ ├── Helpers/
│ │ ├── CookieHolder.cs
│ │ ├── IAuthStorage.cs
│ │ ├── Resolver.cs
│ │ └── UrlUtility.cs
│ ├── OAuth/
│ │ ├── OAuthAccount.cs
│ │ ├── OAuthApi.cs
│ │ ├── OAuthAuthenticator.cs
│ │ ├── OAuthPasswordApi.cs
│ │ ├── OauthApiKeyApi.cs
│ │ └── OauthResponse.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Providers/
│ │ ├── ADFS.cs
│ │ ├── Amazon.cs
│ │ ├── AzureB2CApi.cs
│ │ ├── DropBox.cs
│ │ ├── Facebook.cs
│ │ ├── FitBitApi.cs
│ │ ├── Github.cs
│ │ ├── Google.cs
│ │ ├── Instagram.cs
│ │ ├── LinkedIn.cs
│ │ ├── MicrosoftLiveConnectApi.cs
│ │ └── Twitter.cs
│ ├── SimpleAuth.projitems
│ └── SimpleAuth.shproj
├── SimpleAuth.Droid/
│ ├── ActivityStateRepository.cs
│ ├── App.config
│ ├── AuthStorage.cs
│ ├── LoginActvity.cs
│ ├── Native.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.Designer.cs
│ │ ├── Values/
│ │ │ └── Strings.xml
│ │ └── layout/
│ │ └── login.axml
│ ├── SimpleAuth.Droid.csproj
│ ├── TypeForwarded.cs
│ └── WebAuthenticatorActivity.cs
├── SimpleAuth.Droid.CustomTabs/
│ ├── ActivityLifecycleCallbackManager.cs
│ ├── NativeCustomTabsAuthenticator.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ └── Resource.Designer.cs
│ ├── SimpleAuth.Droid.CustomTabs.csproj
│ └── SimpleAuthCallbackActivity.cs
├── SimpleAuth.Facebook.Droid/
│ ├── ActivityLifecycleManager.cs
│ ├── Facebook.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.designer.cs
│ │ └── values/
│ │ └── Strings.xml
│ └── SimpleAuth.Facebook.Droid.csproj
├── SimpleAuth.Facebook.iOS/
│ ├── Facebook.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── SimpleAuth.Facebook.iOS.csproj
├── SimpleAuth.Google.Droid/
│ ├── ActivityLifecycleManager.cs
│ ├── Google.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── AboutResources.txt
│ │ ├── Resource.designer.cs
│ │ └── values/
│ │ └── Strings.xml
│ └── SimpleAuth.Google.Droid.csproj
├── SimpleAuth.Google.iOS/
│ ├── Google.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── SimpleAuth.Google.iOS.csproj
├── SimpleAuth.Mac/
│ ├── AppleEventsHelper.cs
│ ├── AuthStorage.cs
│ ├── Entitlements.plist
│ ├── Native.cs
│ ├── NativeSafariAuthenticator.cs
│ ├── SimpleAuth.Mac.csproj
│ └── WebAuthenticator.cs
├── SimpleAuth.Mac.sln
├── SimpleAuth.Net/
│ ├── AuthStorage.cs
│ └── SimpleAuth.Net.csproj
├── SimpleAuth.Net6/
│ └── SimpleAuth-net6.csproj
├── SimpleAuth.Tests/
│ ├── Helpers/
│ │ ├── FakeHttpHandler.cs
│ │ ├── InMemoryAuthStorage.cs
│ │ └── RequestMessage.cs
│ ├── OAuth/
│ │ ├── OAuthApiTests.cs
│ │ ├── OAuthData.cs
│ │ └── OAuthTestApi.cs
│ └── SimpleAuth.Tests.csproj
├── SimpleAuth.UWP/
│ ├── AuthStorage.cs
│ ├── CustomWebAuthenticationBroker.cs
│ ├── CustomWebAuthenticationResult.cs
│ ├── SimpleAuth.UWP.csproj
│ ├── SimpleAuth.UWP.nuget.props
│ └── WebAuthenticatorWebView.cs
├── SimpleAuth.iOS/
│ ├── App.config
│ ├── AuthStorage.cs
│ ├── BasicAuthController.cs
│ ├── Entitlements.plist
│ ├── Native.cs
│ ├── NativeSafariAuthenticator.cs
│ ├── SimpleAuth.iOS.csproj
│ ├── Twitter.cs
│ ├── TypeForwarded.cs
│ ├── WebAuthenticatorViewController.cs
│ └── WebAuthenticatorWindow.cs
└── SimpleAuth.sln
SYMBOL INDEX (848 symbols across 113 files)
FILE: samples/Sample.Droid/MainActivity.cs
class MainActivity (line 17) | [Activity (Label = "Sample.Droid", MainLauncher = true, Icon = "@drawabl...
method OnCreate (line 19) | protected override void OnCreate (Bundle bundle)
method AuthAsync (line 69) | async Task<Account> AuthAsync (OAuthApi api)
method OnActivityResult (line 88) | protected override void OnActivityResult (int requestCode, Result resu...
FILE: samples/Sample.Droid/Resources/Resource.Designer.cs
class Resource (line 17) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 21) | static Resource()
method UpdateIdValues (line 26) | public static void UpdateIdValues()
class Attribute (line 311) | public partial class Attribute
method Attribute (line 395) | static Attribute()
method Attribute (line 400) | private Attribute()
class Color (line 405) | public partial class Color
method Color (line 462) | static Color()
method Color (line 467) | private Color()
class Dimension (line 472) | public partial class Dimension
method Dimension (line 553) | static Dimension()
method Dimension (line 558) | private Dimension()
class Drawable (line 563) | public partial class Drawable
method Drawable (line 668) | static Drawable()
method Drawable (line 673) | private Drawable()
class Id (line 678) | public partial class Id
method Id (line 873) | static Id()
method Id (line 878) | private Id()
class Integer (line 883) | public partial class Integer
method Integer (line 895) | static Integer()
method Integer (line 900) | private Integer()
class Layout (line 905) | public partial class Layout
method Layout (line 959) | static Layout()
method Layout (line 964) | private Layout()
class String (line 969) | public partial class String
method String (line 1044) | static String()
method String (line 1049) | private String()
class Style (line 1054) | public partial class Style
method Style (line 1096) | static Style()
method Style (line 1101) | private Style()
class Styleable (line 1106) | public partial class Styleable
method Styleable (line 1328) | static Styleable()
method Styleable (line 1333) | private Styleable()
FILE: samples/Sample.Forms/Sample.Forms.Droid/MainActivity.cs
class MainActivity (line 13) | [Activity (Label = "Sample.Forms", Icon = "@drawable/icon", MainLauncher...
method OnCreate (line 16) | protected override void OnCreate (Bundle bundle)
method OnActivityResult (line 24) | protected override void OnActivityResult (int requestCode, Result resu...
FILE: samples/Sample.Forms/Sample.Forms.Droid/Resources/Resource.Designer.cs
class Resource (line 17) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 21) | static Resource()
method UpdateIdValues (line 26) | public static void UpdateIdValues()
class Animation (line 5171) | public partial class Animation
method Animation (line 5234) | static Animation()
method Animation (line 5239) | private Animation()
class Animator (line 5244) | public partial class Animator
method Animator (line 5277) | static Animator()
method Animator (line 5282) | private Animator()
class Attribute (line 5287) | public partial class Attribute
method Attribute (line 6742) | static Attribute()
method Attribute (line 6747) | private Attribute()
class Boolean (line 6752) | public partial class Boolean
method Boolean (line 6767) | static Boolean()
method Boolean (line 6772) | private Boolean()
class Color (line 6777) | public partial class Color
method Color (line 7209) | static Color()
method Color (line 7214) | private Color()
class Dimension (line 7219) | public partial class Dimension
method Dimension (line 7885) | static Dimension()
method Dimension (line 7890) | private Dimension()
class Drawable (line 7895) | public partial class Drawable
method Drawable (line 8300) | static Drawable()
method Drawable (line 8305) | private Drawable()
class Id (line 8310) | public partial class Id
method Id (line 8949) | static Id()
method Id (line 8954) | private Id()
class Integer (line 8959) | public partial class Integer
method Integer (line 9010) | static Integer()
method Integer (line 9015) | private Integer()
class Interpolator (line 9020) | public partial class Interpolator
method Interpolator (line 9035) | static Interpolator()
method Interpolator (line 9040) | private Interpolator()
class Layout (line 9045) | public partial class Layout
method Layout (line 9255) | static Layout()
method Layout (line 9260) | private Layout()
class String (line 9265) | public partial class String
method String (line 9487) | static String()
method String (line 9492) | private String()
class Style (line 9497) | public partial class Style
method Style (line 11015) | static Style()
method Style (line 11020) | private Style()
class Styleable (line 11025) | public partial class Styleable
method Styleable (line 13997) | static Styleable()
method Styleable (line 14002) | private Styleable()
FILE: samples/Sample.Forms/Sample.Forms.UWP/App.xaml.cs
class App (line 23) | sealed partial class App : Application
method App (line 29) | public App()
method OnLaunched (line 40) | protected override void OnLaunched(LaunchActivatedEventArgs e)
method OnNavigationFailed (line 88) | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
method OnSuspending (line 100) | private void OnSuspending(object sender, SuspendingEventArgs e)
FILE: samples/Sample.Forms/Sample.Forms.UWP/MainPage.xaml.cs
class MainPage (line 18) | public sealed partial class MainPage
method MainPage (line 20) | public MainPage()
FILE: samples/Sample.Forms/Sample.Forms.WinPhone/App.xaml.cs
class App (line 26) | public sealed partial class App : Application
method App (line 34) | public App()
method OnLaunched (line 46) | protected override void OnLaunched(LaunchActivatedEventArgs e)
method RootFrame_FirstNavigated (line 111) | private void RootFrame_FirstNavigated(object sender, NavigationEventAr...
method OnSuspending (line 125) | private void OnSuspending(object sender, SuspendingEventArgs e)
FILE: samples/Sample.Forms/Sample.Forms.WinPhone/MainPage.xaml.cs
class MainPage (line 23) | public sealed partial class MainPage
method MainPage (line 25) | public MainPage()
method OnNavigatedTo (line 39) | protected override void OnNavigatedTo(NavigationEventArgs e)
FILE: samples/Sample.Forms/Sample.Forms.Windows/App.xaml.cs
class App (line 26) | public sealed partial class App : Application
method App (line 32) | public App()
method OnLaunched (line 44) | protected override void OnLaunched(LaunchActivatedEventArgs e)
method OnSuspending (line 98) | private void OnSuspending(object sender, SuspendingEventArgs e)
FILE: samples/Sample.Forms/Sample.Forms.Windows/MainPage.xaml.cs
class MainPage (line 18) | public sealed partial class MainPage
method MainPage (line 20) | public MainPage()
FILE: samples/Sample.Forms/Sample.Forms.iOS/AppDelegate.cs
class AppDelegate (line 13) | [Register("AppDelegate")]
method FinishedLaunching (line 23) | public override bool FinishedLaunching(UIApplication app, NSDictionary...
method OpenUrl (line 31) | public override bool OpenUrl (UIApplication app, NSUrl url, NSDictiona...
FILE: samples/Sample.Forms/Sample.Forms.iOS/Main.cs
class Application (line 10) | public class Application
method Main (line 13) | static void Main(string[] args)
FILE: samples/Sample.Forms/Sample.Forms/App.cs
class App (line 12) | public class App : Application
method App (line 15) | public App ()
method CreateApiButton (line 78) | Button CreateApiButton(AuthenticatedApi api)
method OnStart (line 103) | protected override void OnStart()
method OnSleep (line 108) | protected override void OnSleep()
method OnResume (line 113) | protected override void OnResume()
FILE: samples/Sample.Forms/Sample.Forms/LoginPage.xaml.cs
class LoginPage (line 25) | public partial class LoginPage : ContentPage
method LoginPage (line 28) | public LoginPage (IBasicAuthenicator authenticator)
method Handle_Clicked (line 34) | async void Handle_Clicked (object sender, System.EventArgs e)
method OnBackButtonPressed (line 58) | protected override bool OnBackButtonPressed ()
FILE: samples/Sample.Mac/AppDelegate.cs
class AppDelegate (line 6) | public partial class AppDelegate : NSApplicationDelegate
method AppDelegate (line 11) | public AppDelegate()
method DidFinishLaunching (line 15) | public override void DidFinishLaunching(NSNotification notification)
method WillTerminate (line 21) | public override void WillTerminate(NSNotification notification)
FILE: samples/Sample.Mac/AppDelegate.designer.cs
class AppDelegate (line 5) | [global::Foundation.Register("AppDelegate")]
method ReleaseDesignerOutlets (line 8) | void ReleaseDesignerOutlets()
FILE: samples/Sample.Mac/Main.cs
class MainClass (line 5) | static class MainClass
method Main (line 7) | static void Main(string[] args)
FILE: samples/Sample.Mac/MainWindow.cs
class MainWindow (line 8) | public partial class MainWindow : NSWindow
method MainWindow (line 10) | public MainWindow(IntPtr handle)
method MainWindow (line 15) | [Export("initWithCoder:")]
method AwakeFromNib (line 21) | public override void AwakeFromNib()
FILE: samples/Sample.Mac/MainWindow.designer.cs
class MainWindow (line 3) | [global::Foundation.Register("MainWindow")]
FILE: samples/Sample.Mac/MainWindowController.cs
class MainWindowController (line 11) | public partial class MainWindowController : NSWindowController
method MainWindowController (line 15) | public MainWindowController(IntPtr handle)
method MainWindowController (line 20) | [Export("initWithCoder:")]
method MainWindowController (line 26) | public MainWindowController()
method AwakeFromNib (line 35) | public override void AwakeFromNib()
method Login (line 55) | partial void Login (Foundation.NSObject sender)
method Login (line 61) | async void Login()
FILE: samples/Sample.Mac/MainWindowController.designer.cs
class MainWindowController (line 12) | [Register ("MainWindowController")]
method Login (line 18) | [Action ("Login:")]
method ReleaseDesignerOutlets (line 21) | void ReleaseDesignerOutlets ()
FILE: samples/Sample.Maui/App.xaml.cs
class App (line 6) | public partial class App : Application
method App (line 9) | public App()
method CreateApiButton (line 72) | Button CreateApiButton(AuthenticatedApi api)
FILE: samples/Sample.Maui/LoginPage.xaml.cs
class LoginPage (line 5) | public partial class LoginPage : ContentPage
method LoginPage (line 8) | public LoginPage(IBasicAuthenicator authenticator)
method Handle_Clicked (line 14) | async void Handle_Clicked(object sender, System.EventArgs e)
method OnBackButtonPressed (line 43) | protected override bool OnBackButtonPressed()
FILE: samples/Sample.Maui/MauiProgram.cs
class MauiProgram (line 3) | public static class MauiProgram
method CreateMauiApp (line 5) | public static MauiApp CreateMauiApp()
FILE: samples/Sample.Maui/Platforms/Android/MainActivity.cs
class MainActivity (line 7) | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, Config...
FILE: samples/Sample.Maui/Platforms/Android/MainApplication.cs
class MainApplication (line 6) | [Application]
method MainApplication (line 9) | public MainApplication(IntPtr handle, JniHandleOwnership ownership)
method CreateMauiApp (line 14) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: samples/Sample.Maui/Platforms/MacCatalyst/AppDelegate.cs
class AppDelegate (line 5) | [Register("AppDelegate")]
method CreateMauiApp (line 8) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: samples/Sample.Maui/Platforms/MacCatalyst/Program.cs
class Program (line 6) | public class Program
method Main (line 9) | static void Main(string[] args)
FILE: samples/Sample.Maui/Platforms/Windows/App.xaml.cs
class App (line 11) | public partial class App : MauiWinUIApplication
method App (line 17) | public App()
method CreateMauiApp (line 22) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: samples/Sample.Maui/Platforms/iOS/AppDelegate.cs
class AppDelegate (line 5) | [Register("AppDelegate")]
method CreateMauiApp (line 8) | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiAp...
FILE: samples/Sample.Maui/Platforms/iOS/Program.cs
class Program (line 6) | public class Program
method Main (line 9) | static void Main(string[] args)
FILE: samples/Sample.iOS/AppDelegate.cs
class AppDelegate (line 12) | [Register ("AppDelegate")]
method FinishedLaunching (line 26) | public override bool FinishedLaunching (UIApplication application, NSD...
method OpenUrl (line 127) | public override bool OpenUrl (UIApplication app, NSUrl url, NSDictiona...
method RunWithSpinner (line 133) | async Task RunWithSpinner (string status, Func<Task> task)
method ShowAlert (line 146) | void ShowAlert (string title, string message)
method OnResignActivation (line 156) | public override void OnResignActivation (UIApplication application)
method DidEnterBackground (line 164) | public override void DidEnterBackground (UIApplication application)
method WillEnterForeground (line 170) | public override void WillEnterForeground (UIApplication application)
method OnActivated (line 176) | public override void OnActivated (UIApplication application)
method WillTerminate (line 182) | public override void WillTerminate (UIApplication application)
FILE: samples/Sample.iOS/Main.cs
class Application (line 5) | public class Application
method Main (line 8) | static void Main(string[] args)
FILE: samples/Sample.iOS/Spinner.cs
class Spinner (line 5) | public class Spinner : IDisposable
method Spinner (line 7) | public Spinner (string title)
method Dispose (line 14) | public void Dispose ()
FILE: src/SimpleAuth.Droid.CustomTabs/ActivityLifecycleCallbackManager.cs
class ActivityLifecycleCallbackManager (line 8) | internal class ActivityLifecycleCallbackManager : Java.Lang.Object, glob...
method OnActivityCreated (line 12) | public void OnActivityCreated(Activity activity, Bundle savedInstanceS...
method OnActivityDestroyed (line 17) | public void OnActivityDestroyed(Activity activity)
method OnActivityPaused (line 23) | public void OnActivityPaused(Activity activity)
method OnActivityResumed (line 27) | public void OnActivityResumed(Activity activity)
method OnActivitySaveInstanceState (line 34) | public void OnActivitySaveInstanceState(Activity activity, Bundle outS...
method OnActivityStarted (line 38) | public void OnActivityStarted(Activity activity)
method OnActivityStopped (line 43) | public void OnActivityStopped(Activity activity)
FILE: src/SimpleAuth.Droid.CustomTabs/NativeCustomTabsAuthenticator.cs
class NativeCustomTabsAuthenticator (line 16) | public class NativeCustomTabsAuthenticator
method Activate (line 21) | public static void Activate(Android.App.Application app)
method OnResume (line 34) | public static void OnResume()
method OnActivityResult (line 46) | public static bool OnActivityResult(int requestCode, Result resultCode...
method ShowAuthenticator (line 74) | public static async void ShowAuthenticator(WebAuthenticator authentica...
method BeginAuthentication (line 79) | static async Task BeginAuthentication(WebAuthenticator authenticator)
class CustomTabsAuthSession (line 120) | class CustomTabsAuthSession
FILE: src/SimpleAuth.Droid.CustomTabs/Resources/Resource.Designer.cs
class Resource (line 18) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 22) | static Resource()
class Attribute (line 27) | public partial class Attribute
method Attribute (line 93) | static Attribute()
method Attribute (line 98) | private Attribute()
class Color (line 103) | public partial class Color
method Color (line 130) | static Color()
method Color (line 135) | private Color()
class Dimension (line 140) | public partial class Dimension
method Dimension (line 215) | static Dimension()
method Dimension (line 220) | private Dimension()
class Drawable (line 225) | public partial class Drawable
method Drawable (line 264) | static Drawable()
method Drawable (line 269) | private Drawable()
class Id (line 274) | public partial class Id
method Id (line 433) | static Id()
method Id (line 438) | private Id()
class Integer (line 443) | public partial class Integer
method Integer (line 449) | static Integer()
method Integer (line 454) | private Integer()
class Layout (line 459) | public partial class Layout
method Layout (line 489) | static Layout()
method Layout (line 494) | private Layout()
class String (line 499) | public partial class String
method String (line 511) | static String()
method String (line 516) | private String()
class Style (line 521) | public partial class Style
method Style (line 548) | static Style()
method Style (line 553) | private Style()
class Styleable (line 558) | public partial class Styleable
method Styleable (line 750) | static Styleable()
method Styleable (line 755) | private Styleable()
FILE: src/SimpleAuth.Droid.CustomTabs/SimpleAuthCallbackActivity.cs
class SimpleAuthCallbackActivity (line 15) | public class SimpleAuthCallbackActivity : Activity
method OnCreate (line 17) | protected override void OnCreate(Android.OS.Bundle bundle)
FILE: src/SimpleAuth.Droid/ActivityStateRepository.cs
class ActivityStateRepository (line 11) | public class ActivityStateRepository<T>
method Add (line 17) | public string Add(T state)
method Remove (line 28) | public T Remove(string key)
FILE: src/SimpleAuth.Droid/AuthStorage.cs
class AuthStorage (line 11) | [Preserve (AllMembers = true)]
method SetSecured (line 15) | public void SetSecured(string key,string value,string clientId,string ...
method GetSecured (line 22) | public string GetSecured(string id,string clientId, string service,str...
method LoadKeyStore (line 46) | static KeyStore LoadKeyStore(string clientId,string key)
method Save (line 76) | static void Save(string clientid,string service,KeyStore ks)
class SecretAccount (line 88) | class SecretAccount : Java.Lang.Object, ISecretKey
method SecretAccount (line 91) | public SecretAccount(string data)
method GetEncoded (line 95) | public byte[] GetEncoded()
method LoadEmptyKeyStore (line 120) | static void LoadEmptyKeyStore(KeyStore ks, char[] password)
FILE: src/SimpleAuth.Droid/LoginActvity.cs
class LoginActivity (line 32) | [Activity (Label = "Web Authenticator")]
class State (line 37) | internal class State : Java.Lang.Object
method OnCreate (line 48) | protected override void OnCreate (Bundle savedInstanceState)
method OnBackPressed (line 85) | public override void OnBackPressed ()
method OnRetainNonConfigurationInstance (line 91) | public override Java.Lang.Object OnRetainNonConfigurationInstance ()
method OnSaveInstanceState (line 96) | protected override void OnSaveInstanceState (Bundle outState)
FILE: src/SimpleAuth.Droid/Native.cs
class Native (line 21) | public static class Native
method OnActivityResult (line 23) | public static bool OnActivityResult (int requestCode, Result resultCod...
method RegisterCallBack (line 34) | public static void RegisterCallBack (string provider, Func<int, Result...
FILE: src/SimpleAuth.Droid/Resources/Resource.Designer.cs
class Resource (line 18) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 22) | static Resource()
class Attribute (line 27) | public partial class Attribute
method Attribute (line 30) | static Attribute()
method Attribute (line 35) | private Attribute()
class Id (line 40) | public partial class Id
method Id (line 52) | static Id()
method Id (line 57) | private Id()
class Layout (line 62) | public partial class Layout
method Layout (line 68) | static Layout()
method Layout (line 73) | private Layout()
class String (line 78) | public partial class String
method String (line 87) | static String()
method String (line 92) | private String()
FILE: src/SimpleAuth.Droid/WebAuthenticatorActivity.cs
class WebAuthenticatorActivity (line 29) | [Activity(Label = "Web Authenticator")]
class State (line 35) | public class State : Java.Lang.Object
method OnCreate (line 43) | protected override void OnCreate(Bundle savedInstanceState)
method MonitorAuthenticator (line 95) | async Task MonitorAuthenticator()
method BeginLoadingInitialUrl (line 113) | async Task BeginLoadingInitialUrl()
method RealLoading (line 123) | async Task RealLoading()
method LoadCookies (line 145) | void LoadCookies ()
method ClearCookies (line 149) | public void ClearCookies()
method OnBackPressed (line 154) | public override void OnBackPressed()
method OnRetainNonConfigurationInstance (line 160) | public override Java.Lang.Object OnRetainNonConfigurationInstance()
method OnSaveInstanceState (line 165) | protected override void OnSaveInstanceState(Bundle outState)
method BeginProgress (line 171) | void BeginProgress(string message)
method EndProgress (line 176) | void EndProgress()
class Client (line 181) | class Client : WebViewClient
method Client (line 187) | public Client(WebAuthenticatorActivity activity)
method ShouldOverrideUrlLoading (line 192) | [Obsolete]
method OnPageStarted (line 206) | public override void OnPageStarted(WebView view, string url, Android...
method OnPageFinished (line 213) | public override void OnPageFinished(WebView view, string url)
method GetCookies (line 220) | System.Net.Cookie[] GetCookies(string url)
class SslCertificateEqualityComparer (line 246) | class SslCertificateEqualityComparer
method Equals (line 249) | public bool Equals(SslCertificate x, SslCertificate y)
method Equals (line 254) | bool Equals(SslCertificate.DName x, SslCertificate.DName y)
method GetHashCode (line 263) | public int GetHashCode(SslCertificate obj)
method GetHashCode (line 275) | int GetHashCode(SslCertificate.DName dname)
method OnReceivedSslError (line 281) | public override void OnReceivedSslError(WebView view, SslErrorHandle...
method UpdateInProgressHandlers (line 324) | void UpdateInProgressHandlers(SslCertificate certificate, Action<Ssl...
FILE: src/SimpleAuth.Facebook.Droid/ActivityLifecycleManager.cs
class ActivityLifecycleManager (line 8) | class ActivityLifecycleManager : Java.Lang.Object, global::Android.App.A...
method OnActivityCreated (line 12) | public void OnActivityCreated(Activity activity, Bundle savedInstanceS...
method OnActivityDestroyed (line 16) | public void OnActivityDestroyed(Activity activity)
method OnActivityPaused (line 20) | public void OnActivityPaused(Activity activity)
method OnActivityResumed (line 24) | public void OnActivityResumed(Activity activity)
method OnActivitySaveInstanceState (line 29) | public void OnActivitySaveInstanceState(Activity activity, Bundle outS...
method OnActivityStarted (line 33) | public void OnActivityStarted(Activity activity)
method OnActivityStopped (line 37) | public void OnActivityStopped(Activity activity)
FILE: src/SimpleAuth.Facebook.Droid/Facebook.cs
class Facebook (line 10) | public class Facebook
method Init (line 12) | public static void Init(Android.App.Application app, bool requestPubli...
method Uninit (line 24) | public static void Uninit(Android.App.Application app)
method OnActivityResult (line 29) | public static bool OnActivityResult(int requestCode, Result resultCode...
method Login (line 40) | public static async void Login(WebAuthenticator authenticator)
method Logout (line 86) | public static void Logout()
class FbCallbackHandler (line 92) | class FbCallbackHandler : Java.Lang.Object, IFacebookCallback
method Reset (line 96) | public void Reset()
method OnCancel (line 113) | public void OnCancel()
method OnError (line 118) | public void OnError(FacebookException ex)
method OnSuccess (line 123) | public void OnSuccess(Java.Lang.Object data)
FILE: src/SimpleAuth.Facebook.Droid/Resources/Resource.designer.cs
class Resource (line 18) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 22) | static Resource()
class Animation (line 27) | public partial class Animation
method Animation (line 102) | static Animation()
method Animation (line 107) | private Animation()
class Attribute (line 112) | public partial class Attribute
method Attribute (line 1048) | static Attribute()
method Attribute (line 1053) | private Attribute()
class Boolean (line 1058) | public partial class Boolean
method Boolean (line 1070) | static Boolean()
method Boolean (line 1075) | private Boolean()
class Color (line 1080) | public partial class Color
method Color (line 1401) | static Color()
method Color (line 1406) | private Color()
class Dimension (line 1411) | public partial class Dimension
method Dimension (line 1840) | static Dimension()
method Dimension (line 1845) | private Dimension()
class Drawable (line 1850) | public partial class Drawable
method Drawable (line 2234) | static Drawable()
method Drawable (line 2239) | private Drawable()
class Id (line 2244) | public partial class Id
method Id (line 2889) | static Id()
method Id (line 2894) | private Id()
class Integer (line 2899) | public partial class Integer
method Integer (line 2917) | static Integer()
method Integer (line 2922) | private Integer()
class Interpolator (line 2927) | public partial class Interpolator
method Interpolator (line 2951) | static Interpolator()
method Interpolator (line 2956) | private Interpolator()
class Layout (line 2961) | public partial class Layout
method Layout (line 3132) | static Layout()
method Layout (line 3137) | private Layout()
class String (line 3142) | public partial class String
method String (line 3322) | static String()
method String (line 3327) | private String()
class Style (line 3332) | public partial class Style
method Style (line 4433) | static Style()
method Style (line 4438) | private Style()
class Styleable (line 4443) | public partial class Styleable
method Styleable (line 6427) | static Styleable()
method Styleable (line 6432) | private Styleable()
class Xml (line 6437) | public partial class Xml
method Xml (line 6443) | static Xml()
method Xml (line 6448) | private Xml()
FILE: src/SimpleAuth.Facebook.iOS/Facebook.cs
class Facebook (line 12) | public static class Facebook
method Init (line 15) | public static void Init(UIKit.UIApplication app, Foundation.NSDictiona...
method Callback (line 24) | private static bool Callback(UIApplication application, NSUrl url, NSD...
method OpenUrl (line 33) | public static bool OpenUrl(UIApplication app, NSUrl url, string source...
method OpenUrl (line 38) | public static bool OpenUrl (UIApplication app, NSUrl url, NSDictionary...
method Login (line 43) | public static async void Login (WebAuthenticator authenticator)
method Logout (line 84) | public static void Logout()
FILE: src/SimpleAuth.Google.Droid/ActivityLifecycleManager.cs
class ActivityLifecycleManager (line 8) | class ActivityLifecycleManager : Java.Lang.Object, global::Android.App.A...
method OnActivityCreated (line 12) | public void OnActivityCreated(Activity activity, Bundle savedInstanceS...
method OnActivityDestroyed (line 17) | public void OnActivityDestroyed(Activity activity)
method OnActivityPaused (line 21) | public void OnActivityPaused(Activity activity)
method OnActivityResumed (line 25) | public void OnActivityResumed(Activity activity)
method OnActivitySaveInstanceState (line 30) | public void OnActivitySaveInstanceState(Activity activity, Bundle outS...
method OnActivityStarted (line 34) | public void OnActivityStarted(Activity activity)
method OnActivityStopped (line 38) | public void OnActivityStopped(Activity activity)
FILE: src/SimpleAuth.Google.Droid/Google.cs
class Google (line 16) | public class Google
method Init (line 20) | public static void Init(global::Android.App.Application app)
method Uninit (line 30) | public static void Uninit(global::Android.App.Application app)
method LogOut (line 35) | static async void LogOut(string clientId, string clientsecret)
method Login (line 42) | static async void Login(WebAuthenticator authenticator)
method OnActivityResult (line 131) | public static bool OnActivityResult(int requestCode, Result result, In...
class GoogleSignInProvider (line 154) | internal class GoogleSignInProvider : Java.Lang.Object, GoogleApiClien...
method FoundResult (line 161) | public void FoundResult(GoogleSignInResult result)
method Authenticate (line 167) | public async Task<GoogleSignInResult> Authenticate(GoogleAuthenticat...
method CheckGooglePlayServices (line 215) | void CheckGooglePlayServices(Activity activity)
method CheckNewGooglePlayServices (line 229) | void CheckNewGooglePlayServices(Activity activity)
method CheckOldGooglePlayServices (line 249) | void CheckOldGooglePlayServices(Activity activity)
method SignOut (line 268) | public async Task<bool> SignOut(string serverClientId)
method OnConnectionFailed (line 297) | public void OnConnectionFailed(ConnectionResult result)
method Canceled (line 307) | public void Canceled()
method OnConnected (line 312) | public void OnConnected(Bundle connectionHint)
method OnConnectionSuspended (line 318) | public void OnConnectionSuspended(int cause)
FILE: src/SimpleAuth.Google.Droid/Resources/Resource.designer.cs
class Resource (line 18) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android...
method Resource (line 22) | static Resource()
class Attribute (line 27) | public partial class Attribute
method Attribute (line 111) | static Attribute()
method Attribute (line 116) | private Attribute()
class Color (line 121) | public partial class Color
method Color (line 178) | static Color()
method Color (line 183) | private Color()
class Dimension (line 188) | public partial class Dimension
method Dimension (line 269) | static Dimension()
method Dimension (line 274) | private Dimension()
class Drawable (line 279) | public partial class Drawable
method Drawable (line 381) | static Drawable()
method Drawable (line 386) | private Drawable()
class Id (line 391) | public partial class Id
method Id (line 574) | static Id()
method Id (line 579) | private Id()
class Integer (line 584) | public partial class Integer
method Integer (line 596) | static Integer()
method Integer (line 601) | private Integer()
class Layout (line 606) | public partial class Layout
method Layout (line 657) | static Layout()
method Layout (line 662) | private Layout()
class String (line 667) | public partial class String
method String (line 736) | static String()
method String (line 741) | private String()
class Style (line 746) | public partial class Style
method Style (line 788) | static Style()
method Style (line 793) | private Style()
class Styleable (line 798) | public partial class Styleable
method Styleable (line 1020) | static Styleable()
method Styleable (line 1025) | private Styleable()
FILE: src/SimpleAuth.Google.iOS/Google.cs
class Google (line 23) | public static class Google {
method Init (line 24) | public static void Init ()
method OpenUrl (line 35) | public static bool OpenUrl (UIApplication app, NSUrl url, NSDictionary...
method Login (line 43) | static async void Login (WebAuthenticator authenticator)
method LogOut (line 63) | static async void LogOut (string clientId, string clientsecret)
class NativeHandler (line 72) | class NativeHandler : SignInDelegate {
method Authenticate (line 77) | public async Task<GoogleUser> Authenticate (GoogleAuthenticator auth...
method Cancel (line 100) | public void Cancel ()
method DidSignIn (line 104) | public override void DidSignIn (SignIn signIn, GoogleUser user, NSEr...
FILE: src/SimpleAuth.Mac/AppleEventsHelper.cs
class AppleEventParameters (line 20) | public static class AppleEventParameters
method FourCC (line 22) | static uint FourCC (string s)
FILE: src/SimpleAuth.Mac/AuthStorage.cs
class AuthStorage (line 7) | [Preserve (AllMembers = true)]
method SetSecured (line 10) | public void SetSecured(string key, string value, string clientId, stri...
method GetSecured (line 32) | public string GetSecured(string id, string clientId, string service, s...
FILE: src/SimpleAuth.Mac/Native.cs
class Native (line 20) | public static class Native
method UrlHandleEvent (line 23) | public static bool UrlHandleEvent (NSAppleEventDescriptor evt, NSApple...
method RegisterCallBack (line 34) | public static void RegisterCallBack (string provider, Func<NSAppleEven...
class CallBackHelper (line 39) | class CallBackHelper : NSObject
method CallBackHelper (line 41) | public CallBackHelper ()
method UrlHandleEvent (line 46) | [Export ("UrlHandleEvent:event:replyEvent")]
FILE: src/SimpleAuth.Mac/NativeSafariAuthenticator.cs
class NativeSafariAuthenticator (line 25) | public class NativeSafariAuthenticator
method NativeSafariAuthenticator (line 27) | public NativeSafariAuthenticator ()
method Activate (line 33) | public static void Activate ()
method RegisterCallbacks (line 40) | internal static void RegisterCallbacks ()
method ShowAuthenticator (line 51) | public static void ShowAuthenticator (WebAuthenticator authenticator)
method BeginAuthentication (line 65) | static async Task BeginAuthentication (WebAuthenticator authenticator)
method VerifyHasUrlScheme (line 86) | static bool VerifyHasUrlScheme (string scheme)
method GetCFBundleURLSchemes (line 91) | static string [] GetCFBundleURLSchemes ()
method ConvertToIEnumerable (line 104) | static IEnumerable<T> ConvertToIEnumerable<T> (NSArray array) where T ...
method ResumeAuth (line 111) | public static bool ResumeAuth (string url)
FILE: src/SimpleAuth.Mac/WebAuthenticator.cs
class WebAuthenticatorWebView (line 12) | public class WebAuthenticatorWebView : WebKit.WebView, IWebFrameLoadDele...
method WebAuthenticatorWebView (line 17) | public WebAuthenticatorWebView(WebAuthenticator authenticator)
method MonitorAuthenticator (line 29) | async Task MonitorAuthenticator()
method BeginLoadingInitialUrl (line 58) | public async void BeginLoadingInitialUrl()
method RealLoading (line 68) | async Task RealLoading()
method LoadCookies (line 98) | void LoadCookies()
method ClearCookies (line 102) | void ClearCookies()
method GetCookies (line 108) | private Cookie[] GetCookies(string url)
method StartedProvisionalLoad (line 115) | [Export("webView:didStartProvisionalLoadForFrame:")]
method FinishedLoad (line 131) | [Foundation.Export("webView:didFinishLoadForFrame:")]
method FailedLoadWithError (line 147) | [Foundation.Export("webView:didFailLoadWithError:forFrame:")]
method FailedProvisionalLoad (line 155) | [Foundation.Export("webView:didFailProvisionalLoadWithError:forFrame:")]
method WillPerformClientRedirect (line 177) | [Export("webView:willPerformClientRedirectToURL:delay:fireDate:forFram...
method ShowWebivew (line 202) | public static async void ShowWebivew(WebAuthenticatorWebView webview)
class ModalWindow (line 218) | class ModalWindow : NSWindow, INSWindowDelegate
method GetStyle (line 220) | static NSWindowStyle GetStyle(WebAuthenticatorWebView webView)
method ModalWindow (line 229) | public ModalWindow(WebAuthenticatorWebView webView, CGRect rect) : b...
method WindowWillClose (line 238) | [Export("windowWillClose:")]
FILE: src/SimpleAuth.Net/AuthStorage.cs
class AuthStorage (line 10) | public class AuthStorage : IAuthStorage
method SetSecured (line 12) | public void SetSecured(string identifier, string value, string clientI...
method GetSecured (line 14) | public string GetSecured(string identifier, string clientId, string cl...
FILE: src/SimpleAuth.Tests/Helpers/FakeHttpHandler.cs
class FakeHttpHandler (line 11) | public class FakeHttpHandler : HttpMessageHandler
method FakeHttpHandler (line 14) | public FakeHttpHandler (Dictionary<RequestMessage, RequestResponse> ur...
method SendAsync (line 19) | protected override async Task<HttpResponseMessage> SendAsync (HttpRequ...
FILE: src/SimpleAuth.Tests/Helpers/InMemoryAuthStorage.cs
class InMemoryAuthStorage (line 6) | public class InMemoryAuthStorage : IAuthStorage
method InMemoryAuthStorage (line 8) | public InMemoryAuthStorage ()
method GetSecured (line 13) | public string GetSecured (string identifier, string clientId, string c...
method SetSecured (line 21) | public void SetSecured (string identifier, string value, string client...
method GetId (line 26) | string GetId (string identifier, string clientid, string clientSecret,...
method Reset (line 30) | public void Reset ()
FILE: src/SimpleAuth.Tests/Helpers/RequestMessage.cs
type RequestMessage (line 6) | public struct RequestMessage
method Equals (line 12) | public override bool Equals (object obj)
method GetHashCode (line 16) | public override int GetHashCode ()
method ToString (line 21) | public override string ToString ()
class RequestResponse (line 27) | public class RequestResponse
FILE: src/SimpleAuth.Tests/OAuth/OAuthApiTests.cs
class OAuthApiTests (line 8) | [TestFixture ()]
method Setup (line 11) | [SetUp]
method SigningIntoApiWorks (line 19) | [Test]
method TokensExpireAfterAuthentication (line 29) | [Test]
method AuthenticatedApiRequestsRefreshTokens (line 40) | [Test]
method NonAuthenticatedCallsDoNotRefreshAccounts (line 56) | [Test]
method ApiRefreshesTokensOnAuthenticate (line 79) | [Test]
method MultipleRefreshesWork (line 96) | [Test]
method FailedRefreshRepromptsShowAuthenticator (line 123) | [Test]
method LoadingApiRestoresTokens (line 141) | [Test]
method AuthenticatedCallsSendAuthHeader (line 162) | [Test]
method RefreshTokenOnUnauthorized (line 173) | [Test]
FILE: src/SimpleAuth.Tests/OAuth/OAuthData.cs
class OAuthData (line 8) | public static class OAuthData
FILE: src/SimpleAuth.Tests/OAuth/OAuthTestApi.cs
class OAuthTestApi (line 8) | public class OAuthTestApi : OAuthApi
method OAuthTestApi (line 11) | public OAuthTestApi (Dictionary<RequestMessage, RequestResponse> urlRe...
method Ping (line 22) | public override System.Threading.Tasks.Task<bool> Ping (string url)
FILE: src/SimpleAuth.UWP/AuthStorage.cs
class AuthStorage (line 9) | class AuthStorage : IAuthStorage
method GetSecured (line 12) | public string GetSecured(string id, string clientId, string service, s...
method SetSecured (line 25) | public void SetSecured(string id, string value, string clientId, strin...
FILE: src/SimpleAuth.UWP/CustomWebAuthenticationBroker.cs
class CustomWebAuthenticationBroker (line 15) | public sealed class CustomWebAuthenticationBroker
method AuthenticateAsync (line 22) | public static Task<WebAuthenticationResult> AuthenticateAsync(WebAuthe...
method AuthenticateAsync (line 27) | public static async Task<WebAuthenticationResult> AuthenticateAsync(We...
method WebView_NavigationFailed (line 82) | private static void WebView_NavigationFailed(object sender, WebViewNav...
method WebView_NavigationStarting (line 88) | private static void WebView_NavigationStarting(WebView sender, WebView...
FILE: src/SimpleAuth.UWP/CustomWebAuthenticationResult.cs
class WebAuthenticationResult (line 14) | public sealed class WebAuthenticationResult
method WebAuthenticationResult (line 16) | internal WebAuthenticationResult(string response, uint errorDetail, We...
FILE: src/SimpleAuth.UWP/WebAuthenticatorWebView.cs
class WebAuthenticatorWebView (line 11) | class WebAuthenticatorWebView
method WebAuthenticatorWebView (line 15) | public WebAuthenticatorWebView(WebAuthenticator authenticator)
method ShowAsync (line 20) | public async Task ShowAsync()
FILE: src/SimpleAuth.iOS/AuthStorage.cs
class AuthStorage (line 7) | [Preserve (AllMembers = true)]
method SetSecured (line 10) | public void SetSecured(string key, string value, string clientId, stri...
method GetSecured (line 38) | public string GetSecured(string id, string clientId, string service, s...
FILE: src/SimpleAuth.iOS/BasicAuthController.cs
class BasicAuthController (line 9) | class BasicAuthController
method BasicAuthController (line 13) | public BasicAuthController(IBasicAuthenicator authenticator)
method Show (line 18) | public async void Show()
method GetCredentials (line 22) | public async Task<Tuple<string, string>> GetCredentials(string title, ...
method GetCurrentViewController (line 54) | static UIViewController GetCurrentViewController()
class LoginEntryAlert (line 67) | public class LoginEntryAlert : IDisposable
method LoginEntryAlert (line 74) | public LoginEntryAlert(string title, string details = "")
method setupAlertController (line 87) | void setupAlertController()
method setupAlertView (line 110) | void setupAlertView()
method AlertViewOnClicked (line 119) | void AlertViewOnClicked(object sender, UIButtonEventArgs e)
method GetCredentials (line 134) | public Task<Tuple<string, string>> GetCredentials(UIViewController f...
method Dispose (line 147) | public void Dispose()
FILE: src/SimpleAuth.iOS/Native.cs
class Native (line 22) | public static class Native
method OpenUrl (line 24) | public static bool OpenUrl (UIApplication app, NSUrl url, NSDictionary...
method RegisterCallBack (line 35) | public static void RegisterCallBack (string provider, Func<UIApplicati...
FILE: src/SimpleAuth.iOS/NativeSafariAuthenticator.cs
class NativeSafariAuthenticator (line 26) | public class NativeSafariAuthenticator
method NativeSafariAuthenticator (line 28) | public NativeSafariAuthenticator ()
method Activate (line 35) | public static void Activate ()
method RegisterCallbacks (line 41) | internal static void RegisterCallbacks ()
method ShowAuthenticator (line 48) | public static void ShowAuthenticator (UIViewController presentingContr...
method BeginAuthentication (line 66) | static async Task BeginAuthentication (UIViewController presentingCont...
method ShowAuthenticator (line 119) | public static void ShowAuthenticator (WebAuthenticator authenticator)
method VerifyHasUrlSchemeOrDoesntRequire (line 135) | public static bool VerifyHasUrlSchemeOrDoesntRequire(string scheme)
method GetCFBundleURLSchemes (line 147) | static IEnumerable<string> GetCFBundleURLSchemes()
method ConvertToIEnumerable (line 164) | static IEnumerable<T> ConvertToIEnumerable<T> (NSArray array) where T ...
method ResumeAuth (line 171) | public static bool ResumeAuth (string url)
class NativeSFSafariViewControllerDelegate (line 192) | public class NativeSFSafariViewControllerDelegate : SFSafariViewContro...
method NativeSFSafariViewControllerDelegate (line 195) | public NativeSFSafariViewControllerDelegate (WebAuthenticator authen...
method DidFinish (line 199) | public override void DidFinish (SFSafariViewController controller)
FILE: src/SimpleAuth.iOS/Twitter.cs
class Twitter (line 23) | public static class Twitter
method Init (line 26) | public static void Init()
method Callback (line 35) | private static bool Callback(UIApplication application, NSUrl url, NSD...
method OpenUrl (line 48) | public static bool OpenUrl(UIApplication app, NSUrl url, Dictionary<st...
method Login (line 68) | public static async void Login(WebAuthenticator authenticator, Action<...
FILE: src/SimpleAuth.iOS/WebAuthenticatorViewController.cs
class WebAuthenticatorViewController (line 13) | public class WebAuthenticatorViewController : UIViewController {
method WebAuthenticatorViewController (line 29) | public WebAuthenticatorViewController (WebAuthenticator authenticator)
method MonitorAuthenticator (line 80) | async Task MonitorAuthenticator ()
method Cancel (line 91) | void Cancel ()
method LoadCookies (line 97) | void LoadCookies ()
method ClearCookies (line 102) | static void ClearCookies ()
method BeginLoadingInitialUrl (line 110) | async Task BeginLoadingInitialUrl ()
method RealLoading (line 118) | async Task RealLoading ()
method LoadInitialUrl (line 141) | void LoadInitialUrl (Uri url)
method HandleBrowsingCompleted (line 162) | void HandleBrowsingCompleted (object sender, EventArgs e)
class WebViewDelegate (line 196) | protected class WebViewDelegate : WKNavigationDelegate {
method WebViewDelegate (line 206) | public WebViewDelegate (WebAuthenticatorViewController controller)
method DecidePolicy (line 211) | public override async void DecidePolicy (WKWebView webView, WKNaviga...
method DidCommitNavigation (line 228) | public override void DidCommitNavigation (WKWebView webView, WKNavig...
method DidFailProvisionalNavigation (line 234) | public override void DidFailProvisionalNavigation (WKWebView webView...
method DidFinishNavigation (line 247) | public override async void DidFinishNavigation (WKWebView webView, W...
method GetCookies (line 260) | private async Task<Cookie []> GetCookies (Uri url)
class ProgressLabel (line 269) | internal class ProgressLabel : UIView {
method ProgressLabel (line 272) | public ProgressLabel (string text)
method StartAnimating (line 298) | public void StartAnimating ()
method StopAnimating (line 303) | public void StopAnimating ()
FILE: src/SimpleAuth.iOS/WebAuthenticatorWindow.cs
class WebAuthenticatorWindow (line 20) | public class WebAuthenticatorWindow : UIWindow {
method WebAuthenticatorWindow (line 22) | public WebAuthenticatorWindow () : this (UIScreen.MainScreen)
method WebAuthenticatorWindow (line 26) | public WebAuthenticatorWindow (UIScreen screen) : base (screen.Bounds)
method PresentAuthenticator (line 35) | public static void PresentAuthenticator (WebAuthenticator authenticator)
method Show (line 49) | public async Task Show (WebAuthenticatorViewController authenticator)
method Dismiss (line 59) | public async Task Dismiss ()
FILE: src/SimpleAuth/Api/Account.cs
class Account (line 6) | public class Account {
method Account (line 7) | public Account ()
method IsValid (line 15) | public virtual bool IsValid ()
method Invalidate (line 20) | public virtual void Invalidate ()
FILE: src/SimpleAuth/Api/Api.cs
class Api (line 15) | public class Api {
method Api (line 63) | public Api (string identifier, string encryptionKey, HttpMessageHandle...
method OnAccountUpdated (line 80) | protected virtual Task OnAccountUpdated (Account account)
method ResetData (line 90) | public virtual void ResetData ()
method Logout (line 96) | public virtual void Logout ()
method PrepareClient (line 101) | public virtual async Task PrepareClient (HttpClient client)
method ResetClient (line 108) | public virtual Task ResetClient (HttpClient client)
method GetUrlStream (line 114) | public async virtual Task<Stream> GetUrlStream (string path, bool auth...
method Get (line 122) | public virtual Task<string> Get (string path = null, Dictionary<string...
method Get (line 126) | public virtual Task<T> Get<T> (string path = null, Dictionary<string, ...
method Post (line 130) | public virtual Task<T> Post<T> (object body, string path = null, Dicti...
method Post (line 134) | public virtual Task<string> Post (object body, string path = null, Dic...
method Post (line 137) | public virtual Task<T> Post<T> (HttpContent content, string path = nul...
method Post (line 141) | public virtual Task<string> Post (HttpContent content, string path = n...
method Put (line 146) | public virtual Task<T> Put<T> (HttpContent content, string path = null...
method Put (line 149) | public virtual Task<string> Put (HttpContent content, string path = nu...
method Put (line 154) | public virtual Task<T> Put<T> (object body, string path = null, Dictio...
method Put (line 157) | public virtual Task<string> Put (object body, string path = null, Dict...
method Delete (line 161) | public virtual Task<T> Delete<T> (object body, string path = null, Dic...
method Delete (line 164) | public virtual Task<T> Delete<T> (HttpContent content = null, string p...
method Delete (line 168) | public virtual Task<string> Delete (HttpContent content = null, string...
method Delete (line 171) | public virtual Task<string> Delete (object body, string path = null, D...
method Patch (line 174) | public virtual Task<T> Patch<T> (object body, string path = null, Dict...
method Patch (line 177) | public virtual Task<string> Patch (object body, string path = null, Di...
method Patch (line 180) | public virtual Task<T> Patch<T> (HttpContent content, string path = nu...
method Patch (line 183) | public virtual Task<string> Patch (HttpContent content, string path = ...
method PostUrl (line 188) | public virtual async Task<string> PostUrl (string path, string content...
method Post (line 195) | public virtual Task<T> Post<T> (string path, string content, bool auth...
method Post (line 198) | public virtual Task<T> Post<T> (string path, HttpContent content, bool...
method PostMessage (line 201) | public async Task<HttpResponseMessage> PostMessage (string path, HttpC...
method PutMessage (line 206) | public async Task<HttpResponseMessage> PutMessage (string path, HttpCo...
method SendObjectMessage (line 210) | public virtual Task<string> SendObjectMessage (string path, object bod...
method SendObjectMessage (line 213) | public virtual async Task<T> SendObjectMessage<T> (string path, object...
method SendObjectMessage (line 219) | public virtual Task<string> SendObjectMessage (string path, HttpConten...
method SendObjectMessage (line 222) | public virtual async Task<T> SendObjectMessage<T> (string path, HttpCo...
method SendMessage (line 269) | public async Task<HttpResponseMessage> SendMessage (string path, HttpC...
method SendMessage (line 286) | public async virtual Task<HttpResponseMessage> SendMessage (HttpReques...
method VerifyCredentials (line 293) | protected virtual Task VerifyCredentials ()
method InvalidateCredentials (line 298) | protected virtual Task InvalidateCredentials ()
method PrepareUrl (line 303) | protected virtual Task<string> PrepareUrl (string path, bool authentic...
method Deserialize (line 308) | protected virtual T Deserialize<T> (string data)
method Deserialize1 (line 317) | protected virtual T Deserialize1<T> (string data, object inObject)
method SerializeObject (line 329) | protected virtual string SerializeObject (object obj)
method CombineUrl (line 334) | public virtual string CombineUrl (string url, Dictionary<string, strin...
method GetHeadersFromMethod (line 358) | public virtual Dictionary<string, string> GetHeadersFromMethod (Method...
method GetValueFromAttribute (line 374) | public string GetValueFromAttribute<T> (MethodInfo method) where T : S...
method MergeHeaders (line 379) | public static void MergeHeaders (HttpRequestHeaders inHeaders, Diction...
method Ping (line 390) | public virtual async Task<bool> Ping (string url)
method Ping (line 402) | public Task<bool> Ping ()
method OnException (line 407) | public virtual void OnException (object sender, Exception ex)
FILE: src/SimpleAuth/Api/ApiResponse.cs
class ApiResponse (line 5) | public class ApiResponse {
FILE: src/SimpleAuth/Api/Attributes.cs
class StringValueAttribute (line 7) | public class StringValueAttribute : Attribute {
method StringValueAttribute (line 8) | public StringValueAttribute (string value)
class PathAttribute (line 14) | public class PathAttribute : StringValueAttribute {
method PathAttribute (line 15) | public PathAttribute (string path) : base (path)
class AcceptsAttribute (line 22) | public class AcceptsAttribute : StringValueAttribute {
method AcceptsAttribute (line 23) | public AcceptsAttribute (string accepts) : base (accepts)
class ContentTypeAttribute (line 29) | public class ContentTypeAttribute : StringValueAttribute {
method ContentTypeAttribute (line 30) | public ContentTypeAttribute (string contentType) : base (contentType)
FILE: src/SimpleAuth/Api/AuthenticatedApi.cs
class AuthenticatedApi (line 9) | public abstract class AuthenticatedApi : Api {
method AuthenticatedApi (line 20) | public AuthenticatedApi (string identifier, string encryptionKey, Http...
method Authenticate (line 51) | public async Task<Account> Authenticate ()
method PerformAuthenticate (line 62) | protected abstract Task<Account> PerformAuthenticate ();
method RefreshAccount (line 64) | protected abstract Task<bool> RefreshAccount (Account account);
method ResetData (line 66) | public override void ResetData ()
method SaveAccount (line 72) | protected virtual void SaveAccount (Account account)
method GetAccount (line 77) | protected virtual T GetAccount<T> (string identifier) where T : Account
method VerifyCredentials (line 88) | protected override async Task VerifyCredentials ()
method InvalidateCredentials (line 100) | protected override Task InvalidateCredentials ()
FILE: src/SimpleAuth/Api/Authenticator.cs
class Authenticator (line 12) | public abstract class Authenticator
method Authenticator (line 21) | public Authenticator()
method PrepareAuthenticator (line 35) | public Task PrepareAuthenticator ()
method GetAuthCode (line 43) | public Task<string> GetAuthCode()
method OnCancelled (line 54) | public void OnCancelled()
method FoundAuthCode (line 60) | protected void FoundAuthCode(string authCode)
method OnError (line 67) | public void OnError(string error)
FILE: src/SimpleAuth/Api/JSonExtensions.cs
class JSonExtensions (line 8) | public static class JSonExtensions {
method ContainsKey (line 9) | public static bool ContainsKey (this JObject jobj, string key)
method ToJson (line 13) | public static string ToJson (this object obj)
method ToJsonAsync (line 20) | public static Task<string> ToJsonAsync (this object obj)
method ToObject (line 25) | public static T ToObject<T> (this string str)
method ToObject (line 33) | public static T ToObject<T> (this string str, object inObject)
method ToObjectAsync (line 45) | public static Task<T> ToObjectAsync<T> (this string str)
FILE: src/SimpleAuth/Api/WebAuthenticator.cs
class WebAuthenticator (line 12) | public abstract class WebAuthenticator : Authenticator {
method CheckUrl (line 23) | public virtual bool CheckUrl (Uri url, Cookie [] cookies)
method GetInitialUrl (line 46) | public virtual Task<Uri> GetInitialUrl ()
method GetInitialUrlQueryParameters (line 53) | public virtual Dictionary<string, string> GetInitialUrlQueryParameters ()
method GetTokenPostData (line 70) | public virtual Task<Dictionary<string, string>> GetTokenPostData (stri...
FILE: src/SimpleAuth/ApiKey/ApiKeyApi.cs
class ApiKeyApi (line 8) | public class ApiKeyApi : Api
method ApiKeyApi (line 10) | public ApiKeyApi(string apiKey, string authKey, AuthLocation authLocat...
method PrepareUrl (line 20) | protected override Task<string> PrepareUrl(string path, bool authenti...
method PrepareUrl (line 28) | public static Task<string> PrepareUrl(Uri baseAddress, string path,str...
method PrepareClient (line 36) | public override async Task PrepareClient(HttpClient client)
FILE: src/SimpleAuth/ApiKey/AuthLocation.cs
type AuthLocation (line 6) | public enum AuthLocation {
FILE: src/SimpleAuth/BasicAuth/BasicAuthAccount.cs
class BasicAuthAccount (line 6) | public class BasicAuthAccount : Account {
method IsValid (line 9) | public override bool IsValid ()
method Invalidate (line 13) | public override void Invalidate ()
FILE: src/SimpleAuth/BasicAuth/BasicAuthApi.cs
class BasicAuthApi (line 8) | public class BasicAuthApi : AuthenticatedApi {
method BasicAuthApi (line 10) | static BasicAuthApi ()
method BasicAuthApi (line 33) | public BasicAuthApi (string identifier, string encryptionKey, string l...
method CreateAuthenticator (line 44) | protected virtual BasicAuthAuthenticator CreateAuthenticator ()
method PerformAuthenticate (line 52) | protected override async Task<Account> PerformAuthenticate ()
method RefreshAccount (line 78) | protected override Task<bool> RefreshAccount (Account account)
method PrepareClient (line 84) | public override async Task PrepareClient (HttpClient client)
FILE: src/SimpleAuth/BasicAuth/BasicAuthAuthenticator.cs
class BasicAuthAuthenticator (line 8) | public class BasicAuthAuthenticator : Authenticator, IBasicAuthenicator {
method BasicAuthAuthenticator (line 12) | public BasicAuthAuthenticator (HttpClient client, string loginUrl)
method VerifyCredentials (line 18) | public virtual async Task<bool> VerifyCredentials (string username, st...
FILE: src/SimpleAuth/BasicAuth/IBasicAuthenicator.cs
type IBasicAuthenicator (line 19) | public interface IBasicAuthenicator {
method VerifyCredentials (line 20) | Task<bool> VerifyCredentials (string username, string password);
method OnCancelled (line 21) | void OnCancelled ();
method OnError (line 22) | void OnError (string error);
FILE: src/SimpleAuth/Converters/Converter.cs
class Converter (line 20) | public abstract class Converter {
method Serialize (line 22) | public abstract Task<HttpContent> Serialize (Object data);
method Deserialize (line 23) | public abstract Task<T> Deserialize<T> (HttpResponseMessage response);
FILE: src/SimpleAuth/Converters/JsonConverter.cs
class JsonConverter (line 22) | public class JsonConverter : Converter {
method Deserialize (line 26) | public override async Task<T> Deserialize<T> (HttpResponseMessage resp...
method Serialize (line 34) | public override async Task<HttpContent> Serialize (object data)
FILE: src/SimpleAuth/Helpers/CookieHolder.cs
class CookieHolder (line 3) | public class CookieHolder {
FILE: src/SimpleAuth/Helpers/IAuthStorage.cs
type IAuthStorage (line 3) | public interface IAuthStorage {
method SetSecured (line 4) | void SetSecured (string identifier, string value, string clientId, str...
method GetSecured (line 5) | string GetSecured (string identifier, string clientId, string clientSe...
FILE: src/SimpleAuth/Helpers/Resolver.cs
class Resolver (line 5) | public static class Resolver
method Register (line 12) | public static void Register<TType, TType1>() where TType1 : TType
method Register (line 17) | public static void Register(Type type, Type cell)
method GetObject (line 22) | public static T GetObject<T>(bool singleton = true)
FILE: src/SimpleAuth/Helpers/UrlUtility.cs
class UrlUtility (line 9) | public static class UrlUtility {
method AddParameters (line 10) | public static Uri AddParameters (this Uri url, string name, string value)
method AddParameters (line 17) | public static Uri AddParameters (this Uri url, Dictionary<string, stri...
method GetParameter (line 32) | public static string GetParameter (this Uri url, string parameter)
FILE: src/SimpleAuth/OAuth/OAuthAccount.cs
class OAuthAccount (line 6) | public class OAuthAccount : Account {
method IsValid (line 34) | public override bool IsValid ()
method Invalidate (line 47) | public override void Invalidate ()
FILE: src/SimpleAuth/OAuth/OAuthApi.cs
class OAuthApi (line 10) | public class OAuthApi : AuthenticatedApi {
method OAuthApi (line 12) | static OAuthApi ()
method OAuthApi (line 81) | public OAuthApi (string identifier, string clientId, string clientSecr...
method OAuthApi (line 94) | public OAuthApi (string identifier, OAuthAuthenticator authenticator, ...
method OAuthApi (line 104) | protected OAuthApi (string identifier, string clientId, string clientS...
method ResetData (line 117) | public override void ResetData ()
method PerformAuthenticate (line 124) | protected override async Task<Account> PerformAuthenticate ()
method GetAccountFromAuthCode (line 167) | protected virtual async Task<OAuthAccount> GetAccountFromAuthCode (Web...
method CreateAuthenticator (line 199) | protected virtual WebAuthenticator CreateAuthenticator ()
method RefreshToken (line 205) | protected async Task<bool> RefreshToken (Account accaccount)
method GetRefreshTokenPostData (line 248) | public virtual Task<Dictionary<string, string>> GetRefreshTokenPostDat...
method RefreshAccount (line 266) | protected override async Task<bool> RefreshAccount (Account account)
method PrepareClient (line 275) | public override async Task PrepareClient (HttpClient client)
FILE: src/SimpleAuth/OAuth/OAuthAuthenticator.cs
class OAuthAuthenticator (line 6) | public class OAuthAuthenticator : WebAuthenticator {
method OAuthAuthenticator (line 9) | protected OAuthAuthenticator ()
method OAuthAuthenticator (line 14) | public OAuthAuthenticator (string authUrl, string tokenUrl, string red...
FILE: src/SimpleAuth/OAuth/OAuthPasswordApi.cs
class OAuthPasswordApi (line 13) | public class OAuthPasswordApi : OAuthApi {
method OAuthPasswordApi (line 14) | public OAuthPasswordApi (string identifier, string clientId, string cl...
method CreateAuthenticator (line 26) | protected override WebAuthenticator CreateAuthenticator ()
method GetAccountFromAuthCode (line 34) | protected override Task<OAuthAccount> GetAccountFromAuthCode (WebAuthe...
class OAuthPasswordAuthenticator (line 51) | public class OAuthPasswordAuthenticator : WebAuthenticator, IBasicAuthen...
method VerifyCredentials (line 70) | public virtual async Task<bool> VerifyCredentials (string username, st...
class AuthTokenClass (line 86) | public class AuthTokenClass {
method SignUp (line 113) | public Task<bool> SignUp (string username, string password)
FILE: src/SimpleAuth/OAuth/OauthApiKeyApi.cs
class OauthApiKeyApi (line 8) | public class OauthApiKeyApi : OAuthApi {
method OauthApiKeyApi (line 22) | public OauthApiKeyApi (string identifier, string apiKey, string authKe...
method OauthApiKeyApi (line 40) | public OauthApiKeyApi (string identifier, string apiKey, string authKe...
method PrepareUrl (line 52) | protected override Task<string> PrepareUrl (string path, bool authenti...
method PrepareClient (line 59) | public override async Task PrepareClient (HttpClient client)
FILE: src/SimpleAuth/OAuth/OauthResponse.cs
class OauthResponse (line 5) | public class OauthResponse : ApiResponse {
FILE: src/SimpleAuth/Providers/ADFS.cs
class ADFSApi (line 7) | public class ADFSApi : OAuthApi {
method ADFSApi (line 12) | public ADFSApi (string identifier, string clientId, string authorizeUrl,
method ADFSApi (line 23) | public ADFSApi (string identifier, string clientId, string clientSecre...
method CreateAuthenticator (line 34) | protected override WebAuthenticator CreateAuthenticator ()
method PerformAuthenticate (line 44) | protected override async Task<Account> PerformAuthenticate ()
method GetRefreshTokenPostData (line 86) | public override async Task<Dictionary<string, string>> GetRefreshToken...
class ADFSAuthenticator (line 95) | class ADFSAuthenticator : OAuthAuthenticator {
method ADFSAuthenticator (line 99) | public ADFSAuthenticator (string clientId,
method GetInitialUrlQueryParameters (line 112) | public override Dictionary<string, string> GetInitialUrlQueryParameter...
method GetTokenPostData (line 121) | public override async Task<Dictionary<string, string>> GetTokenPostDat...
FILE: src/SimpleAuth/Providers/Amazon.cs
class AmazonApi (line 9) | public class AmazonApi : OAuthApi {
method AmazonApi (line 10) | public AmazonApi (string identifier, string clientId, string clientSec...
method CreateAuthenticator (line 18) | protected override WebAuthenticator CreateAuthenticator ()
class AmazonAuthenticator (line 29) | public class AmazonAuthenticator : WebAuthenticator {
method GetTokenPostData (line 32) | public override async Task<Dictionary<string, string>> GetTokenPostDat...
FILE: src/SimpleAuth/Providers/AzureB2CApi.cs
class AzureB2CApi (line 9) | public class AzureB2CApi : OAuthApi
method AzureB2CApi (line 29) | public AzureB2CApi(
method AzureB2CApi (line 59) | public AzureB2CApi(
class AzureB2CAuthenticator (line 77) | public class AzureB2CAuthenticator : OAuthAuthenticator
method AzureB2CAuthenticator (line 79) | public AzureB2CAuthenticator(
method GetTokenPostData (line 90) | public override Task<Dictionary<string, string>> GetTokenPostData(stri...
FILE: src/SimpleAuth/Providers/DropBox.cs
class DropBoxApi (line 10) | public class DropBoxApi : OAuthApi {
method DropBoxApi (line 11) | public DropBoxApi (string identifier, string client_id, string client_...
method CreateAuthenticator (line 22) | protected override WebAuthenticator CreateAuthenticator ()
method GetAccountFromAuthCode (line 30) | protected override Task<OAuthAccount> GetAccountFromAuthCode (WebAuthe...
class DropBoxAuthenticator (line 48) | public class DropBoxAuthenticator : OAuthAuthenticator {
method DropBoxAuthenticator (line 49) | public DropBoxAuthenticator ()
method CheckUrl (line 57) | public override bool CheckUrl (Uri url, Cookie [] cookies)
method GetInitialUrl (line 82) | public override async Task<Uri> GetInitialUrl ()
method GetInitialUrlQueryParameters (line 88) | public override Dictionary<string, string> GetInitialUrlQueryParameter...
FILE: src/SimpleAuth/Providers/Facebook.cs
class FacebookApi (line 8) | public class FacebookApi : OAuthApi
method FacebookApi (line 13) | public FacebookApi(string identifier, string clientId, string clientSe...
method FacebookApi (line 24) | public FacebookApi(string identifier, FacebookAuthenticator authentica...
method InitFacebook (line 29) | private void InitFacebook()
method CreateAuthenticator (line 43) | protected override WebAuthenticator CreateAuthenticator()
method GetAccountFromAuthCode (line 49) | protected override async Task<OAuthAccount> GetAccountFromAuthCode(Web...
method ResetData (line 89) | public override void ResetData()
class FacebookAuthenticator (line 96) | public class FacebookAuthenticator : OAuthAuthenticator
method GetTokenPostData (line 106) | public override Task<Dictionary<string, string>> GetTokenPostData(stri...
method OnRecievedAuthCode (line 125) | public void OnRecievedAuthCode(string authCode, long expiration)
method GetInitialUrl (line 130) | public override async Task<Uri> GetInitialUrl()
FILE: src/SimpleAuth/Providers/FitBitApi.cs
class FitBitApi (line 22) | public class FitBitApi : SimpleAuth.OAuthApi {
method FitBitApi (line 31) | public FitBitApi (string serviceId, string clientId, string secret, bo...
method CreateAuthenticator (line 42) | protected override WebAuthenticator CreateAuthenticator ()
method GetAccountFromAuthCode (line 55) | protected override async Task<OAuthAccount> GetAccountFromAuthCode (We...
class FitbitAuthenticator (line 79) | public class FitbitAuthenticator : OAuthAuthenticator {
method CheckUrl (line 81) | public override bool CheckUrl (Uri url, Cookie [] cookies)
method GetInitialUrlQueryParameters (line 110) | public override Dictionary<string, string> GetInitialUrlQueryParameter...
FILE: src/SimpleAuth/Providers/Github.cs
class GithubApi (line 7) | public class GithubApi : OAuthApi {
class AvailableApiScopes (line 8) | public static class AvailableApiScopes {
method GithubApi (line 133) | public GithubApi (string identifier, string clientId, string clientSec...
method GetUser (line 152) | [Path ("user")]
class Plan (line 158) | public class Plan {
class GitHubUser (line 173) | public class GitHubUser {
FILE: src/SimpleAuth/Providers/Google.cs
class GoogleApi (line 18) | public class GoogleApi : OAuthApi {
method GoogleApi (line 39) | public GoogleApi (string identifier, string clientId, HttpMessageHandl...
method GoogleApi (line 44) | public GoogleApi (string identifier, string clientId, string clientSec...
method CheckNative (line 88) | void CheckNative ()
method CleanseClientId (line 100) | public static string CleanseClientId (string clientId) => clientId?.Re...
method CreateAuthenticator (line 105) | protected override WebAuthenticator CreateAuthenticator ()
method GetAccountFromAuthCode (line 122) | protected override Task<OAuthAccount> GetAccountFromAuthCode (WebAuthe...
method GetUserInfo (line 147) | public async Task<GoogleUserProfile> GetUserInfo (bool forceRefresh = ...
method ResetData (line 159) | public override void ResetData ()
class GoogleAuthenticator (line 166) | public class GoogleAuthenticator : OAuthAuthenticator {
method GetTokenPostData (line 178) | public override async Task<Dictionary<string, string>> GetTokenPostDat...
method GetInitialUrlQueryParameters (line 188) | public override Dictionary<string, string> GetInitialUrlQueryParameter...
method GetGoogleClientId (line 196) | public static string GetGoogleClientId (string clientId) => string.IsN...
method GetRedirectUrl (line 199) | public virtual string GetRedirectUrl ()
method CheckUrl (line 215) | public override bool CheckUrl (Uri url, Cookie [] cookies)
method UrlFromClientId (line 235) | public static string UrlFromClientId (string clientId)
method GetInitialUrl (line 242) | public override async Task<Uri> GetInitialUrl ()
method OnRecievedAuthCode (line 248) | public void OnRecievedAuthCode (string authCode)
class GoogleUserProfile (line 254) | #if __MOBILE__
FILE: src/SimpleAuth/Providers/Instagram.cs
class InstagramApi (line 8) | public class InstagramApi : OAuthApi {
method InstagramApi (line 9) | public InstagramApi (string identifier, string clientId, string client...
method CreateAuthenticator (line 19) | protected override WebAuthenticator CreateAuthenticator ()
class InstagramAuthenticator (line 30) | public class InstagramAuthenticator : OAuthAuthenticator {
method GetTokenPostData (line 33) | public override async Task<Dictionary<string, string>> GetTokenPostDat...
FILE: src/SimpleAuth/Providers/LinkedIn.cs
class LinkedInApi (line 20) | public class LinkedInApi : OAuthApi {
method LinkedInApi (line 21) | public LinkedInApi (string identifier, string clientId, string clientS...
method GetProfile (line 27) | [Path ("people")]
FILE: src/SimpleAuth/Providers/MicrosoftLiveConnectApi.cs
class MicrosoftLiveConnectApi (line 9) | public class MicrosoftLiveConnectApi : OAuthApi {
method MicrosoftLiveConnectApi (line 12) | public MicrosoftLiveConnectApi (string identifier, string clientId, st...
method CreateAuthenticator (line 18) | protected override WebAuthenticator CreateAuthenticator ()
class MicrosoftLiveConnectAuthenticator (line 26) | class MicrosoftLiveConnectAuthenticator : OAuthAuthenticator {
method MicrosoftLiveConnectAuthenticator (line 27) | public MicrosoftLiveConnectAuthenticator (string clientId, string clie...
method GetInitialUrlQueryParameters (line 32) | public override Dictionary<string, string> GetInitialUrlQueryParameter...
method GetTokenPostData (line 42) | public override async Task<Dictionary<string, string>> GetTokenPostDat...
FILE: src/SimpleAuth/Providers/Twitter.cs
class TwitterApi (line 12) | public class TwitterApi : OAuthApi {
method TwitterApi (line 13) | public TwitterApi (string identifier, string clientId, string clientSe...
method CreateAuthenticator (line 30) | protected override WebAuthenticator CreateAuthenticator ()
method GetAccountFromAuthCode (line 43) | protected override async Task<OAuthAccount> GetAccountFromAuthCode (We...
method GetAccount (line 78) | protected override T GetAccount<T> (string identifier)
method SendMessage (line 86) | public override async System.Threading.Tasks.Task<HttpResponseMessage>...
method PrepareClient (line 154) | public override Task PrepareClient (HttpClient client)
method ComputeHash (line 158) | public static string ComputeHash (HttpMethod method, Uri url, SortedDi...
method GetSignature (line 164) | public static string GetSignature (string method, Uri uri, IDictionary...
class TwitterAuthenticator (line 183) | public class TwitterAuthenticator : OAuthAuthenticator {
method TwitterAuthenticator (line 185) | public TwitterAuthenticator ()
method GetInitialUrl (line 196) | public override async System.Threading.Tasks.Task<Uri> GetInitialUrl ()
method CheckUrl (line 205) | public override bool CheckUrl (Uri url, System.Net.Cookie [] cookies)
method CheckNativeUrl (line 226) | public bool CheckNativeUrl (string query)
class TwitterAccount (line 248) | public class TwitterAccount : OAuthAccount {
method IsValid (line 251) | public override bool IsValid ()
Condensed preview — 233 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,334K chars).
[
{
"path": ".github/workflows/mainPackage.yml",
"chars": 1426,
"preview": "name: .NET\n\non:\n push:\n branches: [ \"main\" ]\n pull_request:\n branches: [ \"main\" ]\n\njobs:\n build:\n name: Buil"
},
{
"path": ".gitignore",
"chars": 3022,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n.droidr"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3220,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "LICENSE",
"chars": 11358,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 20703,
"preview": "# Simple Auth\n\nEvery API needs authentication, yet no developer wants to deal with authentication. Simple Auth embeds au"
},
{
"path": "SimpleAuth.Droid.CustomTabs.nuspec",
"chars": 1043,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "SimpleAuth.Facebook.Droid.nuspec",
"chars": 1189,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "SimpleAuth.Facebook.iOS.nuspec",
"chars": 1366,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "SimpleAuth.Google.Droid.nuspec",
"chars": 1025,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "SimpleAuth.Google.iOS.nuspec",
"chars": 1177,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "SimpleAuth.nuspec",
"chars": 3026,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n "
},
{
"path": "samples/.nuget/NuGet.Config",
"chars": 113,
"preview": "<configuration>\n <config>\n <add key=\"repositoryPath\" value=\"../../packages\" />\n </config>\n</configuration>\n"
},
{
"path": "samples/Sample.Droid/Assets/AboutAssets.txt",
"chars": 602,
"preview": "Any raw assets you want to be deployed with your application can be placed in\nthis directory (and child directories) and"
},
{
"path": "samples/Sample.Droid/MainActivity.cs",
"chars": 3216,
"preview": "using System;\nusing Android.App;\nusing Android.Content;\nusing Android.Runtime;\nusing Android.Views;\nusing Android.Widge"
},
{
"path": "samples/Sample.Droid/Properties/AndroidManifest.xml",
"chars": 1117,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"co"
},
{
"path": "samples/Sample.Droid/Properties/AssemblyInfo.cs",
"chars": 1061,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing Android.App"
},
{
"path": "samples/Sample.Droid/Resources/AboutResources.txt",
"chars": 1771,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "samples/Sample.Droid/Resources/Resource.Designer.cs",
"chars": 72865,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "samples/Sample.Droid/Resources/layout/Main.axml",
"chars": 1074,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n andr"
},
{
"path": "samples/Sample.Droid/Resources/values/Strings.xml",
"chars": 305,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <string name=\"Hello\">Hello World, Click Me!</string>\n <string "
},
{
"path": "samples/Sample.Droid/Sample.Droid.csproj",
"chars": 3875,
"preview": "<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prop"
},
{
"path": "samples/Sample.Forms/Sample.Forms/App.cs",
"chars": 4014,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "samples/Sample.Forms/Sample.Forms/LoginPage.xaml",
"chars": 436,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ContentPage xmlns=\"http://xamarin.com/schemas/2014/forms\" xmlns:x=\"http://schema"
},
{
"path": "samples/Sample.Forms/Sample.Forms/LoginPage.xaml.cs",
"chars": 1820,
"preview": "//\n// Copyright 2016 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "samples/Sample.Forms/Sample.Forms/Sample.Forms.projitems",
"chars": 892,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Propert"
},
{
"path": "samples/Sample.Forms/Sample.Forms/Sample.Forms.shproj",
"chars": 994,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Assets/AboutAssets.txt",
"chars": 603,
"preview": "Any raw assets you want to be deployed with your application can be placed in\nthis directory (and child directories) and"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/MainActivity.cs",
"chars": 933,
"preview": "using System;\n\nusing Android.App;\nusing Android.Content.PM;\nusing Android.Runtime;\nusing Android.Views;\nusing Android.W"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Properties/AndroidManifest.xml",
"chars": 486,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"co"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Properties/AssemblyInfo.cs",
"chars": 1283,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing Android.App"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Resources/AboutResources.txt",
"chars": 1772,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Resources/Resource.Designer.cs",
"chars": 1111647,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Droid/Sample.Forms.Droid.csproj",
"chars": 5014,
"preview": "<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prop"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/App.xaml",
"chars": 263,
"preview": "<Application\n x:Class=\"Sample.Forms.UWP.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n "
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/App.xaml.cs",
"chars": 4032,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/MainPage.xaml",
"chars": 623,
"preview": "<forms:WindowsPage\n x:Class=\"Sample.Forms.UWP.MainPage\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/pres"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/MainPage.xaml.cs",
"chars": 645,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Package.appxmanifest",
"chars": 1565,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<Package\n xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/windows"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Properties/AssemblyInfo.cs",
"chars": 1049,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Properties/Default.rd.xml",
"chars": 1241,
"preview": "<!--\n This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most\n develope"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Sample.Forms.UWP.csproj",
"chars": 7099,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Sample.Forms.UWP.nuget.props",
"chars": 1409,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com"
},
{
"path": "samples/Sample.Forms/Sample.Forms.UWP/Sample.Forms.UWP.nuget.targets",
"chars": 721,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/App.xaml",
"chars": 246,
"preview": "<Application\n x:Class=\"Sample.Forms.WinPhone.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentati"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/App.xaml.cs",
"chars": 5167,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/MainPage.xaml",
"chars": 555,
"preview": "<forms:WindowsPhonePage\n x:Class=\"Sample.Forms.WinPhone.MainPage\"\n xmlns:forms=\"using:Xamarin.Forms.Platform.WinR"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/MainPage.xaml.cs",
"chars": 1710,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/Package.appxmanifest",
"chars": 1710,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Package xmlns=\"http://schemas.microsoft.com/appx/2010/manifest\" xmlns:m2=\"http:"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/Properties/AssemblyInfo.cs",
"chars": 1085,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/Sample.Forms.WinPhone.csproj",
"chars": 9196,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "samples/Sample.Forms/Sample.Forms.WinPhone/packages.config",
"chars": 139,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Xamarin.Forms\" version=\"2.3.3.168\" targetFramework=\"wp"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/App.xaml",
"chars": 244,
"preview": "<Application\n x:Class=\"Sample.Forms.Windows.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentatio"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/App.xaml.cs",
"chars": 3987,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/MainPage.xaml",
"chars": 564,
"preview": "<forms:WindowsPage\n x:Class=\"Sample.Forms.Windows.MainPage\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/MainPage.xaml.cs",
"chars": 649,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/Package.appxmanifest",
"chars": 1309,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Package xmlns=\"http://schemas.microsoft.com/appx/2010/manifest\" xmlns:m2=\"http:"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/Properties/AssemblyInfo.cs",
"chars": 1073,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/Sample.Forms.Windows.csproj",
"chars": 9933,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "samples/Sample.Forms/Sample.Forms.Windows/packages.config",
"chars": 139,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Xamarin.Forms\" version=\"2.3.3.168\" targetFramework=\"wi"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/AppDelegate.cs",
"chars": 1272,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nusing Foundation;\nusing UIKit;\n\nnamespace Sample.Fo"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Entitlements.plist",
"chars": 191,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Info.plist",
"chars": 2741,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Main.cs",
"chars": 424,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nusing Foundation;\nusing UIKit;\n\nnamespace Sample.Fo"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Properties/AssemblyInfo.cs",
"chars": 1405,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Resources/LaunchScreen.storyboard",
"chars": 2616,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "samples/Sample.Forms/Sample.Forms.iOS/Sample.Forms.iOS.csproj",
"chars": 7313,
"preview": "<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prop"
},
{
"path": "samples/Sample.Mac/AppDelegate.cs",
"chars": 522,
"preview": "using AppKit;\nusing Foundation;\n\nnamespace Sample.Mac\n{\n\tpublic partial class AppDelegate : NSApplicationDelegate\n\t{\n\t\t"
},
{
"path": "samples/Sample.Mac/AppDelegate.designer.cs",
"chars": 164,
"preview": "using Foundation;\n\nnamespace Sample.Mac\n{\n\t[global::Foundation.Register(\"AppDelegate\")]\n\tpartial class AppDelegate\n\t{\n\t"
},
{
"path": "samples/Sample.Mac/Entitlements.plist",
"chars": 181,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "samples/Sample.Mac/Info.plist",
"chars": 1252,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "samples/Sample.Mac/Main.cs",
"chars": 167,
"preview": "using AppKit;\n\nnamespace Sample.Mac\n{\n\tstatic class MainClass\n\t{\n\t\tstatic void Main(string[] args)\n\t\t{\n\t\t\tNSApplication"
},
{
"path": "samples/Sample.Mac/MainMenu.xib",
"chars": 29566,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\""
},
{
"path": "samples/Sample.Mac/MainWindow.cs",
"chars": 346,
"preview": "using System;\n\nusing Foundation;\nusing AppKit;\n\nnamespace Sample.Mac\n{\n\tpublic partial class MainWindow : NSWindow\n\t{\n\t"
},
{
"path": "samples/Sample.Mac/MainWindow.designer.cs",
"chars": 110,
"preview": "namespace Sample.Mac\n{\n\t[global::Foundation.Register(\"MainWindow\")]\n\tpublic partial class MainWindow\n\t{\n\t}\n}\n"
},
{
"path": "samples/Sample.Mac/MainWindow.xib",
"chars": 4236,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3"
},
{
"path": "samples/Sample.Mac/MainWindowController.cs",
"chars": 1381,
"preview": "using System;\n\nusing Foundation;\nusing AppKit;\nusing SimpleAuth.Providers;\nusing SimpleAuth;\nusing System.Threading.Tas"
},
{
"path": "samples/Sample.Mac/MainWindowController.designer.cs",
"chars": 650,
"preview": "// WARNING\n//\n// This file has been generated automatically by Xamarin Studio to store outlets and\n// actions made in th"
},
{
"path": "samples/Sample.Mac/Resources/Images.xcassets/AppIcons.appiconset/Contents.json",
"chars": 3894,
"preview": "{\n \"images\": [\n {\n \"size\": \"29x29\",\n \"scale\": \"1x\",\n \"idiom\": \"iphone\"\n },\n {\n \"size\": \"29"
},
{
"path": "samples/Sample.Mac/Sample.Mac.csproj",
"chars": 4763,
"preview": "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prope"
},
{
"path": "samples/Sample.Maui/App.xaml",
"chars": 664,
"preview": "<?xml version = \"1.0\" encoding = \"UTF-8\" ?>\n<Application xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n "
},
{
"path": "samples/Sample.Maui/App.xaml.cs",
"chars": 3550,
"preview": "using SimpleAuth;\nusing SimpleAuth.Providers;\n\nnamespace Sample.Maui;\n\npublic partial class App : Application\n{\n Aut"
},
{
"path": "samples/Sample.Maui/LoginPage.xaml",
"chars": 474,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<ContentPage xmlns=\"http://schemas.microsoft.com/dotnet/2021/maui\"\n "
},
{
"path": "samples/Sample.Maui/LoginPage.xaml.cs",
"chars": 1254,
"preview": "using SimpleAuth;\n\nnamespace Sample.Maui;\n\npublic partial class LoginPage : ContentPage\n{\n IBasicAuthenicator authen"
},
{
"path": "samples/Sample.Maui/MauiProgram.cs",
"chars": 373,
"preview": "namespace Sample.Maui;\n\npublic static class MauiProgram\n{\n\tpublic static MauiApp CreateMauiApp()\n\t{\n\t\tvar builder = Mau"
},
{
"path": "samples/Sample.Maui/Platforms/Android/AndroidManifest.xml",
"chars": 418,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\t<applicat"
},
{
"path": "samples/Sample.Maui/Platforms/Android/MainActivity.cs",
"chars": 399,
"preview": "using Android.App;\nusing Android.Content.PM;\nusing Android.OS;\n\nnamespace Sample.Maui;\n\n[Activity(Theme = \"@style/Maui."
},
{
"path": "samples/Sample.Maui/Platforms/Android/MainApplication.cs",
"chars": 314,
"preview": "using Android.App;\nusing Android.Runtime;\n\nnamespace Sample.Maui;\n\n[Application]\npublic class MainApplication : MauiApp"
},
{
"path": "samples/Sample.Maui/Platforms/Android/Resources/values/colors.xml",
"chars": 210,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <color name=\"colorPrimary\">#512BD4</color>\n <color name=\"colo"
},
{
"path": "samples/Sample.Maui/Platforms/MacCatalyst/AppDelegate.cs",
"chars": 204,
"preview": "using Foundation;\n\nnamespace Sample.Maui;\n\n[Register(\"AppDelegate\")]\npublic class AppDelegate : MauiUIApplicationDelega"
},
{
"path": "samples/Sample.Maui/Platforms/MacCatalyst/Info.plist",
"chars": 991,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/"
},
{
"path": "samples/Sample.Maui/Platforms/MacCatalyst/Program.cs",
"chars": 343,
"preview": "using ObjCRuntime;\nusing UIKit;\n\nnamespace Sample.Maui;\n\npublic class Program\n{\n\t// This is the main entry point of the"
},
{
"path": "samples/Sample.Maui/Platforms/Windows/App.xaml",
"chars": 305,
"preview": "<maui:MauiWinUIApplication\n x:Class=\"Sample.Maui.WinUI.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/"
},
{
"path": "samples/Sample.Maui/Platforms/Windows/App.xaml.cs",
"chars": 695,
"preview": "using Microsoft.UI.Xaml;\n\n// To learn more about WinUI, the WinUI project structure,\n// and more about our project temp"
},
{
"path": "samples/Sample.Maui/Platforms/Windows/Package.appxmanifest",
"chars": 1616,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Package\n xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/windows1"
},
{
"path": "samples/Sample.Maui/Platforms/Windows/app.manifest",
"chars": 733,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\n <ass"
},
{
"path": "samples/Sample.Maui/Platforms/iOS/AppDelegate.cs",
"chars": 204,
"preview": "using Foundation;\n\nnamespace Sample.Maui;\n\n[Register(\"AppDelegate\")]\npublic class AppDelegate : MauiUIApplicationDelega"
},
{
"path": "samples/Sample.Maui/Platforms/iOS/Info.plist",
"chars": 1033,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/"
},
{
"path": "samples/Sample.Maui/Platforms/iOS/Program.cs",
"chars": 343,
"preview": "using ObjCRuntime;\nusing UIKit;\n\nnamespace Sample.Maui;\n\npublic class Program\n{\n\t// This is the main entry point of the"
},
{
"path": "samples/Sample.Maui/Properties/launchSettings.json",
"chars": 123,
"preview": "{\n \"profiles\": {\n \"Windows Machine\": {\n \"commandName\": \"MsixPackage\",\n \"nativeDebugging\": false\n }\n }"
},
{
"path": "samples/Sample.Maui/Resources/Raw/AboutAssets.txt",
"chars": 671,
"preview": "Any raw assets you want to be deployed with your application can be placed in\nthis directory (and child directories). D"
},
{
"path": "samples/Sample.Maui/Resources/Styles/Colors.xaml",
"chars": 2235,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<?xaml-comp compile=\"true\" ?>\n<ResourceDictionary \n xmlns=\"http://schemas.mi"
},
{
"path": "samples/Sample.Maui/Resources/Styles/Styles.xaml",
"chars": 21898,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<?xaml-comp compile=\"true\" ?>\n<ResourceDictionary \n xmlns=\"http://schemas.mi"
},
{
"path": "samples/Sample.Maui/Sample.Maui.csproj",
"chars": 2500,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n\t<PropertyGroup>\r\n\t\t<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst"
},
{
"path": "samples/Sample.iOS/AppDelegate.cs",
"chars": 6495,
"preview": "using Foundation;\nusing UIKit;\nusing MonoTouch.Dialog;\nusing System;\nusing SimpleAuth.Providers;\nusing System.Threading"
},
{
"path": "samples/Sample.iOS/Entitlements.plist",
"chars": 190,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "samples/Sample.iOS/Info.plist",
"chars": 2018,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "samples/Sample.iOS/Main.cs",
"chars": 331,
"preview": "using UIKit;\n\nnamespace Sample.iOS\n{\n\tpublic class Application\n\t{\n\t\t// This is the main entry point of the application."
},
{
"path": "samples/Sample.iOS/Properties/AssemblyInfo.cs",
"chars": 1393,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "samples/Sample.iOS/Resources/LaunchScreen.xib",
"chars": 3330,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" vers"
},
{
"path": "samples/Sample.iOS/Sample.iOS.csproj",
"chars": 5330,
"preview": "<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prop"
},
{
"path": "samples/Sample.iOS/Spinner.cs",
"chars": 337,
"preview": "using System;\n\nnamespace Sample.iOS\n{\n\tpublic class Spinner : IDisposable\n\t{\n\t\tpublic Spinner (string title)\n\t\t{\n\t\t\tBig"
},
{
"path": "samples/SimpleAuth.Samples.Windows.sln",
"chars": 69246,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.28307.421\nMi"
},
{
"path": "samples/SimpleAuth.Samples.sln",
"chars": 70063,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nVisualStudioVersion = 14.0.25420.1\r\n"
},
{
"path": "src/.nuget/NuGet.Config",
"chars": 113,
"preview": "<configuration>\n <config>\n <add key=\"repositoryPath\" value=\"../../packages\" />\n </config>\n</configuration>\n"
},
{
"path": "src/SimpleAuth/Api/Account.cs",
"chars": 392,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\tpublic class Account {\n\t\tpu"
},
{
"path": "src/SimpleAuth/Api/Api.cs",
"chars": 18717,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing Sys"
},
{
"path": "src/SimpleAuth/Api/ApiResponse.cs",
"chars": 355,
"preview": "using System;\nusing Newtonsoft.Json;\n\nnamespace SimpleAuth {\n\tpublic class ApiResponse {\n\t\tpublic string Error { get; s"
},
{
"path": "src/SimpleAuth/Api/Attributes.cs",
"chars": 661,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\n\tpublic class StringValueAt"
},
{
"path": "src/SimpleAuth/Api/AuthenticatedApi.cs",
"chars": 2963,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Net.Http;\nusing System.Text;\nusi"
},
{
"path": "src/SimpleAuth/Api/Authenticator.cs",
"chars": 1341,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Net;\nusing Sy"
},
{
"path": "src/SimpleAuth/Api/JSonExtensions.cs",
"chars": 1288,
"preview": "using System;\nusing Newtonsoft.Json.Linq;\nusing Newtonsoft.Json;\nusing System.Threading.Tasks;\nusing System.IO;\n\nnamesp"
},
{
"path": "src/SimpleAuth/Api/WebAuthenticator.cs",
"chars": 2244,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Collections.Specialized;\nusing System.Diagnostics;\nusing S"
},
{
"path": "src/SimpleAuth/ApiKey/ApiKeyApi.cs",
"chars": 1259,
"preview": "using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing System.Web;\n\nnamespace SimpleAuth\n{\n\tpublic cl"
},
{
"path": "src/SimpleAuth/ApiKey/AuthLocation.cs",
"chars": 143,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\tpublic enum AuthLocation {\n"
},
{
"path": "src/SimpleAuth/BasicAuth/BasicAuthAccount.cs",
"chars": 344,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\tpublic class BasicAuthAccou"
},
{
"path": "src/SimpleAuth/BasicAuth/BasicAuthApi.cs",
"chars": 2876,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;"
},
{
"path": "src/SimpleAuth/BasicAuth/BasicAuthAuthenticator.cs",
"chars": 1119,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;"
},
{
"path": "src/SimpleAuth/BasicAuth/IBasicAuthenicator.cs",
"chars": 851,
"preview": "//\n// Copyright 2017 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "src/SimpleAuth/Converters/Converter.cs",
"chars": 924,
"preview": "//\n// Copyright 2020 \n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use "
},
{
"path": "src/SimpleAuth/Converters/JsonConverter.cs",
"chars": 1518,
"preview": "//\n// Copyright 2020 \n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use "
},
{
"path": "src/SimpleAuth/Helpers/CookieHolder.cs",
"chars": 215,
"preview": "using System;\nnamespace SimpleAuth {\n\tpublic class CookieHolder {\n\t\tpublic string Name { get; set; }\n\t\tpublic string Va"
},
{
"path": "src/SimpleAuth/Helpers/IAuthStorage.cs",
"chars": 287,
"preview": "using System;\nnamespace SimpleAuth {\n\tpublic interface IAuthStorage {\n\t\tvoid SetSecured (string identifier, string valu"
},
{
"path": "src/SimpleAuth/Helpers/Resolver.cs",
"chars": 972,
"preview": "using System;\nusing System.Collections.Generic;\nnamespace SimpleAuth\n{\n\tpublic static class Resolver\n\t{\n\t\tstatic readon"
},
{
"path": "src/SimpleAuth/Helpers/UrlUtility.cs",
"chars": 1118,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Collections.Specialized;\nusing System.Text;\nusing System.W"
},
{
"path": "src/SimpleAuth/OAuth/OAuthAccount.cs",
"chars": 1140,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\tpublic class OAuthAccount :"
},
{
"path": "src/SimpleAuth/OAuth/OAuthApi.cs",
"chars": 9712,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Net.Http;\nusi"
},
{
"path": "src/SimpleAuth/OAuth/OAuthAuthenticator.cs",
"chars": 701,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace SimpleAuth {\n\tpublic class OAuthAuthentic"
},
{
"path": "src/SimpleAuth/OAuth/OAuthPasswordApi.cs",
"chars": 3166,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Newtonsoft.J"
},
{
"path": "src/SimpleAuth/OAuth/OauthApiKeyApi.cs",
"chars": 2934,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;"
},
{
"path": "src/SimpleAuth/OAuth/OauthResponse.cs",
"chars": 666,
"preview": "using System;\nusing Newtonsoft.Json;\n\nnamespace SimpleAuth {\n\tpublic class OauthResponse : ApiResponse {\n\t\tstring token"
},
{
"path": "src/SimpleAuth/Properties/AssemblyInfo.cs",
"chars": 1492,
"preview": "#if !NETSTANDARD2_0 && !NET6_0\nusing System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.Int"
},
{
"path": "src/SimpleAuth/Providers/ADFS.cs",
"chars": 4021,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading.Tasks;\n\nnamespace SimpleA"
},
{
"path": "src/SimpleAuth/Providers/Amazon.cs",
"chars": 1234,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Text;\nusing Syst"
},
{
"path": "src/SimpleAuth/Providers/AzureB2CApi.cs",
"chars": 4807,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Security.AccessControl;\nusing Syste"
},
{
"path": "src/SimpleAuth/Providers/DropBox.cs",
"chars": 2907,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net;\nusing System.Net.Http;\nusing System.Text;\nusing Syste"
},
{
"path": "src/SimpleAuth/Providers/Facebook.cs",
"chars": 3750,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading.Tasks;\n\nnamespace SimpleA"
},
{
"path": "src/SimpleAuth/Providers/FitBitApi.cs",
"chars": 4458,
"preview": "//\n// Copyright 2018 (c) James Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth/Providers/Github.cs",
"chars": 8633,
"preview": "using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Newtonsoft.Json;\n\nnamespace SimpleAuth.Provide"
},
{
"path": "src/SimpleAuth/Providers/Google.cs",
"chars": 9911,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Net.Http;\nusing Syste"
},
{
"path": "src/SimpleAuth/Providers/Instagram.cs",
"chars": 1249,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading.Tasks;"
},
{
"path": "src/SimpleAuth/Providers/LinkedIn.cs",
"chars": 1311,
"preview": "//\n// Copyright 2016 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "src/SimpleAuth/Providers/MicrosoftLiveConnectApi.cs",
"chars": 1709,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing System.Net."
},
{
"path": "src/SimpleAuth/Providers/Twitter.cs",
"chars": 8586,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Globalization;\nusing System.Linq"
},
{
"path": "src/SimpleAuth/SimpleAuth.projitems",
"chars": 3570,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Propert"
},
{
"path": "src/SimpleAuth/SimpleAuth.shproj",
"chars": 1058,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "src/SimpleAuth.Droid/ActivityStateRepository.cs",
"chars": 787,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n\nnamespace SimpleAuth.Droid\n{\n\t///"
},
{
"path": "src/SimpleAuth.Droid/App.config",
"chars": 776,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <configSections>\n \n <section name=\"entityFramework\" type"
},
{
"path": "src/SimpleAuth.Droid/AuthStorage.cs",
"chars": 3517,
"preview": "using System;\nusing System.Collections.Generic;\nusing Android.Content;\nusing Android.Runtime;\nusing Java.IO;\nusing Java"
},
{
"path": "src/SimpleAuth.Droid/LoginActvity.cs",
"chars": 2595,
"preview": "//\n// Copyright 2016 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "src/SimpleAuth.Droid/Native.cs",
"chars": 1285,
"preview": "//\n// Copyright 2017 (c) James Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth.Droid/Resources/AboutResources.txt",
"chars": 1771,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "src/SimpleAuth.Droid/Resources/Resource.Designer.cs",
"chars": 2028,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "src/SimpleAuth.Droid/Resources/Values/Strings.xml",
"chars": 179,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <string name=\"Hello\">Hello World, Click Me!</string>\n <string "
},
{
"path": "src/SimpleAuth.Droid/Resources/layout/login.axml",
"chars": 1213,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n andr"
},
{
"path": "src/SimpleAuth.Droid/SimpleAuth.Droid.csproj",
"chars": 3451,
"preview": "<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prop"
},
{
"path": "src/SimpleAuth.Droid/TypeForwarded.cs",
"chars": 241,
"preview": "using System.Runtime.CompilerServices;\n\n[assembly: TypeForwardedTo(typeof(System.Console))]\n[assembly: TypeForwardedTo("
},
{
"path": "src/SimpleAuth.Droid/WebAuthenticatorActivity.cs",
"chars": 8594,
"preview": "//\n// Copyright 2012-2013, Xamarin Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/ActivityLifecycleCallbackManager.cs",
"chars": 1282,
"preview": "using System;\nusing Android.App;\nusing Android.OS;\nusing Android.Support.V4.App;\nusing SimpleAuth.Droid.CustomTabs;\nnam"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/NativeCustomTabsAuthenticator.cs",
"chars": 3628,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/Properties/AssemblyInfo.cs",
"chars": 1091,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing Android.App"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/Resources/AboutResources.txt",
"chars": 1693,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/Resources/Resource.Designer.cs",
"chars": 21912,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/SimpleAuth.Droid.CustomTabs.csproj",
"chars": 3226,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "src/SimpleAuth.Droid.CustomTabs/SimpleAuthCallbackActivity.cs",
"chars": 532,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n\nusing Android.App;\nusing Android"
},
{
"path": "src/SimpleAuth.Facebook.Droid/ActivityLifecycleManager.cs",
"chars": 949,
"preview": "using System;\nusing Android.App;\nusing Android.Content;\nusing Android.OS;\n\nnamespace SimpleAuth.Providers\n{\n class A"
},
{
"path": "src/SimpleAuth.Facebook.Droid/Facebook.cs",
"chars": 3889,
"preview": "using System;\nusing System.Threading.Tasks;\nusing Android.App;\nusing Android.Runtime;\nusing Xamarin.Facebook;\nusing Xam"
},
{
"path": "src/SimpleAuth.Facebook.Droid/Properties/AssemblyInfo.cs",
"chars": 1005,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\n\n// Information about this assembly is defined by the f"
},
{
"path": "src/SimpleAuth.Facebook.Droid/Resources/AboutResources.txt",
"chars": 1694,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "src/SimpleAuth.Facebook.Droid/Resources/Resource.designer.cs",
"chars": 212623,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "src/SimpleAuth.Facebook.Droid/Resources/values/Strings.xml",
"chars": 129,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\t<string name=\"library_name\">SimpleAuth.Facebook.Droid</string>\n</re"
},
{
"path": "src/SimpleAuth.Facebook.Droid/SimpleAuth.Facebook.Droid.csproj",
"chars": 2987,
"preview": "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n <Pro"
},
{
"path": "src/SimpleAuth.Facebook.iOS/Facebook.cs",
"chars": 2806,
"preview": "using System;\nusing fb = Facebook;\nusing System.Threading.Tasks;\nusing Task = System.Threading.Tasks.Task;\nusing UIKit;"
},
{
"path": "src/SimpleAuth.Facebook.iOS/Properties/AssemblyInfo.cs",
"chars": 1000,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\n\n// Information about this assembly is defined by the f"
},
{
"path": "src/SimpleAuth.Facebook.iOS/SimpleAuth.Facebook.iOS.csproj",
"chars": 2517,
"preview": "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n <Pro"
},
{
"path": "src/SimpleAuth.Google.Droid/ActivityLifecycleManager.cs",
"chars": 974,
"preview": "using System;\nusing Android.App;\nusing Android.Content;\nusing Android.OS;\n\nnamespace SimpleAuth.Providers\n{\n class A"
},
{
"path": "src/SimpleAuth.Google.Droid/Google.cs",
"chars": 9842,
"preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Android.App;\nusing Android.Gms.Auth.Api.SignIn;\nus"
},
{
"path": "src/SimpleAuth.Google.Droid/Properties/AssemblyInfo.cs",
"chars": 1003,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\n\n// Information about this assembly is defined by the f"
},
{
"path": "src/SimpleAuth.Google.Droid/Resources/AboutResources.txt",
"chars": 1694,
"preview": "Images, layout descriptions, binary blobs and string dictionaries can be included \nin your application as resource files"
},
{
"path": "src/SimpleAuth.Google.Droid/Resources/Resource.designer.cs",
"chars": 31624,
"preview": "#pragma warning disable 1591\n//------------------------------------------------------------------------------\n// <auto-g"
},
{
"path": "src/SimpleAuth.Google.Droid/Resources/values/Strings.xml",
"chars": 127,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\t<string name=\"library_name\">SimpleAuth.Google.Droid</string>\n</reso"
},
{
"path": "src/SimpleAuth.Google.Droid/SimpleAuth.Google.Droid.csproj",
"chars": 2986,
"preview": "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n <Pro"
},
{
"path": "src/SimpleAuth.Google.iOS/Google.cs",
"chars": 3784,
"preview": "//\n// Copyright 2017 (c) James Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth.Google.iOS/Properties/AssemblyInfo.cs",
"chars": 1639,
"preview": "//\n// Copyright 2017 (c) James Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth.Google.iOS/SimpleAuth.Google.iOS.csproj",
"chars": 3179,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.micros"
},
{
"path": "src/SimpleAuth.Mac/AppleEventsHelper.cs",
"chars": 2036,
"preview": "//\n// Copyright 2016 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "src/SimpleAuth.Mac/AuthStorage.cs",
"chars": 1110,
"preview": "using System;\nusing Foundation;\nusing Security;\n\nnamespace SimpleAuth\n{\n\t[Preserve (AllMembers = true)]\n\tpublic class A"
},
{
"path": "src/SimpleAuth.Mac/Entitlements.plist",
"chars": 181,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "src/SimpleAuth.Mac/Native.cs",
"chars": 1841,
"preview": "//\n// Copyright 2017 (c) James Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// "
},
{
"path": "src/SimpleAuth.Mac/NativeSafariAuthenticator.cs",
"chars": 3996,
"preview": "//\n// Copyright 2016 Clancey\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may n"
},
{
"path": "src/SimpleAuth.Mac/SimpleAuth.Mac.csproj",
"chars": 3238,
"preview": "<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n <Prope"
}
]
// ... and 33 more files (download for full content)
About this extraction
This page contains the full source code of the Clancey/SimpleAuth GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 233 files (2.1 MB), approximately 553.2k tokens, and a symbol index with 848 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.