فهرست منبع

added date to page

sirekanian 3 سال پیش
والد
کامیت
a8d8706582

+ 9 - 3
app/schemas/com.sirekanian.spacetime.data.local.Database/1.json

@@ -2,11 +2,11 @@
   "formatVersion": 1,
   "database": {
     "version": 1,
-    "identityHash": "2782779481e0e49bb142b3655398d327",
+    "identityHash": "786fcc9fe1efc70145a58cebcc9c668b",
     "entities": [
       {
         "tableName": "PageEntity",
-        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `url` TEXT NOT NULL)",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `url` TEXT NOT NULL, `date` TEXT NOT NULL)",
         "fields": [
           {
             "fieldPath": "id",
@@ -25,6 +25,12 @@
             "columnName": "url",
             "affinity": "TEXT",
             "notNull": true
+          },
+          {
+            "fieldPath": "date",
+            "columnName": "date",
+            "affinity": "TEXT",
+            "notNull": true
           }
         ],
         "primaryKey": {
@@ -40,7 +46,7 @@
     "views": [],
     "setupQueries": [
       "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
-      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '2782779481e0e49bb142b3655398d327')"
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '786fcc9fe1efc70145a58cebcc9c668b')"
     ]
   }
 }

+ 2 - 1
app/src/main/java/com/sirekanian/spacetime/data/DefaultDataCallback.kt

@@ -6,7 +6,8 @@ import androidx.sqlite.db.SupportSQLiteDatabase
 class DefaultDataCallback : RoomDatabase.Callback() {
     override fun onCreate(db: SupportSQLiteDatabase) {
         URLS.take(2).forEach {
-            db.execSQL("INSERT INTO PageEntity (name, url) VALUES (?, ?)", arrayOf("", it))
+            val args = arrayOf("", it, "")
+            db.execSQL("INSERT INTO PageEntity (name, url, date) VALUES (?, ?, ?)", args)
         }
     }
 }

+ 2 - 1
app/src/main/java/com/sirekanian/spacetime/data/local/PageEntity.kt

@@ -10,6 +10,7 @@ class PageEntity(
     val id: Int,
     val name: String,
     val url: String,
+    val date: String,
 ) {
-    fun toModel() = ImagePage(id, name, url)
+    fun toModel() = ImagePage(id, name, url, date)
 }

+ 2 - 2
app/src/main/java/com/sirekanian/spacetime/model/Page.kt

@@ -4,8 +4,8 @@ import com.sirekanian.spacetime.data.local.PageEntity
 
 sealed class Page(val id: Int)
 
-class ImagePage(id: Int, val name: String, val url: String) : Page(id) {
-    fun toEntity() = PageEntity(id, name, url)
+class ImagePage(id: Int, val name: String, val url: String, val date: String) : Page(id) {
+    fun toEntity() = PageEntity(id, name, url, date)
 }
 
 object GalleryPage : Page(-1)

+ 11 - 1
app/src/main/java/com/sirekanian/spacetime/ui/DraftAlertDialog.kt

@@ -1,12 +1,14 @@
 package com.sirekanian.spacetime.ui
 
 import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.material.*
 import androidx.compose.runtime.*
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.focus.FocusRequester
 import androidx.compose.ui.focus.focusRequester
+import androidx.compose.ui.text.input.KeyboardType
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.Dialog
 import com.sirekanian.spacetime.MainState
@@ -16,6 +18,7 @@ import com.sirekanian.spacetime.model.ImagePage
 fun DraftAlertDialog(state: MainState, onConfirm: (ImagePage) -> Unit) {
     val draft = state.draft
     var name by remember(draft) { mutableStateOf("") }
+    var date by remember(draft) { mutableStateOf("") }
     if (draft != null) {
         MyAlertDialog(
             title = {
@@ -32,6 +35,13 @@ fun DraftAlertDialog(state: MainState, onConfirm: (ImagePage) -> Unit) {
                     modifier = Modifier.focusRequester(focusRequester),
                     label = { Text("Name") },
                 )
+                OutlinedTextField(
+                    value = date,
+                    onValueChange = { date = it },
+                    label = { Text("Date") },
+                    placeholder = { Text("YYYY-MM-DD") },
+                    keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
+                )
                 LaunchedEffect(Unit) {
                     focusRequester.requestFocus()
                 }
@@ -45,7 +55,7 @@ fun DraftAlertDialog(state: MainState, onConfirm: (ImagePage) -> Unit) {
             confirmButton = {
                 TextButton(
                     onClick = {
-                        onConfirm(ImagePage(0, name, draft.url))
+                        onConfirm(ImagePage(0, name, draft.url, date))
                         state.draft = null
                     },
                     content = { Text("OK") },

+ 4 - 2
app/src/main/java/com/sirekanian/spacetime/ui/ImagePageContent.kt

@@ -42,10 +42,12 @@ fun ImagePageContent(insets: PaddingValues, page: ImagePage, onDelete: () -> Uni
             VectorIconButton(Icons.Default.Delete, onClick = { onDelete() })
         }
     }
-    Box(
+    Column(
         modifier = Modifier.fillMaxSize(),
-        contentAlignment = Alignment.Center,
+        horizontalAlignment = Alignment.CenterHorizontally,
+        verticalArrangement = Arrangement.Center,
     ) {
         Text(page.name)
+        Text(page.date)
     }
 }