diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2243c8de4..a6a08d1aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,6 +39,15 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="eu.kanade.mangafeed.ui.activity.MainActivity" />
+
+
+
diff --git a/app/src/main/java/eu/kanade/mangafeed/AppComponent.java b/app/src/main/java/eu/kanade/mangafeed/AppComponent.java
index 377fed849..204e41f52 100644
--- a/app/src/main/java/eu/kanade/mangafeed/AppComponent.java
+++ b/app/src/main/java/eu/kanade/mangafeed/AppComponent.java
@@ -7,6 +7,7 @@ import javax.inject.Singleton;
import dagger.Component;
import eu.kanade.mangafeed.data.DataModule;
import eu.kanade.mangafeed.presenter.CataloguePresenter;
+import eu.kanade.mangafeed.presenter.MangaCataloguePresenter;
import eu.kanade.mangafeed.presenter.SourcePresenter;
import eu.kanade.mangafeed.presenter.LibraryPresenter;
import eu.kanade.mangafeed.presenter.MangaDetailPresenter;
@@ -24,6 +25,8 @@ public interface AppComponent {
void inject(MangaDetailPresenter mangaDetailPresenter);
void inject(SourcePresenter sourcePresenter);
void inject(CataloguePresenter cataloguePresenter);
+ void inject(MangaCataloguePresenter mangaCataloguePresenter);
Application application();
+
}
diff --git a/app/src/main/java/eu/kanade/mangafeed/presenter/CataloguePresenter.java b/app/src/main/java/eu/kanade/mangafeed/presenter/CataloguePresenter.java
index a9da3ada4..6f989bce8 100644
--- a/app/src/main/java/eu/kanade/mangafeed/presenter/CataloguePresenter.java
+++ b/app/src/main/java/eu/kanade/mangafeed/presenter/CataloguePresenter.java
@@ -11,11 +11,13 @@ import java.util.concurrent.TimeUnit;
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.helpers.SourceManager;
import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.sources.Source;
+import eu.kanade.mangafeed.ui.activity.MangaCatalogueActivity;
import eu.kanade.mangafeed.ui.adapter.CatalogueHolder;
import eu.kanade.mangafeed.view.CatalogueView;
import rx.Observable;
@@ -65,13 +67,14 @@ public class CataloguePresenter extends BasePresenter {
private void initializeSource() {
int sourceId = view.getIntent().getIntExtra(Intent.EXTRA_UID, -1);
selectedSource = sourceManager.get(sourceId);
- view.setSourceTitle(selectedSource.getName());
+ view.setTitle(selectedSource.getName());
}
private void initializeAdapter() {
adapter = new EasyAdapter<>(view.getActivity(), CatalogueHolder.class);
view.setAdapter(adapter);
view.setScrollListener();
+ view.setMangaClickListener();
}
private void initializeSearch() {
@@ -171,6 +174,13 @@ public class CataloguePresenter extends BasePresenter {
return localManga;
}
+ public void onMangaClick(int position) {
+ Intent intent = new Intent(view.getActivity(), MangaCatalogueActivity.class);
+ Manga selectedManga = adapter.getItem(position);
+ EventBus.getDefault().postSticky(selectedManga);
+ view.getActivity().startActivity(intent);
+ }
+
public void onQueryTextChange(String query) {
if (mSearchViewPublishSubject != null)
mSearchViewPublishSubject.onNext(Observable.just(query));
diff --git a/app/src/main/java/eu/kanade/mangafeed/presenter/MangaCataloguePresenter.java b/app/src/main/java/eu/kanade/mangafeed/presenter/MangaCataloguePresenter.java
new file mode 100644
index 000000000..9505bb94d
--- /dev/null
+++ b/app/src/main/java/eu/kanade/mangafeed/presenter/MangaCataloguePresenter.java
@@ -0,0 +1,29 @@
+package eu.kanade.mangafeed.presenter;
+
+import eu.kanade.mangafeed.App;
+import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.view.MangaCatalogueView;
+
+public class MangaCataloguePresenter extends BasePresenter {
+
+ private MangaCatalogueView view;
+ private Manga manga;
+
+ public MangaCataloguePresenter(MangaCatalogueView view) {
+ this.view = view;
+ App.getComponent(view.getActivity()).inject(this);
+ }
+
+ public void initialize() {
+
+ }
+
+ public void onEventMainThread(Manga manga) {
+ this.manga = manga;
+ initializeManga();
+ }
+
+ private void initializeManga() {
+ view.setTitle(manga.title);
+ }
+}
diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/activity/CatalogueActivity.java b/app/src/main/java/eu/kanade/mangafeed/ui/activity/CatalogueActivity.java
index c4258bdd5..15a138905 100644
--- a/app/src/main/java/eu/kanade/mangafeed/ui/activity/CatalogueActivity.java
+++ b/app/src/main/java/eu/kanade/mangafeed/ui/activity/CatalogueActivity.java
@@ -33,12 +33,12 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
private CataloguePresenter presenter;
- private EndlessScrollListener scrollListener;
+ private EndlessScrollListener scroll_listener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_catalogue_list);
+ setContentView(R.layout.activity_catalogue);
ButterKnife.bind(this);
setupToolbar(toolbar);
@@ -80,7 +80,7 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
// CatalogueView
@Override
- public void setSourceTitle(String title) {
+ public void setTitle(String title) {
setToolbarTitle(title);
}
@@ -89,9 +89,17 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
manga_list.setAdapter(adapter);
}
+ @Override
+ public void setMangaClickListener() {
+ manga_list.setOnItemClickListener(
+ (parent, view, position, id) ->
+ presenter.onMangaClick(position)
+ );
+ }
+
@Override
public void setScrollListener() {
- scrollListener = new EndlessScrollListener() {
+ scroll_listener = new EndlessScrollListener() {
@Override
public boolean onLoadMore(int page, int totalItemsCount) {
presenter.loadMoreMangas(page);
@@ -99,12 +107,12 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
}
};
- manga_list.setOnScrollListener(scrollListener);
+ manga_list.setOnScrollListener(scroll_listener);
}
@Override
public void resetScrollListener() {
- scrollListener.resetScroll();
+ scroll_listener.resetScroll();
}
@Override
diff --git a/app/src/main/java/eu/kanade/mangafeed/ui/activity/MangaCatalogueActivity.java b/app/src/main/java/eu/kanade/mangafeed/ui/activity/MangaCatalogueActivity.java
new file mode 100644
index 000000000..44a6915d0
--- /dev/null
+++ b/app/src/main/java/eu/kanade/mangafeed/ui/activity/MangaCatalogueActivity.java
@@ -0,0 +1,47 @@
+package eu.kanade.mangafeed.ui.activity;
+
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+import eu.kanade.mangafeed.R;
+import eu.kanade.mangafeed.presenter.MangaCataloguePresenter;
+import eu.kanade.mangafeed.view.MangaCatalogueView;
+
+public class MangaCatalogueActivity extends BaseActivity implements MangaCatalogueView {
+
+ @Bind(R.id.toolbar)
+ Toolbar toolbar;
+
+ private MangaCataloguePresenter presenter;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_manga_catalogue);
+ ButterKnife.bind(this);
+
+ setupToolbar(toolbar);
+
+ presenter = new MangaCataloguePresenter(this);
+ presenter.initialize();
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ presenter.registerForStickyEvents();
+ }
+
+ @Override
+ public void onStop() {
+ presenter.unregisterForEvents();
+ super.onStop();
+ }
+
+ @Override
+ public void setTitle(String title) {
+ setToolbarTitle(title);
+ }
+}
diff --git a/app/src/main/java/eu/kanade/mangafeed/view/CatalogueView.java b/app/src/main/java/eu/kanade/mangafeed/view/CatalogueView.java
index 2dc691c78..2fe9299a8 100644
--- a/app/src/main/java/eu/kanade/mangafeed/view/CatalogueView.java
+++ b/app/src/main/java/eu/kanade/mangafeed/view/CatalogueView.java
@@ -7,8 +7,9 @@ import uk.co.ribot.easyadapter.EasyAdapter;
public interface CatalogueView extends BaseView {
Intent getIntent();
- void setSourceTitle(String title);
+ void setTitle(String title);
void setAdapter(EasyAdapter adapter);
+ void setMangaClickListener();
void setScrollListener();
void resetScrollListener();
void showProgressBar();
diff --git a/app/src/main/java/eu/kanade/mangafeed/view/MangaCatalogueView.java b/app/src/main/java/eu/kanade/mangafeed/view/MangaCatalogueView.java
new file mode 100644
index 000000000..d31db7078
--- /dev/null
+++ b/app/src/main/java/eu/kanade/mangafeed/view/MangaCatalogueView.java
@@ -0,0 +1,5 @@
+package eu.kanade.mangafeed.view;
+
+public interface MangaCatalogueView extends BaseView {
+ void setTitle(String title);
+}
diff --git a/app/src/main/res/layout/activity_catalogue_list.xml b/app/src/main/res/layout/activity_catalogue.xml
similarity index 100%
rename from app/src/main/res/layout/activity_catalogue_list.xml
rename to app/src/main/res/layout/activity_catalogue.xml
diff --git a/app/src/main/res/layout/activity_manga_catalogue.xml b/app/src/main/res/layout/activity_manga_catalogue.xml
new file mode 100644
index 000000000..c61734fa6
--- /dev/null
+++ b/app/src/main/res/layout/activity_manga_catalogue.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file