├── .editorconfig ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── art └── art.png └── src ├── ImageCircle.sln ├── ImageCircle.zip ├── ImageCircle ├── CircleImage.shared.cs ├── ImageCircle.Forms.Plugin.csproj ├── Renderer.android.cs ├── Renderer.ios.cs ├── Renderer.mac.cs └── Renderer.uwp.cs ├── MigrationBackup ├── 12ea6423 │ └── Tests │ │ └── TestAppsCircles.Droid │ │ ├── NuGetUpgradeLog.html │ │ ├── TestAppsCircles.Droid.csproj │ │ └── packages.config └── 4a994a6c │ └── Tests │ └── TestAppsCircles.iOS │ ├── NuGetUpgradeLog.html │ ├── TestAppsCircles.iOS.csproj │ └── packages.config ├── TestAppCircles.Mac ├── AppDelegate.cs ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── AppIcon-128.png │ │ ├── AppIcon-128@2x.png │ │ ├── AppIcon-16.png │ │ ├── AppIcon-16@2x.png │ │ ├── AppIcon-256.png │ │ ├── AppIcon-256@2x.png │ │ ├── AppIcon-32.png │ │ ├── AppIcon-32@2x.png │ │ ├── AppIcon-512.png │ │ ├── AppIcon-512@2x.png │ │ └── Contents.json │ └── Contents.json ├── Info.plist ├── Main.cs ├── Main.storyboard ├── TestAppsCircles.Mac.csproj └── packages.config ├── TestAppsCircles.Droid ├── Assets │ └── AboutAssets.txt ├── MainActivity.cs ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── Resources │ ├── AboutResources.txt │ ├── Resource.Designer.cs │ ├── drawable-hdpi │ │ └── icon.png │ ├── drawable-xhdpi │ │ └── icon.png │ ├── drawable-xxhdpi │ │ └── icon.png │ └── drawable │ │ ├── check.png │ │ └── icon.png ├── TestAppsCircles.Droid.csproj └── TestAppsCircles.Droid.csproj.bak ├── TestAppsCircles.UWP ├── App.xaml ├── App.xaml.cs ├── Assets │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ └── Wide310x150Logo.scale-200.png ├── MainPage.xaml ├── MainPage.xaml.cs ├── Package.appxmanifest ├── Properties │ ├── AssemblyInfo.cs │ └── Default.rd.xml ├── TestAppsCircles.UWP.csproj └── check.png ├── TestAppsCircles.iOS ├── AppDelegate.cs ├── Entitlements.plist ├── Info.plist ├── Main.cs ├── Properties │ └── AssemblyInfo.cs ├── Resources │ ├── Default-568h@2x.png │ ├── Default-Portrait.png │ ├── Default-Portrait@2x.png │ ├── Default.png │ ├── Default@2x.png │ ├── Icon-60@2x.png │ ├── Icon-60@3x.png │ ├── Icon-76.png │ ├── Icon-76@2x.png │ ├── Icon-Small-40.png │ ├── Icon-Small-40@2x.png │ ├── Icon-Small-40@3x.png │ ├── Icon-Small.png │ ├── Icon-Small@2x.png │ ├── Icon-Small@3x.png │ ├── LaunchScreen.storyboard │ └── check.png ├── TestAppsCircles.iOS.csproj ├── iTunesArtwork └── iTunesArtwork@2x └── TestAppsCircles ├── App.cs ├── TestAppsCircles.projitems └── TestAppsCircles.shproj /.editorconfig: -------------------------------------------------------------------------------- 1 | # Suppress: EC112 2 | # top-most EditorConfig file 3 | root = true 4 | 5 | # Don't use tabs for indentation. 6 | [*] 7 | indent_style = tab 8 | # (Please don't specify an indent_size here; that has too many unintended consequences.) 9 | 10 | # Code files 11 | [*.{cs,csx,vb,vbx}] 12 | indent_size = 4 13 | 14 | # Xml project files 15 | [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] 16 | indent_size = 2 17 | 18 | # Xml config files 19 | [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] 20 | indent_size = 2 21 | 22 | # JSON files 23 | [*.json] 24 | indent_size = 2 25 | 26 | # Dotnet code style settings: 27 | [*.{cs,vb}] 28 | # Sort using and Import directives with System.* appearing first 29 | dotnet_sort_system_directives_first = false 30 | # Avoid "this." and "Me." if not necessary 31 | dotnet_style_qualification_for_field = false:suggestion 32 | dotnet_style_qualification_for_property = false:suggestion 33 | dotnet_style_qualification_for_method = false:suggestion 34 | dotnet_style_qualification_for_event = false:suggestion 35 | 36 | # Use language keywords instead of framework type names for type references 37 | dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion 38 | dotnet_style_predefined_type_for_member_access = true:suggestion 39 | 40 | # Suggest more modern language features when available 41 | dotnet_style_object_initializer = true:suggestion 42 | dotnet_style_collection_initializer = true:suggestion 43 | dotnet_style_coalesce_expression = true:suggestion 44 | dotnet_style_null_propagation = true:suggestion 45 | dotnet_style_explicit_tuple_names = true:suggestion 46 | 47 | # Naming Conventions: 48 | # Pascal Casing 49 | dotnet_naming_symbols.method_and_property_symbols.applicable_kinds= method,property,enum 50 | dotnet_naming_symbols.method_and_property_symbols.applicable_accessibilities = * 51 | dotnet_naming_style.pascal_case_style.capitalization = pascal_case 52 | 53 | dotnet_naming_rule.methods_and_properties_must_be_pascal_case.severity = warning 54 | dotnet_naming_rule.methods_and_properties_must_be_pascal_case.symbols = method_and_property_symbols 55 | dotnet_naming_rule.methods_and_properties_must_be_pascal_case.style = pascal_case_style 56 | 57 | # Non-public members must be lower-case 58 | dotnet_naming_symbols.non_public_symbols.applicable_kinds = property,method,field,event,delegate 59 | dotnet_naming_symbols.non_public_symbols.applicable_accessibilities = private 60 | dotnet_naming_style.all_lower_case_style.capitalization = camel_case 61 | 62 | dotnet_naming_rule.non_public_members_must_be_lower_case.severity = warning 63 | dotnet_naming_rule.non_public_members_must_be_lower_case.symbols = non_public_symbols 64 | dotnet_naming_rule.non_public_members_must_be_lower_case.style = all_lower_case_style 65 | 66 | # CSharp code style settings: 67 | [*.cs] 68 | # Do not prefer "var" everywhere 69 | csharp_style_var_for_built_in_types = true:suggestion 70 | csharp_style_var_when_type_is_apparent = true:suggestion 71 | csharp_style_var_elsewhere = true:suggestion 72 | 73 | # Prefer method-like constructs to have a block body 74 | csharp_style_expression_bodied_methods = true:suggestion 75 | csharp_style_expression_bodied_constructors = true:none 76 | csharp_style_expression_bodied_operators = true:none 77 | 78 | # Prefer property-like constructs to have an expression-body 79 | csharp_style_expression_bodied_properties = true:suggestion 80 | csharp_style_expression_bodied_indexers = true:none 81 | csharp_style_expression_bodied_accessors = true:none 82 | 83 | # Suggest more modern language features when available 84 | csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion 85 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 86 | csharp_style_inlined_variable_declaration = true:suggestion 87 | csharp_style_throw_expression = true:suggestion 88 | csharp_style_conditional_delegate_call = true:suggestion 89 | 90 | # Newline settings 91 | csharp_new_line_before_open_brace = all 92 | csharp_new_line_before_else = true 93 | csharp_new_line_before_catch = true 94 | csharp_new_line_before_finally = true 95 | csharp_new_line_before_members_in_object_initializers = true 96 | csharp_new_line_before_members_in_anonymous_types = true 97 | 98 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: jamesmontemagno 2 | patreon: mergeconflictfm 3 | custom: https://www.buymeacoffee.com/jamesmontemagno 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | If you are creating an issue for a BUG please fill out this information. If you are asking a question or requesting a feature you can delete the sections below. 2 | 3 | **Failure to fill out this information will result in this issue being closed.** If you post a full stack trace in a bug it will be closed, please post it to http://gist.github.com and then post the link here. 4 | 5 | ## Bug Information 6 | 7 | Version Number of Plugin: 8 | Device Tested On: 9 | Simulator Tested On: 10 | Version of VS: 11 | Version of Xamarin: 12 | Versions of other things you are using: 13 | 14 | ### Steps to reproduce the Behavior 15 | 16 | ### Expected Behavior 17 | 18 | ### Actual Behavior 19 | 20 | ### Code snippet 21 | 22 | ### Screenshots 23 | 24 | 25 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Please take a moment to fill out the following: 2 | 3 | Fixes # . 4 | 5 | Changes Proposed in this pull request: 6 | - 7 | - 8 | - 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | src/.vs/ 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | 24 | # Visual Studio 2015 cache/options directory 25 | .vs/ 26 | # Uncomment if you have tasks that create the project's static files in wwwroot 27 | #wwwroot/ 28 | 29 | # MSTest test Results 30 | [Tt]est[Rr]esult*/ 31 | [Bb]uild[Ll]og.* 32 | 33 | # NUNIT 34 | *.VisualState.xml 35 | TestResult.xml 36 | 37 | # Build Results of an ATL Project 38 | [Dd]ebugPS/ 39 | [Rr]eleasePS/ 40 | dlldata.c 41 | 42 | # DNX 43 | project.lock.json 44 | artifacts/ 45 | 46 | *_i.c 47 | *_p.c 48 | *_i.h 49 | *.ilk 50 | *.meta 51 | *.obj 52 | *.pch 53 | *.pdb 54 | *.pgc 55 | *.pgd 56 | *.rsp 57 | *.sbr 58 | *.tlb 59 | *.tli 60 | *.tlh 61 | *.tmp 62 | *.tmp_proj 63 | *.log 64 | *.vspscc 65 | *.vssscc 66 | .builds 67 | *.pidb 68 | *.svclog 69 | *.scc 70 | 71 | # Chutzpah Test files 72 | _Chutzpah* 73 | 74 | # Visual C++ cache files 75 | ipch/ 76 | *.aps 77 | *.ncb 78 | *.opendb 79 | *.opensdf 80 | *.sdf 81 | *.cachefile 82 | 83 | # Visual Studio profiler 84 | *.psess 85 | *.vsp 86 | *.vspx 87 | *.sap 88 | 89 | # TFS 2012 Local Workspace 90 | $tf/ 91 | 92 | # Guidance Automation Toolkit 93 | *.gpState 94 | 95 | # ReSharper is a .NET coding add-in 96 | _ReSharper*/ 97 | *.[Rr]e[Ss]harper 98 | *.DotSettings.user 99 | 100 | # JustCode is a .NET coding add-in 101 | .JustCode 102 | 103 | # TeamCity is a build add-in 104 | _TeamCity* 105 | 106 | # DotCover is a Code Coverage Tool 107 | *.dotCover 108 | 109 | # NCrunch 110 | _NCrunch_* 111 | .*crunch*.local.xml 112 | nCrunchTemp_* 113 | 114 | # MightyMoose 115 | *.mm.* 116 | AutoTest.Net/ 117 | 118 | # Web workbench (sass) 119 | .sass-cache/ 120 | 121 | # Installshield output folder 122 | [Ee]xpress/ 123 | 124 | # DocProject is a documentation generator add-in 125 | DocProject/buildhelp/ 126 | DocProject/Help/*.HxT 127 | DocProject/Help/*.HxC 128 | DocProject/Help/*.hhc 129 | DocProject/Help/*.hhk 130 | DocProject/Help/*.hhp 131 | DocProject/Help/Html2 132 | DocProject/Help/html 133 | 134 | # Click-Once directory 135 | publish/ 136 | 137 | # Publish Web Output 138 | *.[Pp]ublish.xml 139 | *.azurePubxml 140 | # TODO: Comment the next line if you want to checkin your web deploy settings 141 | # but database connection strings (with potential passwords) will be unencrypted 142 | *.pubxml 143 | *.publishproj 144 | 145 | # NuGet Packages 146 | *.nupkg 147 | # The packages folder can be ignored because of Package Restore 148 | **/packages/* 149 | # except build/, which is used as an MSBuild target. 150 | !**/packages/build/ 151 | # Uncomment if necessary however generally it will be regenerated when needed 152 | #!**/packages/repositories.config 153 | # NuGet v3's project.json files produces more ignoreable files 154 | *.nuget.props 155 | *.nuget.targets 156 | 157 | # Microsoft Azure Build Output 158 | csx/ 159 | *.build.csdef 160 | 161 | # Microsoft Azure Emulator 162 | ecf/ 163 | rcf/ 164 | 165 | # Microsoft Azure ApplicationInsights config file 166 | ApplicationInsights.config 167 | 168 | # Windows Store app package directory 169 | AppPackages/ 170 | BundleArtifacts/ 171 | 172 | # Visual Studio cache files 173 | # files ending in .cache can be ignored 174 | *.[Cc]ache 175 | # but keep track of directories ending in .cache 176 | !*.[Cc]ache/ 177 | 178 | # Others 179 | ClientBin/ 180 | ~$* 181 | *~ 182 | *.dbmdl 183 | *.dbproj.schemaview 184 | *.pfx 185 | *.publishsettings 186 | node_modules/ 187 | orleans.codegen.cs 188 | 189 | # RIA/Silverlight projects 190 | Generated_Code/ 191 | 192 | # Backup & report files from converting an old project file 193 | # to a newer Visual Studio version. Backup files are not needed, 194 | # because we have git ;-) 195 | _UpgradeReport_Files/ 196 | Backup*/ 197 | UpgradeLog*.XML 198 | UpgradeLog*.htm 199 | 200 | # SQL Server files 201 | *.mdf 202 | *.ldf 203 | 204 | # Business Intelligence projects 205 | *.rdl.data 206 | *.bim.layout 207 | *.bim_*.settings 208 | 209 | # Microsoft Fakes 210 | FakesAssemblies/ 211 | 212 | # GhostDoc plugin setting file 213 | *.GhostDoc.xml 214 | 215 | # Node.js Tools for Visual Studio 216 | .ntvs_analysis.dat 217 | 218 | # Visual Studio 6 build log 219 | *.plg 220 | 221 | # Visual Studio 6 workspace options file 222 | *.opt 223 | 224 | # Visual Studio LightSwitch build output 225 | **/*.HTMLClient/GeneratedArtifacts 226 | **/*.DesktopClient/GeneratedArtifacts 227 | **/*.DesktopClient/ModelManifest.xml 228 | **/*.Server/GeneratedArtifacts 229 | **/*.Server/ModelManifest.xml 230 | _Pvt_Extensions 231 | 232 | # Paket dependency manager 233 | .paket/paket.exe 234 | 235 | # FAKE - F# Make 236 | .fake/ 237 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 3.1.0 2 | * Fix for UWP scale images not working 3 | 4 | 5 | ## 2.0.2 6 | * Fix for iOS duplicate circles in some instances #57 7 | 8 | ### 2.0.1 9 | * .NET Standard Library 10 | * Update Xamarin.Forms 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 James Montemagno / Refractored LLC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Circle Image Control Plugin for Xamarin.Forms 2 | 3 | A simple and elegant way of displaying circle images in your Xamarin.Forms projects. 4 | 5 | Be sure to change the DLL name to: 6 | 7 | ```xml 8 | xmlns:controls="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin" 9 | ``` 10 | 11 | 12 | #### Setup 13 | * Available on NuGet: [![NuGet](https://img.shields.io/nuget/v/Xam.Plugins.Forms.ImageCircle.svg?label=NuGet)](https://www.nuget.org/packages/Xam.Plugins.Forms.ImageCircle/) 14 | * [https://www.nuget.org/packages/Xam.Plugins.Forms.ImageCircle](https://www.nuget.org/packages/Xam.Plugins.Forms.ImageCircle) 15 | * Install into your PCL project and Client projects. 16 | * Build status: ![Build status](https://jamesmontemagno.visualstudio.com/_apis/public/build/definitions/6b79a378-ddd6-4e31-98ac-a12fcd68644c/16/badge) 17 | 18 | 19 | In your iOS, Android, and Windows projects call: 20 | 21 | ```csharp 22 | Xamarin.Forms.Init(); //platform specific init 23 | ImageCircleRenderer.Init(); 24 | ``` 25 | 26 | You must do this AFTER you call `Xamarin.Forms.Init();` 27 | 28 | **Platform Support** 29 | 30 | |Platform|Version| 31 | | ------------------- | :------------------: | 32 | |Xamarin.iOS|iOS 7+| 33 | |Xamarin.Android|API 14+| 34 | |Windows 10 UWP|10+| 35 | 36 | #### Usage 37 | Instead of using an Image simply use a CircleImage instead! 38 | 39 | You **MUST** set the width & height requests to the same value and you will want to use `Aspect.AspectFill` for the value of the `Aspect` property. Here is a sample: 40 | 41 | ```csharp 42 | new CircleImage 43 | { 44 | BorderColor = Color.White, 45 | BorderThickness = 3, 46 | HeightRequest = 150, 47 | WidthRequest = 150, 48 | Aspect = Aspect.AspectFill, 49 | HorizontalOptions = LayoutOptions.Center, 50 | Source = UriImageSource.FromUri(new Uri("http://upload.wikimedia.org/wikipedia/commons/5/55/Tamarin_portrait.JPG")) 51 | } 52 | ``` 53 | 54 | **XAML:** 55 | 56 | First add the xmlns namespace: 57 | ```xml 58 | xmlns:controls="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin" 59 | ``` 60 | 61 | Then add the xaml: 62 | 63 | ```xml 64 | 65 | 66 | 67 | 55 68 | 75 69 | 70 | 71 | 72 | 73 | 55 74 | 75 75 | 76 | 77 | 78 | ``` 79 | 80 | **Bindable Properties** 81 | 82 | You are able to set the ```BorderColor``` to a Forms.Color to display a border around your image and also ```BorderThickness``` for how thick you want it. 83 | 84 | You can also set ```FillColor``` to the Forms.Color to fill the circle. DO NOT set ```BackgroundColor``` as that will be the square the entire image takes up. 85 | 86 | These are supported in iOS, Android, WinRT, and UWP (not on Windows Phone 8 Silverlight). 87 | 88 | ### Final Builds 89 | For linking you may need to add: 90 | 91 | #### Android: 92 | ``` 93 | ImageCircle.Forms.Plugin; 94 | ``` 95 | 96 | #### iOS: 97 | ``` 98 | --linkskip=ImageCircle.Forms.Plugin 99 | ``` 100 | 101 | #### UWP: 102 | Be sure to read through the [troubleshooting for UWP with .NET Native](https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/#Troubleshooting) for your final package. You should add the package to the Init call of Xamarin.Forms such as: 103 | 104 | ```csharp 105 | var rendererAssemblies = new[] 106 | { 107 | typeof(ImageCircleRenderer).GetTypeInfo().Assembly 108 | }; 109 | Xamarin.Forms.Forms.Init(e, rendererAssemblies); 110 | 111 | ``` 112 | 113 | 114 | #### License 115 | Licensed under MIT, see license file 116 | 117 | ### Want To Support This Project? 118 | All I have ever asked is to be active by submitting bugs, features, and sending those pull requests down! Want to go further? Make sure to subscribe to my weekly development podcast [Merge Conflict](http://mergeconflict.fm), where I talk all about awesome Xamarin goodies and you can optionally support the show by becoming a [supporter on Patreon](https://www.patreon.com/mergeconflictfm). 119 | -------------------------------------------------------------------------------- /art/art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/art/art.png -------------------------------------------------------------------------------- /src/ImageCircle.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26730.15 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{49C6E954-C9FF-429A-A011-E647B388FA12}" 7 | ProjectSection(SolutionItems) = preProject 8 | ..\.editorconfig = ..\.editorconfig 9 | ..\CHANGELOG.md = ..\CHANGELOG.md 10 | ..\README.md = ..\README.md 11 | EndProjectSection 12 | EndProject 13 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageCircle.Forms.Plugin", "ImageCircle\ImageCircle.Forms.Plugin.csproj", "{1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}" 14 | EndProject 15 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{28F410BB-635A-4607-B82A-11DFB2FA2206}" 16 | EndProject 17 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "TestAppsCircles", "TestAppsCircles\TestAppsCircles.shproj", "{FD4E1F85-421F-4C06-9752-4FADED914F17}" 18 | EndProject 19 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAppsCircles.Droid", "TestAppsCircles.Droid\TestAppsCircles.Droid.csproj", "{239BA275-B4A4-46C8-B87A-BF5975F88EFD}" 20 | EndProject 21 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAppsCircles.iOS", "TestAppsCircles.iOS\TestAppsCircles.iOS.csproj", "{61C3066C-0237-4606-8434-F5626ACAF29E}" 22 | EndProject 23 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAppsCircles.UWP", "TestAppsCircles.UWP\TestAppsCircles.UWP.csproj", "{2E67D1A4-B517-4D89-9F49-6E3D048CD781}" 24 | EndProject 25 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAppsCircles.Mac", "TestAppCircles.Mac\TestAppsCircles.Mac.csproj", "{ADDF933D-E425-4F54-BDA7-16F7BD5CB471}" 26 | EndProject 27 | Global 28 | GlobalSection(SharedMSBuildProjectFiles) = preSolution 29 | TestAppsCircles\TestAppsCircles.projitems*{239ba275-b4a4-46c8-b87a-bf5975f88efd}*SharedItemsImports = 4 30 | TestAppsCircles\TestAppsCircles.projitems*{2e67d1a4-b517-4d89-9f49-6e3d048cd781}*SharedItemsImports = 4 31 | TestAppsCircles\TestAppsCircles.projitems*{61c3066c-0237-4606-8434-f5626acaf29e}*SharedItemsImports = 4 32 | TestAppsCircles\TestAppsCircles.projitems*{addf933d-e425-4f54-bda7-16f7bd5cb471}*SharedItemsImports = 4 33 | TestAppsCircles\TestAppsCircles.projitems*{fd4e1f85-421f-4c06-9752-4faded914f17}*SharedItemsImports = 13 34 | EndGlobalSection 35 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 36 | Ad-Hoc|Any CPU = Ad-Hoc|Any CPU 37 | Ad-Hoc|ARM = Ad-Hoc|ARM 38 | Ad-Hoc|iPhone = Ad-Hoc|iPhone 39 | Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator 40 | Ad-Hoc|x64 = Ad-Hoc|x64 41 | Ad-Hoc|x86 = Ad-Hoc|x86 42 | AppStore|Any CPU = AppStore|Any CPU 43 | AppStore|ARM = AppStore|ARM 44 | AppStore|iPhone = AppStore|iPhone 45 | AppStore|iPhoneSimulator = AppStore|iPhoneSimulator 46 | AppStore|x64 = AppStore|x64 47 | AppStore|x86 = AppStore|x86 48 | Debug|Any CPU = Debug|Any CPU 49 | Debug|ARM = Debug|ARM 50 | Debug|iPhone = Debug|iPhone 51 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 52 | Debug|x64 = Debug|x64 53 | Debug|x86 = Debug|x86 54 | Release|Any CPU = Release|Any CPU 55 | Release|ARM = Release|ARM 56 | Release|iPhone = Release|iPhone 57 | Release|iPhoneSimulator = Release|iPhoneSimulator 58 | Release|x64 = Release|x64 59 | Release|x86 = Release|x86 60 | EndGlobalSection 61 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 62 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU 63 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU 64 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU 65 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU 66 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU 67 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU 68 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU 69 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU 70 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU 71 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|x64.Build.0 = Debug|Any CPU 72 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU 73 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Ad-Hoc|x86.Build.0 = Debug|Any CPU 74 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU 75 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|Any CPU.Build.0 = Debug|Any CPU 76 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|ARM.ActiveCfg = Debug|Any CPU 77 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|ARM.Build.0 = Debug|Any CPU 78 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU 79 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|iPhone.Build.0 = Debug|Any CPU 80 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU 81 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU 82 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|x64.ActiveCfg = Debug|Any CPU 83 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|x64.Build.0 = Debug|Any CPU 84 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|x86.ActiveCfg = Debug|Any CPU 85 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.AppStore|x86.Build.0 = Debug|Any CPU 86 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 87 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|Any CPU.Build.0 = Debug|Any CPU 88 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|ARM.ActiveCfg = Debug|Any CPU 89 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|ARM.Build.0 = Debug|Any CPU 90 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|iPhone.ActiveCfg = Debug|Any CPU 91 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|iPhone.Build.0 = Debug|Any CPU 92 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 93 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 94 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|x64.ActiveCfg = Debug|Any CPU 95 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|x64.Build.0 = Debug|Any CPU 96 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|x86.ActiveCfg = Debug|Any CPU 97 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Debug|x86.Build.0 = Debug|Any CPU 98 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|Any CPU.ActiveCfg = Release|Any CPU 99 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|Any CPU.Build.0 = Release|Any CPU 100 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|ARM.ActiveCfg = Release|Any CPU 101 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|ARM.Build.0 = Release|Any CPU 102 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|iPhone.ActiveCfg = Release|Any CPU 103 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|iPhone.Build.0 = Release|Any CPU 104 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 105 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 106 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|x64.ActiveCfg = Release|Any CPU 107 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|x64.Build.0 = Release|Any CPU 108 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|x86.ActiveCfg = Release|Any CPU 109 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4}.Release|x86.Build.0 = Release|Any CPU 110 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU 111 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU 112 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU 113 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU 114 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|ARM.Build.0 = Release|Any CPU 115 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU 116 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU 117 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU 118 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU 119 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU 120 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU 121 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU 122 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU 123 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x64.Build.0 = Release|Any CPU 124 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU 125 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU 126 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x86.Build.0 = Release|Any CPU 127 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU 128 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|Any CPU.ActiveCfg = Release|Any CPU 129 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|Any CPU.Build.0 = Release|Any CPU 130 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|Any CPU.Deploy.0 = Release|Any CPU 131 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|ARM.ActiveCfg = Release|Any CPU 132 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|ARM.Build.0 = Release|Any CPU 133 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|ARM.Deploy.0 = Release|Any CPU 134 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhone.ActiveCfg = Release|Any CPU 135 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhone.Build.0 = Release|Any CPU 136 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhone.Deploy.0 = Release|Any CPU 137 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU 138 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU 139 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU 140 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x64.ActiveCfg = Release|Any CPU 141 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x64.Build.0 = Release|Any CPU 142 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x64.Deploy.0 = Release|Any CPU 143 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x86.ActiveCfg = Release|Any CPU 144 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x86.Build.0 = Release|Any CPU 145 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.AppStore|x86.Deploy.0 = Release|Any CPU 146 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 147 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|Any CPU.Build.0 = Debug|Any CPU 148 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU 149 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|ARM.ActiveCfg = Debug|Any CPU 150 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|ARM.Build.0 = Debug|Any CPU 151 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|ARM.Deploy.0 = Debug|Any CPU 152 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhone.ActiveCfg = Debug|Any CPU 153 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhone.Build.0 = Debug|Any CPU 154 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhone.Deploy.0 = Debug|Any CPU 155 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 156 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 157 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU 158 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x64.ActiveCfg = Debug|Any CPU 159 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x64.Build.0 = Debug|Any CPU 160 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x64.Deploy.0 = Debug|Any CPU 161 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x86.ActiveCfg = Debug|Any CPU 162 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x86.Build.0 = Debug|Any CPU 163 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Debug|x86.Deploy.0 = Debug|Any CPU 164 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|Any CPU.ActiveCfg = Release|Any CPU 165 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|Any CPU.Build.0 = Release|Any CPU 166 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|Any CPU.Deploy.0 = Release|Any CPU 167 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|ARM.ActiveCfg = Release|Any CPU 168 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|ARM.Build.0 = Release|Any CPU 169 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|ARM.Deploy.0 = Release|Any CPU 170 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhone.ActiveCfg = Release|Any CPU 171 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhone.Build.0 = Release|Any CPU 172 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhone.Deploy.0 = Release|Any CPU 173 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 174 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 175 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU 176 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x64.ActiveCfg = Release|Any CPU 177 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x64.Build.0 = Release|Any CPU 178 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x64.Deploy.0 = Release|Any CPU 179 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x86.ActiveCfg = Release|Any CPU 180 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x86.Build.0 = Release|Any CPU 181 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD}.Release|x86.Deploy.0 = Release|Any CPU 182 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone 183 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone 184 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone 185 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone 186 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator 187 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator 188 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone 189 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone 190 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone 191 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|ARM.ActiveCfg = AppStore|iPhone 192 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|iPhone.ActiveCfg = AppStore|iPhone 193 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|iPhone.Build.0 = AppStore|iPhone 194 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator 195 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator 196 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|x64.ActiveCfg = AppStore|iPhone 197 | {61C3066C-0237-4606-8434-F5626ACAF29E}.AppStore|x86.ActiveCfg = AppStore|iPhone 198 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|Any CPU.ActiveCfg = Debug|iPhone 199 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|ARM.ActiveCfg = Debug|iPhone 200 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|iPhone.ActiveCfg = Debug|iPhone 201 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|iPhone.Build.0 = Debug|iPhone 202 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 203 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 204 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|x64.ActiveCfg = Debug|iPhone 205 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Debug|x86.ActiveCfg = Debug|iPhone 206 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|Any CPU.ActiveCfg = Release|iPhone 207 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|ARM.ActiveCfg = Release|iPhone 208 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|iPhone.ActiveCfg = Release|iPhone 209 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|iPhone.Build.0 = Release|iPhone 210 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 211 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 212 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|x64.ActiveCfg = Release|iPhone 213 | {61C3066C-0237-4606-8434-F5626ACAF29E}.Release|x86.ActiveCfg = Release|iPhone 214 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64 215 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|Any CPU.Build.0 = Release|x64 216 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64 217 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|ARM.ActiveCfg = Release|ARM 218 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|ARM.Build.0 = Release|ARM 219 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|ARM.Deploy.0 = Release|ARM 220 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhone.ActiveCfg = Release|x64 221 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhone.Build.0 = Release|x64 222 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhone.Deploy.0 = Release|x64 223 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64 224 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64 225 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64 226 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x64.ActiveCfg = Release|x64 227 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x64.Build.0 = Release|x64 228 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x64.Deploy.0 = Release|x64 229 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x86.ActiveCfg = Release|x86 230 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x86.Build.0 = Release|x86 231 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Ad-Hoc|x86.Deploy.0 = Release|x86 232 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|Any CPU.ActiveCfg = Release|x64 233 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|Any CPU.Build.0 = Release|x64 234 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|Any CPU.Deploy.0 = Release|x64 235 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|ARM.ActiveCfg = Release|ARM 236 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|ARM.Build.0 = Release|ARM 237 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|ARM.Deploy.0 = Release|ARM 238 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhone.ActiveCfg = Release|x64 239 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhone.Build.0 = Release|x64 240 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhone.Deploy.0 = Release|x64 241 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64 242 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhoneSimulator.Build.0 = Release|x64 243 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64 244 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x64.ActiveCfg = Release|x64 245 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x64.Build.0 = Release|x64 246 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x64.Deploy.0 = Release|x64 247 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x86.ActiveCfg = Release|x86 248 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x86.Build.0 = Release|x86 249 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.AppStore|x86.Deploy.0 = Release|x86 250 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|Any CPU.ActiveCfg = Debug|x86 251 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|ARM.ActiveCfg = Debug|ARM 252 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|ARM.Build.0 = Debug|ARM 253 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|ARM.Deploy.0 = Debug|ARM 254 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|iPhone.ActiveCfg = Debug|x86 255 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86 256 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x64.ActiveCfg = Debug|x64 257 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x64.Build.0 = Debug|x64 258 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x64.Deploy.0 = Debug|x64 259 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x86.ActiveCfg = Debug|x86 260 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x86.Build.0 = Debug|x86 261 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Debug|x86.Deploy.0 = Debug|x86 262 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|Any CPU.ActiveCfg = Release|x86 263 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|ARM.ActiveCfg = Release|ARM 264 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|ARM.Build.0 = Release|ARM 265 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|ARM.Deploy.0 = Release|ARM 266 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|iPhone.ActiveCfg = Release|x86 267 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|iPhoneSimulator.ActiveCfg = Release|x86 268 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x64.ActiveCfg = Release|x64 269 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x64.Build.0 = Release|x64 270 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x64.Deploy.0 = Release|x64 271 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x86.ActiveCfg = Release|x86 272 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x86.Build.0 = Release|x86 273 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781}.Release|x86.Deploy.0 = Release|x86 274 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|Any CPU.ActiveCfg = Debug|iPhone 275 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|Any CPU.Build.0 = Debug|iPhone 276 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|ARM.ActiveCfg = Debug|iPhone 277 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|ARM.Build.0 = Debug|iPhone 278 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|iPhone.ActiveCfg = Debug|iPhone 279 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|iPhone.Build.0 = Debug|iPhone 280 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|iPhone 281 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|iPhone 282 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|x64.ActiveCfg = Debug|iPhone 283 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|x64.Build.0 = Debug|iPhone 284 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|x86.ActiveCfg = Debug|iPhone 285 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Ad-Hoc|x86.Build.0 = Debug|iPhone 286 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|Any CPU.ActiveCfg = Debug|iPhone 287 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|Any CPU.Build.0 = Debug|iPhone 288 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|ARM.ActiveCfg = Debug|iPhone 289 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|ARM.Build.0 = Debug|iPhone 290 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|iPhone.ActiveCfg = Debug|iPhone 291 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|iPhone.Build.0 = Debug|iPhone 292 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|iPhoneSimulator.ActiveCfg = Debug|iPhone 293 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|iPhoneSimulator.Build.0 = Debug|iPhone 294 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|x64.ActiveCfg = Debug|iPhone 295 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|x64.Build.0 = Debug|iPhone 296 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|x86.ActiveCfg = Debug|iPhone 297 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.AppStore|x86.Build.0 = Debug|iPhone 298 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|Any CPU.ActiveCfg = Debug|iPhone 299 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|Any CPU.Build.0 = Debug|iPhone 300 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|ARM.ActiveCfg = Debug|iPhone 301 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|ARM.Build.0 = Debug|iPhone 302 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|iPhone.ActiveCfg = Debug|iPhone 303 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|iPhone.Build.0 = Debug|iPhone 304 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhone 305 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|iPhoneSimulator.Build.0 = Debug|iPhone 306 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|x64.ActiveCfg = Debug|iPhone 307 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|x64.Build.0 = Debug|iPhone 308 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|x86.ActiveCfg = Debug|iPhone 309 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Debug|x86.Build.0 = Debug|iPhone 310 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|Any CPU.ActiveCfg = Release|iPhone 311 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|Any CPU.Build.0 = Release|iPhone 312 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|ARM.ActiveCfg = Release|iPhone 313 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|ARM.Build.0 = Release|iPhone 314 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|iPhone.ActiveCfg = Release|iPhone 315 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|iPhone.Build.0 = Release|iPhone 316 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|iPhoneSimulator.ActiveCfg = Release|iPhone 317 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|iPhoneSimulator.Build.0 = Release|iPhone 318 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|x64.ActiveCfg = Release|iPhone 319 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|x64.Build.0 = Release|iPhone 320 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|x86.ActiveCfg = Release|iPhone 321 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471}.Release|x86.Build.0 = Release|iPhone 322 | EndGlobalSection 323 | GlobalSection(SolutionProperties) = preSolution 324 | HideSolutionNode = FALSE 325 | EndGlobalSection 326 | GlobalSection(NestedProjects) = preSolution 327 | {FD4E1F85-421F-4C06-9752-4FADED914F17} = {28F410BB-635A-4607-B82A-11DFB2FA2206} 328 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD} = {28F410BB-635A-4607-B82A-11DFB2FA2206} 329 | {61C3066C-0237-4606-8434-F5626ACAF29E} = {28F410BB-635A-4607-B82A-11DFB2FA2206} 330 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781} = {28F410BB-635A-4607-B82A-11DFB2FA2206} 331 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471} = {28F410BB-635A-4607-B82A-11DFB2FA2206} 332 | EndGlobalSection 333 | GlobalSection(ExtensibilityGlobals) = postSolution 334 | SolutionGuid = {94BD0FCA-480F-435F-93B4-174C90C27419} 335 | EndGlobalSection 336 | EndGlobal 337 | -------------------------------------------------------------------------------- /src/ImageCircle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/ImageCircle.zip -------------------------------------------------------------------------------- /src/ImageCircle/CircleImage.shared.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using Xamarin.Forms; 4 | 5 | namespace ImageCircle.Forms.Plugin.Abstractions 6 | { 7 | /// 8 | /// ImageCircle Interface 9 | /// 10 | [DesignTimeVisible(true)] 11 | public class CircleImage : Image 12 | { 13 | /// 14 | /// Thickness property of border 15 | /// 16 | public static readonly BindableProperty BorderThicknessProperty = 17 | BindableProperty.Create(propertyName: nameof(BorderThickness), 18 | returnType: typeof(float), 19 | declaringType: typeof(CircleImage), 20 | defaultValue: 0F); 21 | 22 | /// 23 | /// Border thickness of circle image 24 | /// 25 | public float BorderThickness 26 | { 27 | get { return (float)GetValue(BorderThicknessProperty); } 28 | set { SetValue(BorderThicknessProperty, value); } 29 | } 30 | 31 | /// 32 | /// Color property of border 33 | /// 34 | public static readonly BindableProperty BorderColorProperty = 35 | BindableProperty.Create(propertyName: nameof(BorderColor), 36 | returnType: typeof(Color), 37 | declaringType: typeof(CircleImage), 38 | defaultValue: Color.White); 39 | 40 | 41 | /// 42 | /// Border Color of circle image 43 | /// 44 | public Color BorderColor 45 | { 46 | get { return (Color)GetValue(BorderColorProperty); } 47 | set { SetValue(BorderColorProperty, value); } 48 | } 49 | 50 | /// 51 | /// Color property of fill 52 | /// 53 | public static readonly BindableProperty FillColorProperty = 54 | BindableProperty.Create(propertyName: nameof(FillColor), 55 | returnType: typeof(Color), 56 | declaringType: typeof(CircleImage), 57 | defaultValue: Color.Transparent); 58 | 59 | /// 60 | /// Fill color of circle image 61 | /// 62 | public Color FillColor 63 | { 64 | get { return (Color)GetValue(FillColorProperty); } 65 | set { SetValue(FillColorProperty, value); } 66 | } 67 | 68 | } 69 | } -------------------------------------------------------------------------------- /src/ImageCircle/ImageCircle.Forms.Plugin.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netstandard2.0;MonoAndroid71;MonoAndroid80;MonoAndroid81;Xamarin.iOS10;uap10.0.16299;Xamarin.Mac20 5 | ImageCircle.Forms.Plugin 6 | ImageCircle.Forms.Plugin 7 | $(AssemblyName) ($(TargetFramework)) 8 | 1.0.0.0 9 | 1.0.0.0 10 | 1.0.0.0 11 | James Montemagno 12 | Xam.Plugins.Forms.ImageCircle 13 | true 14 | http://www.refractored.com/images/circle_image_icon.png 15 | https://github.com/jamesmontemagno/ImageCirclePlugin/blob/master/LICENSE 16 | JamesMontemagno 17 | https://github.com/jamesmontemagno/ImageCirclePlugin 18 | Use a Circle Image in your Xamarin.Forms projects! Ensure you call ImageCircleRenderer.Init() on each platform! 19 | xamarin, pcl, xam.pcl, uwp, uwa, windows phone, winphone, wp8, android, xamarin.forms, ios 20 | Image Circle Control Plugin for Xamarin.Forms 21 | 22 | Custom control for your Xamarin.Forms project ot turn your images into elegant circle images. 23 | Customizable border thickness and color. 24 | Ensure you call ImageCircleRenderer.Init() on each platform! 25 | Built against: 3.4.0.1009999 26 | 27 | Copyright 2018 28 | https://github.com/jamesmontemagno/ImageCirclePlugin 29 | See: https://github.com/jamesmontemagno/ImageCirclePlugin 30 | 31 | en 32 | default 33 | false 34 | 35 | 36 | true 37 | 38 | full 39 | 40 | $(DefineConstants); 41 | 42 | true 43 | 44 | 45 | full 46 | true 47 | 48 | 49 | pdbonly 50 | true 51 | 52 | 53 | pdbonly 54 | 55 | true 56 | 57 | true 58 | 59 | $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb 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 | -------------------------------------------------------------------------------- /src/ImageCircle/Renderer.android.cs: -------------------------------------------------------------------------------- 1 | using ImageCircle.Forms.Plugin.Abstractions; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.Android; 6 | using Android.Graphics; 7 | using ImageCircle.Forms.Plugin.Droid; 8 | using System; 9 | using System.ComponentModel; 10 | using Color = Xamarin.Forms.Color; 11 | using Android.Content; 12 | 13 | [assembly: ExportRenderer(typeof(CircleImage), typeof(ImageCircleRenderer))] 14 | namespace ImageCircle.Forms.Plugin.Droid 15 | { 16 | /// 17 | /// ImageCircle Implementation 18 | /// 19 | [Preserve(AllMembers = true)] 20 | public class ImageCircleRenderer : ImageRenderer 21 | { 22 | #pragma warning disable CS0618 // Type or member is obsolete 23 | public ImageCircleRenderer() : base() 24 | #pragma warning restore CS0618 // Type or member is obsolete 25 | { 26 | 27 | } 28 | 29 | public ImageCircleRenderer(Context context) : base(context) 30 | { 31 | 32 | } 33 | #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously 34 | /// 35 | /// Used for registration with dependency service 36 | /// 37 | public async static void Init() 38 | #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously 39 | { 40 | var temp = DateTime.Now; 41 | } 42 | /// 43 | /// 44 | /// 45 | /// 46 | protected override void OnElementChanged(ElementChangedEventArgs e) 47 | { 48 | base.OnElementChanged(e); 49 | 50 | if (e.OldElement == null) 51 | { 52 | //Only enable hardware accelleration on lollipop 53 | if ((int)Android.OS.Build.VERSION.SdkInt < 21) 54 | { 55 | SetLayerType(LayerType.Software, null); 56 | } 57 | 58 | } 59 | } 60 | 61 | protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 62 | { 63 | base.OnElementPropertyChanged(sender, e); 64 | 65 | 66 | if (e.PropertyName == CircleImage.BorderColorProperty.PropertyName || 67 | e.PropertyName == CircleImage.BorderThicknessProperty.PropertyName || 68 | e.PropertyName == CircleImage.FillColorProperty.PropertyName) 69 | { 70 | Invalidate(); 71 | } 72 | } 73 | 74 | 75 | /// 76 | /// 77 | /// 78 | /// 79 | /// 80 | /// 81 | /// 82 | protected override bool DrawChild(Canvas canvas, Android.Views.View child, long drawingTime) 83 | { 84 | try 85 | { 86 | 87 | var radius = (float)Math.Min(Width, Height) / 2f; 88 | 89 | var borderThickness = ((CircleImage)Element).BorderThickness; 90 | 91 | var strokeWidth = 0f; 92 | 93 | if (borderThickness > 0) 94 | { 95 | var logicalDensity = Android.App.Application.Context.Resources.DisplayMetrics.Density; 96 | strokeWidth = (float)Math.Ceiling(borderThickness * logicalDensity + .5f); 97 | } 98 | 99 | radius -= strokeWidth / 2f; 100 | 101 | 102 | 103 | 104 | var path = new Path(); 105 | path.AddCircle(Width / 2.0f, Height / 2.0f, radius, Path.Direction.Ccw); 106 | 107 | 108 | canvas.Save(); 109 | canvas.ClipPath(path); 110 | 111 | 112 | 113 | var paint = new Paint 114 | { 115 | AntiAlias = true 116 | }; 117 | paint.SetStyle(Paint.Style.Fill); 118 | paint.Color = ((CircleImage)Element).FillColor.ToAndroid(); 119 | canvas.DrawPath(path, paint); 120 | paint.Dispose(); 121 | 122 | 123 | var result = base.DrawChild(canvas, child, drawingTime); 124 | 125 | path.Dispose(); 126 | canvas.Restore(); 127 | 128 | path = new Path(); 129 | path.AddCircle(Width / 2f, Height / 2f, radius, Path.Direction.Ccw); 130 | 131 | 132 | if(strokeWidth > 0.0f) 133 | { 134 | paint = new Paint 135 | { 136 | AntiAlias = true, 137 | StrokeWidth = strokeWidth 138 | }; 139 | paint.SetStyle(Paint.Style.Stroke); 140 | paint.Color = ((CircleImage)Element).BorderColor.ToAndroid(); 141 | canvas.DrawPath(path, paint); 142 | paint.Dispose(); 143 | } 144 | 145 | path.Dispose(); 146 | return result; 147 | } 148 | catch (Exception ex) 149 | { 150 | System.Diagnostics.Debug.WriteLine("Unable to create circle image: " + ex); 151 | } 152 | 153 | return base.DrawChild(canvas, child, drawingTime); 154 | } 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /src/ImageCircle/Renderer.ios.cs: -------------------------------------------------------------------------------- 1 | using ImageCircle.Forms.Plugin.Abstractions; 2 | using System; 3 | using Xamarin.Forms; 4 | using ImageCircle.Forms.Plugin.iOS; 5 | using Xamarin.Forms.Platform.iOS; 6 | using System.ComponentModel; 7 | using System.Diagnostics; 8 | using Foundation; 9 | using CoreAnimation; 10 | using CoreGraphics; 11 | using System.Linq; 12 | 13 | [assembly: ExportRenderer(typeof(CircleImage), typeof(ImageCircleRenderer))] 14 | namespace ImageCircle.Forms.Plugin.iOS 15 | { 16 | /// 17 | /// ImageCircle Implementation 18 | /// 19 | [Preserve(AllMembers = true)] 20 | public class ImageCircleRenderer : ImageRenderer 21 | { 22 | #pragma warning disable CS0108 // Member hides inherited member; missing new keyword 23 | #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously 24 | /// 25 | /// Used for registration with dependency service 26 | /// 27 | public async static void Init() 28 | #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously 29 | #pragma warning restore CS0108 // Member hides inherited member; missing new keyword 30 | { 31 | var temp = DateTime.Now; 32 | } 33 | /// 34 | /// 35 | /// 36 | /// 37 | protected override void OnElementChanged(ElementChangedEventArgs e) 38 | { 39 | base.OnElementChanged(e); 40 | if (Element == null) 41 | return; 42 | CreateCircle(); 43 | } 44 | /// 45 | /// 46 | /// 47 | /// 48 | /// 49 | protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 50 | { 51 | base.OnElementPropertyChanged(sender, e); 52 | if (e.PropertyName == VisualElement.HeightProperty.PropertyName || 53 | e.PropertyName == VisualElement.WidthProperty.PropertyName || 54 | e.PropertyName == CircleImage.BorderColorProperty.PropertyName || 55 | e.PropertyName == CircleImage.BorderThicknessProperty.PropertyName || 56 | e.PropertyName == CircleImage.FillColorProperty.PropertyName) 57 | { 58 | CreateCircle(); 59 | } 60 | } 61 | 62 | private void CreateCircle() 63 | { 64 | try 65 | { 66 | var min = Math.Min(Element.Width, Element.Height); 67 | Control.Layer.CornerRadius = (nfloat)(min / 2.0); 68 | Control.Layer.MasksToBounds = false; 69 | Control.BackgroundColor = ((CircleImage)Element).FillColor.ToUIColor(); 70 | Control.ClipsToBounds = true; 71 | 72 | var borderThickness = ((CircleImage)Element).BorderThickness; 73 | 74 | //Remove previously added layers 75 | var tempLayer = Control.Layer.Sublayers? 76 | .Where(p => p.Name == borderName) 77 | .FirstOrDefault(); 78 | tempLayer?.RemoveFromSuperLayer(); 79 | 80 | var externalBorder = new CALayer(); 81 | externalBorder.Name = borderName; 82 | externalBorder.CornerRadius = Control.Layer.CornerRadius; 83 | externalBorder.Frame = new CGRect(-.5, -.5, min + 1, min + 1); 84 | externalBorder.BorderColor = ((CircleImage)Element).BorderColor.ToCGColor(); 85 | externalBorder.BorderWidth = ((CircleImage)Element).BorderThickness; 86 | 87 | Control.Layer.AddSublayer(externalBorder); 88 | } 89 | catch (Exception ex) 90 | { 91 | Debug.WriteLine("Unable to create circle image: " + ex); 92 | } 93 | } 94 | 95 | const string borderName = "borderLayerName"; 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/ImageCircle/Renderer.mac.cs: -------------------------------------------------------------------------------- 1 | using ImageCircle.Forms.Plugin.Abstractions; 2 | using System; 3 | using Xamarin.Forms; 4 | using ImageCircle.Forms.Plugin.Mac; 5 | using Xamarin.Forms.Platform.MacOS; 6 | using System.ComponentModel; 7 | using System.Diagnostics; 8 | using Foundation; 9 | using CoreAnimation; 10 | using CoreGraphics; 11 | using System.Linq; 12 | 13 | [assembly: ExportRenderer(typeof(CircleImage), typeof(ImageCircleRenderer))] 14 | namespace ImageCircle.Forms.Plugin.Mac 15 | { 16 | [Preserve(AllMembers = true)] 17 | public class ImageCircleRenderer : ImageRenderer 18 | { 19 | #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously 20 | /// 21 | /// Used for registration with dependency service 22 | /// 23 | public async static void Init() 24 | #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously 25 | { 26 | var temp = DateTime.Now; 27 | } 28 | 29 | /// 30 | /// 31 | /// 32 | /// E. 33 | protected override void OnElementChanged(ElementChangedEventArgs e) 34 | { 35 | base.OnElementChanged(e); 36 | if (Element == null) 37 | return; 38 | CreateCircle(); 39 | } 40 | 41 | /// 42 | /// 43 | /// 44 | /// 45 | /// 46 | protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) 47 | { 48 | base.OnElementPropertyChanged(sender, e); 49 | if (e.PropertyName == VisualElement.HeightProperty.PropertyName || 50 | e.PropertyName == VisualElement.WidthProperty.PropertyName || 51 | e.PropertyName == CircleImage.BorderColorProperty.PropertyName || 52 | e.PropertyName == CircleImage.BorderThicknessProperty.PropertyName || 53 | e.PropertyName == CircleImage.FillColorProperty.PropertyName) 54 | { 55 | CreateCircle(); 56 | } 57 | } 58 | 59 | void CreateCircle() 60 | { 61 | try 62 | { 63 | var min = Math.Min(Element.Width, Element.Height); 64 | Control.Layer.CornerRadius = (nfloat)(min / 2.0); 65 | Control.Layer.MasksToBounds = true; 66 | Control.Layer.BackgroundColor = ((CircleImage)Element).FillColor.ToCGColor(); 67 | 68 | var borderThickness = ((CircleImage)Element).BorderThickness; 69 | 70 | //Remove previously added layers 71 | var tempLayer = Control.Layer.Sublayers? 72 | .Where(p => p.Name == borderName) 73 | .FirstOrDefault(); 74 | tempLayer?.RemoveFromSuperLayer(); 75 | 76 | var externalBorder = new CALayer(); 77 | externalBorder.Name = borderName; 78 | externalBorder.CornerRadius = Control.Layer.CornerRadius; 79 | externalBorder.Frame = new CGRect(-.5, -.5, min + 1, min + 1); 80 | externalBorder.BorderColor = ((CircleImage)Element).BorderColor.ToCGColor(); 81 | externalBorder.BorderWidth = ((CircleImage)Element).BorderThickness; 82 | 83 | Control.Layer.AddSublayer(externalBorder); 84 | } 85 | catch(Exception ex) 86 | { 87 | Debug.WriteLine($"Unable to create circle image: {ex}"); 88 | } 89 | } 90 | 91 | const string borderName = "borderLayerName"; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/ImageCircle/Renderer.uwp.cs: -------------------------------------------------------------------------------- 1 |  2 | using ImageCircle.Forms.Plugin.UWP; 3 | using Xamarin.Forms.Platform.UWP; 4 | using System; 5 | using System.IO; 6 | using Windows.ApplicationModel; 7 | using Windows.Storage; 8 | using Windows.UI.Xaml.Media; 9 | using Windows.UI.Xaml.Media.Imaging; 10 | using Windows.UI.Xaml.Shapes; 11 | using Xamarin.Forms; 12 | using ImageCircle.Forms.Plugin.Abstractions; 13 | 14 | [assembly: ExportRenderer(typeof(CircleImage), typeof(ImageCircleRenderer))] 15 | namespace ImageCircle.Forms.Plugin.UWP 16 | { 17 | /// 18 | /// ImageCircle Implementation 19 | /// 20 | public class ImageCircleRenderer : ViewRenderer 21 | { 22 | 23 | ImageBrush imageBrush = null; 24 | 25 | #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously 26 | /// 27 | /// Used for registration with dependency service 28 | /// 29 | public async static void Init() 30 | #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously 31 | { 32 | var temp = DateTime.Now; 33 | } 34 | 35 | /// 36 | /// Register circle 37 | /// 38 | /// 39 | protected override void OnElementChanged(ElementChangedEventArgs e) 40 | { 41 | base.OnElementChanged(e); 42 | if (e.OldElement != null || Element == null) 43 | return; 44 | 45 | var ellipse = new Ellipse(); 46 | SetNativeControl(ellipse); 47 | 48 | } 49 | 50 | Xamarin.Forms.ImageSource file = null; 51 | 52 | /// 53 | /// 54 | /// 55 | /// 56 | /// 57 | protected async override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 58 | { 59 | base.OnElementPropertyChanged(sender, e); 60 | 61 | if (Control == null) 62 | return; 63 | 64 | 65 | 66 | var min = Math.Min(Element.Width, Element.Height); 67 | if (min / 2.0f <= 0) 68 | return; 69 | 70 | try 71 | { 72 | 73 | Control.Width = min; 74 | Control.Height = min; 75 | 76 | 77 | 78 | var force = e.PropertyName == VisualElement.XProperty.PropertyName || 79 | e.PropertyName == VisualElement.YProperty.PropertyName || 80 | e.PropertyName == VisualElement.WidthProperty.PropertyName || 81 | e.PropertyName == VisualElement.HeightProperty.PropertyName || 82 | e.PropertyName == VisualElement.ScaleProperty.PropertyName || 83 | e.PropertyName == VisualElement.TranslationXProperty.PropertyName || 84 | e.PropertyName == VisualElement.TranslationYProperty.PropertyName || 85 | e.PropertyName == VisualElement.RotationYProperty.PropertyName || 86 | e.PropertyName == VisualElement.RotationXProperty.PropertyName || 87 | e.PropertyName == VisualElement.RotationProperty.PropertyName || 88 | e.PropertyName == CircleImage.BorderThicknessProperty.PropertyName || 89 | e.PropertyName == CircleImage.BorderColorProperty.PropertyName || 90 | e.PropertyName == CircleImage.FillColorProperty.PropertyName || 91 | e.PropertyName == VisualElement.AnchorXProperty.PropertyName || 92 | e.PropertyName == VisualElement.AnchorYProperty.PropertyName; 93 | 94 | 95 | //already set 96 | if (file == Element.Source && !force) 97 | return; 98 | 99 | // Fill background color 100 | var color = ((CircleImage)Element).FillColor; 101 | Control.Fill = new SolidColorBrush(Windows.UI.Color.FromArgb( 102 | (byte)(color.A * 255), 103 | (byte)(color.R * 255), 104 | (byte)(color.G * 255), 105 | (byte)(color.B * 255))); 106 | 107 | // Fill stroke 108 | color = ((CircleImage)Element).BorderColor; 109 | Control.StrokeThickness = ((CircleImage)Element).BorderThickness; 110 | Control.Stroke = new SolidColorBrush(Windows.UI.Color.FromArgb( 111 | (byte)(color.A * 255), 112 | (byte)(color.R * 255), 113 | (byte)(color.G * 255), 114 | (byte)(color.B * 255))); 115 | 116 | if (file == Element.Source && imageBrush != null) 117 | { 118 | Control.Fill = imageBrush; 119 | return; 120 | } 121 | 122 | BitmapImage bitmapImage = null; 123 | 124 | file = Element.Source; 125 | 126 | // Handle file images 127 | if (file is FileImageSource) 128 | { 129 | var fi = Element.Source as FileImageSource; 130 | 131 | var file = fi.File; 132 | bitmapImage = new BitmapImage(new Uri("ms-appx:///" + file)); 133 | 134 | /*var myFile = System.IO.Path.Combine(Package.Current.InstalledLocation.Path, fi.File); 135 | 136 | var myFolder = await StorageFolder.GetFolderFromPathAsync(System.IO.Path.GetDirectoryName(myFile)); 137 | 138 | using (var s = await myFolder.OpenStreamForReadAsync(System.IO.Path.GetFileName(myFile))) 139 | { 140 | var memStream = new MemoryStream(); 141 | await s.CopyToAsync(memStream); 142 | memStream.Position = 0; 143 | bitmapImage = new BitmapImage(); 144 | bitmapImage.SetSource(memStream.AsRandomAccessStream()); 145 | }*/ 146 | } 147 | else if (file is UriImageSource) 148 | { 149 | bitmapImage = new BitmapImage((Element.Source as UriImageSource).Uri); 150 | } 151 | else if (file is StreamImageSource) 152 | { 153 | var handler = new StreamImageSourceHandler(); 154 | var imageSource = await handler.LoadImageAsync(file); 155 | 156 | if (imageSource != null) 157 | { 158 | Control.Fill = imageBrush = new ImageBrush 159 | { 160 | ImageSource = imageSource, 161 | Stretch = Stretch.UniformToFill, 162 | }; 163 | } 164 | return; 165 | } 166 | 167 | if (bitmapImage != null) 168 | { 169 | Control.Fill = imageBrush = new ImageBrush 170 | { 171 | ImageSource = bitmapImage, 172 | Stretch = Stretch.UniformToFill, 173 | }; 174 | } 175 | 176 | } 177 | catch 178 | { 179 | System.Diagnostics.Debug.WriteLine("Unable to create circle image, falling back to background color."); 180 | } 181 | } 182 | } 183 | } -------------------------------------------------------------------------------- /src/MigrationBackup/12ea6423/Tests/TestAppsCircles.Droid/NuGetUpgradeLog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NuGetMigrationLog 6 |

