Skip to content

Commit

Permalink
Debug: Log cached labels for context-aware strings
Browse files Browse the repository at this point in the history
Allows for better understanding of logs.
  • Loading branch information
d4rken committed May 2, 2024
1 parent 113b68e commit 6567148
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions app-common/src/main/java/eu/darken/sdmse/common/ca/CaString.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,28 @@ internal class CachedCaString(val resolv: (Context) -> String) : CaString {
return cache
}
}

override fun toString(): String = if (::cache.isInitialized) {
"CachedCaString(\"$cache\")"
} else {
"CachedCaString(${Integer.toHexString(hashCode())})"
}
}

fun caString(provider: (Context) -> String): CaString = object : CaString {
override fun get(context: Context): String = provider(context)
}

fun caString(direct: String): CaString = object : CaString {
override fun get(context: Context): String = direct
override fun toString(): String = "CaString(\"$direct\")"
}

fun CaString.cache(): CaString = CachedCaString { this.get(it) }

fun String.toCaString(): CaString = caString { this }
fun String.toCaString(): CaString = caString(this)

fun ((Context) -> String).toCaString(): CaString = caString { this(it) }
fun ((Context) -> String).toCaString(): CaString = caString { this(it) }.cache()

fun Int.toCaString(): CaString = caString { it.getString(this) }.cache()

Expand Down

0 comments on commit 6567148

Please sign in to comment.