initializing room db
This commit is contained in:
parent
9b059d6ec8
commit
418ae4c04e
17 changed files with 474 additions and 8 deletions
|
|
@ -60,6 +60,8 @@ dependencies {
|
|||
implementation(libs.androidx.ui.tooling.preview)
|
||||
implementation(libs.androidx.material3)
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
implementation(libs.androidx.room.common)
|
||||
implementation(libs.androidx.room.ktx)
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.androidx.junit)
|
||||
androidTestImplementation(libs.androidx.espresso.core)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package com.example.cheshbonhanefeshdaily.data
|
||||
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
|
||||
|
||||
@Entity(tableName = "accountable_task")
|
||||
data class AccountableTask (
|
||||
@PrimaryKey(autoGenerate = true) val id: Int = 0,
|
||||
val date: Int,
|
||||
val name: String,
|
||||
val type: String,
|
||||
val active: Boolean
|
||||
|
||||
)
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.example.cheshbonhanefeshdaily.data
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Update
|
||||
|
||||
// when writing Queries, its good to specify a Flow<> as the return type, see step 13 in https://developer.android.com/codelabs/basic-android-kotlin-compose-persisting-data-room?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-6-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-compose-persisting-data-room#5
|
||||
|
||||
|
||||
@Dao
|
||||
interface AccountableTaskDao {
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
||||
suspend fun insert(accountableTask: AccountableTask)
|
||||
|
||||
@Update
|
||||
suspend fun update(accountableTask: AccountableTask)
|
||||
|
||||
@Delete
|
||||
suspend fun delete(accountableTask: AccountableTask)
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
package com.example.cheshbonhanefeshdaily.data
|
||||
|
||||
class CheshbonUiState {
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
package com.example.cheshbonhanefeshdaily.data
|
||||
|
||||
object DataSource {
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.example.cheshbonhanefeshdaily.data
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
|
||||
|
||||
@Database(entities = [AccountableTask::class], version = 1, exportSchema = false)
|
||||
abstract class TaskDatabase : RoomDatabase(){
|
||||
|
||||
abstract fun accountableTaskDao() : AccountableTaskDao
|
||||
|
||||
companion object {
|
||||
@Volatile
|
||||
private var Instance : TaskDatabase? = null
|
||||
|
||||
fun getDatabase(context:Context) : TaskDatabase {
|
||||
return Instance ?: synchronized(this) {
|
||||
Room.databaseBuilder(context, TaskDatabase::class.java, "task_database")
|
||||
.fallbackToDestructiveMigration()
|
||||
.build()
|
||||
.also { Instance = it }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue