Pārlūkot izejas kodu

added default pages

sirekanian 3 gadi atpakaļ
vecāks
revīzija
649e4a5063

+ 1 - 1
app/src/main/java/com/sirekanian/spacetime/App.kt

@@ -12,7 +12,7 @@ class App : Application() {
     val repository: Repository by lazy {
         RepositoryImpl(
             Room.databaseBuilder(this, Database::class.java, "database")
-                .addCallback(DefaultDataCallback())
+                .addCallback(DefaultDataCallback(resources))
                 .build().getPageDao()
         )
     }

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

@@ -1,13 +1,30 @@
 package com.sirekanian.spacetime.data
 
+import android.content.res.Resources
 import androidx.room.RoomDatabase
 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
+
+class DefaultDataCallback(resources: Resources) : RoomDatabase.Callback() {
+
+    private val defaultPages: List<ImagePage>
+
+    init {
+        val names = resources.getStringArray(R.array.default_page_names)
+        val dates = resources.getStringArray(R.array.default_page_dates)
+        defaultPages = names.zip(URLS).zip(dates) { (name, url), date ->
+            createImagePage(name, url, DateField(date))
+        }
+    }
 
-class DefaultDataCallback : RoomDatabase.Callback() {
     override fun onCreate(db: SupportSQLiteDatabase) {
-        URLS.take(2).forEach {
-            val args = arrayOf("", it, "")
+        defaultPages.forEach { page ->
+            val args = arrayOf(page.name, page.url, page.date.value)
             db.execSQL("INSERT INTO PageEntity (name, url, date) VALUES (?, ?, ?)", args)
         }
     }
+
 }

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

@@ -3,6 +3,9 @@ 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): ImagePage =
+    ImagePage(0, name, url, date)
+
 sealed class Page(val id: Int)
 
 class ImagePage(id: Int, val name: String, val url: String, val date: DateField) : Page(id) {

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

@@ -14,6 +14,7 @@ import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.Dialog
 import com.sirekanian.spacetime.MainState
 import com.sirekanian.spacetime.model.ImagePage
+import com.sirekanian.spacetime.model.createImagePage
 
 @Composable
 fun DraftAlertDialog(state: MainState, onConfirm: (ImagePage) -> Unit) {
@@ -67,7 +68,7 @@ fun DraftAlertDialog(state: MainState, onConfirm: (ImagePage) -> Unit) {
                         isNameValid = name.isNotBlank()
                         isDateValid = date.isValid()
                         if (isNameValid && isDateValid) {
-                            onConfirm(ImagePage(0, name, draft.url, date))
+                            onConfirm(createImagePage(name, draft.url, date))
                             state.draft = null
                         }
                     },

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

@@ -59,7 +59,7 @@ fun ImagePageContent(insets: PaddingValues, page: ImagePage, onDelete: () -> Uni
                     days == 1 -> "tomorrow"
                     days == -1 -> "yesterday"
                     days > 0 -> "in $days days"
-                    else -> "${-days} days ago"
+                    else -> "${-days} days"
                 },
                 style = MaterialTheme.typography.h3,
             )

+ 6 - 0
app/src/main/res/values-be/strings.xml

@@ -0,0 +1,6 @@
+<resources>
+    <array name="default_page_names">
+        <item>Война идёт</item>
+        <item>Навальный сидит</item>
+    </array>
+</resources>

+ 6 - 0
app/src/main/res/values-ru/strings.xml

@@ -0,0 +1,6 @@
+<resources>
+    <array name="default_page_names">
+        <item>Война идёт</item>
+        <item>Навальный сидит</item>
+    </array>
+</resources>

+ 6 - 0
app/src/main/res/values-uk/strings.xml

@@ -0,0 +1,6 @@
+<resources>
+    <array name="default_page_names">
+        <item>Война идёт</item>
+        <item>Навальный сидит</item>
+    </array>
+</resources>

+ 10 - 2
app/src/main/res/values/strings.xml

@@ -1,3 +1,11 @@
-<resources>
-    <string name="app_name">Spacetime</string>
+<resources xmlns:tools="http://schemas.android.com/tools">
+    <string name="app_name" translatable="false">Spacetime</string>
+    <string-array name="default_page_names">
+        <item>The war goes on</item>
+        <item>Navalny in prison</item>
+    </string-array>
+    <string-array name="default_page_dates" tools:ignore="TypographyDashes">
+        <item>2022-02-24</item>
+        <item>2021-01-17</item>
+    </string-array>
 </resources>