Skip to content

Commit

Permalink
Merge pull request #72 from pauliancu97/feature/CheckAnimeIsSaved
Browse files Browse the repository at this point in the history
Feature/check anime is saved check added
  • Loading branch information
justdvnsh authored Oct 12, 2021
2 parents b01d80a + 445736f commit 6cfcdb3
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@ interface AnimeDao {

@Delete
suspend fun deleteAnime(anime: OfflineAnimeModel)

@Query("SELECT EXISTS(SELECT 1 FROM animes WHERE animeUrl = :animeUrl LIMIT 1)")
suspend fun isAnimeWithUrlSaved(animeUrl: String): Boolean
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ data class AnimeDetailModel(
var genre: List<GenreModel>,
var plotSummary: String,
var status: String,
var type: String
var type: String,
var isSaved: Boolean = false
)

@Entity(tableName = "animes")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ package divyansh.tech.animeclassroom.animeDetail
import android.util.Log
import divyansh.tech.animeclassroom.ResultWrapper
import divyansh.tech.animeclassroom.api.AnimeDetailScreenApi
import divyansh.tech.animeclassroom.favorites.FavoriteAnimeLocalRepo
import divyansh.tech.animeclassroom.models.home.EpisodeModel
import divyansh.tech.animeclassroom.utils.Parser
import javax.inject.Inject

class AnimeDetailRepo @Inject constructor(
private val animeDetailScreenApi: AnimeDetailScreenApi
private val animeDetailScreenApi: AnimeDetailScreenApi,
private val favoriteAnimeLocalRepo: FavoriteAnimeLocalRepo
) {

/*
Expand All @@ -17,8 +19,10 @@ class AnimeDetailRepo @Inject constructor(
* */
suspend fun getAnimeDetails(url: String): ResultWrapper<*> {
Log.i("HOME-ANIMEREPO", url)
val isAnimeSaved = favoriteAnimeLocalRepo.isAnimeWithUrlSaved(url)
val response = Parser.parseAnimeDetails(
animeDetailScreenApi.getAnimeDetails(url).string()
animeDetailScreenApi.getAnimeDetails(url).string(),
isAnimeSaved
)
return if (response is ResultWrapper.Success) ResultWrapper.Success(response.data)
else ResultWrapper.Error(message = "No Body To parse", data = null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ class FavoriteAnimeLocalRepo @Inject constructor(
Log.i("ROOM REPO -> ", list.toString())
return list
}

suspend fun isAnimeWithUrlSaved(animeUrl: String) = dao.isAnimeWithUrlSaved(animeUrl)
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ object Parser {
* @param response: Response from the anime page
* @returns ResultWrapper<*>
* */
suspend fun parseAnimeDetails(response: String): ResultWrapper<*> {
suspend fun parseAnimeDetails(response: String, isSaved: Boolean): ResultWrapper<*> {
Log.i("Anime Details -> ", response)
return try {
val jsoup = Jsoup.parse(response)
Expand Down Expand Up @@ -149,7 +149,8 @@ object Parser {
status = formatInfoValues(status),
genre = genre,
plotSummary = plotSummary,
endEpisode = endEpisode.toInt()
endEpisode = endEpisode.toInt(),
isSaved = isSaved
)

return ResultWrapper.Success(model)
Expand Down

0 comments on commit 6cfcdb3

Please sign in to comment.