├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── Xamarin.iOS.DGActivityIndicatorViewBinding.sln ├── art └── DGActivityIndicatorView.gif ├── bitrise.yml ├── build.cake ├── build.ps1 ├── build.sh ├── nuspec └── Xamarin.iOS.DGActivityIndicatorView.nuspec ├── src ├── Xamarin.iOS.DGActivityIndicatorViewBinding.Sample │ ├── AppDelegate.cs │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Entitlements.plist │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── Main.cs │ ├── Main.storyboard │ ├── ViewController.cs │ ├── ViewController.designer.cs │ └── Xamarin.iOS.DGActivityIndicatorViewBinding.Sample.csproj └── Xamarin.iOS.DGActivityIndicatorViewBinding │ ├── ApiDefinition.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── Structs.cs │ ├── Xamarin.iOS.DGActivityIndicatorViewBinding.csproj │ ├── libDGActivityIndicatorView.a │ └── libDGActivityIndicatorView.linkwith.cs └── tools └── packages.config /.gitignore: -------------------------------------------------------------------------------- 1 | ## Xamarin stuff 2 | Components 3 | [Pp]ackages 4 | *.userprefs 5 | Resource.designer.cs 6 | 7 | 8 | # Cake Build related 9 | artifacts/ 10 | tools/* 11 | !tools/packages.config 12 | 13 | ## Ignore Visual Studio temporary files, build results, and 14 | ## files generated by popular Visual Studio add-ons. 15 | 16 | # User-specific files 17 | *.suo 18 | *.user 19 | *.sln.docstates 20 | 21 | # Build results 22 | [Dd]ebug/ 23 | [Dd]ebugPublic/ 24 | [Rr]elease/ 25 | x64/ 26 | build/ 27 | bld/ 28 | [Bb]in/ 29 | [Oo]bj/ 30 | project.lock.json 31 | 32 | # MSTest test Results 33 | [Tt]est[Rr]esult*/ 34 | [Bb]uild[Ll]og.* 35 | 36 | #NUNIT 37 | *.VisualState.xml 38 | TestResult.xml 39 | 40 | # Build Results of an ATL Project 41 | [Dd]ebugPS/ 42 | [Rr]eleasePS/ 43 | dlldata.c 44 | 45 | *_i.c 46 | *_p.c 47 | *_i.h 48 | *.ilk 49 | *.meta 50 | *.obj 51 | *.pch 52 | *.pdb 53 | *.pgc 54 | *.pgd 55 | *.rsp 56 | *.sbr 57 | *.tlb 58 | *.tli 59 | *.tlh 60 | *.tmp 61 | *.tmp_proj 62 | *.log 63 | *.vspscc 64 | *.vssscc 65 | .builds 66 | *.pidb 67 | *.svclog 68 | *.scc 69 | 70 | # Chutzpah Test files 71 | _Chutzpah* 72 | 73 | # Visual C++ cache files 74 | ipch/ 75 | *.aps 76 | *.ncb 77 | *.opensdf 78 | *.sdf 79 | *.cachefile 80 | 81 | # Visual Studio profiler 82 | *.psess 83 | *.vsp 84 | *.vspx 85 | 86 | # TFS 2012 Local Workspace 87 | $tf/ 88 | 89 | # Guidance Automation Toolkit 90 | *.gpState 91 | 92 | # ReSharper is a .NET coding add-in 93 | _ReSharper*/ 94 | *.[Rr]e[Ss]harper 95 | *.DotSettings.user 96 | 97 | # JustCode is a .NET coding addin-in 98 | .JustCode 99 | 100 | # TeamCity is a build add-in 101 | _TeamCity* 102 | 103 | # DotCover is a Code Coverage Tool 104 | *.dotCover 105 | 106 | # NCrunch 107 | *.ncrunch* 108 | _NCrunch_* 109 | .*crunch*.local.xml 110 | 111 | # MightyMoose 112 | *.mm.* 113 | AutoTest.Net/ 114 | 115 | # Web workbench (sass) 116 | .sass-cache/ 117 | 118 | # Installshield output folder 119 | [Ee]xpress/ 120 | 121 | # DocProject is a documentation generator add-in 122 | DocProject/buildhelp/ 123 | DocProject/Help/*.HxT 124 | DocProject/Help/*.HxC 125 | DocProject/Help/*.hhc 126 | DocProject/Help/*.hhk 127 | DocProject/Help/*.hhp 128 | DocProject/Help/Html2 129 | DocProject/Help/html 130 | 131 | # Click-Once directory 132 | publish/ 133 | 134 | # Publish Web Output 135 | *.[Pp]ublish.xml 136 | *.azurePubxml 137 | 138 | # NuGet Packages Directory 139 | packages/ 140 | ## TODO: If the tool you use requires repositories.config uncomment the next line 141 | #!packages/repositories.config 142 | 143 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets 144 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) 145 | !packages/build/ 146 | 147 | # Windows Azure Build Output 148 | csx/ 149 | *.build.csdef 150 | 151 | # Windows Store app package directory 152 | AppPackages/ 153 | 154 | # Others 155 | sql/ 156 | *.Cache 157 | ClientBin/ 158 | [Ss]tyle[Cc]op.* 159 | ~$* 160 | *~ 161 | *.dbmdl 162 | *.dbproj.schemaview 163 | *.pfx 164 | *.publishsettings 165 | node_modules/ 166 | 167 | # RIA/Silverlight projects 168 | Generated_Code/ 169 | 170 | # Backup & report files from converting an old project file to a newer 171 | # Visual Studio version. Backup files are not needed, because we have git ;-) 172 | _UpgradeReport_Files/ 173 | Backup*/ 174 | UpgradeLog*.XML 175 | UpgradeLog*.htm 176 | 177 | # SQL Server files 178 | *.mdf 179 | *.ldf 180 | 181 | # Business Intelligence projects 182 | *.rdl.data 183 | *.bim.layout 184 | *.bim_*.settings 185 | 186 | # Microsoft Fakes 187 | FakesAssemblies/ 188 | 189 | *.userprefs 190 | 191 | .DS_Store 192 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/DGActivityIndicatorView"] 2 | path = src/DGActivityIndicatorView 3 | url = https://github.com/jzeferino/DGActivityIndicatorView 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 jzeferino 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://app.bitrise.io/app/ef9f6b792fb8dc9b/status.svg?token=lMCNm-V8FuPrc4mtUhvmfw&branch=master)](https://app.bitrise.io/app/ef9f6b792fb8dc9b) 2 | [![NuGet](https://img.shields.io/nuget/v/Xamarin.iOS.DGActivityIndicatorView.svg?label=NuGet)](https://www.nuget.org/packages/Xamarin.iOS.DGActivityIndicatorView/) 3 | 4 | Xamarin.iOS.DGActivityIndicatorView 5 | =================== 6 | 7 | This is a Xamarin iOS Binding for the [DGActivityIndicatorView](https://github.com/gontovnik/DGActivityIndicatorView). 8 | 9 | DGActivityIndicatorView is a collection of nice loading animations for iOS. 10 | 11 | ## Demo 12 |