153 | NuGet Migration Report - Tests\TestAppsCircles.Droid

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
154 | If you run into any problems, have feedback, questions, or concerns, please 155 | file an issue on the NuGet GitHub repository.
156 | Changed files and this report have been backed up here: 157 | C:\GitHub\ImageCirclePlugin\src\MigrationBackup\12ea6423\Tests\TestAppsCircles.Droid

Packages processed

Top-level dependencies:

Package IdVersion
Xamarin.Android.Support.Animated.Vector.Drawable 158 | v25.4.0.2
Xamarin.Android.Support.Compat 159 | v25.4.0.2
Xamarin.Android.Support.Core.UI 160 | v25.4.0.2
Xamarin.Android.Support.Core.Utils 161 | v25.4.0.2
Xamarin.Android.Support.Design 162 | v25.4.0.2
Xamarin.Android.Support.Fragment 163 | v25.4.0.2
Xamarin.Android.Support.Media.Compat 164 | v25.4.0.2
Xamarin.Android.Support.Transition 165 | v25.4.0.2
Xamarin.Android.Support.v4 166 | v25.4.0.2
Xamarin.Android.Support.v7.AppCompat 167 | v25.4.0.2
Xamarin.Android.Support.v7.CardView 168 | v25.4.0.2
Xamarin.Android.Support.v7.MediaRouter 169 | v25.4.0.2
Xamarin.Android.Support.v7.Palette 170 | v25.4.0.2
Xamarin.Android.Support.v7.RecyclerView 171 | v25.4.0.2
Xamarin.Android.Support.Vector.Drawable 172 | v25.4.0.2
Xamarin.Forms 173 | v3.4.0.1009999

