Add Favouite, Dao and database
This commit is contained in:
parent
b5573783b9
commit
6abf4100f2
14
app/src/main/java/com/ti/mobpo/data/Favourite.kt
Normal file
14
app/src/main/java/com/ti/mobpo/data/Favourite.kt
Normal file
@ -0,0 +1,14 @@
|
||||
package com.ti.mobpo.data
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
import com.ti.mobpo.model.Sprites
|
||||
import com.ti.mobpo.model.Type
|
||||
|
||||
@Entity(tableName = "favourites")
|
||||
data class Favourite(
|
||||
@PrimaryKey val id: Int,
|
||||
val name: String,
|
||||
val types: List<Type>,
|
||||
val sprites: Sprites
|
||||
)
|
19
app/src/main/java/com/ti/mobpo/data/FavouriteDao.kt
Normal file
19
app/src/main/java/com/ti/mobpo/data/FavouriteDao.kt
Normal file
@ -0,0 +1,19 @@
|
||||
package com.ti.mobpo.data
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
|
||||
@Dao
|
||||
interface FavouriteDao {
|
||||
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
||||
suspend fun insert(favourite: Favourite)
|
||||
|
||||
@Delete
|
||||
suspend fun delete(favourite: Favourite)
|
||||
|
||||
@Query("SELECT id FROM favourites")
|
||||
suspend fun getAllFavoriteIds(): List<Int>
|
||||
}
|
23
app/src/main/java/com/ti/mobpo/data/PokemonDatabase.kt
Normal file
23
app/src/main/java/com/ti/mobpo/data/PokemonDatabase.kt
Normal file
@ -0,0 +1,23 @@
|
||||
package com.ti.mobpo.data
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
|
||||
@Database(entities = [Favourite::class], version = 1, exportSchema = false)
|
||||
abstract class PokemonDatabase : RoomDatabase() {
|
||||
abstract fun FavouriteDao(): FavouriteDao
|
||||
|
||||
companion object {
|
||||
@Volatile
|
||||
private var Instance: PokemonDatabase? = null
|
||||
fun getDatabase(context: Context): PokemonDatabase {
|
||||
return Instance ?: synchronized(this) {
|
||||
Room.databaseBuilder(context, PokemonDatabase::class.java, "favorites_database")
|
||||
.build()
|
||||
.also { Instance = it }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user