Sfoglia il codice sorgente

added debug data for testing purposes

sirekanian 3 anni fa
parent
commit
80e2357543

+ 34 - 0
app/src/debug/java/com/sirekanian/spacetime/data/DebugDataCallback.kt

@@ -0,0 +1,34 @@
+package com.sirekanian.spacetime.data
+
+import androidx.room.RoomDatabase
+import androidx.sqlite.db.SupportSQLiteDatabase
+import com.sirekanian.spacetime.BuildConfig
+import com.sirekanian.spacetime.ext.currentDate
+import com.sirekanian.spacetime.model.createImagePage
+import kotlinx.datetime.DateTimeUnit
+import kotlinx.datetime.plus
+
+class DebugDataCallback : RoomDatabase.Callback() {
+
+    init {
+        require(BuildConfig.DEBUG) {
+            error("Not allowed in production builds")
+        }
+    }
+
+    override fun onCreate(db: SupportSQLiteDatabase) {
+        val current = currentDate()
+        listOf(
+            current.plus(-1, DateTimeUnit.DAY) to "yesterday",
+            current.plus(+0, DateTimeUnit.DAY) to "today",
+            current.plus(+1, DateTimeUnit.DAY) to "tomorrow",
+            current.plus(-1, DateTimeUnit.MONTH) to "1 month",
+            current.plus(+1, DateTimeUnit.MONTH) to "in 1 month",
+        ).forEach { (date, name) ->
+            val page = createImagePage(name, "", date.toString(), 0f)
+            val args = arrayOf(page.name, page.url, page.date, page.blur)
+            db.execSQL("INSERT INTO PageEntity (name, url, date, blur) VALUES (?, ?, ?, ?)", args)
+        }
+    }
+
+}

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

@@ -2,6 +2,7 @@ package com.sirekanian.spacetime
 
 import android.app.Application
 import androidx.room.Room
+import com.sirekanian.spacetime.data.DebugDataCallback
 import com.sirekanian.spacetime.data.DefaultDataCallback
 import com.sirekanian.spacetime.data.Repository
 import com.sirekanian.spacetime.data.RepositoryImpl
@@ -15,6 +16,7 @@ class App : Application() {
         RepositoryImpl(
             Room.databaseBuilder(this, Database::class.java, "database")
                 .addCallback(DefaultDataCallback(resources))
+                .addCallback(DebugDataCallback())
                 .build().getPageDao()
         )
     }

+ 10 - 0
app/src/release/java/com/sirekanian/spacetime/data/DebugDataCallback.kt

@@ -0,0 +1,10 @@
+package com.sirekanian.spacetime.data
+
+import androidx.room.RoomDatabase
+import androidx.sqlite.db.SupportSQLiteDatabase
+
+class DebugDataCallback : RoomDatabase.Callback() {
+    override fun onCreate(db: SupportSQLiteDatabase) {
+        // noop
+    }
+}