Transitive dependencies:

Package IdVersion
Xamarin.Android.Support.Annotations 174 | v25.4.0.2

Package compatibility issues

Description
175 | No issues were found. 176 |
-------------------------------------------------------------------------------- /src/MigrationBackup/12ea6423/Tests/TestAppsCircles.Droid/TestAppsCircles.Droid.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | 8.0.30703 8 | 2.0 9 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD} 10 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 11 | Library 12 | Properties 13 | TestAppsCircles.Droid 14 | TestAppsCircles.Droid 15 | 512 16 | true 17 | Resources\Resource.Designer.cs 18 | Off 19 | Properties\AndroidManifest.xml 20 | false 21 | v7.1 22 | armeabi,armeabi-v7a,x86 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | true 32 | full 33 | false 34 | bin\Debug\ 35 | DEBUG;TRACE 36 | prompt 37 | 4 38 | True 39 | None 40 | 41 | 42 | pdbonly 43 | true 44 | bin\Release\ 45 | TRACE 46 | prompt 47 | 4 48 | False 49 | SdkOnly 50 | 51 | 52 | 53 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\MonoAndroid10\FormsViewGroup.dll 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.dll 63 | 64 | 65 | ..\packages\Xamarin.Android.Support.Annotations.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Annotations.dll 66 | 67 | 68 | ..\packages\Xamarin.Android.Support.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Compat.dll 69 | 70 | 71 | ..\packages\Xamarin.Android.Support.Core.UI.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.UI.dll 72 | 73 | 74 | ..\packages\Xamarin.Android.Support.Core.Utils.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Core.Utils.dll 75 | 76 | 77 | ..\packages\Xamarin.Android.Support.Design.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Design.dll 78 | 79 | 80 | ..\packages\Xamarin.Android.Support.Fragment.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Fragment.dll 81 | 82 | 83 | ..\packages\Xamarin.Android.Support.Media.Compat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Media.Compat.dll 84 | 85 | 86 | ..\packages\Xamarin.Android.Support.Transition.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Transition.dll 87 | 88 | 89 | ..\packages\Xamarin.Android.Support.v4.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v4.dll 90 | 91 | 92 | ..\packages\Xamarin.Android.Support.v7.AppCompat.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.AppCompat.dll 93 | 94 | 95 | ..\packages\Xamarin.Android.Support.v7.CardView.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.CardView.dll 96 | 97 | 98 | ..\packages\Xamarin.Android.Support.v7.MediaRouter.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.MediaRouter.dll 99 | 100 | 101 | ..\packages\Xamarin.Android.Support.v7.Palette.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.Palette.dll 102 | 103 | 104 | ..\packages\Xamarin.Android.Support.v7.RecyclerView.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.v7.RecyclerView.dll 105 | 106 | 107 | ..\packages\Xamarin.Android.Support.Vector.Drawable.25.4.0.2\lib\MonoAndroid70\Xamarin.Android.Support.Vector.Drawable.dll 108 | 109 | 110 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\MonoAndroid10\Xamarin.Forms.Core.dll 111 | 112 | 113 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\MonoAndroid10\Xamarin.Forms.Platform.dll 114 | 115 | 116 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll 117 | 118 | 119 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | {1fab52ad-f3ba-423c-afa1-e21700aa96f4} 142 | ImageCircle.Forms.Plugin 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 192 | -------------------------------------------------------------------------------- /src/MigrationBackup/12ea6423/Tests/TestAppsCircles.Droid/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/MigrationBackup/4a994a6c/Tests/TestAppsCircles.iOS/NuGetUpgradeLog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NuGetMigrationLog 6 |

