Skip to content

Instantly share code, notes, and snippets.

View felipebaltazar's full-sized avatar
👋

Felipe Baltazar felipebaltazar

👋
View GitHub Profile
public async Task AnimateAsync(int totalMs = 500)
{
var animTime = totalMs < 10 ? 500 : totalMs;
var currentMs = 0;
while (currentMs <= animTime)
{
var valueStep = (currentMs * CurrentValue) / animTime;
RefreshChartValues(valueStep, MaxValue);
canvasView.InvalidateSurface();
valueLabel.Text = $"{Math.Truncate(valueStep)}/{MaxValue}";
@felipebaltazar
felipebaltazar / .dependabot-config.yml
Created October 18, 2019 01:12
simple dependabot config
version: 1
update_configs:
- package_manager: "dotnet:nuget"
directory: "/"
update_schedule: "weekly"
default_labels:
- "dependency"
target_branch: "dev"
internal static class JavaObjectExtensions
{
public static bool IsDisposed(this Java.Lang.Object obj)
{
return obj.Handle == IntPtr.Zero;
}
public static bool IsAlive(this Java.Lang.Object obj)
{
if (obj == null)
return false;
<RefreshView IsRefreshing="{Binding YourIsRefreshingCommand}" Command="{Binding YourRefreshCommand}">
<CollectionView ItemsSource="{Binding YourCollectionItems}">
<!--All your collection view logic-->
</CollectionView>
</RefreshView>
@felipebaltazar
felipebaltazar / ConcentricOnboardView.cs
Last active November 4, 2019 04:01
ConcentricOnboardView pt1
public sealed class ConcentricOnboardView : SKCanvasView
{
...
protected override void OnPaintSurface(SKPaintSurfaceEventArgs e)
{
base.OnPaintSurface(e);
info = e.Info;
surface = e.Surface;
canvas = surface.Canvas;
@felipebaltazar
felipebaltazar / ConcentricOnboardView.cs
Created November 4, 2019 04:19
ConcentricOnboardView pt2
public sealed class ConcentricOnboardView : SKCanvasView
{
...
public static readonly BindableProperty ButtonDiameterProperty =
BindableProperty.Create(nameof(ButtonDiameter), typeof(int), typeof(ConcentricOnboardView),
defaultValue: 200, propertyChanged: OnButtonSizeChanged);
public static readonly BindableProperty CommandProperty =
BindableProperty.Create(nameof(Command), typeof(ICommand), typeof(ConcentricOnboardView),
defaultValue: default(ICommand));
@felipebaltazar
felipebaltazar / MainPage.xaml
Created November 4, 2019 04:22
MainPage pt1
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:XamConcentricOnboarding.Views.Controls"
mc:Ignorable="d"
x:Class="XamConcentricOnboarding.MainPage">
<Grid>
<Grid.RowDefinitions>
@felipebaltazar
felipebaltazar / ConcentricOnboardView.cs
Created November 4, 2019 04:28
ConcentricOnboardView pt4
public sealed class ConcentricOnboardView : SKCanvasView
{
private SKRect buttonRect = new SKRect();
private SKColor backgroundColor;
private SKColor buttonColor;
private SKSurface surface;
private SKImageInfo info;
private SKCanvas canvas;
public ConcentricOnboardView()
@felipebaltazar
felipebaltazar / MainPage.xaml
Created November 4, 2019 04:49
MainPage pt2
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:XamConcentricOnboarding.Views.Controls"
mc:Ignorable="d"
x:Class="XamConcentricOnboarding.MainPage">
<Grid>
@felipebaltazar
felipebaltazar / MainPage.cs
Created November 4, 2019 04:51
MainPage pt3
public partial class MainPage : ContentPage
{
public MainPage()
{
var vm = new MainPageViewModel();
this.BindingContext = vm;
InitializeComponent();
}
private void OnAnimationStart(object sender, EventArgs e)