├── .droidres └── .refitxfsample.droidres.db ├── .gitignore ├── .vs └── RefitXFSample │ └── xs │ └── UserPrefs.xml ├── Droid ├── Assets │ └── AboutAssets.txt ├── FodyWeavers.xml ├── MainActivity.cs ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── RefitXFSample.Droid.csproj ├── Resources │ ├── AboutResources.txt │ ├── drawable-hdpi │ │ └── icon.png │ ├── drawable-xhdpi │ │ └── icon.png │ ├── drawable-xxhdpi │ │ └── icon.png │ ├── drawable │ │ └── icon.png │ ├── layout │ │ ├── Tabbar.axml │ │ └── Toolbar.axml │ └── values │ │ └── styles.xml ├── bin │ └── Debug │ │ ├── FormsViewGroup.dll.mdb │ │ ├── FormsViewGroup.pdb │ │ ├── Microsoft.AspNetCore.WebUtilities.xml │ │ ├── Microsoft.Extensions.Primitives.xml │ │ ├── Microsoft.Net.Http.Headers.xml │ │ ├── Mono.Android.pdb │ │ ├── Newtonsoft.Json.xml │ │ ├── PropertyChanged.xml │ │ ├── Refit.xml │ │ ├── RefitXFSample.Droid.pdb │ │ ├── System.Runtime.CompilerServices.Unsafe.xml │ │ ├── System.Text.Encodings.Web.xml │ │ ├── Xamarin.Forms.Core.dll.mdb │ │ ├── Xamarin.Forms.Core.pdb │ │ ├── Xamarin.Forms.Core.xml │ │ ├── Xamarin.Forms.Platform.Android.dll.mdb │ │ ├── Xamarin.Forms.Platform.Android.pdb │ │ ├── Xamarin.Forms.Xaml.dll.mdb │ │ ├── Xamarin.Forms.Xaml.pdb │ │ ├── Xamarin.Forms.Xaml.xml │ │ ├── com.crossgeek.samples.RefitXFSample-Signed.apk │ │ └── com.crossgeek.samples.RefitXFSample.apk ├── obj │ └── .cache │ │ └── com.crossgeek.samples.RefitXFSample.flag └── packages.config ├── README.md ├── RefitXFSample.sln ├── RefitXFSample ├── App.xaml ├── App.xaml.cs ├── Config.cs ├── Models │ ├── MakeUp.cs │ └── News.cs ├── RefitXFSample.projitems ├── RefitXFSample.shproj ├── Services │ ├── ApiManager.cs │ ├── ApiService.cs │ ├── IApiManager.cs │ ├── IApiService.cs │ ├── IMakeUpApi.cs │ └── IRedditApi.cs ├── ViewModels │ ├── BaseViewModel.cs │ └── MainPageViewModel.cs └── Views │ ├── MainPage.xaml │ └── MainPage.xaml.cs └── iOS ├── AppDelegate.cs ├── Assets.xcassets ├── AppIcon.appiconset │ └── Contents.json └── Contents.json ├── Entitlements.plist ├── FodyWeavers.xml ├── Info.plist ├── LaunchScreen.storyboard ├── Main.cs ├── RefitXFSample.iOS.csproj └── packages.config /.droidres/.refitxfsample.droidres.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/.droidres/.refitxfsample.droidres.db -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Xamarin stuff 2 | Components 3 | [Pp]ackages 4 | *.userprefs 5 | Resource.designer.cs 6 | 7 | #Autosave files 8 | *~ 9 | 10 | #build 11 | [Oo]bj/ 12 | [Bb]in/ 13 | packages/ 14 | TestResults/ 15 | 16 | # globs 17 | Makefile.in 18 | *.DS_Store 19 | *.sln.cache 20 | *.suo 21 | *.cache 22 | *.pidb 23 | *.userprefs 24 | *.usertasks 25 | config.log 26 | config.make 27 | config.status 28 | aclocal.m4 29 | install-sh 30 | autom4te.cache/ 31 | *.user 32 | *.tar.gz 33 | tarballs/ 34 | test-results/ 35 | Thumbs.db 36 | 37 | #Mac bundle stuff 38 | *.dmg 39 | *.app 40 | 41 | #resharper 42 | *_Resharper.* 43 | *.Resharper 44 | 45 | #dotCover 46 | *.dotCover 47 | UbiPay/.vs/ 48 | -------------------------------------------------------------------------------- /.vs/RefitXFSample/xs/UserPrefs.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Droid/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 your 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 | -------------------------------------------------------------------------------- /Droid/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Droid/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Android.App; 4 | using Android.Content; 5 | using Android.Content.PM; 6 | using Android.Runtime; 7 | using Android.Views; 8 | using Android.Widget; 9 | using Android.OS; 10 | 11 | namespace RefitXFSample.Droid 12 | { 13 | [Activity(Label = "RefitXFSample.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 14 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 15 | { 16 | protected override void OnCreate(Bundle bundle) 17 | { 18 | TabLayoutResource = Resource.Layout.Tabbar; 19 | ToolbarResource = Resource.Layout.Toolbar; 20 | 21 | base.OnCreate(bundle); 22 | 23 | global::Xamarin.Forms.Forms.Init(this, bundle); 24 | 25 | LoadApplication(new App()); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using Android.App; 4 | 5 | // Information about this assembly is defined by the following attributes. 6 | // Change them to the values specific to your project. 7 | 8 | [assembly: AssemblyTitle("RefitXFSample.Droid")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("(c) CrossGeeks")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 18 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 19 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 20 | 21 | [assembly: AssemblyVersion("1.0.0")] 22 | 23 | // The following attributes are used to specify the signing key for the assembly, 24 | // if desired. See the Mono documentation for more information about signing. 25 | 26 | //[assembly: AssemblyDelaySign(false)] 27 | //[assembly: AssemblyKeyFile("")] 28 | -------------------------------------------------------------------------------- /Droid/RefitXFSample.Droid.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debug 7 | AnyCPU 8 | {836F455C-175F-429E-8C98-E075C3A6A96B} 9 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Library 11 | RefitXFSample.Droid 12 | RefitXFSample.Droid 13 | v7.1 14 | True 15 | Resources\Resource.designer.cs 16 | Resource 17 | Properties\AndroidManifest.xml 18 | Resources 19 | Assets 20 | false 21 | 22 | 23 | true 24 | full 25 | false 26 | bin\Debug 27 | DEBUG; 28 | prompt 29 | 4 30 | None 31 | 32 | 33 | true 34 | pdbonly 35 | true 36 | bin\Release 37 | prompt 38 | 4 39 | true 40 | false 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | ..\packages\Xamarin.Android.Support.Annotations.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Annotations.dll 49 | 50 | 51 | ..\packages\Xamarin.Android.Support.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll 52 | 53 | 54 | ..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll 55 | 56 | 57 | ..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll 58 | 59 | 60 | ..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll 61 | 62 | 63 | ..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll 64 | 65 | 66 | ..\packages\Xamarin.Android.Support.v4.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll 67 | 68 | 69 | ..\packages\Xamarin.Android.Support.Vector.Drawable.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll 70 | 71 | 72 | ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll 73 | 74 | 75 | ..\packages\Xamarin.Android.Support.v7.AppCompat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll 76 | 77 | 78 | ..\packages\Xamarin.Android.Support.Transition.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Transition.dll 79 | 80 | 81 | ..\packages\Xamarin.Android.Support.v7.RecyclerView.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.RecyclerView.dll 82 | 83 | 84 | ..\packages\Xamarin.Android.Support.Design.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Design.dll 85 | 86 | 87 | ..\packages\Xamarin.Android.Support.v7.CardView.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.CardView.dll 88 | 89 | 90 | ..\packages\Xamarin.Android.Support.v7.Palette.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.Palette.dll 91 | 92 | 93 | ..\packages\Xamarin.Android.Support.v7.MediaRouter.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.MediaRouter.dll 94 | 95 | 96 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\MonoAndroid10\FormsViewGroup.dll 97 | 98 | 99 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\MonoAndroid10\Xamarin.Forms.Core.dll 100 | 101 | 102 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll 103 | 104 | 105 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\MonoAndroid10\Xamarin.Forms.Platform.dll 106 | 107 | 108 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll 109 | 110 | 111 | 112 | ..\packages\System.Buffers.4.3.0\lib\netstandard1.1\System.Buffers.dll 113 | 114 | 115 | 116 | 117 | ..\packages\System.Runtime.CompilerServices.Unsafe.4.3.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll 118 | 119 | 120 | ..\packages\System.Text.Encodings.Web.4.4.0\lib\netstandard2.0\System.Text.Encodings.Web.dll 121 | 122 | 123 | ..\packages\Microsoft.Extensions.Primitives.1.1.1\lib\netstandard1.0\Microsoft.Extensions.Primitives.dll 124 | 125 | 126 | ..\packages\Microsoft.Net.Http.Headers.1.1.2\lib\netstandard1.1\Microsoft.Net.Http.Headers.dll 127 | 128 | 129 | ..\packages\Microsoft.AspNetCore.WebUtilities.1.1.2\lib\netstandard1.3\Microsoft.AspNetCore.WebUtilities.dll 130 | 131 | 132 | ..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll 133 | 134 | 135 | ..\packages\Refit.4.0.1\lib\netstandard1.4\Refit.dll 136 | 137 | 138 | ..\packages\PropertyChanged.Fody.2.2.5\lib\netstandard1.0\PropertyChanged.dll 139 | 140 | 141 | ..\packages\Splat.2.0.0\lib\MonoAndroid403\Splat.dll 142 | 143 | 144 | ..\packages\System.Runtime.InteropServices.WindowsRuntime.4.0.1\lib\netstandard1.3\System.Runtime.InteropServices.WindowsRuntime.dll 145 | 146 | 147 | ..\packages\System.Reactive.Interfaces.3.1.1\lib\netstandard1.0\System.Reactive.Interfaces.dll 148 | 149 | 150 | ..\packages\System.Reactive.Core.3.1.1\lib\netstandard1.3\System.Reactive.Core.dll 151 | 152 | 153 | ..\packages\System.Reactive.Linq.3.1.1\lib\netstandard1.3\System.Reactive.Linq.dll 154 | 155 | 156 | ..\packages\System.Reactive.PlatformServices.3.1.1\lib\netstandard1.3\System.Reactive.PlatformServices.dll 157 | 158 | 159 | ..\packages\Punchclock.2.1.0\lib\netstandard1.4\Punchclock.dll 160 | 161 | 162 | ..\packages\fusillade.1.0.0\lib\netstandard1.4\Fusillade.dll 163 | 164 | 165 | ..\packages\modernhttpclient.2.4.2\lib\MonoAndroid\ModernHttpClient.dll 166 | 167 | 168 | ..\packages\modernhttpclient.2.4.2\lib\MonoAndroid\OkHttp.dll 169 | 170 | 171 | ..\packages\Xam.Plugin.Connectivity.3.0.3\lib\MonoAndroid10\Plugin.Connectivity.Abstractions.dll 172 | 173 | 174 | ..\packages\Xam.Plugin.Connectivity.3.0.3\lib\MonoAndroid10\Plugin.Connectivity.dll 175 | 176 | 177 | ..\packages\Polly.5.7.0\lib\netstandard1.1\Polly.dll 178 | 179 | 180 | ..\packages\AndHUD.1.2.0\lib\MonoAndroid\AndHUD.dll 181 | 182 | 183 | ..\packages\Acr.UserDialogs.7.0.1\lib\monoandroid70\Acr.UserDialogs.dll 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | -------------------------------------------------------------------------------- /Droid/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.axml), 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/ 12 | icon.png 13 | 14 | layout/ 15 | main.axml 16 | 17 | values/ 18 | strings.xml 19 | 20 | In order to get the build system to recognize Android resources, set the build action to 21 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 22 | instead operate on resource IDs. When you compile an Android application that uses resources, 23 | the build system will package the resources for distribution and generate a class called "R" 24 | (this is an Android convention) that contains the tokens for each one of the resources 25 | included. For example, for the above Resources layout, this is what the R class would expose: 26 | 27 | public class R { 28 | public class drawable { 29 | public const int icon = 0x123; 30 | } 31 | 32 | public class layout { 33 | public const int main = 0x456; 34 | } 35 | 36 | public class strings { 37 | public const int first_string = 0xabc; 38 | public const int second_string = 0xbcd; 39 | } 40 | } 41 | 42 | You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main 43 | to reference the layout/main.axml file, or R.strings.first_string to reference the first 44 | string in the dictionary file values/strings.xml. 45 | -------------------------------------------------------------------------------- /Droid/Resources/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/Resources/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /Droid/Resources/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/Resources/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /Droid/Resources/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/Resources/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /Droid/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/Resources/drawable/icon.png -------------------------------------------------------------------------------- /Droid/Resources/layout/Tabbar.axml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /Droid/Resources/layout/Toolbar.axml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /Droid/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 5 | 6 | 24 | 27 | 28 | -------------------------------------------------------------------------------- /Droid/bin/Debug/FormsViewGroup.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/FormsViewGroup.dll.mdb -------------------------------------------------------------------------------- /Droid/bin/Debug/FormsViewGroup.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/FormsViewGroup.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Microsoft.AspNetCore.WebUtilities.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.AspNetCore.WebUtilities 5 | 6 | 7 | 8 | 9 | Invalid {0}, {1} or {2} length. 10 | 11 | 12 | 13 | 14 | Invalid {0}, {1} or {2} length. 15 | 16 | 17 | 18 | 19 | Contains utility APIs to assist with common encoding and decoding operations. 20 | 21 | 22 | 23 | 24 | Decodes a base64url-encoded string. 25 | 26 | The base64url-encoded input to decode. 27 | The base64url-decoded form of the input. 28 | 29 | The input must not contain any whitespace or padding characters. 30 | Throws if the input is malformed. 31 | 32 | 33 | 34 | 35 | Decodes a base64url-encoded substring of a given string. 36 | 37 | A string containing the base64url-encoded input to decode. 38 | The position in at which decoding should begin. 39 | The number of characters in to decode. 40 | The base64url-decoded form of the input. 41 | 42 | The input must not contain any whitespace or padding characters. 43 | Throws if the input is malformed. 44 | 45 | 46 | 47 | 48 | Decodes a base64url-encoded into a byte[]. 49 | 50 | A string containing the base64url-encoded input to decode. 51 | The position in at which decoding should begin. 52 | 53 | Scratch buffer to hold the s to decode. Array must be large enough to hold 54 | and characters as well as Base64 padding 55 | characters. Content is not preserved. 56 | 57 | 58 | The offset into at which to begin writing the s to decode. 59 | 60 | The number of characters in to decode. 61 | The base64url-decoded form of the . 62 | 63 | The input must not contain any whitespace or padding characters. 64 | Throws if the input is malformed. 65 | 66 | 67 | 68 | 69 | Gets the minimum char[] size required for decoding of characters 70 | with the method. 71 | 72 | The number of characters to decode. 73 | 74 | The minimum char[] size required for decoding of characters. 75 | 76 | 77 | 78 | 79 | Encodes using base64url encoding. 80 | 81 | The binary input to encode. 82 | The base64url-encoded form of . 83 | 84 | 85 | 86 | Encodes using base64url encoding. 87 | 88 | The binary input to encode. 89 | The offset into at which to begin encoding. 90 | The number of bytes from to encode. 91 | The base64url-encoded form of . 92 | 93 | 94 | 95 | Encodes using base64url encoding. 96 | 97 | The binary input to encode. 98 | The offset into at which to begin encoding. 99 | 100 | Buffer to receive the base64url-encoded form of . Array must be large enough to 101 | hold characters and the full base64-encoded form of 102 | , including padding characters. 103 | 104 | 105 | The offset into at which to begin writing the base64url-encoded form of 106 | . 107 | 108 | The number of bytes from to encode. 109 | 110 | The number of characters written to , less any padding characters. 111 | 112 | 113 | 114 | 115 | Get the minimum output char[] size required for encoding 116 | s with the method. 117 | 118 | The number of characters to encode. 119 | 120 | The minimum output char[] size required for encoding s. 121 | 122 | 123 | 124 | 125 | Encodes supplied data into Base64 and replaces any URL encodable characters into non-URL encodable 126 | characters. 127 | 128 | Data to be encoded. 129 | Base64 encoded string modified with non-URL encodable characters 130 | 131 | 132 | 133 | Decodes supplied string by replacing the non-URL encodable characters with URL encodable characters and 134 | then decodes the Base64 string. 135 | 136 | The string to be decoded. 137 | The decoded data. 138 | 139 | 140 | 141 | A Stream that wraps another stream and enables rewinding by buffering the content as it is read. 142 | The content is buffered in memory up to a certain size and then spooled to a temp file on disk. 143 | The temp file will be deleted on Dispose. 144 | 145 | 146 | 147 | 148 | Represents a file multipart section 149 | 150 | 151 | 152 | 153 | Creates a new instance of the class 154 | 155 | The section from which to create the 156 | Reparses the content disposition header 157 | 158 | 159 | 160 | Creates a new instance of the class 161 | 162 | The section from which to create the 163 | An already parsed content disposition header 164 | 165 | 166 | 167 | Gets the original section from which this object was created 168 | 169 | 170 | 171 | 172 | Gets the file stream from the section body 173 | 174 | 175 | 176 | 177 | Gets the name of the section 178 | 179 | 180 | 181 | 182 | Gets the name of the file from the section 183 | 184 | 185 | 186 | 187 | Represents a form multipart section 188 | 189 | 190 | 191 | 192 | Creates a new instance of the class 193 | 194 | The section from which to create the 195 | Reparses the content disposition header 196 | 197 | 198 | 199 | Creates a new instance of the class 200 | 201 | The section from which to create the 202 | An already parsed content disposition header 203 | 204 | 205 | 206 | Gets the original section from which this object was created 207 | 208 | 209 | 210 | 211 | The form name 212 | 213 | 214 | 215 | 216 | Gets the form value 217 | 218 | The form value 219 | 220 | 221 | 222 | Used to read an 'application/x-www-form-urlencoded' form. 223 | 224 | 225 | 226 | 227 | The limit on the number of form values to allow in ReadForm or ReadFormAsync. 228 | 229 | 230 | 231 | 232 | The limit on the length of form keys. 233 | 234 | 235 | 236 | 237 | The limit on the length of form values. 238 | 239 | 240 | 241 | 242 | Reads the next key value pair from the form. 243 | For unbuffered data use the async overload instead. 244 | 245 | The next key value pair, or null when the end of the form is reached. 246 | 247 | 248 | 249 | Asynchronously reads the next key value pair from the form. 250 | 251 | 252 | The next key value pair, or null when the end of the form is reached. 253 | 254 | 255 | 256 | Parses text from an HTTP form body. 257 | 258 | The collection containing the parsed HTTP form body. 259 | 260 | 261 | 262 | Parses an HTTP form body. 263 | 264 | The . 265 | The collection containing the parsed HTTP form body. 266 | 267 | 268 | 269 | Writes to the using the supplied . 270 | It does not write the BOM and also does not close the stream. 271 | 272 | 273 | 274 | 275 | Default buffer size. 276 | 277 | 278 | 279 | 280 | The limit for the number of headers to read. 281 | 282 | 283 | 284 | 285 | The combined size limit for headers per multipart section. 286 | 287 | 288 | 289 | 290 | The optional limit for the total response body length. 291 | 292 | 293 | 294 | 295 | Creates a stream that reads until it reaches the given boundary pattern. 296 | 297 | The . 298 | The boundary pattern to use. 299 | 300 | 301 | 302 | Creates a stream that reads until it reaches the given boundary pattern. 303 | 304 | The . 305 | The boundary pattern to use. 306 | The ArrayPool pool to use for temporary byte arrays. 307 | 308 | 309 | 310 | The position where the body starts in the total multipart body. 311 | This may not be available if the total multipart body is not seekable. 312 | 313 | 314 | 315 | 316 | Various extensions for converting multipart sections 317 | 318 | 319 | 320 | 321 | Converts the section to a file section 322 | 323 | The section to convert 324 | A file section 325 | 326 | 327 | 328 | Converts the section to a form section 329 | 330 | The section to convert 331 | A form section 332 | 333 | 334 | 335 | Retrieves and parses the content disposition header from a section 336 | 337 | The section from which to retrieve 338 | A if the header was found, null otherwise 339 | 340 | 341 | 342 | Various extension methods for dealing with the section body stream 343 | 344 | 345 | 346 | 347 | Reads the body of the section as a string 348 | 349 | The section to read from 350 | The body steam as string 351 | 352 | 353 | 354 | Append the given query key and value to the URI. 355 | 356 | The base URI. 357 | The name of the query key. 358 | The query value. 359 | The combined result. 360 | 361 | 362 | 363 | Append the given query keys and values to the uri. 364 | 365 | The base uri. 366 | A collection of name value query pairs to append. 367 | The combined result. 368 | 369 | 370 | 371 | Parse a query string into its component key and value parts. 372 | 373 | The raw query string value, with or without the leading '?'. 374 | A collection of parsed keys and values. 375 | 376 | 377 | 378 | Parse a query string into its component key and value parts. 379 | 380 | The raw query string value, with or without the leading '?'. 381 | A collection of parsed keys and values, null if there are no entries. 382 | 383 | 384 | 385 | A strongly-typed resource class, for looking up localized strings, etc. 386 | 387 | 388 | 389 | 390 | Returns the cached ResourceManager instance used by this class. 391 | 392 | 393 | 394 | 395 | Overrides the current thread's CurrentUICulture property for all 396 | resource lookups using this strongly typed resource class. 397 | 398 | 399 | 400 | 401 | Looks up a localized string similar to The stream must support reading.. 402 | 403 | 404 | 405 | 406 | Looks up a localized string similar to The stream must support writing.. 407 | 408 | 409 | 410 | 411 | Looks up a localized string similar to Invalid {0}, {1} or {2} length.. 412 | 413 | 414 | 415 | 416 | -------------------------------------------------------------------------------- /Droid/bin/Debug/Microsoft.Extensions.Primitives.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.Extensions.Primitives 5 | 6 | 7 | 8 | 9 | A implementation using . 10 | 11 | 12 | 13 | 14 | Initializes a new instance of . 15 | 16 | The . 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | Propagates notifications that a change has occured. 30 | 31 | 32 | 33 | 34 | Registers the action to be called whenever the token produced changes. 35 | 36 | Produces the change token. 37 | Action called when the token changes. 38 | 39 | 40 | 41 | 42 | Registers the action to be called whenever the token produced changes. 43 | 44 | Produces the change token. 45 | Action called when the token changes. 46 | state for the consumer. 47 | 48 | 49 | 50 | 51 | Propagates notifications that a change has occured. 52 | 53 | 54 | 55 | 56 | Gets a value that indicates if a change has occured. 57 | 58 | 59 | 60 | 61 | Indicates if this token will pro-actively raise callbacks. Callbacks are still guaranteed to fire, eventually. 62 | 63 | 64 | 65 | 66 | Registers for a callback that will be invoked when the entry has changed. 67 | MUST be set before the callback is invoked. 68 | 69 | The to invoke. 70 | State to be passed into the callback. 71 | An that is used to unregister the callback. 72 | 73 | 74 | 75 | A strongly-typed resource class, for looking up localized strings, etc. 76 | 77 | 78 | 79 | 80 | Returns the cached ResourceManager instance used by this class. 81 | 82 | 83 | 84 | 85 | Overrides the current thread's CurrentUICulture property for all 86 | resource lookups using this strongly typed resource class. 87 | 88 | 89 | 90 | 91 | Looks up a localized string similar to Offset and length are out of bounds for the string or length is greater than the number of characters from index to the end of the string.. 92 | 93 | 94 | 95 | 96 | An optimized representation of a substring. 97 | 98 | 99 | 100 | 101 | Initializes an instance of the struct. 102 | 103 | 104 | The original . The includes the whole . 105 | 106 | 107 | 108 | 109 | Initializes an instance of the struct. 110 | 111 | The original used as buffer. 112 | The offset of the segment within the . 113 | The length of the segment. 114 | 115 | 116 | 117 | Gets the buffer for this . 118 | 119 | 120 | 121 | 122 | Gets the offset within the buffer for this . 123 | 124 | 125 | 126 | 127 | Gets the length of this . 128 | 129 | 130 | 131 | 132 | Gets the value of this segment as a . 133 | 134 | 135 | 136 | 137 | Gets whether or not this contains a valid value. 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | Indicates whether the current object is equal to another object of the same type. 146 | 147 | An object to compare with this object. 148 | true if the current object is equal to the other parameter; otherwise, false. 149 | 150 | 151 | 152 | Indicates whether the current object is equal to another object of the same type. 153 | 154 | An object to compare with this object. 155 | One of the enumeration values that specifies the rules to use in the comparison. 156 | true if the current object is equal to the other parameter; otherwise, false. 157 | 158 | 159 | 160 | Checks if the specified is equal to the current . 161 | 162 | The to compare with the current . 163 | true if the specified is equal to the current ; otherwise, false. 164 | 165 | 166 | 167 | Checks if the specified is equal to the current . 168 | 169 | The to compare with the current . 170 | One of the enumeration values that specifies the rules to use in the comparison. 171 | true if the specified is equal to the current ; otherwise, false. 172 | 173 | 174 | 175 | 176 | This GetHashCode is expensive since it allocates on every call. 177 | However this is required to ensure we retain any behavior (such as hash code randomization) that 178 | string.GetHashCode has. 179 | 180 | 181 | 182 | 183 | Checks if two specified have the same value. 184 | 185 | The first to compare, or null. 186 | The second to compare, or null. 187 | true if the value of is the same as the value of ; otherwise, false. 188 | 189 | 190 | 191 | Checks if two specified have different values. 192 | 193 | The first to compare, or null. 194 | The second to compare, or null. 195 | true if the value of is different from the value of ; otherwise, false. 196 | 197 | 198 | 199 | Checks if the beginning of this matches the specified when compared using the specified . 200 | 201 | The to compare. 202 | One of the enumeration values that specifies the rules to use in the comparison. 203 | true if matches the beginning of this ; otherwise, false. 204 | 205 | 206 | 207 | Checks if the end of this matches the specified when compared using the specified . 208 | 209 | The to compare. 210 | One of the enumeration values that specifies the rules to use in the comparison. 211 | true if matches the end of this ; otherwise, false. 212 | 213 | 214 | 215 | Retrieves a substring from this . 216 | The substring starts at the position specified by and has the specified . 217 | 218 | The zero-based starting character position of a substring in this . 219 | The number of characters in the substring. 220 | A that is equivalent to the substring of length that begins at in this 221 | 222 | 223 | 224 | Retrieves a that represents a substring from this . 225 | The starts at the position specified by and has the specified . 226 | 227 | The zero-based starting character position of a substring in this . 228 | The number of characters in the substring. 229 | A that is equivalent to the substring of length that begins at in this 230 | 231 | 232 | 233 | Gets the zero-based index of the first occurrence of the character in this . 234 | The search starts at and examines a specified number of character positions. 235 | 236 | The Unicode character to seek. 237 | The zero-based index position at which the search starts. 238 | The number of characters to examine. 239 | The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. 240 | 241 | 242 | 243 | Gets the zero-based index of the first occurrence of the character in this . 244 | The search starts at . 245 | 246 | The Unicode character to seek. 247 | The zero-based index position at which the search starts. 248 | The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. 249 | 250 | 251 | 252 | Gets the zero-based index of the first occurrence of the character in this . 253 | 254 | The Unicode character to seek. 255 | The zero-based index position of from the beginning of the if that character is found, or -1 if it is not. 256 | 257 | 258 | 259 | Removes all leading and trailing whitespaces. 260 | 261 | The trimmed . 262 | 263 | 264 | 265 | Removes all leading whitespaces. 266 | 267 | The trimmed . 268 | 269 | 270 | 271 | Removes all trailing whitespaces. 272 | 273 | The trimmed . 274 | 275 | 276 | 277 | Returns the represented by this or String.Empty if the does not contain a value. 278 | 279 | The represented by this or String.Empty if the does not contain a value. 280 | 281 | 282 | 283 | Tokenizes a string into s. 284 | 285 | 286 | 287 | 288 | Initializes a new instance of . 289 | 290 | The string to tokenize. 291 | The characters to tokenize by. 292 | 293 | 294 | 295 | Represents zero/null, one, or many strings in an efficient way. 296 | 297 | 298 | 299 | 300 | -------------------------------------------------------------------------------- /Droid/bin/Debug/Microsoft.Net.Http.Headers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.Net.Http.Headers 5 | 6 | 7 | 8 | 9 | Sets both FileName and FileNameStar using encodings appropriate for HTTP headers. 10 | 11 | 12 | 13 | 14 | 15 | Sets the FileName parameter using encodings appropriate for MIME headers. 16 | The FileNameStar paraemter is removed. 17 | 18 | 19 | 20 | 21 | 22 | Various extension methods for for identifying the type of the disposition header 23 | 24 | 25 | 26 | 27 | Checks if the content disposition header is a file disposition 28 | 29 | The header to check 30 | True if the header is file disposition, false otherwise 31 | 32 | 33 | 34 | Checks if the content disposition header is a form disposition 35 | 36 | The header to check 37 | True if the header is form disposition, false otherwise 38 | 39 | 40 | 41 | Check against another for equality. 42 | This equality check should not be used to determine if two values match under the RFC specifications (https://tools.ietf.org/html/rfc7232#section-2.3.2). 43 | 44 | The other value to check against for equality. 45 | 46 | true if the strength and tag of the two values match, 47 | false if the other value is null, is not an , or if there is a mismatch of strength or tag between the two values. 48 | 49 | 50 | 51 | 52 | Compares against another to see if they match under the RFC specifications (https://tools.ietf.org/html/rfc7232#section-2.3.2). 53 | 54 | The other to compare against. 55 | true to use a strong comparison, false to use a weak comparison 56 | 57 | true if the match for the given comparison type, 58 | false if the other value is null or the comparison failed. 59 | 60 | 61 | 62 | 63 | Quality factor to indicate a perfect match. 64 | 65 | 66 | 67 | 68 | Quality factor to indicate no match. 69 | 70 | 71 | 72 | 73 | MediaType = "*/*" 74 | 75 | 76 | 77 | 78 | SubType = "*" 79 | 80 | 81 | 82 | 83 | Gets a value indicating whether this is a subset of 84 | . A "subset" is defined as the same or a more specific media type 85 | according to the precedence described in https://www.ietf.org/rfc/rfc2068.txt section 14.1, Accept. 86 | 87 | The to compare. 88 | 89 | A value indicating whether this is a subset of 90 | . 91 | 92 | 93 | For example "multipart/mixed; boundary=1234" is a subset of "multipart/mixed; boundary=1234", 94 | "multipart/mixed", "multipart/*", and "*/*" but not "multipart/mixed; boundary=2345" or 95 | "multipart/message; boundary=1234". 96 | 97 | 98 | 99 | 100 | Performs a deep copy of this object and all of it's NameValueHeaderValue sub components, 101 | while avoiding the cost of revalidating the components. 102 | 103 | A deep copy. 104 | 105 | 106 | 107 | Performs a deep copy of this object and all of it's NameValueHeaderValue sub components, 108 | while avoiding the cost of revalidating the components. This copy is read-only. 109 | 110 | A deep, read-only, copy. 111 | 112 | 113 | 114 | Implementation of that can compare accept media type header fields 115 | based on their quality values (a.k.a q-values). 116 | 117 | 118 | 119 | 120 | 121 | Performs comparisons based on the arguments' quality values 122 | (aka their "q-value"). Values with identical q-values are considered equal (i.e. the result is 0) 123 | with the exception that subtype wildcards are considered less than specific media types and full 124 | wildcards are considered less than subtype wildcards. This allows callers to sort a sequence of 125 | following their q-values in the order of specific 126 | media types, subtype wildcards, and last any full wildcards. 127 | 128 | 129 | 130 | 131 | Provides a copy of this object without the cost of re-validating the values. 132 | 133 | A copy. 134 | 135 | 136 | 137 | Append string representation of this to given 138 | . 139 | 140 | 141 | The to receive the string representation of this 142 | . 143 | 144 | 145 | 146 | 147 | Implementation of that can compare content negotiation header fields 148 | based on their quality values (a.k.a q-values). This applies to values used in accept-charset, 149 | accept-encoding, accept-language and related header fields with similar syntax rules. See 150 | for a comparer for media type 151 | q-values. 152 | 153 | 154 | 155 | 156 | Compares two based on their quality value 157 | (a.k.a their "q-value"). 158 | Values with identical q-values are considered equal (i.e the result is 0) with the exception of wild-card 159 | values (i.e. a value of "*") which are considered less than non-wild-card values. This allows to sort 160 | a sequence of following their q-values ending up with any 161 | wild-cards at the end. 162 | 163 | The first value to compare. 164 | The second value to compare 165 | The result of the comparison. 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /Droid/bin/Debug/Mono.Android.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Mono.Android.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/PropertyChanged.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PropertyChanged 5 | 6 | 7 | 8 | 9 | Specifies that the class will be marked with . 10 | Note that all classes that implement will have property notification 11 | injected irrespective of the use of this attribute. 12 | Raising an issue about "this attribute does not behave as expected" will result in a RTFM and the issue being closed. 13 | 14 | 15 | 16 | 17 | Injects this property to be notified when a dependent property is set. 18 | 19 | 20 | 21 | 22 | Initializes a new instance of . 23 | 24 | A property that will be notified for. 25 | 26 | 27 | 28 | Initializes a new instance of . 29 | 30 | A property that will be notified for. 31 | The properties that will be notified for. 32 | 33 | 34 | 35 | Injects this property to be notified when a dependent property is set. 36 | 37 | 38 | 39 | 40 | Initializes a new instance of . 41 | 42 | A property that the assigned property depends on. 43 | 44 | 45 | 46 | Initializes a new instance of . 47 | 48 | A property that the assigned property depends on. 49 | The properties that the assigned property depends on. 50 | 51 | 52 | 53 | Skip equality check before change notification 54 | 55 | 56 | 57 | 58 | Exclude a or property from notification. 59 | 60 | 61 | 62 | 63 | Exclude a or property from IsChanged flagging. 64 | 65 | 66 | 67 | 68 | Defines filters on which types to include in the 69 | weaving process. These filters are Regex based and 70 | are matched against the Type.FullName 71 | 72 | 73 | 74 | 75 | Initializes a new instance of . 76 | 77 | The filter to apply to the types in this 78 | assembly. Matching is done by the Regex.IsMatch method using 79 | the Type.FullName as input for the Matching method. 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /Droid/bin/Debug/Refit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Refit 5 | 6 | 7 | 8 | 9 | Provides an implementation that exposes an output 10 | which can be written to directly. The ability to push data to the output stream differs from the 11 | where data is pulled and not pushed. 12 | 13 | 14 | 15 | 16 | Initializes a new instance of the class. The 17 | action is called when an output stream 18 | has become available allowing the action to write to it directly. When the 19 | stream is closed, it will signal to the content that is has completed and the 20 | HTTP request or response will be completed. 21 | 22 | The action to call when an output stream is available. 23 | 24 | 25 | 26 | Initializes a new instance of the class. 27 | 28 | The action to call when an output stream is available. The stream is automatically 29 | closed when the return task is completed. 30 | 31 | 32 | 33 | Initializes a new instance of the class with the given media type. 34 | 35 | 36 | 37 | 38 | Initializes a new instance of the class with the given media type. 39 | 40 | 41 | 42 | 43 | Initializes a new instance of the class with the given . 44 | 45 | 46 | 47 | 48 | Initializes a new instance of the class with the given . 49 | 50 | 51 | 52 | 53 | Used as the T in a "conversion" of a Task into a Task{T} 54 | 55 | 56 | 57 | 58 | When this method is called, it calls the action provided in the constructor with the output 59 | stream to write to. Once the action has completed its work it closes the stream which will 60 | close this content instance and complete the HTTP request or response. 61 | 62 | The to which to write. 63 | The associated . 64 | A instance that is asynchronously serializing the object's content. 65 | 66 | 67 | 68 | Computes the length of the stream if possible. 69 | 70 | The computed length of the stream. 71 | true if the length has been computed; otherwise false. 72 | 73 | 74 | 75 | Stream that delegates to inner stream. 76 | This is taken from System.Net.Http 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Droid/bin/Debug/RefitXFSample.Droid.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/RefitXFSample.Droid.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.Runtime.CompilerServices.Unsafe 5 | 6 | 7 | 8 | 9 | Contains generic, low-level functionality for manipulating pointers. 10 | 11 | 12 | 13 | 14 | Reads a value of type from the given location. 15 | 16 | The type to read. 17 | The location to read from. 18 | An object of type read from the given location. 19 | 20 | 21 | 22 | Writes a value of type to the given location. 23 | 24 | The type of value to write. 25 | The location to write to. 26 | The value to write. 27 | 28 | 29 | 30 | Copies a value of type to the given location. 31 | 32 | The type of value to copy. 33 | The location to copy to. 34 | A reference to the value to copy. 35 | 36 | 37 | 38 | Copies a value of type to the given location. 39 | 40 | The type of value to copy. 41 | The location to copy to. 42 | A pointer to the value to copy. 43 | 44 | 45 | 46 | Returns a pointer to the given by-ref parameter. 47 | 48 | The type of object. 49 | The object whose pointer is obtained. 50 | A pointer to the given value. 51 | 52 | 53 | 54 | Returns the size of an object of the given type parameter. 55 | 56 | The type of object whose size is retrieved. 57 | The size of an object of type . 58 | 59 | 60 | 61 | Casts the given object to the specified type. 62 | 63 | The type which the object will be cast to. 64 | The object to cast. 65 | The original object, casted to the given type. 66 | 67 | 68 | 69 | Reinterprets the given location as a reference to a value of type . 70 | 71 | The type of the interpreted location. 72 | The location of the value to reference. 73 | A reference to a value of type . 74 | 75 | 76 | 77 | Reinterprets the given reference as a reference to a value of type . 78 | 79 | The type of reference to reinterpret. 80 | The desired type of the reference. 81 | The reference to reinterpret. 82 | A reference to a value of type . 83 | 84 | 85 | 86 | Adds an element offset to the given reference. 87 | 88 | The type of reference. 89 | The reference to add the offset to. 90 | The offset to add. 91 | A new reference that reflects the addition of offset to pointer. 92 | 93 | 94 | 95 | Subtracts an element offset from the given reference. 96 | 97 | The type of reference. 98 | The reference to subtract the offset from. 99 | The offset to subtract. 100 | A new reference that reflects the subraction of offset from pointer. 101 | 102 | 103 | 104 | Determines whether the specified references point to the same location. 105 | 106 | The first reference to compare. 107 | The second reference to compare. 108 | true if and point to the same location; otherwise false. 109 | 110 | 111 | 112 | Copies bytes from the source address to the destination address. 113 | 114 | The destination address to copy to. 115 | The source address to copy from. 116 | The number of bytes to copy. 117 | 118 | 119 | 120 | Initializes a block of memory at the given location with a given initial value. 121 | 122 | The address of the start of the memory block to initialize. 123 | The value to initialize the block to. 124 | The number of bytes to initialize. 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Core.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Core.dll.mdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Core.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Core.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Platform.Android.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Platform.Android.dll.mdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Platform.Android.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Platform.Android.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Xaml.dll.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Xaml.dll.mdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Xaml.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/Xamarin.Forms.Xaml.pdb -------------------------------------------------------------------------------- /Droid/bin/Debug/Xamarin.Forms.Xaml.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Xamarin.Forms.Xaml 4 | 5 | 6 | 7 | For internal use by the XAML infrastructure. 8 | To be added. 9 | 10 | 11 | For internal use by the XAML infrastructure. 12 | To be added. 13 | 14 | 15 | For internal use by the XAML infrastructure. 16 | To be added. 17 | To be added. 18 | 19 | 20 | For internal use by the XAML infrastructure. 21 | For internal use by the XAML infrastructure. 22 | To be added. 23 | To be added. 24 | 25 | 26 | For internal use by the XAML infrastructure. 27 | For internal use by the XAML infrastructure. 28 | To be added. 29 | To be added. 30 | 31 | 32 | For internal use by the XAML infrastructure. 33 | For internal use by the XAML infrastructure. 34 | To be added. 35 | To be added. 36 | 37 | 38 | For internal use by the XAML infrastructure. 39 | To be added. 40 | To be added. 41 | 42 | 43 | For internal use by the XAML infrastructure. 44 | For internal use by the XAML infrastructure. 45 | To be added. 46 | To be added. 47 | 48 | 49 | For internal use by the XAML infrastructure. 50 | To be added. 51 | 52 | 53 | For internal use by the XAML infrastructure. 54 | To be added. 55 | 56 | 57 | For internal use by the XAML infrastructure. 58 | To be added. 59 | To be added. 60 | 61 | 62 | For internal use by the XAML infrastructure. 63 | To be added. 64 | To be added. 65 | 66 | 67 | For internal use by the XAML infrastructure. 68 | To be added. 69 | To be added. 70 | 71 | 72 | For internal use by the XAML infrastructure. 73 | To be added. 74 | To be added. 75 | 76 | 77 | For internal use by the XAML infrastructure. 78 | To be added. 79 | To be added. 80 | 81 | 82 | For internal use by the XAML infrastructure. 83 | To be added. 84 | To be added. 85 | 86 | 87 | For internal use by the XAML infrastructure. 88 | To be added. 89 | To be added. 90 | 91 | 92 | For internal use by the XAML infrastructure. 93 | To be added. 94 | To be added. 95 | 96 | 97 | For internal use by the XAML infrastructure. 98 | For internal use by the XAML infrastructure. 99 | To be added. 100 | To be added. 101 | 102 | 103 | For internal use by the XAML infrastructure. 104 | For internal use by the XAML infrastructure. 105 | To be added. 106 | To be added. 107 | 108 | 109 | For internal use by the XAML infrastructure. 110 | To be added. 111 | 112 | 113 | Internal. 114 | To be added. 115 | 116 | 117 | For internal use by the XAML infrastructure. 118 | To be added. 119 | To be added. 120 | 121 | 122 | For internal use by the XAML infrastructure. 123 | For internal use by the XAML infrastructure. 124 | To be added. 125 | To be added. 126 | 127 | 128 | For internal use by the XAML infrastructure. 129 | For internal use by the XAML infrastructure. 130 | To be added. 131 | To be added. 132 | 133 | 134 | For internal use by the XAML infrastructure. 135 | For internal use by the XAML infrastructure. 136 | To be added. 137 | To be added. 138 | 139 | 140 | Extension class for defining method. 141 | To be added. 142 | 143 | 144 | To be added. 145 | For internal use by the XAML infrastructure. 146 | For internal use by the XAML infrastructure. 147 | Configures with the properties that are defined in the application manifest for . 148 | To be added. 149 | To be added. 150 | 151 | 152 | To be added. 153 | For internal use by the XAML infrastructure. 154 | For internal use by the XAML infrastructure. 155 | For internal use by the XAML infrastructure. 156 | To be added. 157 | To be added. 158 | 159 | 160 | Extension class that differentiates between null values and empty strings. 161 | To be added. 162 | 163 | 164 | Creates a new object with default values. 165 | To be added. 166 | 167 | 168 | For internal use by the XAML infrastructure. 169 | Returns the null object. 170 | To be added. 171 | To be added. 172 | 173 | 174 | Markup extension for referring to other XAML-defined types. 175 | To be added. 176 | 177 | 178 | Creates a new with default values. 179 | To be added. 180 | 181 | 182 | Gets or sets the name of the entity to reference. 183 | To be added. 184 | To be added. 185 | 186 | 187 | For internal use by the XAML infrastructure. 188 | Returns an object that represents the type that was referred to. 189 | To be added. 190 | To be added. 191 | 192 | 193 | A markup extension that gets a static member value. 194 | To be added. 195 | 196 | 197 | Creates a new object with default values. 198 | To be added. 199 | 200 | 201 | Gets or sets the member name. 202 | To be added. 203 | To be added. 204 | 205 | 206 | For internal use by the XAML infrastructure. 207 | Returns the value of the member. 208 | To be added. 209 | To be added. 210 | 211 | 212 | For internal use by the XAML infrastructure. 213 | To be added. 214 | 215 | 216 | For internal use by the XAML infrastructure. 217 | To be added. 218 | 219 | 220 | For internal use by the XAML infrastructure. 221 | To be added. 222 | To be added. 223 | 224 | 225 | For internal use by the XAML infrastructure. 226 | For internal use by the XAML infrastructure. 227 | To be added. 228 | To be added. 229 | 230 | 231 | For internal use by the XAML infrastructure. 232 | To be added. 233 | 234 | 235 | For internal use by the XAML infrastructure. 236 | To be added. 237 | 238 | 239 | For internal use by the XAML infrastructure. 240 | To be added. 241 | To be added. 242 | 243 | 244 | For internal use by the XAML infrastructure. 245 | To be added. 246 | To be added. 247 | 248 | 249 | For internal use by the XAML infrastructure. 250 | To be added. 251 | To be added. 252 | 253 | 254 | For internal use by the XAML infrastructure. 255 | To be added. 256 | To be added. 257 | 258 | 259 | For internal use by the XAML infrastructure. 260 | To be added. 261 | To be added. 262 | 263 | 264 | For internal use by the XAML infrastructure. 265 | For internal use by the XAML infrastructure. 266 | To be added. 267 | To be added. 268 | 269 | 270 | For internal use by the XAML infrastructure. 271 | For internal use by the XAML infrastructure. 272 | To be added. 273 | To be added. 274 | 275 | 276 | For internal use by the XAML infrastructure. 277 | To be added. 278 | 279 | 280 | For internal use by the XAML infrastructure. 281 | To be added. 282 | 283 | 284 | For internal use by the XAML infrastructure. 285 | For internal use by the XAML infrastructure. 286 | To be added. 287 | To be added. 288 | 289 | 290 | For internal use by the XAML infrastructure. 291 | For internal use by the XAML infrastructure. 292 | To be added. 293 | To be added. 294 | 295 | 296 | For internal use by the XAML infrastructure. 297 | To be added. 298 | To be added. 299 | 300 | 301 | For internal use by the XAML infrastructure. 302 | For internal use by the XAML infrastructure. 303 | To be added. 304 | To be added. 305 | 306 | 307 | Attribute that controls whether XAML will be compiled at build time or run time. 308 | By default, XAML compilation at build time is turned off. 309 | 310 | 311 | A value that tells whether to compile XAML at run time or compile time. 312 | Creates a new with the specified value. 313 | To be added. 314 | 315 | 316 | Gets or sets a value that tells whether to compile XAML at run time or compile time. 317 | A value that tells whether to compile XAML at run time or compile time. 318 | By default, XAML compilation at build time is turned off. 319 | 320 | 321 | Enumerates values that control when XAML is compiled into IL. 322 | 323 | Enabling build-time compilation by specifying the Compile option checks the XAML at build time, reduces loading time, and produces a smaller assembly or application. 324 | By default, XAML compilation at build time is turned off. 325 | 326 | 327 | 328 | Compile the XAML for the class or project when the application is built. 329 | 330 | 331 | Compile the XAML for the class or project when the application is run on the device. 332 | 333 | 334 | For internal use by the Xaml infrastructure. 335 | To be added. 336 | 337 | 338 | For internal use by the XAML infrastructure. 339 | For internal use by the Xaml infrastructure. 340 | To be added. 341 | 342 | 343 | Exception that is raised when the XAML parser encounters a XAML error. 344 | To be added. 345 | 346 | 347 | For internal use by the XAML infrastructure. 348 | To be added. 349 | 350 | 351 | For internal use by the XAML infrastructure. 352 | For internal use by the XAML infrastructure. 353 | For internal use by the XAML infrastructure. 354 | For internal use by the XAML infrastructure. 355 | To be added. 356 | 357 | 358 | For internal use by the XAML infrastructure. 359 | To be added. 360 | To be added. 361 | 362 | 363 | For internal use by the XAML infrastructure. 364 | To be added. 365 | To be added. 366 | 367 | 368 | For internal use by the XAML infrastructure. 369 | To be added. 370 | To be added. 371 | 372 | 373 | For internal use by the XAML platform. 374 | To be added. 375 | 376 | 377 | For internal use by the XAML platform. 378 | To be added. 379 | 380 | 381 | For internal use by the XAML platform. 382 | To be added. 383 | To be added. 384 | 385 | 386 | For internal use by the XAML platform. 387 | To be added. 388 | 389 | 390 | For internal use by the Xamarin.Forms platform. 391 | For internal use by the XAML platform. 392 | To be added. 393 | 394 | 395 | For internal use by the Xamarin.Forms platform. 396 | For internal use by the Xamarin.Forms platform. 397 | For internal use by the XAML platform. 398 | To be added. 399 | 400 | 401 | For internal use by the XAML platform. 402 | To be added. 403 | To be added. 404 | 405 | 406 | For internal use by the XAML platform. 407 | To be added. 408 | To be added. 409 | 410 | 411 | For internal use by the XAML platform. 412 | To be added. 413 | 414 | 415 | For internal use by the XAML platform. 416 | To be added. 417 | To be added. 418 | 419 | 420 | For internal use by the XAML platform. 421 | To be added. 422 | 423 | 424 | For internal use by the XAML platform. 425 | To be added. 426 | 427 | 428 | For internal use by the Xamarin.Forms platform. 429 | For internal use by the Xamarin.Forms platform. 430 | For internal use by the XAML platform. 431 | To be added. 432 | 433 | 434 | For internal use by the Xamarin.Forms platform. 435 | For internal use by the XAML platform. 436 | To be added. 437 | To be added. 438 | 439 | 440 | For internal use by the XAML platform. 441 | To be added. 442 | 443 | 444 | For internal use by the Xamarin.Forms platform. 445 | For internal use by the Xamarin.Forms platform. 446 | For internal use by the XAML platform. 447 | To be added. 448 | 449 | 450 | For internal use by the Xamarin.Forms platform. 451 | For internal use by the Xamarin.Forms platform. 452 | For internal use by the XAML platform. 453 | To be added. 454 | To be added. 455 | 456 | 457 | For internal use by the Xamarin.Forms platform. 458 | For internal use by the Xamarin.Forms platform. 459 | For internal use by the XAML platform. 460 | To be added. 461 | To be added. 462 | 463 | 464 | For internal use by the XAML platform. 465 | To be added. 466 | 467 | 468 | For internal use by the Xamarin.Forms platform. 469 | For internal use by the XAML platform. 470 | To be added. 471 | 472 | 473 | For internal use by the XAML platform. 474 | To be added. 475 | To be added. 476 | 477 | 478 | For internal use by the XAML platform. 479 | To be added. 480 | 481 | 482 | For internal use by the XAML platform. 483 | To be added. 484 | 485 | 486 | For internal use by the Xamarin.Forms platform. 487 | For internal use by the Xamarin.Forms platform. 488 | For internal use by the XAML platform. 489 | To be added. 490 | 491 | 492 | For internal use by the Xamarin.Forms platform. 493 | For internal use by the XAML platform. 494 | To be added. 495 | To be added. 496 | 497 | 498 | For internal use by the Xamarin.Forms platform. 499 | For internal use by the XAML platform. 500 | To be added. 501 | To be added. 502 | 503 | 504 | For internal use by the Xamarin.Forms platform. 505 | For internal use by the XAML platform. 506 | To be added. 507 | To be added. 508 | 509 | 510 | 511 | -------------------------------------------------------------------------------- /Droid/bin/Debug/com.crossgeek.samples.RefitXFSample-Signed.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/com.crossgeek.samples.RefitXFSample-Signed.apk -------------------------------------------------------------------------------- /Droid/bin/Debug/com.crossgeek.samples.RefitXFSample.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CrossGeeks/RefitXamarinFormsSample/35dda00d9a66117054866ece72f124c4464e1680/Droid/bin/Debug/com.crossgeek.samples.RefitXFSample.apk -------------------------------------------------------------------------------- /Droid/obj/.cache/com.crossgeek.samples.RefitXFSample.flag: -------------------------------------------------------------------------------- 1 | DebugAnyCPU-s 192.168.123.101:5555 2 | -------------------------------------------------------------------------------- /Droid/packages.config: -------------------------------------------------------------------------------- 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 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RefitXamarinFormsSample -------------------------------------------------------------------------------- /RefitXFSample.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "RefitXFSample", "RefitXFSample\RefitXFSample.shproj", "{79CEBE14-1ABD-43FF-9D03-A54BB9A84019}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RefitXFSample.iOS", "iOS\RefitXFSample.iOS.csproj", "{E1BD05B7-B373-4E40-A999-BF99BB9046E0}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RefitXFSample.Droid", "Droid\RefitXFSample.Droid.csproj", "{836F455C-175F-429E-8C98-E075C3A6A96B}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 13 | Release|iPhone = Release|iPhone 14 | Release|iPhoneSimulator = Release|iPhoneSimulator 15 | Debug|iPhone = Debug|iPhone 16 | Debug|Any CPU = Debug|Any CPU 17 | Release|Any CPU = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 21 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 22 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|iPhone.ActiveCfg = Release|iPhone 23 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|iPhone.Build.0 = Release|iPhone 24 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 25 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 26 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|iPhone.ActiveCfg = Debug|iPhone 27 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|iPhone.Build.0 = Debug|iPhone 28 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator 29 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator 30 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|Any CPU.ActiveCfg = Release|iPhone 31 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0}.Release|Any CPU.Build.0 = Release|iPhone 32 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 33 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 34 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|iPhone.ActiveCfg = Release|Any CPU 35 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|iPhone.Build.0 = Release|Any CPU 36 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 37 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 38 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|iPhone.ActiveCfg = Debug|Any CPU 39 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|iPhone.Build.0 = Debug|Any CPU 40 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 41 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Debug|Any CPU.Build.0 = Debug|Any CPU 42 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|Any CPU.ActiveCfg = Release|Any CPU 43 | {836F455C-175F-429E-8C98-E075C3A6A96B}.Release|Any CPU.Build.0 = Release|Any CPU 44 | EndGlobalSection 45 | EndGlobal 46 | -------------------------------------------------------------------------------- /RefitXFSample/App.xaml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /RefitXFSample/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using RefitXFSample.Services; 2 | using Xamarin.Forms; 3 | 4 | namespace RefitXFSample 5 | { 6 | public partial class App : Application 7 | { 8 | public App() 9 | { 10 | InitializeComponent(); 11 | 12 | MainPage = new MainPage(); 13 | } 14 | 15 | protected override void OnStart() 16 | { 17 | // Handle when your app starts 18 | } 19 | 20 | protected override void OnSleep() 21 | { 22 | // Handle when your app sleeps 23 | } 24 | 25 | protected override void OnResume() 26 | { 27 | // Handle when your app resumes 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /RefitXFSample/Config.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.RegularExpressions; 3 | 4 | namespace RefitXFSample 5 | { 6 | public static class Config 7 | { 8 | public static string ApiUrl = "http://makeup-api.herokuapp.com"; 9 | public static string RedditApiUrl = "http://www.reddit.com/r"; 10 | 11 | public static string ApiHostName 12 | { 13 | get 14 | { 15 | var apiHostName = Regex.Replace(ApiUrl, @"^(?:http(?:s)?://)?(?:www(?:[0-9]+)?\.)?", string.Empty, RegexOptions.IgnoreCase) 16 | .Replace("/", string.Empty); 17 | return apiHostName; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /RefitXFSample/Models/MakeUp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace RefitXFSample.Models 5 | { 6 | public class MakeUp 7 | { 8 | public int Id { get; set; } 9 | public string Brand { get; set; } 10 | public string Name { get; set; } 11 | public string Price { get; set; } 12 | public object PriceSign { get; set; } 13 | public object Currency { get; set; } 14 | public string ImageLink { get; set; } 15 | public string ProductLink { get; set; } 16 | public string WebsiteLink { get; set; } 17 | public string Description { get; set; } 18 | public double? Rating { get; set; } 19 | public string Category { get; set; } 20 | public string ProductType { get; set; } 21 | public IList TagList { get; set; } 22 | public DateTime CreatedAt { get; set; } 23 | public DateTime UpdatedAt { get; set; } 24 | public string ProductApiUrl { get; set; } 25 | public string ApiFeaturedImage { get; set; } 26 | public IList ProductColors { get; set; } 27 | } 28 | 29 | public class ProductColor 30 | { 31 | public string HexValue { get; set; } 32 | public string ColourName { get; set; } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /RefitXFSample/Models/News.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Newtonsoft.Json; 4 | 5 | namespace RefitXFSample.Models 6 | { 7 | public class Source 8 | { 9 | public string Url { get; set; } 10 | public int Width { get; set; } 11 | public int Height { get; set; } 12 | } 13 | 14 | public class Resolution 15 | { 16 | public string Url { get; set; } 17 | public int Width { get; set; } 18 | public int Height { get; set; } 19 | } 20 | 21 | public class Image 22 | { 23 | public Source Source { get; set; } 24 | public IList Resolutions { get; set; } 25 | public string Id { get; set; } 26 | } 27 | 28 | public class Preview 29 | { 30 | public IList Images { get; set; } 31 | public bool Enabled { get; set; } 32 | } 33 | public class NewsDetail 34 | { 35 | public string Domain { get; set; } 36 | public object ApprovedAtUtc { get; set; } 37 | public object ModReasonBy { get; set; } 38 | public object BannedBy { get; set; } 39 | public object NumReports { get; set; } 40 | public string SubredditId { get; set; } 41 | public int? ThumbnailWidth { get; set; } 42 | public string Subreddit { get; set; } 43 | public string SelftextHtml { get; set; } 44 | public string Selftext { get; set; } 45 | public object Likes { get; set; } 46 | public object SuggestedSort { get; set; } 47 | public IList UserReports { get; set; } 48 | public object SecureMedia { get; set; } 49 | public bool IsRedditMediaDomain { get; set; } 50 | public string LinkFlairText { get; set; } 51 | public string Id { get; set; } 52 | public object BannedAtUtc { get; set; } 53 | public object ModReasonTitle { get; set; } 54 | public object ViewCount { get; set; } 55 | public bool Archived { get; set; } 56 | public bool Clicked { get; set; } 57 | public object ReportReasons { get; set; } 58 | public string Author { get; set; } 59 | public int NumCrossposts { get; set; } 60 | public bool Saved { get; set; } 61 | public IList ModReports { get; set; } 62 | public bool CanModPost { get; set; } 63 | public bool IsCrosspostable { get; set; } 64 | public bool Pinned { get; set; } 65 | public int Score { get; set; } 66 | public object ApprovedBy { get; set; } 67 | public bool Over18 { get; set; } 68 | public bool Hidden { get; set; } 69 | public Preview Preview { get; set; } 70 | public string Thumbnail { get; set; } 71 | public bool Edited { get; set; } 72 | public string LinkFlairCssClass { get; set; } 73 | public object AuthorFlairCssClass { get; set; } 74 | public bool ContestMode { get; set; } 75 | public int Gilded { get; set; } 76 | public int Downs { get; set; } 77 | public bool BrandSafe { get; set; } 78 | public object RemovalReason { get; set; } 79 | public string PostHint { get; set; } 80 | public object AuthorFlairText { get; set; } 81 | public bool Stickied { get; set; } 82 | public bool CanGild { get; set; } 83 | public int? ThumbnailHeight { get; set; } 84 | public object ParentWhitelistStatus { get; set; } 85 | public string Name { get; set; } 86 | public bool Spoiler { get; set; } 87 | public string Permalink { get; set; } 88 | public string SubredditType { get; set; } 89 | public bool Locked { get; set; } 90 | public bool HideScore { get; set; } 91 | public string Created { get; set; } 92 | public string Url { get; set; } 93 | public object WhitelistStatus { get; set; } 94 | public bool Quarantine { get; set; } 95 | public string Title { get; set; } 96 | public string CreatedUtc { get; set; } 97 | public string SubredditNamePrefixed { get; set; } 98 | public int Ups { get; set; } 99 | public object Media { get; set; } 100 | public string NumComments { get; set; } 101 | public bool IsSelf { get; set; } 102 | public bool Visited { get; set; } 103 | public object ModNote { get; set; } 104 | public bool IsVideo { get; set; } 105 | public object Distinguished { get; set; } 106 | } 107 | 108 | public class News 109 | { 110 | public string Kind { get; set; } 111 | public NewsDetail Data { get; set; } 112 | } 113 | 114 | public class Data 115 | { 116 | public string After { get; set; } 117 | public int Dist { get; set; } 118 | public string Modhash { get; set; } 119 | public object WhitelistStatus { get; set; } 120 | 121 | [JsonProperty("Children")] 122 | public IList News { get; set; } 123 | 124 | public object Before { get; set; } 125 | } 126 | 127 | public class RootNews 128 | { 129 | public string Kind { get; set; } 130 | public Data Data { get; set; } 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /RefitXFSample/RefitXFSample.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | {79CEBE14-1ABD-43FF-9D03-A54BB9A84019} 7 | 8 | 9 | RefitXFSample 10 | 11 | 12 | 13 | 14 | Designer 15 | MSBuild:UpdateDesignTimeXaml 16 | 17 | 18 | 19 | 20 | App.xaml 21 | 22 | 23 | 24 | 25 | 26 | MainPage.xaml 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /RefitXFSample/RefitXFSample.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {79CEBE14-1ABD-43FF-9D03-A54BB9A84019} 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RefitXFSample/Services/ApiManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Net.Http; 6 | using System.Threading; 7 | using System.Threading.Tasks; 8 | using Acr.UserDialogs; 9 | using Fusillade; 10 | using Plugin.Connectivity; 11 | using Plugin.Connectivity.Abstractions; 12 | using Polly; 13 | using Refit; 14 | 15 | namespace RefitXFSample.Services 16 | { 17 | public class ApiManager : IApiManager 18 | { 19 | IUserDialogs _userDialogs = UserDialogs.Instance; 20 | IConnectivity _connectivity = CrossConnectivity.Current; 21 | IApiService makeUpApi; 22 | IApiService redditApi; 23 | public bool IsConnected { get; set; } 24 | public bool IsReachable { get; set; } 25 | Dictionary runningTasks = new Dictionary(); 26 | Dictionary> taskContainer = new Dictionary>(); 27 | 28 | public ApiManager(IApiService _makeUpApi, IApiService _redditApi) 29 | { 30 | makeUpApi = _makeUpApi; 31 | redditApi = _redditApi; 32 | IsConnected = _connectivity.IsConnected; 33 | _connectivity.ConnectivityChanged += OnConnectivityChanged; 34 | } 35 | 36 | void OnConnectivityChanged(object sender, ConnectivityChangedEventArgs e) 37 | { 38 | IsConnected = e.IsConnected; 39 | 40 | if (!e.IsConnected) 41 | { 42 | // Cancel All Running Task 43 | var items = runningTasks.ToList(); 44 | foreach (var item in items) 45 | { 46 | item.Value.Cancel(); 47 | runningTasks.Remove(item.Key); 48 | } 49 | } 50 | } 51 | 52 | public async Task GetNews() 53 | { 54 | var cts = new CancellationTokenSource(); 55 | var task = RemoteRequestAsync(redditApi.GetApi(Priority.UserInitiated).GetNews(cts.Token)); 56 | runningTasks.Add(task.Id, cts); 57 | 58 | return await task; 59 | } 60 | 61 | 62 | public async Task GetMakeUps(string brand) 63 | { 64 | var cts = new CancellationTokenSource(); 65 | var task = RemoteRequestAsync(makeUpApi.GetApi(Priority.UserInitiated).GetMakeUps(brand, cts.Token)); 66 | runningTasks.Add(task.Id, cts); 67 | 68 | return await task; 69 | } 70 | 71 | protected async Task RemoteRequestAsync(Task task) 72 | where TData : HttpResponseMessage, 73 | new() 74 | { 75 | TData data = new TData(); 76 | 77 | if (!IsConnected) 78 | { 79 | var strngResponse = "There's not a network connection"; 80 | data.StatusCode = HttpStatusCode.BadRequest; 81 | data.Content = new StringContent(strngResponse); 82 | 83 | _userDialogs.Toast(strngResponse, TimeSpan.FromSeconds(1)); 84 | return data; 85 | } 86 | 87 | IsReachable = await _connectivity.IsRemoteReachable(Config.ApiHostName); 88 | 89 | if (!IsReachable) 90 | { 91 | var strngResponse = "There's not an internet connection"; 92 | data.StatusCode = HttpStatusCode.BadRequest; 93 | data.Content = new StringContent(strngResponse); 94 | 95 | _userDialogs.Toast(strngResponse, TimeSpan.FromSeconds(1)); 96 | return data; 97 | } 98 | 99 | data = await Policy 100 | .Handle() 101 | .Or() 102 | .Or() 103 | .WaitAndRetryAsync 104 | ( 105 | retryCount: 1, 106 | sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)) 107 | ) 108 | .ExecuteAsync(async () => 109 | { 110 | var result = await task; 111 | 112 | if (result.StatusCode == HttpStatusCode.Unauthorized) 113 | { 114 | //Logout the user 115 | } 116 | runningTasks.Remove(task.Id); 117 | 118 | return result; 119 | }); 120 | 121 | return data; 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /RefitXFSample/Services/ApiService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Net.Http; 3 | using Fusillade; 4 | using Refit; 5 | 6 | namespace RefitXFSample.Services 7 | { 8 | public class ApiService : IApiService 9 | { 10 | Func createClient; 11 | public ApiService(string apiBaseAddress) 12 | { 13 | createClient = messageHandler => 14 | { 15 | var client = new HttpClient(messageHandler) 16 | { 17 | BaseAddress = new Uri(apiBaseAddress) 18 | }; 19 | 20 | return RestService.For(client); 21 | }; 22 | } 23 | 24 | private T Background 25 | { 26 | get 27 | { 28 | return new Lazy(() => createClient( 29 | new RateLimitedHttpMessageHandler(new HttpClientHandler(), Priority.Background))).Value; 30 | } 31 | } 32 | 33 | private T UserInitiated 34 | { 35 | get 36 | { 37 | return new Lazy(() => createClient( 38 | new RateLimitedHttpMessageHandler(new HttpClientHandler(), Priority.UserInitiated))).Value; 39 | } 40 | } 41 | 42 | private T Speculative 43 | { 44 | get 45 | { 46 | return new Lazy(() => createClient( 47 | new RateLimitedHttpMessageHandler(new HttpClientHandler(), Priority.Speculative))).Value; 48 | } 49 | } 50 | 51 | public T GetApi(Priority priority) 52 | { 53 | switch (priority) 54 | { 55 | case Priority.Background: 56 | return Background; 57 | case Priority.UserInitiated: 58 | return UserInitiated; 59 | case Priority.Speculative: 60 | return Speculative; 61 | default: 62 | return UserInitiated; 63 | } 64 | } 65 | 66 | } 67 | } 68 | 69 | -------------------------------------------------------------------------------- /RefitXFSample/Services/IApiManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Net.Http; 3 | using System.Threading.Tasks; 4 | 5 | namespace RefitXFSample.Services 6 | { 7 | public interface IApiManager 8 | { 9 | Task GetMakeUps(string brand); 10 | Task GetNews(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /RefitXFSample/Services/IApiService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Fusillade; 3 | 4 | namespace RefitXFSample.Services 5 | { 6 | public interface IApiService 7 | { 8 | T GetApi(Priority priority); 9 | 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /RefitXFSample/Services/IMakeUpApi.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Net.Http; 3 | using System.Threading; 4 | using System.Threading.Tasks; 5 | using Refit; 6 | using RefitXFSample.Models; 7 | 8 | namespace RefitXFSample 9 | { 10 | [Headers("Content-Type: application/json")] 11 | public interface IMakeUpApi 12 | { 13 | [Get("/api/v1/products.json?brand={brand}")] 14 | Task GetMakeUps(string brand, CancellationToken cancellationToken); 15 | 16 | [Post("/api/v1/addMakeUp")] 17 | Task CreateMakeUp([Body] MakeUp makeUp, [Header("Authorization")] string token, CancellationToken cancellationToken); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /RefitXFSample/Services/IRedditApi.cs: -------------------------------------------------------------------------------- 1 | using System.Net.Http; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | using Refit; 5 | using RefitXFSample.Models; 6 | 7 | namespace RefitXFSample 8 | { 9 | [Headers("Content-Type: application/json")] 10 | public interface IRedditApi 11 | { 12 | [Get("/subreddit/new.json?sort=top&limit=20")] 13 | Task GetNews(CancellationToken cancellationToken); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /RefitXFSample/ViewModels/BaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Diagnostics; 4 | using System.Threading.Tasks; 5 | using Acr.UserDialogs; 6 | using RefitXFSample.Services; 7 | 8 | namespace RefitXFSample.ViewModels 9 | { 10 | public class BaseViewModel: INotifyPropertyChanged 11 | { 12 | public IUserDialogs PageDialog = UserDialogs.Instance; 13 | public IApiManager ApiManager; 14 | IApiService makeUpApi = new ApiService(Config.ApiUrl); 15 | IApiService redditApi = new ApiService(Config.RedditApiUrl); 16 | public event PropertyChangedEventHandler PropertyChanged; 17 | 18 | public bool IsBusy { get; set; } 19 | public BaseViewModel() 20 | { 21 | ApiManager = new ApiManager(makeUpApi, redditApi); 22 | 23 | } 24 | 25 | public async Task RunSafe(Task task, bool ShowLoading = true, string loadinMessage = null) 26 | { 27 | try 28 | { 29 | if (IsBusy) return; 30 | 31 | IsBusy = true; 32 | 33 | if (ShowLoading) UserDialogs.Instance.ShowLoading(loadinMessage ?? "Loading"); 34 | 35 | await task; 36 | } 37 | catch (Exception e) 38 | { 39 | IsBusy = false; 40 | UserDialogs.Instance.HideLoading(); 41 | Debug.WriteLine(e.ToString()); 42 | await App.Current.MainPage.DisplayAlert("Eror", "Check your internet connection", "Ok"); 43 | 44 | } 45 | finally 46 | { 47 | IsBusy = false; 48 | if (ShowLoading) UserDialogs.Instance.HideLoading(); 49 | } 50 | } 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /RefitXFSample/ViewModels/MainPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.ObjectModel; 3 | using System.Threading.Tasks; 4 | using System.Windows.Input; 5 | using RefitXFSample.Models; 6 | using Xamarin.Forms; 7 | using Newtonsoft.Json; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | 11 | namespace RefitXFSample.ViewModels 12 | { 13 | public class MainPageViewModel: BaseViewModel 14 | { 15 | public ObservableCollection MakeUps {get;set;} 16 | public ObservableCollection News { get; set; } 17 | public ICommand GetDataCommand {get; set;} 18 | public ICommand GetTimeLineDataCommand { get; set; } 19 | 20 | public MainPageViewModel() 21 | { 22 | GetDataCommand= new Command(async()=>await RunSafe(GetData())); 23 | GetTimeLineDataCommand= new Command(async () => await RunSafe(GetTimeLine())); 24 | } 25 | 26 | async Task GetData(){ 27 | 28 | var makeUpsResponse = await ApiManager.GetMakeUps("maybelline"); 29 | 30 | if(makeUpsResponse.IsSuccessStatusCode){ 31 | var response = await makeUpsResponse.Content.ReadAsStringAsync(); 32 | var json = await Task.Run(() => JsonConvert.DeserializeObject>(response)); 33 | MakeUps = new ObservableCollection(json); 34 | }else{ 35 | await PageDialog.AlertAsync("Unable to get data", "Error", "Ok"); 36 | } 37 | } 38 | 39 | async Task GetTimeLine() 40 | { 41 | var timelineResponse = await ApiManager.GetNews(); 42 | 43 | if (timelineResponse.IsSuccessStatusCode) 44 | { 45 | var response = await timelineResponse.Content.ReadAsStringAsync(); 46 | var json = await Task.Run(() => JsonConvert.DeserializeObject(response)); 47 | News = new ObservableCollection(json.Data.News); 48 | } 49 | else 50 | { 51 | await PageDialog.AlertAsync("Unable to get data", "Error", "Ok"); 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /RefitXFSample/Views/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /RefitXFSample/Views/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Refit; 3 | using Xamarin.Forms; 4 | 5 | namespace RefitXFSample 6 | { 7 | public partial class MainPage : TabbedPage 8 | { 9 | ViewModels.MainPageViewModel _viewModel = new ViewModels.MainPageViewModel(); 10 | public MainPage() 11 | { 12 | InitializeComponent(); 13 | this.BindingContext = _viewModel; 14 | } 15 | 16 | protected override void OnAppearing() 17 | { 18 | base.OnAppearing(); 19 | _viewModel.GetDataCommand.Execute(null); 20 | _viewModel.GetTimeLineDataCommand.Execute(null); 21 | 22 | } 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace RefitXFSample.iOS 9 | { 10 | [Register("AppDelegate")] 11 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate 12 | { 13 | public override bool FinishedLaunching(UIApplication app, NSDictionary options) 14 | { 15 | global::Xamarin.Forms.Forms.Init(); 16 | 17 | LoadApplication(new App()); 18 | 19 | return base.FinishedLaunching(app, options); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /iOS/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | }, 93 | { 94 | "size" : "24x24", 95 | "idiom" : "watch", 96 | "scale" : "2x", 97 | "role" : "notificationCenter", 98 | "subtype" : "38mm" 99 | }, 100 | { 101 | "size" : "27.5x27.5", 102 | "idiom" : "watch", 103 | "scale" : "2x", 104 | "role" : "notificationCenter", 105 | "subtype" : "42mm" 106 | }, 107 | { 108 | "size" : "29x29", 109 | "idiom" : "watch", 110 | "role" : "companionSettings", 111 | "scale" : "2x" 112 | }, 113 | { 114 | "size" : "29x29", 115 | "idiom" : "watch", 116 | "role" : "companionSettings", 117 | "scale" : "3x" 118 | }, 119 | { 120 | "size" : "40x40", 121 | "idiom" : "watch", 122 | "scale" : "2x", 123 | "role" : "appLauncher", 124 | "subtype" : "38mm" 125 | }, 126 | { 127 | "size" : "44x44", 128 | "idiom" : "watch", 129 | "scale" : "2x", 130 | "role" : "longLook", 131 | "subtype" : "42mm" 132 | }, 133 | { 134 | "size" : "86x86", 135 | "idiom" : "watch", 136 | "scale" : "2x", 137 | "role" : "quickLook", 138 | "subtype" : "38mm" 139 | }, 140 | { 141 | "size" : "98x98", 142 | "idiom" : "watch", 143 | "scale" : "2x", 144 | "role" : "quickLook", 145 | "subtype" : "42mm" 146 | }, 147 | { 148 | "idiom" : "mac", 149 | "size" : "16x16", 150 | "scale" : "1x" 151 | }, 152 | { 153 | "idiom" : "mac", 154 | "size" : "16x16", 155 | "scale" : "2x" 156 | }, 157 | { 158 | "idiom" : "mac", 159 | "size" : "32x32", 160 | "scale" : "1x" 161 | }, 162 | { 163 | "idiom" : "mac", 164 | "size" : "32x32", 165 | "scale" : "2x" 166 | }, 167 | { 168 | "idiom" : "mac", 169 | "size" : "128x128", 170 | "scale" : "1x" 171 | }, 172 | { 173 | "idiom" : "mac", 174 | "size" : "128x128", 175 | "scale" : "2x" 176 | }, 177 | { 178 | "idiom" : "mac", 179 | "size" : "256x256", 180 | "scale" : "1x" 181 | }, 182 | { 183 | "idiom" : "mac", 184 | "size" : "256x256", 185 | "scale" : "2x" 186 | }, 187 | { 188 | "idiom" : "mac", 189 | "size" : "512x512", 190 | "scale" : "1x" 191 | }, 192 | { 193 | "idiom" : "mac", 194 | "size" : "512x512", 195 | "scale" : "2x" 196 | } 197 | ], 198 | "info" : { 199 | "version" : 1, 200 | "author" : "xcode" 201 | } 202 | } 203 | -------------------------------------------------------------------------------- /iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /iOS/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDisplayName 6 | RefitXFSample 7 | CFBundleName 8 | RefitXFSample 9 | CFBundleIdentifier 10 | com.crossgeek.samples.RefitXFSample 11 | CFBundleShortVersionString 12 | 1.0 13 | CFBundleVersion 14 | 1.0 15 | LSRequiresIPhoneOS 16 | 17 | MinimumOSVersion 18 | 8.0 19 | UIDeviceFamily 20 | 21 | 1 22 | 2 23 | 24 | UILaunchStoryboardName 25 | LaunchScreen 26 | UIRequiredDeviceCapabilities 27 | 28 | armv7 29 | 30 | UISupportedInterfaceOrientations 31 | 32 | UIInterfaceOrientationPortrait 33 | UIInterfaceOrientationLandscapeLeft 34 | UIInterfaceOrientationLandscapeRight 35 | 36 | UISupportedInterfaceOrientations~ipad 37 | 38 | UIInterfaceOrientationPortrait 39 | UIInterfaceOrientationPortraitUpsideDown 40 | UIInterfaceOrientationLandscapeLeft 41 | UIInterfaceOrientationLandscapeRight 42 | 43 | XSAppIconAssets 44 | Assets.xcassets/AppIcon.appiconset 45 | NSAppTransportSecurity 46 | 47 | NSAllowsArbitraryLoads 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /iOS/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 | -------------------------------------------------------------------------------- /iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace RefitXFSample.iOS 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main(string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main(args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /iOS/RefitXFSample.iOS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debug 7 | iPhoneSimulator 8 | {E1BD05B7-B373-4E40-A999-BF99BB9046E0} 9 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Exe 11 | RefitXFSample.iOS 12 | RefitXFSample.iOS 13 | Resources 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\iPhoneSimulator\Debug 20 | DEBUG;ENABLE_TEST_CLOUD; 21 | prompt 22 | 4 23 | iPhone Developer 24 | true 25 | true 26 | true 27 | 10691 28 | SdkOnly 29 | x86_64 30 | HttpClientHandler 31 | x86 32 | 33 | 34 | pdbonly 35 | true 36 | bin\iPhone\Release 37 | prompt 38 | 4 39 | iPhone Developer 40 | true 41 | Entitlements.plist 42 | SdkOnly 43 | ARM64 44 | HttpClientHandler 45 | x86 46 | 47 | 48 | pdbonly 49 | true 50 | bin\iPhoneSimulator\Release 51 | prompt 52 | 4 53 | iPhone Developer 54 | true 55 | None 56 | x86_64 57 | HttpClientHandler 58 | x86 59 | 60 | 61 | true 62 | full 63 | false 64 | bin\iPhone\Debug 65 | DEBUG;ENABLE_TEST_CLOUD; 66 | prompt 67 | 4 68 | iPhone Developer 69 | true 70 | true 71 | true 72 | true 73 | true 74 | Entitlements.plist 75 | 10047 76 | SdkOnly 77 | ARM64 78 | HttpClientHandler 79 | x86 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll 88 | 89 | 90 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll 91 | 92 | 93 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll 94 | 95 | 96 | ..\packages\Xamarin.Forms.2.5.0.121934\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll 97 | 98 | 99 | 100 | ..\packages\System.Buffers.4.3.0\lib\netstandard1.1\System.Buffers.dll 101 | 102 | 103 | 104 | 105 | ..\packages\System.Runtime.CompilerServices.Unsafe.4.3.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll 106 | 107 | 108 | ..\packages\System.Text.Encodings.Web.4.4.0\lib\netstandard2.0\System.Text.Encodings.Web.dll 109 | 110 | 111 | ..\packages\Microsoft.Extensions.Primitives.1.1.1\lib\netstandard1.0\Microsoft.Extensions.Primitives.dll 112 | 113 | 114 | ..\packages\Microsoft.Net.Http.Headers.1.1.2\lib\netstandard1.1\Microsoft.Net.Http.Headers.dll 115 | 116 | 117 | ..\packages\Microsoft.AspNetCore.WebUtilities.1.1.2\lib\netstandard1.3\Microsoft.AspNetCore.WebUtilities.dll 118 | 119 | 120 | ..\packages\Newtonsoft.Json.10.0.3\lib\netstandard1.3\Newtonsoft.Json.dll 121 | 122 | 123 | ..\packages\Refit.4.0.1\lib\netstandard1.4\Refit.dll 124 | 125 | 126 | ..\packages\PropertyChanged.Fody.2.2.5\lib\netstandard1.0\PropertyChanged.dll 127 | 128 | 129 | ..\packages\Splat.2.0.0\lib\Xamarin.iOS10\Splat.dll 130 | 131 | 132 | ..\packages\System.Reactive.Interfaces.3.1.1\lib\netstandard1.0\System.Reactive.Interfaces.dll 133 | 134 | 135 | ..\packages\System.Reactive.Core.3.1.1\lib\netstandard1.3\System.Reactive.Core.dll 136 | 137 | 138 | ..\packages\System.Reactive.Linq.3.1.1\lib\netstandard1.3\System.Reactive.Linq.dll 139 | 140 | 141 | ..\packages\System.Reactive.PlatformServices.3.1.1\lib\netstandard1.3\System.Reactive.PlatformServices.dll 142 | 143 | 144 | ..\packages\Punchclock.2.1.0\lib\netstandard1.4\Punchclock.dll 145 | 146 | 147 | ..\packages\fusillade.1.0.0\lib\netstandard1.4\Fusillade.dll 148 | 149 | 150 | ..\packages\modernhttpclient.2.4.2\lib\Xamarin.iOS10\ModernHttpClient.dll 151 | 152 | 153 | ..\packages\Xam.Plugin.Connectivity.3.0.3\lib\Xamarin.iOS10\Plugin.Connectivity.Abstractions.dll 154 | 155 | 156 | ..\packages\Xam.Plugin.Connectivity.3.0.3\lib\Xamarin.iOS10\Plugin.Connectivity.dll 157 | 158 | 159 | ..\packages\Polly.5.7.0\lib\netstandard1.1\Polly.dll 160 | 161 | 162 | ..\packages\BTProgressHUD.1.2.0.6\lib\Xamarin.iOS10\BTProgressHUD.dll 163 | 164 | 165 | ..\packages\Acr.UserDialogs.7.0.1\lib\xamarinios10\Acr.UserDialogs.dll 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /iOS/packages.config: -------------------------------------------------------------------------------- 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 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | --------------------------------------------------------------------------------