Skip to content

Instantly share code, notes, and snippets.

View benoitjadinon's full-sized avatar

Benoit Jadinon benoitjadinon

View GitHub Profile
using R = YOUR_ANDROID_PROJECT_HERE.Resource;
// so you can do R.String.Ok instead of Resource.String.Ok, so that it looks like native Android a bit more
@benoitjadinon
benoitjadinon / DebugToastOpenedActivities.java
Last active September 10, 2015 09:15
DebugToastOpenedActivities, toasting activities names as they open (in debug)
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
/**
* // Usage :
* // in your app's Application
*
@benoitjadinon
benoitjadinon / BindableObjectExtensions.cs
Last active September 16, 2015 23:46
Xamarin.Forms: Chainable and Strongly-Typed SetBinding() Extension
public static class BindableObjectExtensions
{
// chainable, with a string for property
// usage : new Button().WithBinding(Button.CommandProperty, "SomeCommand"),
public static T WithBinding<T>(this T obj,
BindableProperty bindableProperty,
string path,
BindingMode mode = BindingMode.Default,
IValueConverter converter = null,
@benoitjadinon
benoitjadinon / GitRenameAllTags.cs
Created January 25, 2012 22:17
Mono command line pseudo-bash script, that renames git tags by adding a 'v'
using System;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace GitRenameAllTags
{
class MainClass
{
public static void Main (string[] args)
@benoitjadinon
benoitjadinon / closures.cs
Last active November 10, 2015 20:45
functional port exercise, based on the provided Kotlin sample
//https://dotnetfiddle.net/KXXMef
// shorter but less generic :
// https://dotnetfiddle.net/R3m1h2
using System;
using System.Collections;
using System.Linq;
public class Program
{
@benoitjadinon
benoitjadinon / AbstractRoboController.java
Last active February 8, 2016 16:59
Android : Roboguice base controller class containing lifecycle methods ready to override, to avoid explicitly using lifecycle events @observes everywhere
package roboutils;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import com.google.inject.Inject;
@benoitjadinon
benoitjadinon / AbstractRxRoboController.java
Last active March 21, 2016 18:05
extends [AbstractRoboController](https://gist.github.com/benoitjadinon/3f1932163c65b4c31be0) and adds RxLifecycle info and helpers to create subscriptions
package roboutils;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.CheckResult;
import android.support.annotation.NonNull;
import com.trello.rxlifecycle.ActivityEvent;
import com.trello.rxlifecycle.ActivityLifecycleProvider;
@benoitjadinon
benoitjadinon / RoboLifecycleLogger.java
Last active April 18, 2016 10:20
prints the lifecycle of the class it is injected into
import android.app.Activity;
import android.util.Log;
import com.google.inject.Inject;
import roboguice.activity.event.*;
import roboguice.context.event.*;
import roboguice.event.Observes;
import roboguice.inject.ContextSingleton;
package com.bja.whatever;
import android.support.design.widget.TextInputLayout;
import android.widget.Button;
import android.widget.EditText;
import com.jakewharton.rxbinding.view.RxView;
import com.jakewharton.rxbinding.widget.RxTextView;
import java.util.Arrays;
public static class UIStoryboardExtensions
{
// Storyboard.InstantiateViewController<LoginController>()
// instead of :
// Storyboard.InstantiateViewController(nameof(LoginController)) as LoginController
// instead of :
// Storyboard.InstantiateViewController("LoginController") as LoginController
public static T InstantiateViewController<T>(this UIStoryboard @this)
where T : UIViewController