Browse Source
Convert FavoritesViewModel to kotlin and optimise code
renovate/org.robolectric-robolectric-4.x
Convert FavoritesViewModel to kotlin and optimise code
renovate/org.robolectric-robolectric-4.x
Ammar Githam
4 years ago
3 changed files with 47 additions and 48 deletions
-
2app/build.gradle
-
38app/src/main/java/awais/instagrabber/fragments/FavoritesFragment.kt
-
55app/src/main/java/awais/instagrabber/viewmodels/FavoritesViewModel.kt
@ -1,19 +1,48 @@ |
|||
package awais.instagrabber.viewmodels; |
|||
package awais.instagrabber.viewmodels |
|||
|
|||
import androidx.lifecycle.MutableLiveData; |
|||
import androidx.lifecycle.ViewModel; |
|||
import android.app.Application |
|||
import androidx.lifecycle.AndroidViewModel |
|||
import androidx.lifecycle.LiveData |
|||
import androidx.lifecycle.MutableLiveData |
|||
import awais.instagrabber.db.datasources.FavoriteDataSource |
|||
import awais.instagrabber.db.entities.Favorite |
|||
import awais.instagrabber.db.repositories.FavoriteRepository |
|||
import awais.instagrabber.db.repositories.RepositoryCallback |
|||
|
|||
import java.util.List; |
|||
class FavoritesViewModel(application: Application) : AndroidViewModel(application) { |
|||
private val _list = MutableLiveData<List<Favorite>>() |
|||
val list: LiveData<List<Favorite>> = _list |
|||
|
|||
import awais.instagrabber.db.entities.Favorite; |
|||
private val favoriteRepository: FavoriteRepository = FavoriteRepository.getInstance(FavoriteDataSource.getInstance(application)) |
|||
|
|||
public class FavoritesViewModel extends ViewModel { |
|||
private MutableLiveData<List<Favorite>> list; |
|||
init { |
|||
fetch() |
|||
} |
|||
|
|||
fun fetch() { |
|||
favoriteRepository.getAllFavorites(object : RepositoryCallback<List<Favorite>> { |
|||
override fun onSuccess(favorites: List<Favorite>?) { |
|||
_list.postValue(favorites ?: emptyList()) |
|||
} |
|||
|
|||
override fun onDataNotAvailable() {} |
|||
}) |
|||
} |
|||
|
|||
fun delete(favorite: Favorite, onSuccess: () -> Unit) { |
|||
favoriteRepository.deleteFavorite(favorite.query, favorite.type, object : RepositoryCallback<Void> { |
|||
override fun onSuccess(result: Void?) { |
|||
onSuccess() |
|||
favoriteRepository.getAllFavorites(object : RepositoryCallback<List<Favorite>> { |
|||
override fun onSuccess(result: List<Favorite>?) { |
|||
_list.postValue(result ?: emptyList()) |
|||
} |
|||
|
|||
override fun onDataNotAvailable() {} |
|||
}) |
|||
} |
|||
|
|||
public MutableLiveData<List<Favorite>> getList() { |
|||
if (list == null) { |
|||
list = new MutableLiveData<>(); |
|||
} |
|||
return list; |
|||
override fun onDataNotAvailable() {} |
|||
}) |
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue