View build.gradle
final tree = fileTree("./assets").include('**/*@*dpi.png')
String normalize(String src) {
return src.replaceAll(/ /, "_")
}
tree.each { f ->
final m = f.name =~ /(.*)@(.*dpi)\.png/
final name = m[0][1]
final density = m[0][2]
View EmptyRecyclerView.java
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.View;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class EmptyRecyclerView extends RecyclerView {
@Nullable View emptyView;
View RxMediaPlayer.java
/*
MIT License
Copyright (c) 2015 Adel Nizamutdinov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
View RxMediaRecorder.java
import android.media.MediaRecorder;
import android.support.annotation.NonNull;
import com.f2prateek.rx.android.schedulers.AndroidSchedulers;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import rx.Observable;
import rx.subscriptions.Subscriptions;
public class RxMediaRecorder {
View mipmap-migrator.gradle
task migrateMipmap << {
fileTree('src').include('**/res/drawable*/ic_launcher.png').each { icon ->
final p = file(icon.parent.replaceAll("drawable", "mipmap"))
p.mkdirs()
final dest = new File(p, icon.name)
icon.renameTo(dest)
}
}
View android_backup.sh
#!/bin/sh
set -e
appId=$1
dst=/sdcard/container-${appId}
tar=/sdcard/container-${appId}.tar.gz
backup_file=${appId}.ab
rm -f $backup_file
View lens.kt
data class Lens<S, A>(val get: (S) -> A, val set: (A, S) -> S)
fun <A, B, C> Lens<A, B>.compose(that: Lens<C, A>): Lens<C, B> =
Lens({ this.get(that.get(it)) }, { c, a -> that.set(this.set(c, that.get(a)), a) })
fun <A, B> Lens<A, B>.traverse(): Lens<List<A>, List<B>> =
Lens({ it.map { get(it) } }, { bs, aas -> bs.zip(aas).map { this.set(it.first, it.second) } })
object Play {
data class Point(val x: Double, val y: Double) {
View gc.kt
import rx.Observable
import rx.Subscriber
import rx.schedulers.Schedulers
import java.lang.ref.PhantomReference
import java.lang.ref.ReferenceQueue
fun gcTriggers(): Observable<Unit> =
Observable.create(triggerLoop())
.subscribeOn(Schedulers.newThread())
View Cargo.toml
[package]
name = "hello"
version = "0.1.0"
authors = ["adelnizamutdinov"]
[lib]
crate-type = ["dylib"]
[dependencies]
jni-sys = "0.1.0"
View cursor.kt
inline fun <T> Cursor.fold(zero: T, f: (Cursor, T) -> T): T =
if (moveToFirst()) {
moveToPrevious()
var accum = zero
while (moveToNext()) {
accum = f(this, accum)
}
accum
} else zero