13 | 14 |

15 | 16 | ## Usage 17 | (see the [sample](https://github.com/jzeferino/Xamarin.iOS.DGActivityIndicatorView/tree/master/src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample) project for a detailed working example) 18 | 19 | ### Step 1 20 | 21 | Install NuGet [package](https://www.nuget.org/packages/Xamarin.iOS.DGActivityIndicatorView/). 22 | 23 | ### Step 2 24 | 25 | Add the DGActivityIndicatorView to your layout: 26 | ```c# 27 | var activityIndicatorView = new DGActivityIndicatorView(DGActivityIndicatorAnimationType.BallGridBeat, UIColor.White); 28 | View.AddSubview(activityIndicatorView); 29 | ``` 30 | 31 | ### Step 3 32 | 33 | Show or hide the progress. 34 | ```c# 35 | activityIndicatorView.StartAnimating(); 36 | ``` 37 | or 38 | ```c# 39 | activityIndicatorView.StopAnimating(); 40 | ``` 41 | 42 | ## Indicators 43 | 44 | As seen above in the **Demo**, the indicators are as follows: 45 | 46 | * `BallPulseIndicator` 47 | * `NineDots` 48 | * `TriplePulse` 49 | * `FiveDots` 50 | * `RotatingSquares` 51 | * `DoubleBounce` 52 | * `TwoDots` 53 | * `ThreeDots` 54 | * `BallPulse` 55 | * `BallClipRotate` 56 | * `BallClipRotatePulse` 57 | * `BallClipRotateMultiple` 58 | * `BallRotate` 59 | * `BallZigZag` 60 | * `BallZigZagDeflect` 61 | * `BallTrianglePath` 62 | * `BallScale` 63 | * `LineScale` 64 | * `LineScaleParty` 65 | * `BallScaleMultiple` 66 | * `BallPulseSync` 67 | * `BallBeat` 68 | * `LineScalePulseOut` 69 | * `LineScalePulseOutRapid` 70 | * `BallScaleRipple` 71 | * `BallScaleRippleMultiple` 72 | * `TriangleSkewSpin` 73 | * `BallGridBeat` 74 | * `BallGridPulse` 75 | * `RotatingSandglass` 76 | * `RotatingTrigons` 77 | * `TripleRings` 78 | * `CookieTerminator` 79 | * `BallSpinFadeLoader` 80 | 81 | ### License 82 | [MIT Licence](LICENSE) 83 | -------------------------------------------------------------------------------- /Xamarin.iOS.DGActivityIndicatorViewBinding.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.iOS.DGActivityIndicatorViewBinding", "src\Xamarin.iOS.DGActivityIndicatorViewBinding\Xamarin.iOS.DGActivityIndicatorViewBinding.csproj", "{0E5586D9-48EE-4444-A13B-577474CB416D}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.iOS.DGActivityIndicatorViewBinding.Sample", "src\Xamarin.iOS.DGActivityIndicatorViewBinding.Sample\Xamarin.iOS.DGActivityIndicatorViewBinding.Sample.csproj", "{C30662B5-B745-469C-87F4-35EE8D7E2F52}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 11 | Release|iPhone = Release|iPhone 12 | Release|iPhoneSimulator = Release|iPhoneSimulator 13 | Debug|iPhone = Debug|iPhone 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU 17 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU 18 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Release|iPhone.ActiveCfg = Release|Any CPU 19 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Release|iPhone.Build.0 = Release|Any CPU 20 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU 21 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU 22 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Debug|iPhone.ActiveCfg = Debug|Any CPU 23 | {0E5586D9-48EE-4444-A13B-577474CB416D}.Debug|iPhone.Build.0 = Debug|Any CPU 24 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 25 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 26 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Release|iPhone.ActiveCfg = Release|iPhone 27 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Release|iPhone.Build.0 = Release|iPhone 28 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 29 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 30 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Debug|iPhone.ActiveCfg = Debug|iPhone 31 | {C30662B5-B745-469C-87F4-35EE8D7E2F52}.Debug|iPhone.Build.0 = Debug|iPhone 32 | EndGlobalSection 33 | EndGlobal 34 | -------------------------------------------------------------------------------- /art/DGActivityIndicatorView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzeferino/Xamarin.iOS.DGActivityIndicatorView/1a4d07158340c996bb064637c850ea94411fe770/art/DGActivityIndicatorView.gif -------------------------------------------------------------------------------- /bitrise.yml: -------------------------------------------------------------------------------- 1 | --- 2 | format_version: 1.4.0 3 | default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git 4 | 5 | project_type: xamarin 6 | 7 | workflows: 8 | ci: 9 | steps: 10 | - script@1.1.4: 11 | inputs: 12 | - content: |- 13 | #!/bin/bash 14 | # fail if any commands fails and debug log 15 | set -ex 16 | 17 | # build script 18 | ./build.sh -v diagnostic 19 | - deploy-to-bitrise-io@1.3.6: {} 20 | app: 21 | envs: 22 | - BITRISE_DEPLOY_DIR: artifacts 23 | -------------------------------------------------------------------------------- /build.cake: -------------------------------------------------------------------------------- 1 | #addin nuget:?package=Cake.SemVer&loaddependencies=true 2 | 3 | // Enviroment 4 | var isRunningBitrise = Bitrise.IsRunningOnBitrise; 5 | var isRunningOnWindows = IsRunningOnWindows(); 6 | 7 | // Arguments. 8 | var target = Argument("target", "Default"); 9 | var configuration = "Release"; 10 | 11 | // Define directories. 12 | var solutionFile = new FilePath("Xamarin.iOS.DGActivityIndicatorViewBinding.sln"); 13 | var libProject = new FilePath("src/Xamarin.iOS.DGActivityIndicatorViewBinding/Xamarin.iOS.DGActivityIndicatorViewBinding.csproj"); 14 | var iOSSample = new FilePath("src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample.csproj"); 15 | var artifactsDirectory = new DirectoryPath("artifacts"); 16 | var iOSOutputDirectory = "bin/iPhoneSimulator"; 17 | 18 | // Versioning. Used for all the packages and assemblies for now. 19 | var version = CreateSemVer(1, 0, 1); 20 | 21 | Setup((context) => 22 | { 23 | Information("Bitrise: {0}", isRunningBitrise); 24 | Information ("Running on Windows: {0}", isRunningOnWindows); 25 | Information("Configuration: {0}", configuration); 26 | }); 27 | 28 | Task("Clean") 29 | .Does(() => 30 | { 31 | CleanDirectory(artifactsDirectory); 32 | 33 | MSBuild(solutionFile, settings => settings 34 | .SetConfiguration(configuration) 35 | .WithTarget("Clean") 36 | .SetVerbosity(Verbosity.Minimal)); 37 | }); 38 | 39 | Task("Restore") 40 | .Does(() => 41 | { 42 | NuGetRestore(solutionFile); 43 | }); 44 | 45 | Task("Build") 46 | .IsDependentOn("Clean") 47 | .IsDependentOn("Restore") 48 | .Does(() => 49 | { 50 | MSBuild(libProject, settings => settings 51 | .SetConfiguration(configuration) 52 | .WithTarget("Build") 53 | .SetVerbosity(Verbosity.Minimal)); 54 | 55 | MSBuild(iOSSample, settings => settings 56 | .SetConfiguration(configuration) 57 | .WithTarget("Build") 58 | .WithProperty("Platform", "iPhoneSimulator") 59 | .WithProperty("OutputPath", iOSOutputDirectory) 60 | .WithProperty("TreatWarningsAsErrors", "false") 61 | // For some strange reason, this compiles fine in iPhoneSimulator without AllowUnsafeBlocks from the IDE but here it just won't compile witout it. 62 | .WithProperty("AllowUnsafeBlocks", "true") 63 | .SetVerbosity(Verbosity.Minimal)); 64 | }); 65 | 66 | Task ("NuGet") 67 | .IsDependentOn ("Build") 68 | .WithCriteria(isRunningBitrise) 69 | .Does (() => 70 | { 71 | Information("Nuget version: {0}", version); 72 | 73 | var nugetVersion = Bitrise.Environment.Repository.GitBranch == "master" ? version.ToString() : version.Change(prerelease: "pre" + Bitrise.Environment.Build.BuildNumber).ToString(); 74 | 75 | NuGetPack ("./nuspec/Xamarin.iOS.DGActivityIndicatorView.nuspec", 76 | new NuGetPackSettings 77 | { 78 | Version = nugetVersion, 79 | Verbosity = NuGetVerbosity.Normal, 80 | OutputDirectory = artifactsDirectory, 81 | BasePath = "./", 82 | ArgumentCustomization = args => args.Append("-NoDefaultExcludes") 83 | }); 84 | }); 85 | 86 | Task("Default") 87 | .IsDependentOn("NuGet") 88 | .Does(() => {}); 89 | 90 | RunTarget(target); -------------------------------------------------------------------------------- /build.ps1: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # This is the Cake bootstrapper script for PowerShell. 3 | # This file was downloaded from https://github.com/cake-build/resources 4 | # Feel free to change this file to fit your needs. 5 | ########################################################################## 6 | 7 | <# 8 | 9 | .SYNOPSIS 10 | This is a Powershell script to bootstrap a Cake build. 11 | 12 | .DESCRIPTION 13 | This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) 14 | and execute your Cake build script with the parameters you provide. 15 | 16 | .PARAMETER Script 17 | The build script to execute. 18 | .PARAMETER Target 19 | The build script target to run. 20 | .PARAMETER Configuration 21 | The build configuration to use. 22 | .PARAMETER Verbosity 23 | Specifies the amount of information to be displayed. 24 | .PARAMETER Experimental 25 | Tells Cake to use the latest Roslyn release. 26 | .PARAMETER WhatIf 27 | Performs a dry run of the build script. 28 | No tasks will be executed. 29 | .PARAMETER Mono 30 | Tells Cake to use the Mono scripting engine. 31 | .PARAMETER SkipToolPackageRestore 32 | Skips restoring of packages. 33 | .PARAMETER ScriptArgs 34 | Remaining arguments are added here. 35 | 36 | .LINK 37 | http://cakebuild.net 38 | 39 | #> 40 | 41 | [CmdletBinding()] 42 | Param( 43 | [string]$Script = "build.cake", 44 | [string]$Target = "Default", 45 | [ValidateSet("Release", "Debug")] 46 | [string]$Configuration = "Release", 47 | [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] 48 | [string]$Verbosity = "Verbose", 49 | [switch]$Experimental, 50 | [Alias("DryRun","Noop")] 51 | [switch]$WhatIf, 52 | [switch]$Mono, 53 | [switch]$SkipToolPackageRestore, 54 | [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] 55 | [string[]]$ScriptArgs 56 | ) 57 | 58 | [Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null 59 | function MD5HashFile([string] $filePath) 60 | { 61 | if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) 62 | { 63 | return $null 64 | } 65 | 66 | [System.IO.Stream] $file = $null; 67 | [System.Security.Cryptography.MD5] $md5 = $null; 68 | try 69 | { 70 | $md5 = [System.Security.Cryptography.MD5]::Create() 71 | $file = [System.IO.File]::OpenRead($filePath) 72 | return [System.BitConverter]::ToString($md5.ComputeHash($file)) 73 | } 74 | finally 75 | { 76 | if ($file -ne $null) 77 | { 78 | $file.Dispose() 79 | } 80 | } 81 | } 82 | 83 | Write-Host "Preparing to run build script..." 84 | 85 | if(!$PSScriptRoot){ 86 | $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent 87 | } 88 | 89 | $TOOLS_DIR = Join-Path $PSScriptRoot "tools" 90 | $NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" 91 | $CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" 92 | $NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" 93 | $PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" 94 | $PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" 95 | 96 | # Should we use mono? 97 | $UseMono = ""; 98 | if($Mono.IsPresent) { 99 | Write-Verbose -Message "Using the Mono based scripting engine." 100 | $UseMono = "-mono" 101 | } 102 | 103 | # Should we use the new Roslyn? 104 | $UseExperimental = ""; 105 | if($Experimental.IsPresent -and !($Mono.IsPresent)) { 106 | Write-Verbose -Message "Using experimental version of Roslyn." 107 | $UseExperimental = "-experimental" 108 | } 109 | 110 | # Is this a dry run? 111 | $UseDryRun = ""; 112 | if($WhatIf.IsPresent) { 113 | $UseDryRun = "-dryrun" 114 | } 115 | 116 | # Make sure tools folder exists 117 | if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { 118 | Write-Verbose -Message "Creating tools directory..." 119 | New-Item -Path $TOOLS_DIR -Type directory | out-null 120 | } 121 | 122 | # Make sure that packages.config exist. 123 | if (!(Test-Path $PACKAGES_CONFIG)) { 124 | Write-Verbose -Message "Downloading packages.config..." 125 | try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { 126 | Throw "Could not download packages.config." 127 | } 128 | } 129 | 130 | # Try find NuGet.exe in path if not exists 131 | if (!(Test-Path $NUGET_EXE)) { 132 | Write-Verbose -Message "Trying to find nuget.exe in PATH..." 133 | $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) } 134 | $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 135 | if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { 136 | Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." 137 | $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName 138 | } 139 | } 140 | 141 | # Try download NuGet.exe if not exists 142 | if (!(Test-Path $NUGET_EXE)) { 143 | Write-Verbose -Message "Downloading NuGet.exe..." 144 | try { 145 | (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE) 146 | } catch { 147 | Throw "Could not download NuGet.exe." 148 | } 149 | } 150 | 151 | # Save nuget.exe path to environment to be available to child processed 152 | $ENV:NUGET_EXE = $NUGET_EXE 153 | 154 | # Restore tools from NuGet? 155 | if(-Not $SkipToolPackageRestore.IsPresent) { 156 | Push-Location 157 | Set-Location $TOOLS_DIR 158 | 159 | # Check for changes in packages.config and remove installed tools if true. 160 | [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) 161 | if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or 162 | ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { 163 | Write-Verbose -Message "Missing or changed package.config hash..." 164 | Remove-Item * -Recurse -Exclude packages.config,nuget.exe 165 | } 166 | 167 | Write-Verbose -Message "Restoring tools from NuGet..." 168 | $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" 169 | 170 | if ($LASTEXITCODE -ne 0) { 171 | Throw "An error occured while restoring NuGet tools." 172 | } 173 | else 174 | { 175 | $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" 176 | } 177 | Write-Verbose -Message ($NuGetOutput | out-string) 178 | Pop-Location 179 | } 180 | 181 | # Make sure that Cake has been installed. 182 | if (!(Test-Path $CAKE_EXE)) { 183 | Throw "Could not find Cake.exe at $CAKE_EXE" 184 | } 185 | 186 | # Start Cake 187 | Write-Host "Running build script..." 188 | Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs" 189 | exit $LASTEXITCODE -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ########################################################################## 4 | # This is the Cake bootstrapper script for Linux and OS X. 5 | # This file was downloaded from https://github.com/cake-build/resources 6 | # Feel free to change this file to fit your needs. 7 | ########################################################################## 8 | 9 | # Define directories. 10 | SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 11 | TOOLS_DIR=$SCRIPT_DIR/tools 12 | NUGET_EXE=$TOOLS_DIR/nuget.exe 13 | CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe 14 | PACKAGES_CONFIG=$TOOLS_DIR/packages.config 15 | PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum 16 | 17 | # Define md5sum or md5 depending on Linux/OSX 18 | MD5_EXE= 19 | if [[ "$(uname -s)" == "Darwin" ]]; then 20 | MD5_EXE="md5 -r" 21 | else 22 | MD5_EXE="md5sum" 23 | fi 24 | 25 | # Define default arguments. 26 | SCRIPT="build.cake" 27 | TARGET="Default" 28 | CONFIGURATION="Release" 29 | VERBOSITY="verbose" 30 | DRYRUN= 31 | SHOW_VERSION=false 32 | SCRIPT_ARGUMENTS=() 33 | 34 | # Parse arguments. 35 | for i in "$@"; do 36 | case $1 in 37 | -s|--script) SCRIPT="$2"; shift ;; 38 | -t|--target) TARGET="$2"; shift ;; 39 | -c|--configuration) CONFIGURATION="$2"; shift ;; 40 | -v|--verbosity) VERBOSITY="$2"; shift ;; 41 | -d|--dryrun) DRYRUN="-dryrun" ;; 42 | --version) SHOW_VERSION=true ;; 43 | --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;; 44 | *) SCRIPT_ARGUMENTS+=("$1") ;; 45 | esac 46 | shift 47 | done 48 | 49 | # Make sure the tools folder exist. 50 | if [ ! -d "$TOOLS_DIR" ]; then 51 | mkdir "$TOOLS_DIR" 52 | fi 53 | 54 | # Make sure that packages.config exist. 55 | if [ ! -f "$TOOLS_DIR/packages.config" ]; then 56 | echo "Downloading packages.config..." 57 | curl -Lsfo "$TOOLS_DIR/packages.config" http://cakebuild.net/download/bootstrapper/packages 58 | if [ $? -ne 0 ]; then 59 | echo "An error occured while downloading packages.config." 60 | exit 1 61 | fi 62 | fi 63 | 64 | # Download NuGet if it does not exist. 65 | if [ ! -f "$NUGET_EXE" ]; then 66 | echo "Downloading NuGet..." 67 | curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe 68 | if [ $? -ne 0 ]; then 69 | echo "An error occured while downloading nuget.exe." 70 | exit 1 71 | fi 72 | fi 73 | 74 | # Restore tools from NuGet. 75 | pushd "$TOOLS_DIR" >/dev/null 76 | if [ ! -f $PACKAGES_CONFIG_MD5 ] || [ "$( cat $PACKAGES_CONFIG_MD5 | sed 's/\r$//' )" != "$( $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' )" ]; then 77 | find . -type d ! -name . | xargs rm -rf 78 | fi 79 | 80 | mono "$NUGET_EXE" install -ExcludeVersion 81 | if [ $? -ne 0 ]; then 82 | echo "Could not restore NuGet packages." 83 | exit 1 84 | fi 85 | 86 | $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' >| $PACKAGES_CONFIG_MD5 87 | 88 | popd >/dev/null 89 | 90 | # Make sure that Cake has been installed. 91 | if [ ! -f "$CAKE_EXE" ]; then 92 | echo "Could not find Cake.exe at '$CAKE_EXE'." 93 | exit 1 94 | fi 95 | 96 | # Start Cake 97 | if $SHOW_VERSION; then 98 | exec mono "$CAKE_EXE" -version 99 | else 100 | exec mono "$CAKE_EXE" $SCRIPT -verbosity=$VERBOSITY -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}" 101 | fi -------------------------------------------------------------------------------- /nuspec/Xamarin.iOS.DGActivityIndicatorView.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Xamarin.iOS.DGActivityIndicatorView 5 | $version$ 6 | Xamarin.iOS.DGActivityIndicatorView 7 | jzeferino 8 | https://github.com/jzeferino/Xamarin.iOS.DGActivityIndicatorView/blob/master/LICENSE 9 | https://github.com/jzeferino/Xamarin.iOS.DGActivityIndicatorView 10 | false 11 | DGActivityIndicatorView is a collection of nice loading animations for iOS. 12 | xamarin, ios, loading 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | using UIKit; 3 | 4 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 5 | { 6 | // The UIApplicationDelegate for the application. This class is responsible for launching the 7 | // User Interface of the application, as well as listening (and optionally responding) to application events from iOS. 8 | [Register("AppDelegate")] 9 | public class AppDelegate : UIApplicationDelegate 10 | { 11 | // class-level declarations 12 | 13 | public override UIWindow Window 14 | { 15 | get; 16 | set; 17 | } 18 | 19 | public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) 20 | { 21 | // Override point for customization after application launch. 22 | // If not required for your application you can safely delete this method 23 | 24 | return true; 25 | } 26 | 27 | public override void OnResignActivation(UIApplication application) 28 | { 29 | // Invoked when the application is about to move from active to inactive state. 30 | // This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) 31 | // or when the user quits the application and it begins the transition to the background state. 32 | // Games should use this method to pause the game. 33 | } 34 | 35 | public override void DidEnterBackground(UIApplication application) 36 | { 37 | // Use this method to release shared resources, save user data, invalidate timers and store the application state. 38 | // If your application supports background exection this method is called instead of WillTerminate when the user quits. 39 | } 40 | 41 | public override void WillEnterForeground(UIApplication application) 42 | { 43 | // Called as part of the transiton from background to active state. 44 | // Here you can undo many of the changes made on entering the background. 45 | } 46 | 47 | public override void OnActivated(UIApplication application) 48 | { 49 | // Restart any tasks that were paused (or not yet started) while the application was inactive. 50 | // If the application was previously in the background, optionally refresh the user interface. 51 | } 52 | 53 | public override void WillTerminate(UIApplication application) 54 | { 55 | // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground. 56 | } 57 | } 58 | } 59 | 60 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "idiom": "iphone", 5 | "size": "29x29", 6 | "scale": "1x" 7 | }, 8 | { 9 | "idiom": "iphone", 10 | "size": "29x29", 11 | "scale": "2x" 12 | }, 13 | { 14 | "idiom": "iphone", 15 | "size": "29x29", 16 | "scale": "3x" 17 | }, 18 | { 19 | "idiom": "iphone", 20 | "size": "40x40", 21 | "scale": "2x" 22 | }, 23 | { 24 | "idiom": "iphone", 25 | "size": "40x40", 26 | "scale": "3x" 27 | }, 28 | { 29 | "idiom": "iphone", 30 | "size": "57x57", 31 | "scale": "1x" 32 | }, 33 | { 34 | "idiom": "iphone", 35 | "size": "57x57", 36 | "scale": "2x" 37 | }, 38 | { 39 | "idiom": "iphone", 40 | "size": "60x60", 41 | "scale": "2x" 42 | }, 43 | { 44 | "idiom": "iphone", 45 | "size": "60x60", 46 | "scale": "3x" 47 | }, 48 | { 49 | "idiom": "ipad", 50 | "size": "29x29", 51 | "scale": "1x" 52 | }, 53 | { 54 | "idiom": "ipad", 55 | "size": "29x29", 56 | "scale": "2x" 57 | }, 58 | { 59 | "idiom": "ipad", 60 | "size": "40x40", 61 | "scale": "1x" 62 | }, 63 | { 64 | "idiom": "ipad", 65 | "size": "40x40", 66 | "scale": "2x" 67 | }, 68 | { 69 | "idiom": "ipad", 70 | "size": "50x50", 71 | "scale": "1x" 72 | }, 73 | { 74 | "idiom": "ipad", 75 | "size": "50x50", 76 | "scale": "2x" 77 | }, 78 | { 79 | "idiom": "ipad", 80 | "size": "72x72", 81 | "scale": "1x" 82 | }, 83 | { 84 | "idiom": "ipad", 85 | "size": "72x72", 86 | "scale": "2x" 87 | }, 88 | { 89 | "idiom": "ipad", 90 | "size": "76x76", 91 | "scale": "1x" 92 | }, 93 | { 94 | "idiom": "ipad", 95 | "size": "76x76", 96 | "scale": "2x" 97 | }, 98 | { 99 | "size": "24x24", 100 | "idiom": "watch", 101 | "scale": "2x", 102 | "role": "notificationCenter", 103 | "subtype": "38mm" 104 | }, 105 | { 106 | "size": "27.5x27.5", 107 | "idiom": "watch", 108 | "scale": "2x", 109 | "role": "notificationCenter", 110 | "subtype": "42mm" 111 | }, 112 | { 113 | "size": "29x29", 114 | "idiom": "watch", 115 | "role": "companionSettings", 116 | "scale": "2x" 117 | }, 118 | { 119 | "size": "29x29", 120 | "idiom": "watch", 121 | "role": "companionSettings", 122 | "scale": "3x" 123 | }, 124 | { 125 | "size": "40x40", 126 | "idiom": "watch", 127 | "scale": "2x", 128 | "role": "appLauncher", 129 | "subtype": "38mm" 130 | }, 131 | { 132 | "size": "44x44", 133 | "idiom": "watch", 134 | "scale": "2x", 135 | "role": "longLook", 136 | "subtype": "42mm" 137 | }, 138 | { 139 | "size": "86x86", 140 | "idiom": "watch", 141 | "scale": "2x", 142 | "role": "quickLook", 143 | "subtype": "38mm" 144 | }, 145 | { 146 | "size": "98x98", 147 | "idiom": "watch", 148 | "scale": "2x", 149 | "role": "quickLook", 150 | "subtype": "42mm" 151 | } 152 | ], 153 | "info": { 154 | "version": 1, 155 | "author": "xcode" 156 | } 157 | } -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Entitlements.plist: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleName 6 | Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 7 | CFBundleIdentifier 8 | xamarin.ios.dgactivityindicatorviewbinding.xamarin-ios-dgactivityindicatorviewbinding-sample 9 | CFBundleShortVersionString 10 | 1.0 11 | CFBundleVersion 12 | 1.0 13 | LSRequiresIPhoneOS 14 | 15 | MinimumOSVersion 16 | 10.0 17 | UIDeviceFamily 18 | 19 | 1 20 | 21 | UILaunchStoryboardName 22 | LaunchScreen 23 | UIMainStoryboardFile 24 | Main 25 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | XSAppIconAssets 36 | Assets.xcassets/AppIcon.appiconset 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/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 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Main.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 4 | { 5 | public class Application 6 | { 7 | // This is the main entry point of the application. 8 | static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, "AppDelegate"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Main.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 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/ViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using CoreGraphics; 4 | using UIKit; 5 | 6 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 7 | { 8 | public partial class ViewController : UIViewController 9 | { 10 | protected ViewController(IntPtr handle) : base(handle) 11 | { 12 | } 13 | 14 | public override void ViewDidLoad() 15 | { 16 | base.ViewDidLoad(); 17 | 18 | View.BackgroundColor = UIColor.FromRGB(237, 85, 101); 19 | 20 | // Thats a 🔨 way of getting safearea insets. 21 | var window = UIApplication.SharedApplication.Windows?.FirstOrDefault(); 22 | var topPadding = window?.SafeAreaInsets.Top ?? 0; 23 | var bottomPadding = window?.SafeAreaInsets.Bottom ?? 0; 24 | 25 | var cols = 4; 26 | var rows = 9; 27 | var cellWidth = View.Bounds.Size.Width / cols; 28 | var cellHeight = (View.Bounds.Size.Height - (topPadding + bottomPadding)) / rows; 29 | 30 | var enumValues = Enum.GetValues(typeof(DGActivityIndicatorAnimationType)).Cast(); 31 | 32 | for (int i = 0; i < enumValues.Count(); i++) 33 | { 34 | var x = i % cols * cellWidth; 35 | var y = (i / cols * cellHeight) + topPadding; 36 | 37 | var activityIndicatorView = new DGActivityIndicatorView(enumValues.ElementAt(i), UIColor.White) 38 | { 39 | TranslatesAutoresizingMaskIntoConstraints = false 40 | }; 41 | var label = new UILabel 42 | { 43 | TranslatesAutoresizingMaskIntoConstraints = false, 44 | Text = enumValues.ElementAt(i).ToString(), 45 | TextColor = UIColor.White, 46 | TextAlignment = UITextAlignment.Center 47 | }; 48 | label.Font = label.Font.WithSize(9f); 49 | 50 | View.AddSubview(activityIndicatorView); 51 | activityIndicatorView.AddSubview(label); 52 | 53 | activityIndicatorView.HeightAnchor.ConstraintEqualTo(cellHeight).Active = true; 54 | activityIndicatorView.WidthAnchor.ConstraintEqualTo(cellWidth).Active = true; 55 | activityIndicatorView.LeadingAnchor.ConstraintEqualTo(View.LeadingAnchor, x).Active = true; 56 | activityIndicatorView.TopAnchor.ConstraintEqualTo(View.TopAnchor, y).Active = true; 57 | 58 | label.LeadingAnchor.ConstraintEqualTo(activityIndicatorView.LeadingAnchor).Active = true; 59 | label.TrailingAnchor.ConstraintEqualTo(activityIndicatorView.TrailingAnchor).Active = true; 60 | label.TopAnchor.ConstraintEqualTo(activityIndicatorView.TopAnchor).Active = true; 61 | 62 | activityIndicatorView.StartAnimating(); 63 | } 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/ViewController.designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | // This file has been generated automatically by MonoDevelop to store outlets and 3 | // actions made in the Xcode designer. If it is removed, they will be lost. 4 | // Manual changes to this file may not be handled correctly. 5 | // 6 | using Foundation; 7 | 8 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 9 | { 10 | [Register("ViewController")] 11 | partial class ViewController 12 | { 13 | void ReleaseDesignerOutlets() 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample/Xamarin.iOS.DGActivityIndicatorViewBinding.Sample.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | iPhoneSimulator 6 | {C30662B5-B745-469C-87F4-35EE8D7E2F52} 7 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | Exe 9 | Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 10 | Xamarin.iOS.DGActivityIndicatorViewBinding.Sample 11 | Resources 12 | 13 | 14 | true 15 | full 16 | false 17 | bin\iPhoneSimulator\Debug 18 | DEBUG;ENABLE_TEST_CLOUD; 19 | prompt 20 | 4 21 | iPhone Developer 22 | true 23 | true 24 | true 25 | true 26 | 49915 27 | SdkOnly 28 | x86_64 29 | HttpClientHandler 30 | Default 31 | false 32 | 33 | 34 | pdbonly 35 | true 36 | bin\iPhone\Release 37 | 38 | prompt 39 | 4 40 | iPhone Developer 41 | true 42 | true 43 | true 44 | Entitlements.plist 45 | SdkOnly 46 | ARMv7, ARM64 47 | HttpClientHandler 48 | Default 49 | 50 | 51 | pdbonly 52 | true 53 | bin\iPhoneSimulator\Release 54 | 55 | prompt 56 | 4 57 | iPhone Developer 58 | true 59 | true 60 | SdkOnly 61 | x86_64 62 | HttpClientHandler 63 | Default 64 | 65 | 66 | true 67 | full 68 | false 69 | bin\iPhone\Debug 70 | DEBUG;ENABLE_TEST_CLOUD; 71 | prompt 72 | 4 73 | iPhone Developer 74 | true 75 | true 76 | true 77 | true 78 | true 79 | true 80 | Entitlements.plist 81 | SdkOnly 82 | ARMv7, ARM64 83 | HttpClientHandler 84 | Default 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | ViewController.cs 113 | 114 | 115 | 116 | 117 | {0E5586D9-48EE-4444-A13B-577474CB416D} 118 | Xamarin.iOS.DGActivityIndicatorViewBinding 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/ApiDefinition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Foundation; 3 | using ObjCRuntime; 4 | using UIKit; 5 | 6 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding 7 | { 8 | // @interface DGActivityIndicatorView : UIView 9 | [BaseType(typeof(UIView))] 10 | interface DGActivityIndicatorView 11 | { 12 | // -(id)initWithType:(DGActivityIndicatorAnimationType)type; 13 | [Export("initWithType:")] 14 | IntPtr Constructor(DGActivityIndicatorAnimationType type); 15 | 16 | // -(id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor; 17 | [Export("initWithType:tintColor:")] 18 | IntPtr Constructor(DGActivityIndicatorAnimationType type, UIColor tintColor); 19 | 20 | // -(id)initWithType:(DGActivityIndicatorAnimationType)type tintColor:(UIColor *)tintColor size:(CGFloat)size; 21 | [Export("initWithType:tintColor:size:")] 22 | IntPtr Constructor(DGActivityIndicatorAnimationType type, UIColor tintColor, nfloat size); 23 | 24 | // @property (nonatomic) DGActivityIndicatorAnimationType type; 25 | [Export("type", ArgumentSemantic.Assign)] 26 | DGActivityIndicatorAnimationType Type { get; set; } 27 | 28 | // @property (nonatomic, strong) UIColor * tintColor; 29 | [Export("tintColor", ArgumentSemantic.Strong)] 30 | UIColor TintColor { get; set; } 31 | 32 | // @property (nonatomic) CGFloat size; 33 | [Export("size")] 34 | nfloat Size { get; set; } 35 | 36 | // @property (readonly, nonatomic) BOOL animating; 37 | [Export("animating")] 38 | bool Animating { get; } 39 | 40 | // -(void)startAnimating; 41 | [Export("startAnimating")] 42 | void StartAnimating(); 43 | 44 | // -(void)stopAnimating; 45 | [Export("stopAnimating")] 46 | void StopAnimating(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | using Foundation; 5 | 6 | // This attribute allows you to mark your assemblies as “safe to link”. 7 | // When the attribute is present, the linker—if enabled—will process the assembly 8 | // even if you’re using the “Link SDK assemblies only” option, which is the default for device builds. 9 | 10 | [assembly: LinkerSafe] 11 | 12 | // Information about this assembly is defined by the following attributes. 13 | // Change them to the values specific to your project. 14 | 15 | [assembly: AssemblyTitle("Xamarin.iOS.DGActivityIndicatorViewBinding")] 16 | [assembly: AssemblyDescription("")] 17 | [assembly: AssemblyConfiguration("")] 18 | [assembly: AssemblyCompany("jzeferino")] 19 | [assembly: AssemblyProduct("")] 20 | [assembly: AssemblyCopyright("jzeferino - 2016")] 21 | [assembly: AssemblyTrademark("jzeferino")] 22 | [assembly: AssemblyCulture("")] 23 | 24 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 25 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 26 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 27 | 28 | [assembly: AssemblyVersion("1.0.*")] 29 | 30 | // The following attributes are used to specify the signing key for the assembly, 31 | // if desired. See the Mono documentation for more information about signing. 32 | 33 | //[assembly: AssemblyDelaySign(false)] 34 | //[assembly: AssemblyKeyFile("")] 35 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/Structs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ObjCRuntime; 3 | 4 | namespace Xamarin.iOS.DGActivityIndicatorViewBinding 5 | { 6 | [Native] 7 | public enum DGActivityIndicatorAnimationType : ulong 8 | { 9 | NineDots, 10 | TriplePulse, 11 | FiveDots, 12 | RotatingSquares, 13 | DoubleBounce, 14 | TwoDots, 15 | ThreeDots, 16 | BallPulse, 17 | BallClipRotate, 18 | BallClipRotatePulse, 19 | BallClipRotateMultiple, 20 | BallRotate, 21 | BallZigZag, 22 | BallZigZagDeflect, 23 | BallTrianglePath, 24 | BallScale, 25 | LineScale, 26 | LineScaleParty, 27 | BallScaleMultiple, 28 | BallPulseSync, 29 | BallBeat, 30 | LineScalePulseOut, 31 | LineScalePulseOutRapid, 32 | BallScaleRipple, 33 | BallScaleRippleMultiple, 34 | TriangleSkewSpin, 35 | BallGridBeat, 36 | BallGridPulse, 37 | RotatingSandglass, 38 | RotatingTrigons, 39 | TripleRings, 40 | CookieTerminator, 41 | BallSpinFadeLoader 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/Xamarin.iOS.DGActivityIndicatorViewBinding.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | {0E5586D9-48EE-4444-A13B-577474CB416D} 7 | {8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | Library 9 | Xamarin.iOS.DGActivityIndicatorViewBinding 10 | Xamarin.iOS.DGActivityIndicatorViewBinding 11 | Resources 12 | 13 | 14 | true 15 | full 16 | false 17 | bin\Debug 18 | DEBUG; 19 | prompt 20 | 4 21 | true 22 | 23 | 24 | true 25 | bin\Release 26 | 27 | prompt 28 | 4 29 | true 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Static 48 | False 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/libDGActivityIndicatorView.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jzeferino/Xamarin.iOS.DGActivityIndicatorView/1a4d07158340c996bb064637c850ea94411fe770/src/Xamarin.iOS.DGActivityIndicatorViewBinding/libDGActivityIndicatorView.a -------------------------------------------------------------------------------- /src/Xamarin.iOS.DGActivityIndicatorViewBinding/libDGActivityIndicatorView.linkwith.cs: -------------------------------------------------------------------------------- 1 | using ObjCRuntime; 2 | 3 | [assembly: LinkWith("libDGActivityIndicatorView.a", LinkTarget.Simulator | LinkTarget.Simulator64 | LinkTarget.ArmV7 | LinkTarget.Arm64, 4 | SmartLink = true, 5 | ForceLoad = false, 6 | Frameworks = "QuartzCore", 7 | LinkerFlags = "-ObjC")] 8 | -------------------------------------------------------------------------------- /tools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | --------------------------------------------------------------------------------