Skip to content

Instantly share code, notes, and snippets.

View cypressious's full-sized avatar
🤖
beep bop

Kirill Rakhman cypressious

🤖
beep bop
View GitHub Profile
@cypressious
cypressious / ExampleApplication.java
Last active November 24, 2016 08:50 — forked from pepyakin/ExampleApplication.java
Gist which should prevent leaks of Activity in ClipboardUIManager.
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= 21) {
try {
Class<?> cls = Class.forName("android.sec.clipboard.ClipboardUIManager");
Method m = cls.getDeclaredMethod("getInstance", Context.class);
m.setAccessible(true);
Object o = m.invoke(null, this);
} catch (Exception ignored) { }
val mutex = Semaphore(0)
val source = Observable.interval(200, TimeUnit.MILLISECONDS).take(10)
val delayed = source.delayUntil(3L)
println("${System.currentTimeMillis()}: start")
delayed.subscribe(
{ println("${System.currentTimeMillis()}: $it") },
{ println("Failed with $it") },
{ mutex.release() }
)
fun <T> Observable<T>.delayUntil(value: T): Observable<T> {
val replaySubject = ReplaySubject.create<T>()
val sharedObservable = this.publish().autoConnect(2)
sharedObservable.subscribe(replaySubject)
val delayObservable = sharedObservable
.first { it == value }
.concatWith(Observable.error(IllegalArgumentException()))
@cypressious
cypressious / HockeySender.kt
Last active August 29, 2015 14:27 — forked from ashtom/HockeySender.java
Custom ReportSender for HockeyApp and ACRA with OkHTTP in Kotlin
package net.hockeyapp.android.demo
import com.squareup.okhttp.FormEncodingBuilder
import com.squareup.okhttp.OkHttpClient
import com.squareup.okhttp.Request
import org.acra.ACRA
import org.acra.ReportField
import org.acra.collector.CrashReportData
import org.acra.sender.ReportSender
import java.util.Date
@cypressious
cypressious / MarkerMapFragment.java
Created July 23, 2014 15:44
Retrolambda build fail
package com.cypressworks.retrolambdafailure;
import com.google.android.gms.maps.SupportMapFragment;
public class MarkerMapFragment extends SupportMapFragment {
Runnable r = () -> {
};
}