Skip to content

Instantly share code, notes, and snippets.

public class BackgroundImagePage : ContentPage
{
public BackgroundImagePage() =>
Content = new Grid // this is the outer grid
{
Children =
{
// this image fills the outer grid and sits behind the 'original' content
new Image { Source = new Uri("https://tinyurl.com/msdevbg"), Aspect = Aspect.AspectFill },
@rdavisau
rdavisau / NSNotificationCenterExtensions.cs
Created December 25, 2016 08:01
Provides `IObservable` semantics for `NSNotificationCenter` subscriptions
public static class NSNotificationCenterExtensions
{
public static IObservable<NSNotification> ObserveNotification(this NSNotificationCenter notificationCenter, NSString notificationKey) =>
Observable.Create<NSNotification>(obs =>
{
var nsObserver = notificationCenter.AddObserver(notificationKey, obs.OnNext);
return Disposable.Create(() => notificationCenter.RemoveObserver(nsObserver));
});
}
@rdavisau
rdavisau / 💣.cs
Created October 24, 2016 20:13
HockeyApp UnobservedTaskException
using System;
using System.Threading.Tasks;
using Foundation;
using HockeyApp.iOS;
using UIKit;
namespace HockeyCrash
{
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
<Query Kind="Program">
<Reference>&lt;RuntimeDirectory&gt;\System.Windows.Forms.dll</Reference>
<Reference>&lt;RuntimeDirectory&gt;\System.Security.dll</Reference>
<Reference>&lt;RuntimeDirectory&gt;\System.Configuration.dll</Reference>
<Reference>&lt;RuntimeDirectory&gt;\Accessibility.dll</Reference>
<Reference>&lt;RuntimeDirectory&gt;\System.Runtime.Serialization.Formatters.Soap.dll</Reference>
<Reference>&lt;RuntimeDirectory&gt;\System.Deployment.dll</Reference>
<NuGetReference>DynamicLINQ</NuGetReference>
<NuGetReference>DynamicQuery</NuGetReference>
<NuGetReference>Newtonsoft.Json</NuGetReference>
@rdavisau
rdavisau / dark-style-from-vs-2015.json
Created February 25, 2016 04:26
dark-style-from-vs-2015.json
{
"name":"dark-style-from-vs-2015",
"version":"1.0",
"description":"Imported color scheme",
"originator":"Imported from /Users/rdavis/Library/XamarinStudio-5.0/HighlightingSchemes/dark-style-from-vs-2015.vssettings",
"colors":[
{"name": "Background(Read Only)", "color":"#1E1E1E" },
{"name": "Search result background", "color":"#005F60" },
{"name": "Search result background (highlighted)", "color":"#007F80" },
{"name": "Fold Square", "color":"#A5A5A5" },
@rdavisau
rdavisau / AcceptSelfSignedCertificateWebView.cs
Created December 3, 2015 00:34
A UIWebView subclass for Xamarin iOS that accepts self-signed certificates. Note the caveats at https://ryandavis.io/allowing-uiwebview-to-accept-self-signed-certificates
public class AcceptSelfSignedCertificateWebView : UIWebView
{
private NSUrlRequest _failedRequest;
private bool _authenticated;
private bool OnShouldStartLoad(UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navigationType)
{
var result = _authenticated;
if (!_authenticated)
{
@rdavisau
rdavisau / GetXamarinApps.cs
Created November 5, 2015 04:31
Checks your iTunes folder for any .ipas that look like Xamarin apps
void Main()
{
var myXamarinApps =
Directory
.EnumerateFiles(Path.Combine(Environment.GetEnvironmentVariable("HOMEPATH"), @"Music\iTunes\iTunes Media\Mobile Applications"), "*.ipa")
.Where(f=> ZipFile.Open(f, ZipArchiveMode.Read)
.GetRawEntries()
.Any(e=> e.FullName.Contains(".monotouch-")));
foreach (var app in myXamarinApps)
@rdavisau
rdavisau / EnumerableStream.cs
Created October 26, 2015 12:18
EnumerableStream.cs
/// <summary>
/// Provides a convenience method for constructing an EnumerableStream<T>.
/// </summary>
public static class EnumerableStream
{
public static EnumerableStream<T> Create<T>(IEnumerable<T> source, Func<T, List<byte>> serializer)
{
return new EnumerableStream<T>(source, serializer);
}
}
@rdavisau
rdavisau / DU.fsx
Created August 10, 2015 07:10
Akka.Cluster + Discriminated Union test
open System
open System.IO
open System.Net
open Akka
open Akka.Actor
open Akka.FSharp
open Akka.Remote
open Akka.Actor
open Akka.Cluster
@rdavisau
rdavisau / SocketHelpersDemo.linq
Last active August 29, 2015 14:21
LINQPad script demonstrating how to use service discovery and the JsonProtocolMessenger
<Query Kind="Program">
<NuGetReference>Newtonsoft.Json</NuGetReference>
<NuGetReference Prerelease="true">rda.SocketHelpers</NuGetReference>
<Namespace>SocketHelpers.Discovery</Namespace>
<Namespace>SocketHelpers.Messaging</Namespace>
<Namespace>Sockets.Plugin</Namespace>
<Namespace>Splat</Namespace>
<Namespace>System.Reactive.Linq</Namespace>
<Namespace>System.Threading.Tasks</Namespace>
</Query>