Talaria/app/src/main/java/dev/lonami/talaria/data/DialogSource.kt

40 lines
1.0 KiB
Kotlin
Raw Normal View History

2022-10-11 15:52:25 +00:00
package dev.lonami.talaria.data
2022-10-12 19:26:51 +00:00
import dev.lonami.talaria.bindings.Native
2022-10-11 15:52:25 +00:00
import dev.lonami.talaria.model.Dialog
2022-10-21 12:19:34 +00:00
interface DialogSource {
fun loadDialogs(): List<Dialog>;
}
class NativeDialogSource : DialogSource {
override fun loadDialogs(): List<Dialog> {
2022-10-12 19:26:51 +00:00
val dialogs = mutableListOf<Dialog>()
val dialogPtr = Native.getDialogs()
val dialogCount = Native.dialogCount(dialogPtr)
for (i in 0 until dialogCount) {
dialogs.add(
Dialog(
Native.dialogTitle(dialogPtr, i),
Native.dialogPacked(dialogPtr, i),
false
)
)
}
Native.freeDialogs(dialogPtr)
return dialogs
2022-10-11 15:52:25 +00:00
}
}
2022-10-21 12:19:34 +00:00
class MockDialogSource : DialogSource {
override fun loadDialogs(): List<Dialog> {
val dialogs = mutableListOf<Dialog>()
for (i in 0 until 10) {
dialogs.add(Dialog("Sample Dialog $i", "Sample Message $i", i == 0))
}
return dialogs
}
}