Skip to content

Instantly share code, notes, and snippets.

View vinaysshenoy's full-sized avatar

Vinay Shenoy vinaysshenoy

View GitHub Profile
@vinaysshenoy
vinaysshenoy / RxEmissionDelay.java
Created December 19, 2016 16:44
Space out emissions from an Observable by a fixed duration
public static <T> Observable<T> delayEmissions(Observable<T> observable, final long period, final TimeUnit timeUnit) {
return observable.compose(new Observable.Transformer<T, T>() {
@Override
public Observable<T> call(Observable<T> observable) {
return Observable.zip(observable, Observable.interval(period, timeUnit), new Func2<T, Long, T>() {
@Override
public T call(T value, Long tick) {
return value;
}
@vinaysshenoy
vinaysshenoy / WebWindow.cs
Created December 3, 2016 12:53 — forked from drawcode/WebWindow.cs
Unity WebWindow (browser within unity editor window, helpful for tools that require a web view or more beyond basic controls).
using UnityEngine;
using UnityEditor;
using System;
using System.Reflection;
public class WebWindow : EditorWindow {
static Rect windowRect = new Rect(100,100,800,600);
static BindingFlags fullBinding = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
static StringComparison ignoreCase = StringComparison.CurrentCultureIgnoreCase;
@vinaysshenoy
vinaysshenoy / MatrixTestView.java
Created November 22, 2016 10:08
Gist to demonstrate using Matrixes to handle gestures for child elements in a View
package com.vinaysshenoy.matrixviewtest;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PointF;
git reflog expire --all --expire=now
git gc --prune=now --aggressive
@vinaysshenoy
vinaysshenoy / EventBus.java
Created September 8, 2016 05:27 — forked from imran0101/EventBus.java
EventBus using RxJava. Bunch of subjects and observers.
import rx.Observable;
import rx.Subscriber;
import rx.Subscription;
import rx.functions.Action0;
import rx.subjects.PublishSubject;
import rx.subjects.SerializedSubject;
/**
* An object reference of EventBus
@vinaysshenoy
vinaysshenoy / MainActivity.java
Last active August 16, 2016 15:02
Transform Subject for RxJava that allows creating a Subject that can transform events
package com.vinaysshenoy.rxtest;
import android.os.Bundle;
import android.support.v4.util.Pair;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
@vinaysshenoy
vinaysshenoy / StateListDrawableCompat.java
Created May 15, 2016 16:00
Class that allows backward compatible creation of StateListDrawables containing vector assets
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.drawable.DrawableContainer;
import android.graphics.drawable.StateListDrawable;
import android.os.Build;
import android.os.Looper;
import android.support.annotation.DrawableRes;
import android.support.annotation.MainThread;
@vinaysshenoy
vinaysshenoy / EventBus.java
Created May 11, 2016 18:12
EventBus using RxJava that allows delivering events to the right subscribers
package com.vinaysshenoy.utils;
import android.support.annotation.NonNull;
import android.support.v4.util.Pair;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@vinaysshenoy
vinaysshenoy / NestedLoopBreak.java
Created March 18, 2016 10:54
Break nested loops
mainLoop:
while (goal <= 100) {
for (int i = 0; i < goal; i++) {
if (points > 50) {
break mainLoop;
}
points += i;
}
}
@vinaysshenoy
vinaysshenoy / WifiAddress.java
Last active March 11, 2016 03:12
Get external IP address
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int ipAddress = wifiManager.getConnectionInfo().getIpAddress();
final String formatedIpAddress = String.format(Locale.US, "%d.%d.%d.%d", (ipAddress & 0xff), (ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));