Skip to content

Instantly share code, notes, and snippets.

View vinaysshenoy's full-sized avatar

Vinay Shenoy vinaysshenoy

View GitHub Profile
@vinaysshenoy
vinaysshenoy / Test.kt
Last active March 27, 2018 08:54
Shared observable test
import io.reactivex.Observable
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.TimeUnit.SECONDS
import java.util.concurrent.atomic.AtomicInteger
val counter = AtomicInteger()
val source = Observable
.fromCallable {
println("\nCalled")
val number = counter.incrementAndGet()
@vinaysshenoy
vinaysshenoy / GsonExtensions.kt
Created December 30, 2017 04:31
Gson Extension Functions
package com.vinaysshenoy
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonToken.NULL
inline fun JsonReader.parseObject(keys: Set<String>, block: JsonReader.(String) -> Unit) {
beginObject()
while (hasNext()) {
val key = nextName()
if (key in keys) {
@vinaysshenoy
vinaysshenoy / ActivityLifecycles.kt
Last active November 24, 2017 09:31
Reactive Activity Lifecycles
package com.vinaysshenoy.android.arch
import com.vinaysshenoy.android.arch.Event.DESTROY
import com.vinaysshenoy.android.arch.Event.PAUSE
import com.vinaysshenoy.android.arch.Event.RESUME
import com.vinaysshenoy.android.arch.Event.START
import com.vinaysshenoy.android.arch.Event.STOP
import io.reactivex.Observable
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.subjects.PublishSubject
@vinaysshenoy
vinaysshenoy / .bash_profile
Created October 26, 2017 10:30
Run emulator via command line
# Add Android SDK Emulator binary to path
export PATH=:<Path To Android SDK>/emulator
# Add alias for running any emulator
alias run_avd='function _run_avd(){ emulator -avd $1 -dns-server 8.8.8.8; };_run_avd'
# To run emulator via command line, there are 2 steps
# $emulator -list-avds
# Above command will list al AVDS available, copy the one you want to launch
@vinaysshenoy
vinaysshenoy / MatrixViewTestFinal.java
Created August 6, 2017 16:27
Final MatrixTestViewTest
package com.vinaysshenoy.multitouch.widget.matrixtest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.support.annotation.Nullable;
@vinaysshenoy
vinaysshenoy / MatrixTextView.java
Last active August 5, 2017 17:47
Custom view for playing with matrices
package com.vinaysshenoy.multitouch.widget.matrixtest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import appleseed as asr
mesh = asr.MeshObject("my_mesh", {})
print mesh
# Vertices
v0 = asr.Vector3f([0.0, 0.0, 0.0])
v1 = asr.Vector3f([1.0, 0.0, 0.0])
v2 = asr.Vector3f([0.0, 0.0, 1.0])
@vinaysshenoy
vinaysshenoy / BaseActivity.java
Created July 8, 2017 05:31
Fix incorrect density reporting
@Override
protected void attachBaseContext(Context newBase) {
final Resources resources = newBase.getResources();
final DisplayMetrics displayMetrics = resources.getDisplayMetrics();
if (displayMetrics.densityDpi != (int) displayMetrics.xdpi) {
Logger.debug(TAG, "Override configuration!");
final Configuration configuration = resources.getConfiguration();
configuration.densityDpi = (int) displayMetrics.xdpi;
@vinaysshenoy
vinaysshenoy / Filter.java
Created May 20, 2017 11:13
Sieve - Utility classes to allow filtering a master list of items
package com.vinaysshenoy.sieve;
import java.util.List;
/**
* Created by vinaysshenoy on 03/05/17.
*/
public interface Filter<T> {
@vinaysshenoy
vinaysshenoy / SpToPxConvert.java
Created February 21, 2017 05:28
SpPxConvertion
public static float spToPx(float sp) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, Resources.getSystem().getDisplayMetrics());
}