diff options
Diffstat (limited to 'android/app/src')
| -rw-r--r-- | android/app/src/main/java/org/terst/doot/widget/data/DataStore.kt | 18 | ||||
| -rw-r--r-- | android/app/src/main/java/org/terst/doot/widget/data/WidgetItem.kt | 23 |
2 files changed, 41 insertions, 0 deletions
diff --git a/android/app/src/main/java/org/terst/doot/widget/data/DataStore.kt b/android/app/src/main/java/org/terst/doot/widget/data/DataStore.kt new file mode 100644 index 0000000..164e3a2 --- /dev/null +++ b/android/app/src/main/java/org/terst/doot/widget/data/DataStore.kt @@ -0,0 +1,18 @@ +package org.terst.doot.widget.data + +import android.content.Context +import androidx.datastore.core.DataStore +import androidx.datastore.preferences.core.Preferences +import androidx.datastore.preferences.core.longPreferencesKey +import androidx.datastore.preferences.core.stringPreferencesKey +import androidx.datastore.preferences.preferencesDataStore + +val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "doot_widget") + +object Keys { + val SERVER_URL = stringPreferencesKey("server_url") + val TOKEN = stringPreferencesKey("token") + val ITEMS_JSON = stringPreferencesKey("items_json") + val NOW = stringPreferencesKey("now") + val LAST_UPDATED = longPreferencesKey("last_updated") +} diff --git a/android/app/src/main/java/org/terst/doot/widget/data/WidgetItem.kt b/android/app/src/main/java/org/terst/doot/widget/data/WidgetItem.kt new file mode 100644 index 0000000..40fc190 --- /dev/null +++ b/android/app/src/main/java/org/terst/doot/widget/data/WidgetItem.kt @@ -0,0 +1,23 @@ +package org.terst.doot.widget.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class WidgetItem( + val id: String, + val title: String, + val source: String, // "todoist" | "trello" | "calendar" | "plantoeat" | "gtasks" + val type: String, // "task" | "event" + val start: String? = null, // ISO-8601 or null (floating task) + val end: String? = null, // ISO-8601 or null + @SerialName("is_all_day") val isAllDay: Boolean = false, + val url: String = "", + val completable: Boolean = false +) + +@Serializable +data class WidgetResponse( + val now: String, + val items: List<WidgetItem> +) |
