Refactor MainPresenter

This commit is contained in:
Hritik Wadhwa 2020-04-03 02:45:06 +05:30
parent c606d3a5e0
commit 21e075f9ab

View File

@ -18,9 +18,6 @@
package org.kiwix.kiwixmobile.core.main package org.kiwix.kiwixmobile.core.main
import android.util.Log import android.util.Log
import io.reactivex.CompletableObserver
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposable
import org.kiwix.kiwixmobile.core.base.BasePresenter import org.kiwix.kiwixmobile.core.base.BasePresenter
import org.kiwix.kiwixmobile.core.bookmark.BookmarkItem import org.kiwix.kiwixmobile.core.bookmark.BookmarkItem
import org.kiwix.kiwixmobile.core.data.DataSource import org.kiwix.kiwixmobile.core.data.DataSource
@ -28,115 +25,38 @@ import org.kiwix.kiwixmobile.core.di.ActivityScope
import org.kiwix.kiwixmobile.core.history.HistoryListItem.HistoryItem import org.kiwix.kiwixmobile.core.history.HistoryListItem.HistoryItem
import org.kiwix.kiwixmobile.core.main.MainContract.Presenter import org.kiwix.kiwixmobile.core.main.MainContract.Presenter
import org.kiwix.kiwixmobile.core.main.MainContract.View import org.kiwix.kiwixmobile.core.main.MainContract.View
import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem
import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem.BookOnDisk import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem.BookOnDisk
import javax.inject.Inject import javax.inject.Inject
private const val TAG = "MainPresenter"
@ActivityScope @ActivityScope
internal class MainPresenter @Inject constructor(private val dataSource: DataSource) : internal class MainPresenter @Inject constructor(private val dataSource: DataSource) :
BasePresenter<View?>(), Presenter { BasePresenter<View?>(), Presenter {
override fun loadBooks() { override fun loadBooks() {
dataSource.languageCategorizedBooks compositeDisposable.add(
.subscribe(object : SingleObserver<List<BooksOnDiskListItem?>?> { dataSource.languageCategorizedBooks.subscribe(
override fun onSubscribe(d: Disposable) { view!!::addBooks
compositeDisposable.add(d) ) { e -> Log.e(TAG, "Unable to load books", e) })
}
override fun onSuccess(books: List<BooksOnDiskListItem?>) {
view!!.addBooks(books)
}
override fun onError(e: Throwable) {
Log.e(
TAG,
"Unable to load books",
e
)
}
})
} }
override fun saveBooks(book: List<BookOnDisk>) { override fun saveBooks(book: List<BookOnDisk>) {
dataSource.saveBooks(book) dataSource.saveBooks(book)
.subscribe(object : CompletableObserver { .subscribe(::loadBooks) { e -> Log.e(TAG, "Unable to save books", e) }
override fun onSubscribe(d: Disposable) {
// TODO
}
override fun onComplete() {
loadBooks()
}
override fun onError(e: Throwable) {
Log.e(
TAG,
"Unable to save books",
e
)
}
})
} }
override fun saveHistory(history: HistoryItem) { override fun saveHistory(history: HistoryItem) {
dataSource.saveHistory(history) dataSource.saveHistory(history)
.subscribe(object : CompletableObserver { .subscribe({}, { e -> Log.e(TAG, "Unable to save history", e) })
override fun onSubscribe(d: Disposable) {
// TODO
}
override fun onComplete() {
// TODO
}
override fun onError(e: Throwable) {
Log.e(TAG, "Unable to save history", e)
}
})
} }
override fun saveBookmark(bookmark: BookmarkItem) { override fun saveBookmark(bookmark: BookmarkItem) {
dataSource.saveBookmark(bookmark) dataSource.saveBookmark(bookmark)
.subscribe(object : CompletableObserver { .subscribe({}, { e -> Log.e(TAG, "Unable to save bookmark", e) })
override fun onSubscribe(d: Disposable) {
// TODO
}
override fun onComplete() {
// TODO
}
override fun onError(e: Throwable) {
Log.e(
TAG,
"Unable to save bookmark",
e
)
}
})
} }
override fun deleteBookmark(bookmarkUrl: String) { override fun deleteBookmark(bookmarkUrl: String) {
dataSource.deleteBookmark(bookmarkUrl) dataSource.deleteBookmark(bookmarkUrl)
.subscribe(object : CompletableObserver { .subscribe({}, { e -> Log.e(TAG, "Unable to delete bookmark", e) })
override fun onSubscribe(d: Disposable) {
// TODO
}
override fun onComplete() {
// TODO
}
override fun onError(e: Throwable) {
Log.e(
TAG,
"Unable to delete bookmark",
e
)
}
})
}
companion object {
private const val TAG = "MainPresenter"
} }
} }