├── docs
├── images
│ ├── SwipeCardView_Android_ColorsPage.gif
│ ├── SwipeCardView_Android_SimplePage.png
│ ├── SwipeCardView_Android_TinderPage.png
│ ├── SwipeCardView_Android_CardRotation.gif
│ ├── SwipeCardView_Android_AnimationLength.gif
│ ├── SwipeCardView_Android_BackCardScale.gif
│ ├── SwipeCardView_Android_TinderPageLike.png
│ ├── SwipeCardView_Android_TinderPageLikeM.jpg
│ ├── SwipeCardView_Android_TinderPageNope.png
│ ├── SwipeCardView_Android_TinderPageNopeM.jpg
│ ├── SwipeCardView_Android_TinderPage_Down.gif
│ ├── SwipeCardView_Android_TinderPage_Full.gif
│ ├── SwipeCardView_Android_TinderPage_Like.gif
│ ├── SwipeCardView_Android_TinderPage_Nope.gif
│ ├── SwipeCardView_Android_CustomizablePage.png
│ ├── SwipeCardView_Android_TinderPageSuperLike.png
│ ├── SwipeCardView_Android_TinderPageSuperLikeM.jpg
│ └── SwipeCardView_Android_TinderPage_SuperLike.gif
├── changelog.md
├── api.md
└── index.md
├── src
├── SwipeCardView.Sample
│ ├── SwipeCardView.Sample.iOS
│ │ ├── Resources
│ │ │ ├── Default.png
│ │ │ ├── p327144.jpg
│ │ │ ├── p378674.jpg
│ │ │ ├── p398931.jpg
│ │ │ ├── p401107.jpg
│ │ │ ├── p453095.jpg
│ │ │ ├── p458914.jpg
│ │ │ ├── p467499.jpg
│ │ │ ├── p474893.jpg
│ │ │ ├── p497489.jpg
│ │ │ ├── p503001.jpg
│ │ │ ├── p589739.jpg
│ │ │ ├── p597956.jpg
│ │ │ ├── p627958.jpg
│ │ │ ├── p705193.jpg
│ │ │ ├── p731150.jpg
│ │ │ ├── Default@2x.png
│ │ │ ├── Default-568h@2x.png
│ │ │ ├── Default-Portrait.png
│ │ │ ├── Default-Portrait@2x.png
│ │ │ ├── ic_tinder_like@2x.png
│ │ │ ├── ic_tinder_like@3x.png
│ │ │ ├── ic_tinder_nope@2x.png
│ │ │ ├── ic_tinder_nope@3x.png
│ │ │ ├── ic_tinder_superlike@2x.png
│ │ │ ├── ic_tinder_superlike@3x.png
│ │ │ └── LaunchScreen.storyboard
│ │ ├── Assets.xcassets
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── Icon20.png
│ │ │ │ ├── Icon29.png
│ │ │ │ ├── Icon40.png
│ │ │ │ ├── Icon58.png
│ │ │ │ ├── Icon60.png
│ │ │ │ ├── Icon76.png
│ │ │ │ ├── Icon80.png
│ │ │ │ ├── Icon87.png
│ │ │ │ ├── Icon1024.png
│ │ │ │ ├── Icon120.png
│ │ │ │ ├── Icon152.png
│ │ │ │ ├── Icon167.png
│ │ │ │ ├── Icon180.png
│ │ │ │ └── Contents.json
│ │ ├── Entitlements.plist
│ │ ├── Main.cs
│ │ ├── AppDelegate.cs
│ │ ├── Info.plist
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── SwipeCardView.Sample.iOS.csproj
│ ├── SwipeCardView.Sample
│ │ ├── Model
│ │ │ ├── Gender.cs
│ │ │ └── Profile.cs
│ │ ├── App.xaml
│ │ ├── View
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── SimplePage.xaml.cs
│ │ │ ├── CustomizablePage.xaml.cs
│ │ │ ├── Misc
│ │ │ │ ├── EmptyPage.xaml.cs
│ │ │ │ ├── ListPage.xaml.cs
│ │ │ │ ├── TemplateSelectorPage.xaml.cs
│ │ │ │ ├── EmptyPage.xaml
│ │ │ │ ├── ListPage.xaml
│ │ │ │ └── TemplateSelectorPage.xaml
│ │ │ ├── MiscContainerPage.xaml.cs
│ │ │ ├── MiscContainerPage.xaml
│ │ │ ├── MainPage.xaml
│ │ │ ├── SimplePage.xaml
│ │ │ ├── ColorsPage.xaml
│ │ │ ├── ColorsPage.xaml.cs
│ │ │ ├── TinderPage.xaml.cs
│ │ │ ├── TinderPage.xaml
│ │ │ └── CustomizablePage.xaml
│ │ ├── ViewModel
│ │ │ ├── BaseViewModel.cs
│ │ │ ├── MainPageViewModel.cs
│ │ │ ├── SimplePageViewModel.cs
│ │ │ ├── ColorsPageViewModel.cs
│ │ │ ├── TinderPageViewModel.cs
│ │ │ └── CustomizablePageViewModel.cs
│ │ ├── App.xaml.cs
│ │ ├── DataTemplateSelectors
│ │ │ └── GenderDataTemplateSelector.cs
│ │ └── SwipeCardView.Sample.csproj
│ └── SwipeCardView.Sample.Android
│ │ ├── Resources
│ │ ├── drawable
│ │ │ ├── marko.jpg
│ │ │ ├── p327144.jpg
│ │ │ ├── p378674.jpg
│ │ │ ├── p398931.jpg
│ │ │ ├── p401107.jpg
│ │ │ ├── p453095.jpg
│ │ │ ├── p458914.jpg
│ │ │ ├── p467499.jpg
│ │ │ ├── p474893.jpg
│ │ │ ├── p497489.jpg
│ │ │ ├── p503001.jpg
│ │ │ ├── p589739.jpg
│ │ │ ├── p597956.jpg
│ │ │ ├── p627958.jpg
│ │ │ ├── p705193.jpg
│ │ │ └── p731150.jpg
│ │ ├── mipmap-hdpi
│ │ │ ├── Icon.png
│ │ │ └── launcher_foreground.png
│ │ ├── mipmap-mdpi
│ │ │ ├── Icon.png
│ │ │ └── launcher_foreground.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── Icon.png
│ │ │ └── launcher_foreground.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── Icon.png
│ │ │ └── launcher_foreground.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── Icon.png
│ │ │ └── launcher_foreground.png
│ │ ├── drawable-hdpi
│ │ │ ├── ic_tinder_like.png
│ │ │ ├── ic_tinder_nope.png
│ │ │ └── ic_tinder_superlike.png
│ │ ├── drawable-mdpi
│ │ │ ├── ic_tinder_like.png
│ │ │ ├── ic_tinder_nope.png
│ │ │ └── ic_tinder_superlike.png
│ │ ├── drawable-xhdpi
│ │ │ ├── ic_tinder_like.png
│ │ │ ├── ic_tinder_nope.png
│ │ │ └── ic_tinder_superlike.png
│ │ ├── drawable-xxhdpi
│ │ │ ├── ic_tinder_like.png
│ │ │ ├── ic_tinder_nope.png
│ │ │ └── ic_tinder_superlike.png
│ │ ├── drawable-xxxhdpi
│ │ │ ├── ic_tinder_like.png
│ │ │ ├── ic_tinder_nope.png
│ │ │ └── ic_tinder_superlike.png
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── icon.xml
│ │ │ └── icon_round.xml
│ │ ├── values
│ │ │ ├── colors.xml
│ │ │ └── styles.xml
│ │ ├── layout
│ │ │ ├── Toolbar.axml
│ │ │ └── Tabbar.axml
│ │ └── AboutResources.txt
│ │ ├── Properties
│ │ ├── AndroidManifest.xml
│ │ └── AssemblyInfo.cs
│ │ ├── Assets
│ │ └── AboutAssets.txt
│ │ ├── MainActivity.cs
│ │ └── SwipeCardView.Sample.Android.csproj
├── MLToolkit.Forms.SwipeCardView
│ ├── Core
│ │ ├── SwipeCardDirection.cs
│ │ ├── DraggingCardPosition.cs
│ │ ├── SwipedCardEventArgs.cs
│ │ └── DraggingCardEventArgs.cs
│ └── MLToolkit.Forms.SwipeCardView.csproj
├── MLToolkit.Forms.SwipeCardView.Tests
│ ├── MLToolkit.Forms.SwipeCardView.Tests.csproj
│ ├── MockViewModel.cs
│ ├── TestBase.cs
│ ├── UnitTests.cs
│ └── MockPlatformServices.cs
└── MLToolkit.Forms.SwipeCardView.sln
├── LICENCE.md
├── .gitignore
└── README.md
/docs/images/SwipeCardView_Android_ColorsPage.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_ColorsPage.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_SimplePage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_SimplePage.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_CardRotation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_CardRotation.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_AnimationLength.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_AnimationLength.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_BackCardScale.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_BackCardScale.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageLike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageLike.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageLikeM.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageLikeM.jpg
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageNope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageNope.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageNopeM.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageNopeM.jpg
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage_Down.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage_Down.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage_Full.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage_Full.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage_Like.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage_Like.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage_Nope.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage_Nope.gif
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_CustomizablePage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_CustomizablePage.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageSuperLike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageSuperLike.png
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPageSuperLikeM.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPageSuperLikeM.jpg
--------------------------------------------------------------------------------
/docs/images/SwipeCardView_Android_TinderPage_SuperLike.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/docs/images/SwipeCardView_Android_TinderPage_SuperLike.gif
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p327144.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p327144.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p378674.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p378674.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p398931.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p398931.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p401107.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p401107.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p453095.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p453095.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p458914.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p458914.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p467499.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p467499.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p474893.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p474893.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p497489.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p497489.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p503001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p503001.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p589739.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p589739.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p597956.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p597956.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p627958.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p627958.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p705193.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p705193.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p731150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/p731150.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/Model/Gender.cs:
--------------------------------------------------------------------------------
1 | namespace SwipeCardView.Sample.Model
2 | {
3 | public enum Gender
4 | {
5 | Female = 1,
6 |
7 | Male = 2
8 | }
9 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-568h@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-Portrait.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/marko.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/marko.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_like@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_like@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_like@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_like@3x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_nope@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_nope@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_nope@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_nope@3x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p327144.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p327144.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p378674.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p378674.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p398931.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p398931.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p401107.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p401107.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p453095.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p453095.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p458914.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p458914.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p467499.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p467499.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p474893.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p474893.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p497489.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p497489.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p503001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p503001.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p589739.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p589739.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p597956.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p597956.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p627958.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p627958.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p705193.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p705193.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p731150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable/p731150.jpg
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-hdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-hdpi/Icon.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-mdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-mdpi/Icon.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xhdpi/Icon.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxhdpi/Icon.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxxhdpi/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxxhdpi/Icon.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_superlike@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_superlike@2x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_superlike@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/ic_tinder_superlike@3x.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_like.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_nope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_nope.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_like.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_nope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_nope.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_like.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_nope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_nope.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_like.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_nope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_nope.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_like.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_nope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_nope.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-hdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-hdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-mdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-mdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_superlike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-hdpi/ic_tinder_superlike.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_superlike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-mdpi/ic_tinder_superlike.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_superlike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xhdpi/ic_tinder_superlike.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_superlike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxhdpi/ic_tinder_superlike.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_superlike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markolazic88/SwipeCardView/HEAD/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/drawable-xxxhdpi/ic_tinder_superlike.png
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-anydpi-v26/icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 | #3F51B5
5 | #303F9F
6 | #FF4081
7 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/mipmap-anydpi-v26/icon_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/Model/Profile.cs:
--------------------------------------------------------------------------------
1 | namespace SwipeCardView.Sample.Model
2 | {
3 | public class Profile
4 | {
5 | public int ProfileId { get; set; }
6 |
7 | public string Name { get; set; }
8 |
9 | public int Age { get; set; }
10 |
11 | public Gender Gender { get; set; }
12 |
13 | public string Photo { get; set; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using SwipeCardView.Sample.ViewModel;
2 | using Xamarin.Forms;
3 |
4 | namespace SwipeCardView.Sample.View
5 | {
6 | public partial class MainPage : ContentPage
7 | {
8 | public MainPage()
9 | {
10 | InitializeComponent();
11 | BindingContext = new MainPageViewModel(Navigation);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Properties/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/layout/Toolbar.axml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/SimplePage.xaml.cs:
--------------------------------------------------------------------------------
1 | using SwipeCardView.Sample.ViewModel;
2 | using Xamarin.Forms;
3 | using Xamarin.Forms.Xaml;
4 |
5 | namespace SwipeCardView.Sample.View
6 | {
7 | [XamlCompilation(XamlCompilationOptions.Compile)]
8 | public partial class SimplePage : ContentPage
9 | {
10 | public SimplePage()
11 | {
12 | InitializeComponent();
13 | BindingContext = new SimplePageViewModel();
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Main.cs:
--------------------------------------------------------------------------------
1 | using UIKit;
2 |
3 | namespace SwipeCardView.Sample.iOS
4 | {
5 | public class Application
6 | {
7 | // This is the main entry point of the application.
8 | private static void Main(string[] args)
9 | {
10 | // if you want to use a different Application Delegate class from "AppDelegate"
11 | // you can specify it here.
12 | UIApplication.Main(args, null, "AppDelegate");
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/ViewModel/BaseViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Runtime.CompilerServices;
3 |
4 | namespace SwipeCardView.Sample.ViewModel
5 | {
6 | public abstract class BasePageViewModel : INotifyPropertyChanged
7 | {
8 | public event PropertyChangedEventHandler PropertyChanged;
9 |
10 | protected void RaisePropertyChanged([CallerMemberName] string name = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
11 | }
12 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/CustomizablePage.xaml.cs:
--------------------------------------------------------------------------------
1 | using SwipeCardView.Sample.ViewModel;
2 | using Xamarin.Forms;
3 | using Xamarin.Forms.Xaml;
4 |
5 | namespace SwipeCardView.Sample.View
6 | {
7 | [XamlCompilation(XamlCompilationOptions.Compile)]
8 | public partial class CustomizablePage : ContentPage
9 | {
10 | public CustomizablePage()
11 | {
12 | InitializeComponent();
13 | BindingContext = new CustomizablePageViewModel();
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/EmptyPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Xamarin.Forms;
8 | using Xamarin.Forms.Xaml;
9 |
10 | namespace SwipeCardView.Sample.View.Misc
11 | {
12 | [XamlCompilation(XamlCompilationOptions.Compile)]
13 | public partial class EmptyPage : ContentPage
14 | {
15 | public EmptyPage()
16 | {
17 | InitializeComponent();
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/MiscContainerPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Xamarin.Forms;
8 | using Xamarin.Forms.Xaml;
9 |
10 | namespace SwipeCardView.Sample.View
11 | {
12 | [XamlCompilation(XamlCompilationOptions.Compile)]
13 | public partial class MiscContainerPage : TabbedPage
14 | {
15 | public MiscContainerPage()
16 | {
17 | InitializeComponent();
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/layout/Tabbar.axml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/ListPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Xamarin.Forms;
3 | using Xamarin.Forms.Xaml;
4 |
5 | namespace SwipeCardView.Sample.View.Misc
6 | {
7 | [XamlCompilation(XamlCompilationOptions.Compile)]
8 | public partial class ListPage : ContentPage
9 | {
10 | public ListPage()
11 | {
12 | InitializeComponent();
13 |
14 | SwipeCardView.ItemsSource = new List()
15 | {
16 | "Baboon",
17 | "Capuchin Monkey",
18 | "Blue Monkey"
19 | };
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView/Core/SwipeCardDirection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace MLToolkit.Forms.SwipeCardView.Core
4 | {
5 | /// Enumerates swipe directions.
6 | [Flags]
7 | public enum SwipeCardDirection
8 | {
9 | /// Indicates an unknown direction.
10 | None = 0,
11 |
12 | /// Indicates a rightward swipe.
13 | Right = 1,
14 |
15 | /// Indicates a leftward swipe.
16 | Left = 2,
17 |
18 | /// Indicates an upward swipe.
19 | Up = 4,
20 |
21 | /// Indicates a downward swipe.
22 | Down = 8,
23 | }
24 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Assets/AboutAssets.txt:
--------------------------------------------------------------------------------
1 | Any raw assets you want to be deployed with your application can be placed in
2 | this directory (and child directories) and given a Build Action of "AndroidAsset".
3 |
4 | These files will be deployed with you package and will be accessible using Android's
5 | AssetManager, like this:
6 |
7 | public class ReadAsset : Activity
8 | {
9 | protected override void OnCreate (Bundle bundle)
10 | {
11 | base.OnCreate (bundle);
12 |
13 | InputStream input = Assets.Open ("my_asset.txt");
14 | }
15 | }
16 |
17 | Additionally, some Android functions will automatically load asset files:
18 |
19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
20 |
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView.Tests/MLToolkit.Forms.SwipeCardView.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView/Core/DraggingCardPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace MLToolkit.Forms.SwipeCardView.Core
4 | {
5 | /// Enumerates dragging directions.
6 | [Flags]
7 | public enum DraggingCardPosition
8 | {
9 | /// Indicates a starting position.
10 | Start = 0,
11 |
12 | /// Indicates a position under threshold.
13 | UnderThreshold = 1,
14 |
15 | /// Indicates a position over threshold.
16 | OverThreshold = 2,
17 |
18 | /// Indicates an ending position under threshold.
19 | FinishedUnderThreshold = 4,
20 |
21 | /// Indicates an ending position over threshold.
22 | FinishedOverThreshold = 8
23 | }
24 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/ViewModel/MainPageViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 | using Xamarin.Forms;
4 |
5 | namespace SwipeCardView.Sample.ViewModel
6 | {
7 | public class MainPageViewModel : BasePageViewModel
8 | {
9 | public MainPageViewModel(INavigation navigation)
10 | {
11 | Navigation = navigation;
12 |
13 | NavigateCommand = new Command(OnNavigateCommand);
14 | }
15 |
16 | public ICommand NavigateCommand { get; private set; }
17 | private INavigation Navigation { get; set; }
18 |
19 | private async void OnNavigateCommand(Type pageType)
20 | {
21 | Page page = (Page)Activator.CreateInstance(pageType);
22 | await Navigation.PushAsync(page);
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/TemplateSelectorPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using SwipeCardView.Sample.Model;
7 | using Xamarin.Forms;
8 | using Xamarin.Forms.Xaml;
9 |
10 | namespace SwipeCardView.Sample.View.Misc
11 | {
12 | [XamlCompilation(XamlCompilationOptions.Compile)]
13 | public partial class TemplateSelectorPage : ContentPage
14 | {
15 | public TemplateSelectorPage()
16 | {
17 | InitializeComponent();
18 |
19 | SwipeCardView.ItemsSource = new List()
20 | {
21 | Gender.Male,
22 | Gender.Female,
23 | Gender.Male,
24 | Gender.Female
25 | };
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView/Core/SwipedCardEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace MLToolkit.Forms.SwipeCardView.Core
2 | {
3 | /// Arguments for swipe events.
4 | public class SwipedCardEventArgs : System.EventArgs
5 | {
6 | public SwipedCardEventArgs(object item, object parameter, SwipeCardDirection direction)
7 | {
8 | Item = item;
9 | Parameter = parameter;
10 | Direction = direction;
11 | }
12 |
13 | /// Gets the item parameter.
14 | public object Item { get; private set; }
15 |
16 | /// Gets the command parameter.
17 | public object Parameter { get; private set; }
18 |
19 | /// Gets the direction of the swipe.
20 | public SwipeCardDirection Direction { get; private set; }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using SwipeCardView.Sample.View;
2 | using Xamarin.Forms;
3 | using Xamarin.Forms.Xaml;
4 |
5 | [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
6 |
7 | namespace SwipeCardView.Sample
8 | {
9 | public partial class App : Application
10 | {
11 | public static double ScreenHeight;
12 | public static double ScreenWidth;
13 |
14 | public App()
15 | {
16 | InitializeComponent();
17 |
18 | MainPage = new NavigationPage(new MainPage());
19 | }
20 |
21 | protected override void OnStart()
22 | {
23 | // Handle when your app starts
24 | }
25 |
26 | protected override void OnSleep()
27 | {
28 | // Handle when your app sleeps
29 | }
30 |
31 | protected override void OnResume()
32 | {
33 | // Handle when your app resumes
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/MiscContainerPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView.Tests/MockViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Runtime.CompilerServices;
5 | using System.Text;
6 |
7 | namespace MLToolkit.Forms.SwipeCardView.Tests
8 | {
9 | class MockViewModel : INotifyPropertyChanged
10 | {
11 | public event PropertyChangedEventHandler PropertyChanged;
12 |
13 | public MockViewModel(string text=null)
14 | {
15 | _text = text;
16 | }
17 |
18 | string _text;
19 | public virtual string Text {
20 | get { return _text; }
21 | set {
22 | if (_text == value)
23 | return;
24 |
25 | _text = value;
26 | OnPropertyChanged ("Text");
27 | }
28 | }
29 |
30 | protected void OnPropertyChanged ([CallerMemberName] string propertyName = null)
31 | {
32 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs (propertyName));
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/LICENCE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017 Marko Lazic
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/DataTemplateSelectors/GenderDataTemplateSelector.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using SwipeCardView.Sample.Model;
5 | using Xamarin.Forms;
6 |
7 | namespace SwipeCardView.Sample.DataTemplateSelectors
8 | {
9 | public class GenderDataTemplateSelector : DataTemplateSelector
10 | {
11 | public DataTemplate MaleDataTemplate { get; set; }
12 |
13 | public DataTemplate FemaleDataTemplate { get; set; }
14 |
15 | public DataTemplate DefautlDataTemplate { get; set; }
16 |
17 | protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
18 | {
19 | if (item is Gender gender)
20 | {
21 | switch (gender)
22 | {
23 | case Gender.Female:
24 | return MaleDataTemplate;
25 | case Gender.Male:
26 | return FemaleDataTemplate;
27 | }
28 | }
29 |
30 | return DefautlDataTemplate;
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView.Tests/TestBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Text;
5 | using Microsoft.VisualStudio.TestTools.UnitTesting;
6 | using Xamarin.Forms;
7 |
8 | namespace MLToolkit.Forms.SwipeCardView.Tests
9 | {
10 | [TestClass]
11 | public abstract class TestBase
12 | {
13 | CultureInfo _defaultCulture;
14 | CultureInfo _defaultUICulture;
15 |
16 | [TestInitialize]
17 | public void Initialize()
18 | {
19 | _defaultCulture = System.Threading.Thread.CurrentThread.CurrentCulture;
20 | _defaultUICulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
21 | Device.PlatformServices = new MockPlatformServices();
22 | }
23 |
24 | [TestCleanup]
25 | public void Cleanup()
26 | {
27 | Device.PlatformServices = null;
28 | System.Threading.Thread.CurrentThread.CurrentCulture = _defaultCulture;
29 | System.Threading.Thread.CurrentThread.CurrentUICulture = _defaultUICulture;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView/MLToolkit.Forms.SwipeCardView.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | MLToolkit.Forms.SwipeCardView
6 | 1.0.0.0
7 | $(BUILD_BUILDNUMBER)
8 | Marko Lazic
9 | Marko Lazic
10 | https://github.com/markolazic88/SwipeCardView
11 | MIT
12 | xamarin xamarin.forms android ios swipe card view mltoolkit tinder
13 | SwipeCardView is a lightweight MVVM friendly user control that brings Tinder-style swipe card view into Xamarin.Forms applications.
14 | Copyright 2020
15 | https://github.com/markolazic88/SwipeCardView
16 | https://github.com/markolazic88/SwipeCardView/blob/master/docs/changelog.md
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Content.PM;
3 | using Android.OS;
4 | using Xamarin.Forms;
5 |
6 | namespace SwipeCardView.Sample.Droid
7 | {
8 | [Activity(Label = "SwipeCardView.Sample", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Portrait)]
9 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
10 | {
11 | protected override void OnCreate(Bundle bundle)
12 | {
13 | TabLayoutResource = Resource.Layout.Tabbar;
14 | ToolbarResource = Resource.Layout.Toolbar;
15 |
16 | base.OnCreate(bundle);
17 |
18 | Forms.SetFlags("CollectionView_Experimental");
19 | Forms.SetFlags("CarouselView_Experimental");
20 | Forms.Init(this, bundle);
21 |
22 | var width = Resources.DisplayMetrics.WidthPixels;
23 | var height = Resources.DisplayMetrics.HeightPixels;
24 | var density = Resources.DisplayMetrics.Density;
25 |
26 | App.ScreenWidth = (width - 0.5f) / density;
27 | App.ScreenHeight = (height - 0.5f) / density;
28 |
29 | LoadApplication(new App());
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/EmptyPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/ListPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using System.Reflection;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("SwipeCardView.Sample.Android")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SwipeCardView.Sample.Android")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 | [assembly: ComVisible(false)]
17 |
18 | // Version information for an assembly consists of the following four values:
19 | //
20 | // Major Version
21 | // Minor Version
22 | // Build Number
23 | // Revision
24 | //
25 | // You can specify all the values or you can default the Build and Revision Numbers
26 | // by using the '*' as shown below:
27 | // [assembly: AssemblyVersion("1.0.*")]
28 | [assembly: AssemblyVersion("1.0.0.0")]
29 | [assembly: AssemblyFileVersion("1.0.0.0")]
30 |
31 | // Add some common permissions, these can be removed if not needed
32 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)]
33 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Foundation;
2 | using UIKit;
3 | using Xamarin.Forms;
4 |
5 | namespace SwipeCardView.Sample.iOS
6 | {
7 | // The UIApplicationDelegate for the application. This class is responsible for launching the
8 | // User Interface of the application, as well as listening (and optionally responding) to
9 | // application events from iOS.
10 | [Register("AppDelegate")]
11 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
12 | {
13 | //
14 | // This method is invoked when the application has loaded and is ready to run. In this
15 | // method you should instantiate the window, load the UI into it and then make the window
16 | // visible.
17 | //
18 | // You have 17 seconds to return from this method, or iOS will terminate your application.
19 | //
20 | public override bool FinishedLaunching(UIApplication app, NSDictionary options)
21 | {
22 | Forms.SetFlags("CollectionView_Experimental");
23 | Forms.SetFlags("CarouselView_Experimental");
24 | Forms.Init();
25 |
26 | App.ScreenWidth = UIScreen.MainScreen.Bounds.Width;
27 | App.ScreenHeight = UIScreen.MainScreen.Bounds.Height;
28 |
29 | LoadApplication(new App());
30 |
31 | return base.FinishedLaunching(app, options);
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | UIDeviceFamily
6 |
7 | 1
8 | 2
9 |
10 | UISupportedInterfaceOrientations
11 |
12 | UIInterfaceOrientationPortrait
13 | UIInterfaceOrientationPortraitUpsideDown
14 | UIInterfaceOrientationLandscapeLeft
15 |
16 | UISupportedInterfaceOrientations~ipad
17 |
18 | UIInterfaceOrientationPortrait
19 | UIInterfaceOrientationPortraitUpsideDown
20 | UIInterfaceOrientationLandscapeLeft
21 | UIInterfaceOrientationLandscapeRight
22 |
23 | MinimumOSVersion
24 | 8.0
25 | CFBundleDisplayName
26 | SwipeCardView.Sample
27 | CFBundleIdentifier
28 | com.companyname.SwipeCardView.Sample
29 | CFBundleVersion
30 | 1.0
31 | UILaunchStoryboardName
32 | LaunchScreen
33 | CFBundleName
34 | SwipeCardView.Sample
35 | XSAppIconAssets
36 | Assets.xcassets/AppIcon.appiconset
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/MLToolkit.Forms.SwipeCardView/Core/DraggingCardEventArgs.cs:
--------------------------------------------------------------------------------
1 | namespace MLToolkit.Forms.SwipeCardView.Core
2 | {
3 | /// Arguments for swipe events.
4 | public class DraggingCardEventArgs : System.EventArgs
5 | {
6 | public DraggingCardEventArgs(object item, object parameter, SwipeCardDirection direction, DraggingCardPosition position, double distanceDraggedX, double distanceDraggedY)
7 | {
8 | Item = item;
9 | Parameter = parameter;
10 | Direction = direction;
11 | Position = position;
12 | DistanceDraggedX = distanceDraggedX;
13 | DistanceDraggedY = distanceDraggedY;
14 | }
15 |
16 | /// Gets the item parameter.
17 | public object Item { get; private set; }
18 |
19 | /// Gets the command parameter.
20 | public object Parameter { get; private set; }
21 |
22 | /// Gets the direction of the swipe.
23 | public SwipeCardDirection Direction { get; private set; }
24 |
25 | /// Gets the dragging position.
26 | public DraggingCardPosition Position { get; private set; }
27 |
28 | /// Gets the distance dragged on X axis.
29 | public double DistanceDraggedX { get; private set; }
30 |
31 | /// Gets the distance dragged on Y axis.
32 | public double DistanceDraggedY { get; private set; }
33 | }
34 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("SwipeCardView.Sample.iOS")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("SwipeCardView.Sample.iOS")]
12 | [assembly: AssemblyCopyright("Copyright © 2020")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
26 |
27 |
30 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/SimplePage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/changelog.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
6 |
7 | ## 2.2.0
8 |
9 | - Added a new property 'LoopCards' that enables infinite swiping of cards - thanks to @noormahammad
10 | - Added SwipeCardView dispose logic - thanks to @Tommigun1980
11 | - Variuos bug fixed related to ItemSource Reset - thanks to @Tommigun1980
12 |
13 | ## 2.1.0
14 |
15 | - [#14](https://github.com/markolazic88/SwipeCardView/issues/14) - Fixed index out of range exception
16 | - [#7](https://github.com/markolazic88/SwipeCardView/issues/7) - Added graceful handling when ItemsSource is empty
17 | - Updated Xamarin Forms dependency to 4.2.0.848062 or higher
18 | - Added unit tests and more page samples
19 | - Code cleanup
20 |
21 | ## 2.0.0
22 |
23 | - Introduced SwipeCommand and Swiped event, SwipedEventArgs and SwipedCardDirection
24 | - Introduced DraggingCommand, Dragging event, DraggingCardEventArgs and DraggingCardPosition
25 | - Introduced InvokeSwipe method, which replaces InvokeSwipeLeft and InvokeSwipeRight
26 | - Support for swiping and dragging in all 4 directions
27 | - Removed updating card background in favor of Dragging command/event
28 | - Added Samples (TinderPage, ColorsPage, CustomizablePage)
29 | - Added full documentation
30 | - Implemented CI pipeline
31 | - Exposed many consts to be parameters (card rotation adjuster, back card scale, animation length etc.)
32 |
33 | ## 1.2.0
34 |
35 | - Updated library to target netstandard 2.0
36 | - Updated Xamarin Forms dependency to 3.0.0.561731
37 | - Added InvokeSwipeLeft and InvokeSwipeRight methods
38 |
39 | ## 1.1.0
40 |
41 | - Updated Xamarin Forms dependency to 2.5.0.91635.
42 |
43 | ## 1.0.0
44 |
45 | - Initial release
46 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.Android/Resources/AboutResources.txt:
--------------------------------------------------------------------------------
1 | Images, layout descriptions, binary blobs and string dictionaries can be included
2 | in your application as resource files. Various Android APIs are designed to
3 | operate on the resource IDs instead of dealing with images, strings or binary blobs
4 | directly.
5 |
6 | For example, a sample Android app that contains a user interface layout (main.xml),
7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
8 | would keep its resources in the "Resources" directory of the application:
9 |
10 | Resources/
11 | drawable-hdpi/
12 | icon.png
13 |
14 | drawable-ldpi/
15 | icon.png
16 |
17 | drawable-mdpi/
18 | icon.png
19 |
20 | layout/
21 | main.xml
22 |
23 | values/
24 | strings.xml
25 |
26 | In order to get the build system to recognize Android resources, set the build action to
27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but
28 | instead operate on resource IDs. When you compile an Android application that uses resources,
29 | the build system will package the resources for distribution and generate a class called
30 | "Resource" that contains the tokens for each one of the resources included. For example,
31 | for the above Resources layout, this is what the Resource class would expose:
32 |
33 | public class Resource {
34 | public class drawable {
35 | public const int icon = 0x123;
36 | }
37 |
38 | public class layout {
39 | public const int main = 0x456;
40 | }
41 |
42 | public class strings {
43 | public const int first_string = 0xabc;
44 | public const int second_string = 0xbcd;
45 | }
46 | }
47 |
48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
50 | string in the dictionary file values/strings.xml.
51 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/ColorsPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/Misc/TemplateSelectorPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
32 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/SwipeCardView.Sample.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | true
6 |
7 |
8 |
9 | portable
10 | true
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | CustomizablePage.xaml
24 |
25 |
26 | MiscContainerPage.xaml
27 |
28 |
29 | SimplePage.xaml
30 |
31 |
32 |
33 |
34 |
35 | MSBuild:UpdateDesignTimeXaml
36 |
37 |
38 | MSBuild:UpdateDesignTimeXaml
39 |
40 |
41 | MSBuild:UpdateDesignTimeXaml
42 |
43 |
44 | MSBuild:UpdateDesignTimeXaml
45 |
46 |
47 | MSBuild:UpdateDesignTimeXaml
48 |
49 |
50 | MSBuild:UpdateDesignTimeXaml
51 |
52 |
53 | MSBuild:UpdateDesignTimeXaml
54 |
55 |
56 | MSBuild:UpdateDesignTimeXaml
57 |
58 |
59 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/ViewModel/SimplePageViewModel.cs:
--------------------------------------------------------------------------------
1 | using MLToolkit.Forms.SwipeCardView.Core;
2 | using System.Collections.ObjectModel;
3 | using System.Windows.Input;
4 | using Xamarin.Forms;
5 |
6 | namespace SwipeCardView.Sample.ViewModel
7 | {
8 | public class SimplePageViewModel : BasePageViewModel
9 | {
10 | private ObservableCollection _cardItems;
11 | private bool _isLoopCards;
12 | private string _message;
13 |
14 | public SimplePageViewModel()
15 | {
16 | _cardItems = new ObservableCollection();
17 | for (var i = 1; i <= 5; i++)
18 | {
19 | _cardItems.Add($"Card {i}");
20 | }
21 | _isLoopCards = true;
22 | SwipedCommand = new Command(OnSwipedCommand);
23 |
24 | ClearItemsCommand = new Command(OnClearItemsCommand);
25 | AddItemsCommand = new Command(OnAddItemsCommand);
26 | }
27 |
28 | public ObservableCollection CardItems
29 | {
30 | get => _cardItems;
31 | set
32 | {
33 | _cardItems = value;
34 | RaisePropertyChanged();
35 | }
36 | }
37 |
38 | public string Message
39 | {
40 | get => _message;
41 | set
42 | {
43 | _message = value;
44 | RaisePropertyChanged();
45 | }
46 | }
47 |
48 | public bool IsLoopCards
49 | {
50 | get => _isLoopCards;
51 | set
52 | {
53 | _isLoopCards = value;
54 | RaisePropertyChanged();
55 | }
56 | }
57 |
58 | public ICommand SwipedCommand { get; }
59 |
60 | public ICommand ClearItemsCommand { get; }
61 |
62 | public ICommand AddItemsCommand { get; }
63 |
64 | private void OnSwipedCommand(SwipedCardEventArgs eventArgs)
65 | {
66 | var item = eventArgs.Item as string;
67 | Message = $"{item} swiped {eventArgs.Direction}";
68 | }
69 |
70 | private void OnClearItemsCommand()
71 | {
72 | CardItems.Clear();
73 | Message = string.Empty;
74 | }
75 |
76 | private void OnAddItemsCommand()
77 | {
78 | for (var i = 1; i <= 5; i++)
79 | {
80 | CardItems.Add($"Card {i}");
81 | }
82 | }
83 | }
84 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/ViewModel/ColorsPageViewModel.cs:
--------------------------------------------------------------------------------
1 | using MLToolkit.Forms.SwipeCardView.Core;
2 | using System;
3 | using System.Collections.ObjectModel;
4 | using System.Windows.Input;
5 | using Xamarin.Forms;
6 |
7 | namespace SwipeCardView.Sample.ViewModel
8 | {
9 | public class ColorsPageViewModel : BasePageViewModel
10 | {
11 | private ObservableCollection _cardItems;
12 |
13 | public ColorsPageViewModel()
14 | {
15 | _cardItems = new ObservableCollection();
16 | for (var i = 1; i <= 5; i++)
17 | {
18 | _cardItems.Add($"Card {i}");
19 | }
20 |
21 | SwipedCommand = new Command(OnSwipedCommand);
22 | DraggingCommand = new Command(OnDraggingCommand);
23 |
24 | ClearItemsCommand = new Command(OnClearItemsCommand);
25 | AddItemsCommand = new Command(OnAddItemsCommand);
26 | }
27 |
28 | public ObservableCollection CardItems
29 | {
30 | get => _cardItems;
31 | set
32 | {
33 | _cardItems = value;
34 | RaisePropertyChanged();
35 | }
36 | }
37 |
38 | public ICommand SwipedCommand { get; }
39 |
40 | public ICommand DraggingCommand { get; }
41 |
42 | public ICommand ClearItemsCommand { get; }
43 |
44 | public ICommand AddItemsCommand { get; }
45 |
46 | private void OnSwipedCommand(SwipedCardEventArgs eventArgs)
47 | {
48 | }
49 |
50 | private void OnDraggingCommand(DraggingCardEventArgs eventArgs)
51 | {
52 | switch (eventArgs.Position)
53 | {
54 | case DraggingCardPosition.Start:
55 | return;
56 |
57 | case DraggingCardPosition.UnderThreshold:
58 | break;
59 |
60 | case DraggingCardPosition.OverThreshold:
61 | break;
62 |
63 | case DraggingCardPosition.FinishedUnderThreshold:
64 | return;
65 |
66 | case DraggingCardPosition.FinishedOverThreshold:
67 | break;
68 |
69 | default:
70 | throw new ArgumentOutOfRangeException();
71 | }
72 | }
73 |
74 | private void OnClearItemsCommand()
75 | {
76 | CardItems.Clear();
77 | }
78 |
79 | private void OnAddItemsCommand()
80 | {
81 | for (var i = 1; i <= 5; i++)
82 | {
83 | CardItems.Add($"Card {i}");
84 | }
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Resources/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "scale": "2x",
5 | "size": "20x20",
6 | "idiom": "iphone",
7 | "filename": "Icon40.png"
8 | },
9 | {
10 | "scale": "3x",
11 | "size": "20x20",
12 | "idiom": "iphone",
13 | "filename": "Icon60.png"
14 | },
15 | {
16 | "scale": "2x",
17 | "size": "29x29",
18 | "idiom": "iphone",
19 | "filename": "Icon58.png"
20 | },
21 | {
22 | "scale": "3x",
23 | "size": "29x29",
24 | "idiom": "iphone",
25 | "filename": "Icon87.png"
26 | },
27 | {
28 | "scale": "2x",
29 | "size": "40x40",
30 | "idiom": "iphone",
31 | "filename": "Icon80.png"
32 | },
33 | {
34 | "scale": "3x",
35 | "size": "40x40",
36 | "idiom": "iphone",
37 | "filename": "Icon120.png"
38 | },
39 | {
40 | "scale": "2x",
41 | "size": "60x60",
42 | "idiom": "iphone",
43 | "filename": "Icon120.png"
44 | },
45 | {
46 | "scale": "3x",
47 | "size": "60x60",
48 | "idiom": "iphone",
49 | "filename": "Icon180.png"
50 | },
51 | {
52 | "scale": "1x",
53 | "size": "20x20",
54 | "idiom": "ipad",
55 | "filename": "Icon20.png"
56 | },
57 | {
58 | "scale": "2x",
59 | "size": "20x20",
60 | "idiom": "ipad",
61 | "filename": "Icon40.png"
62 | },
63 | {
64 | "scale": "1x",
65 | "size": "29x29",
66 | "idiom": "ipad",
67 | "filename": "Icon29.png"
68 | },
69 | {
70 | "scale": "2x",
71 | "size": "29x29",
72 | "idiom": "ipad",
73 | "filename": "Icon58.png"
74 | },
75 | {
76 | "scale": "1x",
77 | "size": "40x40",
78 | "idiom": "ipad",
79 | "filename": "Icon40.png"
80 | },
81 | {
82 | "scale": "2x",
83 | "size": "40x40",
84 | "idiom": "ipad",
85 | "filename": "Icon80.png"
86 | },
87 | {
88 | "scale": "1x",
89 | "size": "76x76",
90 | "idiom": "ipad",
91 | "filename": "Icon76.png"
92 | },
93 | {
94 | "scale": "2x",
95 | "size": "76x76",
96 | "idiom": "ipad",
97 | "filename": "Icon152.png"
98 | },
99 | {
100 | "scale": "2x",
101 | "size": "83.5x83.5",
102 | "idiom": "ipad",
103 | "filename": "Icon167.png"
104 | },
105 | {
106 | "scale": "1x",
107 | "size": "1024x1024",
108 | "idiom": "ios-marketing",
109 | "filename": "Icon1024.png"
110 | }
111 | ],
112 | "properties": {},
113 | "info": {
114 | "version": 1,
115 | "author": "xcode"
116 | }
117 | }
--------------------------------------------------------------------------------
/src/SwipeCardView.Sample/SwipeCardView.Sample/View/ColorsPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using MLToolkit.Forms.SwipeCardView.Core;
2 | using SwipeCardView.Sample.ViewModel;
3 | using System;
4 | using Xamarin.Forms;
5 | using Xamarin.Forms.Xaml;
6 |
7 | namespace SwipeCardView.Sample.View
8 | {
9 | [XamlCompilation(XamlCompilationOptions.Compile)]
10 | public partial class ColorsPage : ContentPage
11 | {
12 | public ColorsPage()
13 | {
14 | InitializeComponent();
15 | BindingContext = new ColorsPageViewModel();
16 |
17 | SwipeCardView.Dragging += OnDragging;
18 | }
19 |
20 | private void OnDragging(object sender, DraggingCardEventArgs e)
21 | {
22 | var view = (Xamarin.Forms.View)sender;
23 |
24 | var directionLabel = view.FindByName