This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Event<T> { | |
private val handlers = arrayListOf<(T) -> Unit>() | |
operator fun plusAssign(handler: (T) -> Unit) { handlers.add(handler) } | |
operator fun invoke(value: T) { for (handler in handlers) handler(value) } | |
} | |
val e = Event<String>() // define event | |
fun main(args : Array<String>) { | |
e += { println(it) } // subscribe |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Repeater(val interval: Long, | |
val context: CoroutineContext = UI, | |
val block: () -> Unit | |
) { | |
private var updatingJob: Job? = null | |
private val updatingJobLock = Any() | |
fun start() = synchronized(updatingJobLock) { | |
if (updatingJob != null && updatingJob!!.isActive) { | |
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.support.v7.util.DiffUtil | |
open class DiffUtilCallback<T>(val oldList: List<T>, val newList: List<T>) : DiffUtil.Callback() { | |
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int) | |
= oldList[oldItemPosition] == newList[newItemPosition] | |
override fun getOldListSize() | |
= oldList.size |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.graphics.Rect; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.View; | |
public class GridSpacingDecoration extends RecyclerView.ItemDecoration { | |
private int cols; | |
private int spacing; | |
public GridSpacingDecoration(int cols, int spacing) { |
NewerOlder