瀏覽代碼

Create empty MangaCatalogue

inorichi 9 年之前
父節點
當前提交
68f1102c40

+ 9 - 0
app/src/main/AndroidManifest.xml

@@ -39,6 +39,15 @@
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="eu.kanade.mangafeed.ui.activity.MainActivity" />
         </activity>
+        <activity
+            android:name=".ui.activity.MangaCatalogueActivity"
+            android:label="@string/title_activity_manga_catalogue"
+            android:parentActivityName=".ui.activity.CatalogueActivity"
+            android:theme="@style/AppTheme" >
+            <meta-data
+                android:name="android.support.PARENT_ACTIVITY"
+                android:value="eu.kanade.mangafeed.ui.activity.CatalogueActivity" />
+        </activity>
     </application>
 
 </manifest>

+ 3 - 0
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();
+
 }

+ 11 - 1
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));

+ 29 - 0
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);
+    }
+}

+ 14 - 6
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

+ 47 - 0
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);
+    }
+}

+ 2 - 1
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();

+ 5 - 0
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);
+}

+ 0 - 0
app/src/main/res/layout/activity_catalogue_list.xml → app/src/main/res/layout/activity_catalogue.xml


+ 16 - 0
app/src/main/res/layout/activity_manga_catalogue.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" android:fitsSystemWindows="true"
+    tools:context="eu.kanade.mangafeed.ui.activity.CatalogueActivity">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/toolbar"/>
+
+
+
+</LinearLayout>