Skip to content

Instantly share code, notes, and snippets.

View matthewrkula's full-sized avatar

Matt Kula matthewrkula

  • OpenSea
  • Denver, CO
View GitHub Profile
syntax enable
colorscheme elflord
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set paste
set number
let mapleader = "\<Space>"
@matthewrkula
matthewrkula / build.gradle
Created January 9, 2020 23:55
Kotlin Coroutines Playground Setup
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.41'
}
group 'CoroutinesPlayground'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
@BindingAdapter("onTextChanged")
fun onTextChanged(inputText: InputText, block: (String) -> Unit) {
inputText.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(CharSequence s, int start, int before, int count) {
block(s.toString())
}
})
}
@matthewrkula
matthewrkula / VariableHeightTransitionalLayout.kt
Created February 17, 2022 05:21
A composable layout which transitions between two separate composables including their heights
// Variable Heights
package com.mattkula.layouts
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
data class Grouping(
val groups: List<Group>,
)
data class Group(
val standings: List<Standings>,
)
data class Standings(
object CancellableScope
interface CancellableUseCase {
context(CancellableScope)
suspend operator fun invoke(): Result
}
suspend fun <T> Flow<T>.collectLatestSafe(action: suspend context(CancellableScope) (value: T) -> Unit) {
collectLatest { item ->
with(CancellableScope) {