Is there a way (or better what is the best way) to...
# random
m
Is there a way (or better what is the best way) to do get rid of the
prefix
in each icon element?
Copy code
object Icons {
    private const val PREFIX = "drawable/"
    const val LOGO = PREFIX + "icon.xml"
    const val AGAIN = PREFIX + "again.xml"
}
Is there a better way and how can I reduce the prefix redundancy? I want to call
Icons.LOGO
which represents
drawable/icon.xml
and this with many other types.
y
Copy code
interface Prefixing {
  val prefix: String
  operator fun String.getValue(thisRef: Prefixing, property: KProperty<*>) = prefix + this
}

object Icons: Prefixing {
  override val prefix = "drawable/"
  val LOGO by "icon.xml"
  val AGAIN by "again.xml"
}
🙌 2
Dealing with raw strings feels a little precarious though, so maybe you want to have some value class XmlFile that must be constructed with a prefix and a filename, and which is simply represented by a single string. Then, you can define new methods that replace the Android ones but only operate on the XmlFile typed values
l
Maybe wait for const functions?