Skip to content

Instantly share code, notes, and snippets.

View vinaysshenoy's full-sized avatar

Vinay Shenoy vinaysshenoy

  • https://www.qweebi.com
  • Bangalore, India
View GitHub Profile
@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 / 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 / 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 / ReduceTest.kt
Created April 28, 2018 06:49
Using reduce to find a single element in an Observable chain
import io.reactivex.Observable
data class Item(val priority: Int)
Observable.fromArray(Item(10), Item(5), Item(25))
.reduce { first, next -> if(first.priority < next.priority) first else next }
.toSingle() //This converts a Maybe to a Single that will emit an error if there are no elements in the stream
.subscribe({ println("Least priority: $it") }, {})
@vinaysshenoy
vinaysshenoy / Contract.kt
Last active May 8, 2018 07:08
MVP-Rx-Kotlin
sealed class PresenterToViewMsg
data class Msg1(val prop: Int): PresenterToViewMsg()
data class Msg2(val prop: String): PresenterToViewMsg()
sealed class ViewToPresenterMsg
data class Msg3(val prop: Int): ViewToPresenterMsg()
data class Msg4(val prop: String): ViewToPresenterMsg()
@vinaysshenoy
vinaysshenoy / README.md
Created May 21, 2018 09:22 — forked from tombigel/README.md
How to Change Open Files Limit on OS X and macOS Sierra (10.8 - 10.12)

How to Change Open Files Limit on OS X and macOS

This text is the section about OS X Yosemite (which also works for macOS Sierra) from https://docs.basho.com/riak/kv/2.1.4/using/performance/open-files-limit/#mac-os-x

The last time i visited this link it was dead (403), so I cloned it here from the latest snapshot in Archive.org's Wayback Machine https://web.archive.org/web/20170523131633/https://docs.basho.com/riak/kv/2.1.4/using/performance/open-files-limit/

Mac OS X

To check the current limits on your Mac OS X system, run:

@vinaysshenoy
vinaysshenoy / TextAnnotations.kt
Created October 12, 2018 11:19
Android Resource Annotation Applier
package com.vinaysshenoy.util
import android.content.Context
import android.graphics.Typeface
import android.support.annotation.StringRes
import android.support.v4.content.res.ResourcesCompat
import android.text.Annotation
import android.text.Spannable
import android.text.SpannableString
import android.text.SpannedString
@vinaysshenoy
vinaysshenoy / build.gradle
Last active November 25, 2018 07:23
Publish To Maven (S3 Backed) using new plugin
apply from: 'secrets.gradle'
group 'com.vinaysshenoy'
version '1.0-SNAPSHOT'
buildscript {
ext {
common = [
kotlin: '1.3.10'
]
@vinaysshenoy
vinaysshenoy / uitest.py
Last active June 27, 2019 11:22
Run UI tests
# Prerequisites
# - Python 3
# - *nix OS
# - git must be available on the command line
# - Android SDK and Java 8 must be setup
# - Repository SSH fingerptint must be added to ~/.ssh/known_hosts
# - ANDROID_SDK_ROOT env variable must be set
# - An AVD with the name "uitest" must be pre-created
# - mongodb started and running on port 27017
@vinaysshenoy
vinaysshenoy / coloredLogcat.md
Created July 1, 2019 03:25 — forked from ravidsrk/coloredLogcat.md
Colored Logcat - Android Studio

#####Logcat Colors for IntelliJ Darcula Theme (original post)

  • Preferences -> Editor -> Android Logcat
  • "Save As" scheme
  • Uncheck "Use inherited attributes" option
  • Edit foreground color with the following
Debug   : #6897BB 
Info : #6A8759