Trying to create a custom NavType for enum list. `...
# android
c
Trying to create a custom NavType for enum list.
Copy code
class EnumListType<T : Enum<T>> : NavType<List<T>>(true) {

    @Suppress("TYPE_MISMATCH_WARNING")
    override fun get(bundle: Bundle, key: String): List<T> {
        val found = bundle.getStringArrayList(key)
        return found?.map { enumValueOf(it) } ?: emptyList()
    }

    @Suppress("TYPE_MISMATCH_WARNING")
    override fun parseValue(value: String): List<T> {
        return value.substring(1, value.length - 1)
            .split(',')
            .map { enum -> java.lang.Enum.valueOf(T::class.java, enum) }
    }

    override fun put(bundle: Bundle, key: String, value: List<T>) {
        bundle.putStringArrayList(key, values.map { it.name } as ArrayList<String>)
    }
}
Stuck at
parseValue
implementation. Can anyone show me some direction?