Add Favouite, Dao and database
This commit is contained in:
		
							
								
								
									
										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 }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user