Safe checked casting
This commit is contained in:
@@ -926,7 +926,14 @@ open class Note(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T : Event> toEventHint() = (event as? T)?.let { EventHintBundle(it, relayHintUrl(), author?.bestRelayHint()) }
|
inline fun <reified T : Event> toEventHint(): EventHintBundle<T>? {
|
||||||
|
val safeEvent = event
|
||||||
|
return if (safeEvent is T) {
|
||||||
|
EventHintBundle(safeEvent, relayHintUrl(), author?.bestRelayHint())
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun toMarkedETag(marker: MarkedETag.MARKER): MarkedETag {
|
fun toMarkedETag(marker: MarkedETag.MARKER): MarkedETag {
|
||||||
val noteEvent = event
|
val noteEvent = event
|
||||||
|
|||||||
+7
-2
@@ -31,7 +31,12 @@ class HiddenAccountsFeedViewModel(
|
|||||||
class Factory(
|
class Factory(
|
||||||
val account: Account,
|
val account: Account,
|
||||||
) : ViewModelProvider.Factory {
|
) : ViewModelProvider.Factory {
|
||||||
@Suppress("UNCHECKED_CAST")
|
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||||
override fun <T : ViewModel> create(modelClass: Class<T>): T = HiddenAccountsFeedViewModel(account) as T
|
if (modelClass.isAssignableFrom(HiddenAccountsFeedViewModel::class.java)) {
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
return HiddenAccountsFeedViewModel(account) as T
|
||||||
|
}
|
||||||
|
throw IllegalArgumentException("Unknown ViewModel class: ${modelClass.name}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user