Browse Source

removed date field from model

sirekanian 3 năm trước cách đây
mục cha
commit
5c44e44053

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

@@ -6,7 +6,6 @@ import androidx.sqlite.db.SupportSQLiteDatabase
 import com.sirekanian.spacetime.R
 import com.sirekanian.spacetime.model.ImagePage
 import com.sirekanian.spacetime.model.createImagePage
-import com.sirekanian.spacetime.ui.DateField
 
 private val defaultImageUrls = listOf(
     "https://sirekanian.com/apod/image/2209/SnakingFilament_Friedman_960.jpg",
@@ -22,13 +21,13 @@ class DefaultDataCallback(resources: Resources) : RoomDatabase.Callback() {
         val names = resources.getStringArray(R.array.default_page_names)
         val dates = resources.getStringArray(R.array.default_page_dates)
         defaultPages = names.zip(defaultImageUrls).zip(dates) { (name, url), date ->
-            createImagePage(name, url, DateField(date), blur = 0.5f)
+            createImagePage(name, url, date, blur = 0.5f)
         }
     }
 
     override fun onCreate(db: SupportSQLiteDatabase) {
         defaultPages.forEach { page ->
-            val args = arrayOf(page.name, page.url, page.date.value, page.blur)
+            val args = arrayOf(page.name, page.url, page.date, page.blur)
             db.execSQL("INSERT INTO PageEntity (name, url, date, blur) VALUES (?, ?, ?, ?)", args)
         }
     }

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

@@ -3,7 +3,6 @@ package com.sirekanian.spacetime.data.local
 import androidx.room.Entity
 import androidx.room.PrimaryKey
 import com.sirekanian.spacetime.model.ImagePage
-import com.sirekanian.spacetime.ui.DateField
 
 @Entity
 class PageEntity(
@@ -14,5 +13,5 @@ class PageEntity(
     val date: String,
     val blur: Float,
 ) {
-    fun toModel() = ImagePage(id, name, url, DateField(date), blur)
+    fun toModel() = ImagePage(id, name, url, date, blur)
 }

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

@@ -1,9 +1,8 @@
 package com.sirekanian.spacetime.model
 
 import com.sirekanian.spacetime.data.local.PageEntity
-import com.sirekanian.spacetime.ui.DateField
 
-fun createImagePage(name: String, url: String, date: DateField, blur: Float): ImagePage =
+fun createImagePage(name: String, url: String, date: String, blur: Float): ImagePage =
     ImagePage(0, name, url, date, blur)
 
 sealed class Page(val id: Int)
@@ -12,10 +11,10 @@ class ImagePage(
     id: Int,
     val name: String,
     val url: String,
-    val date: DateField,
+    val date: String,
     val blur: Float,
 ) : Page(id) {
-    fun toEntity() = PageEntity(id, name, url, date.value, blur)
+    fun toEntity() = PageEntity(id, name, url, date, blur)
 }
 
 object GalleryPage : Page(-1)

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

@@ -4,8 +4,8 @@ import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.setValue
 
-class DateFieldWrapper(date: DateField) {
-    var field by mutableStateOf(date)
+class DateFieldWrapper(date: String) {
+    var field by mutableStateOf(DateField(date))
     fun isEmpty() = field.value.isEmpty()
     fun isValid() = field.isValid()
 }

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

@@ -26,7 +26,7 @@ fun DraftPage(insets: PaddingValues, state: MainState, onDone: (ImagePage) -> Un
         state.draft = null
     }
     val name = remember { NameField("") }
-    val date = remember { DateFieldWrapper(DateField("")) }
+    val date = remember { DateFieldWrapper("") }
     var blur by remember { mutableStateOf(0.5f) }
     var isNameValid by remember(name.field) { mutableStateOf(true) }
     var isDateValid by remember(date.field) { mutableStateOf(true) }
@@ -41,7 +41,7 @@ fun DraftPage(insets: PaddingValues, state: MainState, onDone: (ImagePage) -> Un
             isNameValid = name.isValid()
             isDateValid = date.isValid()
             if (isNameValid && isDateValid) {
-                onDone(createImagePage(name.field.text, draft.url, date.field, blur))
+                onDone(createImagePage(name.field.text, draft.url, date.field.value, blur))
             }
         })
     }

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

@@ -64,7 +64,7 @@ fun ImagePageContent(
                     isNameValid = name.isValid()
                     isDateValid = date.isValid()
                     if (isNameValid && isDateValid) {
-                        onDone(ImagePage(page.id, name.field.text, page.url, date.field, blur))
+                        onDone(ImagePage(page.id, name.field.text, page.url, date.field.value, blur))
                     }
                 })
             }
@@ -106,7 +106,7 @@ fun ImagePageContent(
                 overflow = TextOverflow.Ellipsis,
                 maxLines = 2,
             )
-            page.date.getRelativeDays()?.let { days ->
+            DateField(page.date).getRelativeDays()?.let { days ->
                 Text(
                     text = @OptIn(ExperimentalComposeUiApi::class) when {
                         days == 0 -> stringResource(R.string.duration_today)