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