Add MangaDetailActivity with two fragments, info and chapters
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package eu.kanade.mangafeed.presenter;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.SparseBooleanArray;
|
||||
|
||||
@@ -9,7 +8,6 @@ import javax.inject.Inject;
|
||||
import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
|
||||
import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.ui.activity.MangaDetailActivity;
|
||||
import eu.kanade.mangafeed.ui.fragment.LibraryFragment;
|
||||
import rx.Observable;
|
||||
import rx.Subscription;
|
||||
@@ -36,14 +34,6 @@ public class LibraryPresenter extends BasePresenter2<LibraryFragment> {
|
||||
getFavoriteMangas();
|
||||
}
|
||||
|
||||
public void onMangaClick(LibraryFragment view, int position) {
|
||||
Intent intent = MangaDetailActivity.newIntent(
|
||||
view.getActivity(),
|
||||
view.getAdapter().getItem(position)
|
||||
);
|
||||
view.getActivity().startActivity(intent);
|
||||
}
|
||||
|
||||
public void getFavoriteMangas() {
|
||||
if (mFavoriteMangasSubscription != null)
|
||||
remove(mFavoriteMangasSubscription);
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package eu.kanade.mangafeed.presenter;
|
||||
|
||||
import eu.kanade.mangafeed.ui.fragment.MangaChaptersFragment;
|
||||
|
||||
public class MangaChaptersPresenter extends BasePresenter2<MangaChaptersFragment> {
|
||||
}
|
||||
@@ -2,33 +2,23 @@ package eu.kanade.mangafeed.presenter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
import eu.kanade.mangafeed.App;
|
||||
import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.ui.activity.MangaDetailActivity;
|
||||
import eu.kanade.mangafeed.view.MangaDetailView;
|
||||
|
||||
public class MangaDetailPresenter extends BasePresenter {
|
||||
public class MangaDetailPresenter extends BasePresenter2<MangaDetailActivity> {
|
||||
|
||||
private MangaDetailView view;
|
||||
|
||||
@Inject
|
||||
DatabaseHelper db;
|
||||
|
||||
public MangaDetailPresenter(MangaDetailView view) {
|
||||
this.view = view;
|
||||
App.getComponent(view.getActivity()).inject(this);
|
||||
}
|
||||
|
||||
public void onEventMainThread(Manga manga) {
|
||||
view.loadManga(manga);
|
||||
initializeChapters(manga);
|
||||
}
|
||||
|
||||
public static void newIntent(Manga manga) {
|
||||
EventBus.getDefault().postSticky(manga);
|
||||
}
|
||||
|
||||
public void initializeChapters(Manga manga) {
|
||||
db.getChapters(manga)
|
||||
.subscribe(view::setChapters);
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package eu.kanade.mangafeed.presenter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
|
||||
import eu.kanade.mangafeed.ui.fragment.MangaInfoFragment;
|
||||
import rx.Observable;
|
||||
import rx.Subscription;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
|
||||
public class MangaInfoPresenter extends BasePresenter2<MangaInfoFragment> {
|
||||
|
||||
@Inject DatabaseHelper db;
|
||||
|
||||
private Subscription mangaInfoSubscription;
|
||||
|
||||
@Override
|
||||
protected void onTakeView(MangaInfoFragment view) {
|
||||
super.onTakeView(view);
|
||||
|
||||
getMangaInfo(view);
|
||||
}
|
||||
|
||||
private void getMangaInfo(MangaInfoFragment view) {
|
||||
if (mangaInfoSubscription != null)
|
||||
remove(mangaInfoSubscription);
|
||||
|
||||
mangaInfoSubscription = db.getManga(view.getMangaId())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.take(1)
|
||||
.flatMap(Observable::from)
|
||||
.subscribe(view::setMangaInfo);
|
||||
|
||||
add(mangaInfoSubscription);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user