153 | NuGet Migration Report - Tests\TestAppsCircles.iOS

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
154 | If you run into any problems, have feedback, questions, or concerns, please 155 | file an issue on the NuGet GitHub repository.
156 | Changed files and this report have been backed up here: 157 | C:\GitHub\ImageCirclePlugin\src\MigrationBackup\4a994a6c\Tests\TestAppsCircles.iOS

Packages processed

Top-level dependencies:

Package IdVersion
Xamarin.Forms 158 | v3.4.0.1009999

Transitive dependencies:

Package IdVersion
159 | No transitive dependencies found. 160 |

Package compatibility issues

Description
161 | No issues were found. 162 |
-------------------------------------------------------------------------------- /src/MigrationBackup/4a994a6c/Tests/TestAppsCircles.iOS/TestAppsCircles.iOS.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | iPhoneSimulator 7 | 8.0.30703 8 | 2.0 9 | {61C3066C-0237-4606-8434-F5626ACAF29E} 10 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 11 | Exe 12 | TestAppsCircles.iOS 13 | Resources 14 | TestAppsCirclesiOS 15 | 16 | 17 | 18 | 19 | true 20 | full 21 | false 22 | bin\iPhoneSimulator\Debug 23 | DEBUG 24 | prompt 25 | 4 26 | false 27 | i386, x86_64 28 | None 29 | true 30 | 31 | 32 | none 33 | true 34 | bin\iPhoneSimulator\Release 35 | prompt 36 | 4 37 | None 38 | i386, x86_64 39 | false 40 | 41 | 42 | true 43 | full 44 | false 45 | bin\iPhone\Debug 46 | DEBUG 47 | prompt 48 | 4 49 | false 50 | ARMv7, ARM64 51 | iPhone Developer 52 | true 53 | Entitlements.plist 54 | 55 | 56 | none 57 | true 58 | bin\iPhone\Release 59 | prompt 60 | 4 61 | ARMv7, ARM64 62 | false 63 | iPhone Developer 64 | Entitlements.plist 65 | 66 | 67 | none 68 | True 69 | bin\iPhone\Ad-Hoc 70 | prompt 71 | 4 72 | False 73 | ARMv7, ARM64 74 | True 75 | Automatic:AdHoc 76 | iPhone Distribution 77 | Entitlements.plist 78 | 79 | 80 | none 81 | True 82 | bin\iPhone\AppStore 83 | prompt 84 | 4 85 | False 86 | ARMv7, ARM64 87 | Automatic:AppStore 88 | iPhone Distribution 89 | Entitlements.plist 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll 125 | 126 | 127 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll 128 | 129 | 130 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll 131 | 132 | 133 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll 134 | 135 | 136 | 137 | 138 | 139 | {1fab52ad-f3ba-423c-afa1-e21700aa96f4} 140 | ImageCircle.Forms.Plugin 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /src/MigrationBackup/4a994a6c/Tests/TestAppsCircles.iOS/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using AppKit; 2 | using Foundation; 3 | 4 | using Xamarin.Forms; 5 | using Xamarin.Forms.Platform.MacOS; 6 | 7 | namespace TestAppsCircles.Mac 8 | { 9 | [Register("AppDelegate")] 10 | public class AppDelegate : FormsApplicationDelegate 11 | { 12 | NSWindow window; 13 | 14 | public AppDelegate() 15 | { 16 | var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled; 17 | 18 | var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768); 19 | window = new NSWindow(rect, style, NSBackingStore.Buffered, false); 20 | window.Title = "TestAppsCircles"; // choose your own Title here 21 | window.TitleVisibility = NSWindowTitleVisibility.Hidden; 22 | } 23 | 24 | public override NSWindow MainWindow 25 | { 26 | get { return window; } 27 | } 28 | 29 | public override void DidFinishLaunching(NSNotification notification) 30 | { 31 | Forms.Init(); 32 | LoadApplication(new App()); 33 | ImageCircle.Forms.Plugin.Mac.ImageCircleRenderer.Init(); 34 | base.DidFinishLaunching(notification); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-128@2x.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-16@2x.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-32@2x.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "filename": "AppIcon-16.png", 5 | "size": "16x16", 6 | "scale": "1x", 7 | "idiom": "mac" 8 | }, 9 | { 10 | "filename": "AppIcon-16@2x.png", 11 | "size": "16x16", 12 | "scale": "2x", 13 | "idiom": "mac" 14 | }, 15 | { 16 | "filename": "AppIcon-32.png", 17 | "size": "32x32", 18 | "scale": "1x", 19 | "idiom": "mac" 20 | }, 21 | { 22 | "filename": "AppIcon-32@2x.png", 23 | "size": "32x32", 24 | "scale": "2x", 25 | "idiom": "mac" 26 | }, 27 | { 28 | "filename": "AppIcon-128.png", 29 | "size": "128x128", 30 | "scale": "1x", 31 | "idiom": "mac" 32 | }, 33 | { 34 | "filename": "AppIcon-128@2x.png", 35 | "size": "128x128", 36 | "scale": "2x", 37 | "idiom": "mac" 38 | }, 39 | { 40 | "filename": "AppIcon-256.png", 41 | "size": "256x256", 42 | "scale": "1x", 43 | "idiom": "mac" 44 | }, 45 | { 46 | "filename": "AppIcon-256@2x.png", 47 | "size": "256x256", 48 | "scale": "2x", 49 | "idiom": "mac" 50 | }, 51 | { 52 | "filename": "AppIcon-512.png", 53 | "size": "512x512", 54 | "scale": "1x", 55 | "idiom": "mac" 56 | }, 57 | { 58 | "filename": "AppIcon-512@2x.png", 59 | "size": "512x512", 60 | "scale": "2x", 61 | "idiom": "mac" 62 | } 63 | ], 64 | "info": { 65 | "version": 1, 66 | "author": "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleName 6 | TestAppsCircles 7 | CFBundleIdentifier 8 | com.yourcompany.TestAppsCircles 9 | CFBundleShortVersionString 10 | 1.0 11 | CFBundleVersion 12 | 1 13 | LSMinimumSystemVersion 14 | 10.10 15 | CFBundleDevelopmentRegion 16 | en 17 | CFBundleInfoDictionaryVersion 18 | 6.0 19 | CFBundlePackageType 20 | APPL 21 | CFBundleSignature 22 | ???? 23 | NSHumanReadableCopyright 24 | 25 | NSPrincipalClass 26 | NSApplication 27 | NSMainStoryboardFile 28 | Main 29 | XSAppIconAssets 30 | Assets.xcassets/AppIcon.appiconset 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Main.cs: -------------------------------------------------------------------------------- 1 | using AppKit; 2 | 3 | namespace TestAppsCircles.Mac 4 | { 5 | static class MainClass 6 | { 7 | static void Main(string[] args) 8 | { 9 | NSApplication.Init(); 10 | NSApplication.SharedApplication.Delegate = new AppDelegate(); 11 | NSApplication.Main(args); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/Main.storyboard: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/TestAppsCircles.Mac.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | Debug 7 | iPhone 8 | {ADDF933D-E425-4F54-BDA7-16F7BD5CB471} 9 | {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Exe 11 | TestAppCircles.Mac 12 | TestAppCircles 13 | v2.0 14 | Xamarin.Mac 15 | Resources 16 | 17 | 18 | 19 | 20 | true 21 | full 22 | false 23 | bin\Debug 24 | DEBUG; 25 | prompt 26 | 4 27 | false 28 | Mac Developer 29 | false 30 | false 31 | false 32 | true 33 | true 34 | HttpClientHandler 35 | None 36 | x86_64 37 | 3rd Party Mac Developer Installer 38 | None 39 | 40 | 41 | pdbonly 42 | true 43 | bin\Release 44 | 45 | 46 | prompt 47 | 4 48 | false 49 | true 50 | false 51 | true 52 | true 53 | true 54 | SdkOnly 55 | HttpClientHandler 56 | x86_64 57 | None 58 | 59 | 60 | 61 | 62 | 63 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.Mac\Xamarin.Forms.Core.dll 64 | 65 | 66 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll 67 | 68 | 69 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll 70 | 71 | 72 | ..\packages\Xamarin.Forms.3.4.0.1009999\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll 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 | 98 | 99 | 100 | {1FAB52AD-F3BA-423C-AFA1-E21700AA96F4} 101 | ImageCircle.Forms.Plugin 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 111 | 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /src/TestAppCircles.Mac/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/TestAppsCircles.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 you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Android.App; 4 | using Android.Content.PM; 5 | using Android.Runtime; 6 | using Android.Views; 7 | using Android.Widget; 8 | using Android.OS; 9 | using ImageCircle.Forms.Plugin.Droid; 10 | 11 | namespace TestAppsCircles.Droid 12 | { 13 | [Activity (Label = "TestAppsCircles", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 14 | public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity 15 | { 16 | protected override void OnCreate (Bundle bundle) 17 | { 18 | base.OnCreate (bundle); 19 | 20 | global::Xamarin.Forms.Forms.Init (this, bundle); 21 | 22 | 23 | ImageCircleRenderer.Init(); 24 | LoadApplication (new TestAppsCircles.App ()); 25 | } 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("TestAppsCircles.Droid")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("TestAppsCircles.Droid")] 14 | [assembly: AssemblyCopyright("Copyright © 2014")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | 32 | // Add some common permissions, these can be removed if not needed 33 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 34 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 35 | -------------------------------------------------------------------------------- /src/TestAppsCircles.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.xml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable-hdpi/ 12 | icon.png 13 | 14 | drawable-ldpi/ 15 | icon.png 16 | 17 | drawable-mdpi/ 18 | icon.png 19 | 20 | layout/ 21 | main.xml 22 | 23 | values/ 24 | strings.xml 25 | 26 | In order to get the build system to recognize Android resources, set the build action to 27 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 28 | instead operate on resource IDs. When you compile an Android application that uses resources, 29 | the build system will package the resources for distribution and generate a class called 30 | "Resource" that contains the tokens for each one of the resources included. For example, 31 | for the above Resources layout, this is what the Resource class would expose: 32 | 33 | public class Resource { 34 | public class drawable { 35 | public const int icon = 0x123; 36 | } 37 | 38 | public class layout { 39 | public const int main = 0x456; 40 | } 41 | 42 | public class strings { 43 | public const int first_string = 0xabc; 44 | public const int second_string = 0xbcd; 45 | } 46 | } 47 | 48 | You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main 49 | to reference the layout/main.xml file, or Resource.strings.first_string to reference the first 50 | string in the dictionary file values/strings.xml. 51 | -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Resources/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.Droid/Resources/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Resources/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.Droid/Resources/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Resources/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.Droid/Resources/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Resources/drawable/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.Droid/Resources/drawable/check.png -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.Droid/Resources/drawable/icon.png -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/TestAppsCircles.Droid.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD} 9 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Library 11 | Properties 12 | TestAppsCircles.Droid 13 | TestAppsCircles.Droid 14 | 512 15 | true 16 | Resources\Resource.Designer.cs 17 | Off 18 | Properties\AndroidManifest.xml 19 | false 20 | v8.1 21 | armeabi,armeabi-v7a,x86 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | true 31 | full 32 | false 33 | bin\Debug\ 34 | DEBUG;TRACE 35 | prompt 36 | 4 37 | True 38 | None 39 | 40 | 41 | pdbonly 42 | true 43 | bin\Release\ 44 | TRACE 45 | prompt 46 | 4 47 | False 48 | SdkOnly 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 | {1fab52ad-f3ba-423c-afa1-e21700aa96f4} 77 | ImageCircle.Forms.Plugin 78 | 79 | 80 | 81 | 82 | 25.4.0.2 83 | 84 | 85 | 25.4.0.2 86 | 87 | 88 | 25.4.0.2 89 | 90 | 91 | 25.4.0.2 92 | 93 | 94 | 25.4.0.2 95 | 96 | 97 | 25.4.0.2 98 | 99 | 100 | 25.4.0.2 101 | 102 | 103 | 25.4.0.2 104 | 105 | 106 | 25.4.0.2 107 | 108 | 109 | 25.4.0.2 110 | 111 | 112 | 25.4.0.2 113 | 114 | 115 | 25.4.0.2 116 | 117 | 118 | 25.4.0.2 119 | 120 | 121 | 25.4.0.2 122 | 123 | 124 | 25.4.0.2 125 | 126 | 127 | 3.4.0.1009999 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 136 | 137 | 138 | 139 | 146 | -------------------------------------------------------------------------------- /src/TestAppsCircles.Droid/TestAppsCircles.Droid.csproj.bak: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {239BA275-B4A4-46C8-B87A-BF5975F88EFD} 9 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Library 11 | Properties 12 | TestAppsCircles.Droid 13 | TestAppsCircles.Droid 14 | 512 15 | true 16 | Resources\Resource.Designer.cs 17 | Off 18 | Properties\AndroidManifest.xml 19 | true 20 | v6.0 21 | armeabi,armeabi-v7a,x86 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | true 31 | full 32 | false 33 | bin\Debug\ 34 | DEBUG;TRACE 35 | prompt 36 | 4 37 | True 38 | None 39 | 40 | 41 | pdbonly 42 | true 43 | bin\Release\ 44 | TRACE 45 | prompt 46 | 4 47 | False 48 | SdkOnly 49 | 50 | 51 | 52 | ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\FormsViewGroup.dll 53 | True 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll 63 | True 64 | 65 | 66 | ..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll 67 | True 68 | 69 | 70 | ..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll 71 | True 72 | 73 | 74 | ..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll 75 | True 76 | 77 | 78 | ..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll 79 | True 80 | 81 | 82 | ..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll 83 | True 84 | 85 | 86 | ..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll 87 | True 88 | 89 | 90 | ..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll 91 | True 92 | 93 | 94 | ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Core.dll 95 | True 96 | 97 | 98 | ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.dll 99 | True 100 | 101 | 102 | ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll 103 | True 104 | 105 | 106 | ..\..\packages\Xamarin.Forms.2.3.1.114\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll 107 | True 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | {14c534b6-1984-41a9-a384-d3a5508588e3} 129 | ImageCircle.Forms.Plugin.Abstractions 130 | 131 | 132 | {ad2d2db4-e781-4cf1-9b62-3aad264f196d} 133 | ImageCircle.Forms.Plugin.Android 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 142 | 143 | 144 | 145 | 146 | 147 | 154 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/App.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.ApplicationModel; 7 | using Windows.ApplicationModel.Activation; 8 | using Windows.Foundation; 9 | using Windows.Foundation.Collections; 10 | using Windows.UI.Xaml; 11 | using Windows.UI.Xaml.Controls; 12 | using Windows.UI.Xaml.Controls.Primitives; 13 | using Windows.UI.Xaml.Data; 14 | using Windows.UI.Xaml.Input; 15 | using Windows.UI.Xaml.Media; 16 | using Windows.UI.Xaml.Navigation; 17 | 18 | namespace TestAppsCircles.UWP 19 | { 20 | /// 21 | /// Provides application-specific behavior to supplement the default Application class. 22 | /// 23 | sealed partial class App : Application 24 | { 25 | /// 26 | /// Initializes the singleton application object. This is the first line of authored code 27 | /// executed, and as such is the logical equivalent of main() or WinMain(). 28 | /// 29 | public App() 30 | { 31 | this.InitializeComponent(); 32 | this.Suspending += OnSuspending; 33 | } 34 | 35 | /// 36 | /// Invoked when the application is launched normally by the end user. Other entry points 37 | /// will be used such as when the application is launched to open a specific file. 38 | /// 39 | /// Details about the launch request and process. 40 | protected override void OnLaunched(LaunchActivatedEventArgs e) 41 | { 42 | 43 | #if DEBUG 44 | if (System.Diagnostics.Debugger.IsAttached) 45 | { 46 | this.DebugSettings.EnableFrameRateCounter = true; 47 | } 48 | #endif 49 | 50 | Frame rootFrame = Window.Current.Content as Frame; 51 | 52 | // Do not repeat app initialization when the Window already has content, 53 | // just ensure that the window is active 54 | if (rootFrame == null) 55 | { 56 | // Create a Frame to act as the navigation context and navigate to the first page 57 | rootFrame = new Frame(); 58 | 59 | rootFrame.NavigationFailed += OnNavigationFailed; 60 | 61 | 62 | Xamarin.Forms.Forms.Init(e); 63 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 64 | { 65 | //TODO: Load state from previously suspended application 66 | } 67 | 68 | // Place the frame in the current Window 69 | Window.Current.Content = rootFrame; 70 | } 71 | 72 | if (rootFrame.Content == null) 73 | { 74 | // When the navigation stack isn't restored navigate to the first page, 75 | // configuring the new page by passing required information as a navigation 76 | // parameter 77 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 78 | } 79 | // Ensure the current window is active 80 | Window.Current.Activate(); 81 | } 82 | 83 | /// 84 | /// Invoked when Navigation to a certain page fails 85 | /// 86 | /// The Frame which failed navigation 87 | /// Details about the navigation failure 88 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 89 | { 90 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 91 | } 92 | 93 | /// 94 | /// Invoked when application execution is being suspended. Application state is saved 95 | /// without knowing whether the application will be terminated or resumed with the contents 96 | /// of memory still intact. 97 | /// 98 | /// The source of the suspend request. 99 | /// Details about the suspend request. 100 | private void OnSuspending(object sender, SuspendingEventArgs e) 101 | { 102 | var deferral = e.SuspendingOperation.GetDeferral(); 103 | //TODO: Save application state and stop any background activity 104 | deferral.Complete(); 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.Foundation; 7 | using Windows.Foundation.Collections; 8 | using Windows.UI.Xaml; 9 | using Windows.UI.Xaml.Controls; 10 | using Windows.UI.Xaml.Controls.Primitives; 11 | using Windows.UI.Xaml.Data; 12 | using Windows.UI.Xaml.Input; 13 | using Windows.UI.Xaml.Media; 14 | using Windows.UI.Xaml.Navigation; 15 | 16 | // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 17 | 18 | namespace TestAppsCircles.UWP 19 | { 20 | /// 21 | /// An empty page that can be used on its own or navigated to within a Frame. 22 | /// 23 | public sealed partial class MainPage 24 | { 25 | public MainPage() 26 | { 27 | this.InitializeComponent(); 28 | LoadApplication(new TestAppsCircles.App()); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | TestAppsCircles.UWP 18 | Motz 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TestAppsCircles.UWP")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TestAppsCircles.UWP")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/TestAppsCircles.UWP.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | x86 7 | {2E67D1A4-B517-4D89-9F49-6E3D048CD781} 8 | AppContainerExe 9 | Properties 10 | TestAppsCircles.UWP 11 | TestAppsCircles.UWP 12 | en-US 13 | UAP 14 | 10.0.16299.0 15 | 10.0.16299.0 16 | 14 17 | 512 18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 19 | TestAppsCircles.UWP_TemporaryKey.pfx 20 | win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot 21 | 22 | 23 | true 24 | bin\x86\Debug\ 25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 26 | ;2008 27 | full 28 | x86 29 | false 30 | prompt 31 | true 32 | 33 | 34 | bin\x86\Release\ 35 | TRACE;NETFX_CORE;WINDOWS_UWP 36 | true 37 | ;2008 38 | pdbonly 39 | x86 40 | false 41 | prompt 42 | true 43 | true 44 | 45 | 46 | true 47 | bin\ARM\Debug\ 48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 49 | ;2008 50 | full 51 | ARM 52 | false 53 | prompt 54 | true 55 | 56 | 57 | bin\ARM\Release\ 58 | TRACE;NETFX_CORE;WINDOWS_UWP 59 | true 60 | ;2008 61 | pdbonly 62 | ARM 63 | false 64 | prompt 65 | true 66 | true 67 | 68 | 69 | true 70 | bin\x64\Debug\ 71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 72 | ;2008 73 | full 74 | x64 75 | false 76 | prompt 77 | true 78 | 79 | 80 | bin\x64\Release\ 81 | TRACE;NETFX_CORE;WINDOWS_UWP 82 | true 83 | ;2008 84 | pdbonly 85 | x64 86 | false 87 | prompt 88 | true 89 | true 90 | 91 | 92 | 93 | App.xaml 94 | 95 | 96 | MainPage.xaml 97 | 98 | 99 | 100 | 101 | 102 | Designer 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | MSBuild:Compile 120 | Designer 121 | 122 | 123 | MSBuild:Compile 124 | Designer 125 | 126 | 127 | 128 | 129 | 6.0.6 130 | 131 | 132 | 3.4.0.1009999 133 | 134 | 135 | 136 | 137 | {1fab52ad-f3ba-423c-afa1-e21700aa96f4} 138 | ImageCircle.Forms.Plugin 139 | 140 | 141 | 142 | 143 | 14.0 144 | 145 | 146 | 153 | -------------------------------------------------------------------------------- /src/TestAppsCircles.UWP/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.UWP/check.png -------------------------------------------------------------------------------- /src/TestAppsCircles.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 TestAppsCircles.iOS 9 | { 10 | // The UIApplicationDelegate for the application. This class is responsible for launching the 11 | // User Interface of the application, as well as listening (and optionally responding) to 12 | // application events from iOS. 13 | [Register("AppDelegate")] 14 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate 15 | { 16 | // 17 | // This method is invoked when the application has loaded and is ready to run. In this 18 | // method you should instantiate the window, load the UI into it and then make the window 19 | // visible. 20 | // 21 | // You have 17 seconds to return from this method, or iOS will terminate your application. 22 | // 23 | public override bool FinishedLaunching(UIApplication app, NSDictionary options) 24 | { 25 | global::Xamarin.Forms.Forms.Init (); 26 | LoadApplication (new TestAppsCircles.App ()); 27 | ImageCircle.Forms.Plugin.iOS.ImageCircleRenderer.Init(); 28 | return base.FinishedLaunching (app, options); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIDeviceFamily 6 | 7 | 1 8 | 2 9 | 10 | UISupportedInterfaceOrientations 11 | 12 | UIInterfaceOrientationPortrait 13 | UIInterfaceOrientationLandscapeLeft 14 | UIInterfaceOrientationLandscapeRight 15 | 16 | UISupportedInterfaceOrientations~ipad 17 | 18 | UIInterfaceOrientationPortrait 19 | UIInterfaceOrientationPortraitUpsideDown 20 | UIInterfaceOrientationLandscapeLeft 21 | UIInterfaceOrientationLandscapeRight 22 | 23 | MinimumOSVersion 24 | 7.0 25 | CFBundleDisplayName 26 | TestAppsCircles 27 | CFBundleIdentifier 28 | com.yourcompany.TestAppsCircles 29 | CFBundleVersion 30 | 1.0 31 | CFBundleIconFiles 32 | 33 | Icon-60@2x.png 34 | Icon-60@3x.png 35 | Icon-76.png 36 | Icon-76@2x.png 37 | Default.png 38 | Default@2x.png 39 | Default-568h@2x.png 40 | Default-Portrait.png 41 | Default-Portrait@2x.png 42 | Icon-Small-40.png 43 | Icon-Small-40@2x.png 44 | Icon-Small-40@3x.png 45 | Icon-Small.png 46 | Icon-Small@2x.png 47 | Icon-Small@3x.png 48 | 49 | UILaunchStoryboardName 50 | LaunchScreen.storyboard 51 | CFBundleName 52 | TestAppsCircles 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/TestAppsCircles.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 TestAppsCircles.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 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TestAppsCircles.iOS")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TestAppsCircles.iOS")] 13 | [assembly: AssemblyCopyright("Copyright © 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Default-Portrait.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Default-Portrait@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Default.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Default@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-60@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-60@3x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-76.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-76@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small-40.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small@2x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/Icon-Small@3x.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/Resources/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/Resources/check.png -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/TestAppsCircles.iOS.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | iPhoneSimulator 6 | 8.0.30703 7 | 2.0 8 | {61C3066C-0237-4606-8434-F5626ACAF29E} 9 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 10 | Exe 11 | TestAppsCircles.iOS 12 | Resources 13 | TestAppsCirclesiOS 14 | 15 | 16 | 17 | 18 | true 19 | full 20 | false 21 | bin\iPhoneSimulator\Debug 22 | DEBUG 23 | prompt 24 | 4 25 | false 26 | i386, x86_64 27 | None 28 | true 29 | 30 | 31 | none 32 | true 33 | bin\iPhoneSimulator\Release 34 | prompt 35 | 4 36 | None 37 | i386, x86_64 38 | false 39 | 40 | 41 | true 42 | full 43 | false 44 | bin\iPhone\Debug 45 | DEBUG 46 | prompt 47 | 4 48 | false 49 | ARMv7, ARM64 50 | iPhone Developer 51 | true 52 | Entitlements.plist 53 | 54 | 55 | none 56 | true 57 | bin\iPhone\Release 58 | prompt 59 | 4 60 | ARMv7, ARM64 61 | false 62 | iPhone Developer 63 | Entitlements.plist 64 | 65 | 66 | none 67 | True 68 | bin\iPhone\Ad-Hoc 69 | prompt 70 | 4 71 | False 72 | ARMv7, ARM64 73 | True 74 | Automatic:AdHoc 75 | iPhone Distribution 76 | Entitlements.plist 77 | 78 | 79 | none 80 | True 81 | bin\iPhone\AppStore 82 | prompt 83 | 4 84 | False 85 | ARMv7, ARM64 86 | Automatic:AppStore 87 | iPhone Distribution 88 | Entitlements.plist 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | {1fab52ad-f3ba-423c-afa1-e21700aa96f4} 126 | ImageCircle.Forms.Plugin 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 3.4.0.1009999 135 | 136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/iTunesArtwork: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/iTunesArtwork -------------------------------------------------------------------------------- /src/TestAppsCircles.iOS/iTunesArtwork@2x: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmontemagno/ImageCirclePlugin/bf45f2a68028cbaa8552c56ba30f4834daebecb0/src/TestAppsCircles.iOS/iTunesArtwork@2x -------------------------------------------------------------------------------- /src/TestAppsCircles/App.cs: -------------------------------------------------------------------------------- 1 | using ImageCircle.Forms.Plugin.Abstractions; 2 | using System; 3 | 4 | using Xamarin.Forms; 5 | 6 | namespace TestAppsCircles 7 | { 8 | public class App : Application 9 | { 10 | public App() 11 | { 12 | 13 | CircleImage pink = null; 14 | var button = new Button 15 | { 16 | Text = "Change Colors" 17 | }; 18 | 19 | button.Clicked += (sender, args) => 20 | { 21 | if (pink.BorderColor == Color.Pink) 22 | { 23 | pink.BorderThickness = 20; 24 | pink.BorderColor = Color.Maroon; 25 | pink.FillColor = Color.Pink; 26 | } 27 | else 28 | { 29 | pink.BorderThickness = 3; 30 | pink.BorderColor = Color.Pink; 31 | pink.FillColor = Color.Olive; 32 | } 33 | }; 34 | var stack = new StackLayout 35 | { 36 | VerticalOptions = LayoutOptions.Center, 37 | Spacing = 10, 38 | Padding = 20, 39 | Children = 40 | { 41 | button, 42 | (pink = new CircleImage 43 | { 44 | BorderColor = Color.Pink, 45 | FillColor = Color.Olive, 46 | BorderThickness = 3, 47 | HeightRequest = 150, 48 | WidthRequest = 150, 49 | Aspect = Aspect.AspectFill, 50 | HorizontalOptions = LayoutOptions.Center, 51 | Source = FileImageSource.FromFile("Assets/Square150x150Logo.png") 52 | }), 53 | new CircleImage 54 | { 55 | BorderColor = Color.Purple, 56 | FillColor = Color.Transparent, 57 | BorderThickness = 6, 58 | HeightRequest = 150, 59 | WidthRequest = 150, 60 | Aspect = Aspect.AspectFill, 61 | HorizontalOptions = LayoutOptions.Center, 62 | Source = UriImageSource.FromUri(new Uri("http://upload.wikimedia.org/wikipedia/commons/e/ed/Saguinus_tripartitus_-_Golden-mantled_Tamarin.jpg")) 63 | }, 64 | new CircleImage 65 | { 66 | BorderColor = Color.Yellow, 67 | FillColor = Color.Yellow, 68 | BorderThickness = 9, 69 | HeightRequest = 150, 70 | WidthRequest = 150, 71 | Aspect = Aspect.AspectFill, 72 | HorizontalOptions = LayoutOptions.Center, 73 | Source = UriImageSource.FromUri(new Uri("http://upload.wikimedia.org/wikipedia/commons/5/53/Golden_Lion_Tamarin_Leontopithecus_rosalia.jpg")) 74 | }, 75 | } 76 | }; 77 | 78 | // The root page of your application 79 | MainPage = new ContentPage 80 | { 81 | Content = stack 82 | }; 83 | } 84 | 85 | protected override void OnStart() 86 | { 87 | // Handle when your app starts 88 | } 89 | 90 | protected override void OnSleep() 91 | { 92 | // Handle when your app sleeps 93 | } 94 | 95 | protected override void OnResume() 96 | { 97 | // Handle when your app resumes 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /src/TestAppsCircles/TestAppsCircles.projitems: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | fd4e1f85-421f-4c06-9752-4faded914f17 7 | 8 | 9 | TestAppsCircles 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/TestAppsCircles/TestAppsCircles.shproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | fd4e1f85-421f-4c06-9752-4faded914f17 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | --------------------------------------------------------------------------------