Kaynağa Gözat

added url to image page model

sirekanian 3 yıl önce
ebeveyn
işleme
44aa762825

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

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

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

@@ -10,14 +10,13 @@ import com.google.accompanist.pager.ExperimentalPagerApi
 import com.google.accompanist.pager.HorizontalPager
 import com.google.accompanist.pager.HorizontalPager
 import com.sirekanian.spacetime.model.GalleryPage
 import com.sirekanian.spacetime.model.GalleryPage
 import com.sirekanian.spacetime.model.ImagePage
 import com.sirekanian.spacetime.model.ImagePage
-import com.sirekanian.spacetime.model.Page
 import com.sirekanian.spacetime.ui.GalleryPageContent
 import com.sirekanian.spacetime.ui.GalleryPageContent
 import com.sirekanian.spacetime.ui.ImagePageContent
 import com.sirekanian.spacetime.ui.ImagePageContent
 
 
 @Composable
 @Composable
 @ExperimentalPagerApi
 @ExperimentalPagerApi
 fun MainScreen(presenter: MainPresenter) {
 fun MainScreen(presenter: MainPresenter) {
-    val pages by presenter.observePages().collectAsState(listOf<Page>())
+    val pages by presenter.observePages().collectAsState(listOf())
     val insets = WindowInsets.systemBars.asPaddingValues()
     val insets = WindowInsets.systemBars.asPaddingValues()
     HorizontalPager(
     HorizontalPager(
         count = pages.size,
         count = pages.size,
@@ -28,7 +27,7 @@ fun MainScreen(presenter: MainPresenter) {
                 ImagePageContent(insets, page, onDelete = { presenter.removePage(page) })
                 ImagePageContent(insets, page, onDelete = { presenter.removePage(page) })
             }
             }
             GalleryPage -> {
             GalleryPage -> {
-                GalleryPageContent(insets, onSelect = { presenter.addPage(ImagePage(0, it)) })
+                GalleryPageContent(insets, onSelect = { presenter.addPage(ImagePage(0, "", it)) })
             }
             }
         }
         }
     }
     }

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

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

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

@@ -9,6 +9,7 @@ class PageEntity(
     @PrimaryKey(autoGenerate = true)
     @PrimaryKey(autoGenerate = true)
     val id: Int,
     val id: Int,
     val name: String,
     val name: String,
+    val url: String,
 ) {
 ) {
-    fun toModel() = ImagePage(id, name)
+    fun toModel() = ImagePage(id, name, url)
 }
 }

+ 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)
 sealed class Page(val id: Int)
 
 
-class ImagePage(id: Int, val name: String) : Page(id) {
-    fun toEntity() = PageEntity(id, name)
+class ImagePage(id: Int, val name: String, val url: String) : Page(id) {
+    fun toEntity() = PageEntity(id, name, url)
 }
 }
 
 
 object GalleryPage : Page(-1)
 object GalleryPage : Page(-1)

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

@@ -1,11 +1,13 @@
 package com.sirekanian.spacetime.ui
 package com.sirekanian.spacetime.ui
 
 
 import androidx.compose.foundation.layout.*
 import androidx.compose.foundation.layout.*
+import androidx.compose.material.Text
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.ArrowBack
 import androidx.compose.material.icons.filled.ArrowBack
 import androidx.compose.material.icons.filled.Delete
 import androidx.compose.material.icons.filled.Delete
 import androidx.compose.material.icons.filled.Edit
 import androidx.compose.material.icons.filled.Edit
 import androidx.compose.runtime.*
 import androidx.compose.runtime.*
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalContext
@@ -19,7 +21,7 @@ import com.sirekanian.spacetime.model.ImagePage
 fun ImagePageContent(insets: PaddingValues, page: ImagePage, onDelete: () -> Unit) {
 fun ImagePageContent(insets: PaddingValues, page: ImagePage, onDelete: () -> Unit) {
     AsyncImage(
     AsyncImage(
         model = ImageRequest.Builder(LocalContext.current)
         model = ImageRequest.Builder(LocalContext.current)
-            .data(page.name)
+            .data(page.url)
             .crossfade(true)
             .crossfade(true)
             .build(),
             .build(),
         contentDescription = null,
         contentDescription = null,
@@ -40,4 +42,10 @@ fun ImagePageContent(insets: PaddingValues, page: ImagePage, onDelete: () -> Uni
             VectorIconButton(Icons.Default.Delete, onClick = { onDelete() })
             VectorIconButton(Icons.Default.Delete, onClick = { onDelete() })
         }
         }
     }
     }
+    Box(
+        modifier = Modifier.fillMaxSize(),
+        contentAlignment = Alignment.Center,
+    ) {
+        Text(page.name)
+    }
 }
 }