Skip to content

Instantly share code, notes, and snippets.

@sgallego
sgallego / YearInputFilter.kt
Last active December 13, 2019 21:57
InputFilter to enter years from 1900 onwards
val yearInputFilter: InputFilter = object : InputFilter {
override fun filter(source: CharSequence?, start: Int, end: Int, dest: Spanned?, dStart: Int, dEnd: Int): CharSequence {
if (source.isNullOrEmpty()) { //Delete. Do nothing.
return source ?: ""
} else {
val p1 = dest?.toString()?.take(dStart) ?: ""
val p2 = dest?.takeLast(dest.toString().length - dEnd)
val endString = p1 + source + p2
@sgallego
sgallego / SharedPreferenceLiveData.kt
Created June 27, 2018 09:28 — forked from rharter/SharedPreferenceLiveData.kt
Creates LiveData objects that observe a value in SharedPreferences while they have active listeners.
import android.arch.lifecycle.LiveData
import android.content.SharedPreferences
abstract class SharedPreferenceLiveData<T>(val sharedPrefs: SharedPreferences,
val key: String,
val defValue: T) : LiveData<T>() {
private val preferenceChangeListener = SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
if (key == this.key) {
value = getValueFromPreferences(key, defValue)