Change names of database methods
This commit is contained in:
		@@ -14,9 +14,8 @@ interface FavouriteDao {
 | 
			
		||||
 | 
			
		||||
    @Delete
 | 
			
		||||
    suspend fun delete(favourite: Favourite)
 | 
			
		||||
 | 
			
		||||
    @Query("SELECT id FROM favourites")
 | 
			
		||||
    fun getAllFavoriteIds(): Flow<List<Int>>
 | 
			
		||||
    @Query("SELECT * from favourites ORDER BY id ASC")
 | 
			
		||||
    fun getAllItems(): Flow<List<Favourite>>
 | 
			
		||||
 | 
			
		||||
    @Query("SELECT EXISTS(SELECT 1 FROM favourites WHERE id = :id LIMIT 1)")
 | 
			
		||||
    suspend fun isFavourite(id: Int): Boolean
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ interface FavouritesRepository {
 | 
			
		||||
    /**
 | 
			
		||||
     * Retrieve all the items from the the given data source.
 | 
			
		||||
     */
 | 
			
		||||
    fun getAllFavoriteIds(): Flow<List<Int>>
 | 
			
		||||
    fun getAllItems(): Flow<List<Favourite>>
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Insert item in the data source
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@ package com.ti.mobpo.data
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
 | 
			
		||||
class OfflineFavouritesRepository(private val favouriteDao: FavouriteDao) : FavouritesRepository {
 | 
			
		||||
    override fun getAllFavoriteIds(): Flow<List<Int>> {
 | 
			
		||||
        return favouriteDao.getAllFavoriteIds()
 | 
			
		||||
    override fun getAllItems(): Flow<List<Favourite>> {
 | 
			
		||||
        return favouriteDao.getAllItems()
 | 
			
		||||
    }
 | 
			
		||||
    override suspend fun insertItem(item: Favourite) {
 | 
			
		||||
        favouriteDao.insert(item)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,60 @@
 | 
			
		||||
package com.ti.mobpo.ui.screens
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.layout.Arrangement
 | 
			
		||||
import androidx.compose.foundation.layout.Column
 | 
			
		||||
import androidx.compose.foundation.layout.Spacer
 | 
			
		||||
import androidx.compose.foundation.layout.fillMaxSize
 | 
			
		||||
import androidx.compose.foundation.lazy.grid.GridCells
 | 
			
		||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
 | 
			
		||||
import androidx.compose.material3.Text
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.collectAsState
 | 
			
		||||
import androidx.compose.runtime.getValue
 | 
			
		||||
import androidx.compose.ui.Alignment
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.lifecycle.viewmodel.compose.viewModel
 | 
			
		||||
import com.ti.mobpo.AppViewModelProvider
 | 
			
		||||
import com.ti.mobpo.ui.viewmodels.FavouritesViewModel
 | 
			
		||||
import androidx.compose.foundation.layout.height
 | 
			
		||||
import androidx.compose.foundation.layout.padding
 | 
			
		||||
import androidx.compose.foundation.lazy.grid.items
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun Favourites() {
 | 
			
		||||
    println("Favourites")
 | 
			
		||||
    Text("Favourites Page")
 | 
			
		||||
fun FavoritesScreen(viewModel: FavouritesViewModel = viewModel(factory = AppViewModelProvider.Factory)) {
 | 
			
		||||
    Favorites(viewModel)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun Favorites(favoritesViewModel: FavouritesViewModel) {
 | 
			
		||||
    val favorites by favoritesViewModel.pokemonDetails.collectAsState()
 | 
			
		||||
    favoritesViewModel.loadFavourites()
 | 
			
		||||
 | 
			
		||||
    Column(
 | 
			
		||||
        verticalArrangement = Arrangement.Top,
 | 
			
		||||
        horizontalAlignment = Alignment.CenterHorizontally,
 | 
			
		||||
        modifier = Modifier
 | 
			
		||||
            .fillMaxSize()
 | 
			
		||||
            .padding(20.dp)
 | 
			
		||||
    ) {
 | 
			
		||||
        Spacer(modifier = Modifier.height(16.dp))
 | 
			
		||||
 | 
			
		||||
        favorites?.let { favoritesList ->
 | 
			
		||||
            if (favoritesList.isNotEmpty()) {
 | 
			
		||||
                LazyVerticalGrid(
 | 
			
		||||
                    columns = GridCells.Adaptive(150.dp),
 | 
			
		||||
                    verticalArrangement = Arrangement.spacedBy(8.dp),
 | 
			
		||||
                    horizontalArrangement = Arrangement.spacedBy(8.dp)
 | 
			
		||||
                ) {
 | 
			
		||||
                    items(items = favoritesList, key = { pokemon -> pokemon.id }) { pokemon ->
 | 
			
		||||
                        PokemonCard(pokemon, toggleFavorite = { pokemonId ->
 | 
			
		||||
                            favoritesViewModel.toggleFavorite(pokemonId)
 | 
			
		||||
                        })
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                Text("No favorites found")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user