Skip to content

Instantly share code, notes, and snippets.

View andrewmunn's full-sized avatar
🎯
Focusing

Andrew Munn andrewmunn

🎯
Focusing
  • Anthropic
  • San Francisco
  • 23:55 (UTC -07:00)
  • LinkedIn in/andrewmunn
View GitHub Profile
@andrewmunn
andrewmunn / toSingleLineStringForDisplayV1.kt
Last active February 28, 2018 07:08
toSingleLineStringForDisplay in Kotlin v1
fun toSingleLineStringForDisplay(): String {
val sb = StringBuilder()
sb.append(street1).append(", ")
street2?.let { sb.append(it).append(", ") }
street3?.let { sb.append(it).append(", ") }
street4?.let { sb.append(it).append(", ") }
sb.append(city).append(", ")
.append(state).append(" ")
.append(postalCode)
return sb.toString()
@andrewmunn
andrewmunn / toSingleLineStringForDisplayV2.kt
Last active February 28, 2018 07:07
toSingleLineStringForDisplay in Kotlin v2
fun toSingleLineStringForDisplay() = buildString {
append(street1).append(", ")
street2?.let { append(it).append(", ") }
street3?.let { append(it).append(", ") }
street4?.let { append(it).append(", ") }
append(city).append(", ")
append(state).append(" ")
append(postalCode)
}
@andrewmunn
andrewmunn / PostalAddress.kt
Last active February 28, 2018 07:13
PostalAddress in Kotlin
/**
* Encapsulates a postal address.
*/
data class PostalAddress(
val name: String? = null,
val street1: String,
val street2: String? = null,
val street3: String? = null,
val street4: String? = null,
val city: String,
@andrewmunn
andrewmunn / PostalAddress.java
Last active February 28, 2018 07:06
PostalAddress in Java using AutoValue
/**
* Encapsulates a postal address.
*/
@AutoValue
public abstract class PostalAddress {
public static Builder builder() {
return new AutoValue_PostalAddress.Builder();
}
@andrewmunn
andrewmunn / MyActivity.kt
Created September 26, 2017 01:40
Using Keyboard Manager
override fun onCreate(savedInstanceState: Bundle?) {
keyboardManager.status()
.to(ObservableScoper(this)) // AutoDispose https://github.com/uber/AutoDispose
.subscribe { showAnnoyingBanner(visible = KeyboardStatus.CLOSED == it) }
}
@andrewmunn
andrewmunn / KeyboardManager.kt
Last active June 29, 2021 16:07
Android Keyboard Status Observable
/**
* Manages access to the Android soft keyboard.
*/
class KeyboardManager @Inject constructor(private val activity: Activity) {
/**
* Observable of the status of the keyboard. Subscribing to this creates a
* Global Layout Listener which is automatically removed when this
* observable is disposed.
*/