Skip to content

Instantly share code, notes, and snippets.

View xxfast's full-sized avatar

Isuru Rajapakse xxfast

View GitHub Profile
@xxfast
xxfast / decorator-proxy.kt
Created August 18, 2022 17:19
Decorator / Proxy design pattern need not apply?
data class Request(val url: String)
data class Response(val code: Int, val body: String)
typealias Operation = (request: Request) -> Unit
typealias Input = (Request) -> Response?
typealias Output = (Request, Response) -> Unit
class Process(val output: Output? = null, val input: Input)
class Processor {
@xxfast
xxfast / DateVisualTransformation.kt
Last active June 30, 2023 17:38
Jetpack compose text visual transformation
import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.input.TransformedText
import androidx.compose.ui.text.input.OffsetMapping
import androidx.compose.ui.text.AnnotatedString
/**
* Visually transform a string as YYYY-MM-DD.
*/
object DateVisualTransformation : VisualTransformation {
@xxfast
xxfast / PolymorphicParceler.kt
Last active September 2, 2020 12:57
A Polymorphic Parceler that enable to parcel any polymorphic type with @parcelize
import android.os.Parcel
import android.os.Parcelable
import android.os.Parcelable.Creator
import kotlinx.android.parcel.Parceler
/**
* Enables any polymorphic type to be parcelled given they share an interface
*
* @sample
* ```kotlin