Description scrollable and show real manga status.
This commit is contained in:
@@ -8,7 +8,6 @@ import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -41,7 +40,8 @@ import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.subjects.PublishSubject;
|
||||
|
||||
@RequiresPresenter(CataloguePresenter.class)
|
||||
public class CatalogueFragment extends BaseRxFragment<CataloguePresenter> implements FlexibleViewHolder.OnListItemClickListener {
|
||||
public class CatalogueFragment extends BaseRxFragment<CataloguePresenter>
|
||||
implements FlexibleViewHolder.OnListItemClickListener {
|
||||
|
||||
@Bind(R.id.recycler) AutofitRecyclerView recycler;
|
||||
@Bind(R.id.progress) ProgressBar progress;
|
||||
@@ -207,13 +207,13 @@ public class CatalogueFragment extends BaseRxFragment<CataloguePresenter> implem
|
||||
}
|
||||
}
|
||||
|
||||
public void onAddPage(Pair<Integer, List<Manga>> pair) {
|
||||
public void onAddPage(int page, List<Manga> mangas) {
|
||||
hideProgressBar();
|
||||
if (pair.first == 0) {
|
||||
if (page == 1) {
|
||||
adapter.clear();
|
||||
scrollListener.resetScroll();
|
||||
}
|
||||
adapter.addItems(pair.second);
|
||||
adapter.addItems(mangas);
|
||||
}
|
||||
|
||||
public void onAddPageError() {
|
||||
|
||||
@@ -57,15 +57,8 @@ public class CataloguePresenter extends BasePresenter<CatalogueFragment> {
|
||||
mangaDetailSubject = PublishSubject.create();
|
||||
|
||||
restartableReplay(GET_MANGA_LIST,
|
||||
() -> pager.pages().concatMap(
|
||||
page -> getMangaObs(page + 1)
|
||||
.map(mangas -> Pair.create(page, mangas))
|
||||
.doOnNext(pair -> {
|
||||
if (mangaDetailSubject != null)
|
||||
mangaDetailSubject.onNext(pair.second);
|
||||
})
|
||||
.observeOn(AndroidSchedulers.mainThread())),
|
||||
CatalogueFragment::onAddPage,
|
||||
() -> pager.pages().concatMap(page -> getMangasPageObservable(page + 1)),
|
||||
(view, pair) -> view.onAddPage(pair.first, pair.second),
|
||||
(view, error) -> {
|
||||
view.onAddPageError();
|
||||
Timber.e(error.getMessage());
|
||||
@@ -116,7 +109,7 @@ public class CataloguePresenter extends BasePresenter<CatalogueFragment> {
|
||||
pager.requestNext(++currentPage);
|
||||
}
|
||||
|
||||
private Observable<List<Manga>> getMangaObs(int page) {
|
||||
private Observable<Pair<Integer, List<Manga>>> getMangasPageObservable(int page) {
|
||||
MangasPage nextMangasPage = new MangasPage(page);
|
||||
if (page != 1) {
|
||||
nextMangasPage.url = lastMangasPage.nextPageUrl;
|
||||
@@ -130,7 +123,13 @@ public class CataloguePresenter extends BasePresenter<CatalogueFragment> {
|
||||
.doOnNext(mangasPage -> lastMangasPage = mangasPage)
|
||||
.flatMap(mangasPage -> Observable.from(mangasPage.mangas))
|
||||
.map(this::networkToLocalManga)
|
||||
.toList();
|
||||
.toList()
|
||||
.map(mangas -> Pair.create(page, mangas))
|
||||
.doOnNext(pair -> {
|
||||
if (mangaDetailSubject != null)
|
||||
mangaDetailSubject.onNext(pair.second);
|
||||
})
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
private Manga networkToLocalManga(Manga networkManga) {
|
||||
|
||||
@@ -73,7 +73,7 @@ public class MangaInfoFragment extends BaseRxFragment<MangaInfoPresenter> {
|
||||
artist.setText(manga.artist);
|
||||
author.setText(manga.author);
|
||||
genres.setText(manga.genre);
|
||||
status.setText("Ongoing"); //TODO
|
||||
status.setText(manga.getStatus(getActivity()));
|
||||
description.setText(manga.description);
|
||||
|
||||
setFavoriteText(manga.favorite);
|
||||
|
||||
Reference in New Issue
Block a user