Create empty MangaCatalogue

This commit is contained in:
inorichi 2015-10-15 01:51:35 +02:00
parent 684c5e98d3
commit 68f1102c40
10 changed files with 136 additions and 8 deletions

View file

@ -39,6 +39,15 @@
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value="eu.kanade.mangafeed.ui.activity.MainActivity" /> android:value="eu.kanade.mangafeed.ui.activity.MainActivity" />
</activity> </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> </application>
</manifest> </manifest>

View file

@ -7,6 +7,7 @@ import javax.inject.Singleton;
import dagger.Component; import dagger.Component;
import eu.kanade.mangafeed.data.DataModule; import eu.kanade.mangafeed.data.DataModule;
import eu.kanade.mangafeed.presenter.CataloguePresenter; import eu.kanade.mangafeed.presenter.CataloguePresenter;
import eu.kanade.mangafeed.presenter.MangaCataloguePresenter;
import eu.kanade.mangafeed.presenter.SourcePresenter; import eu.kanade.mangafeed.presenter.SourcePresenter;
import eu.kanade.mangafeed.presenter.LibraryPresenter; import eu.kanade.mangafeed.presenter.LibraryPresenter;
import eu.kanade.mangafeed.presenter.MangaDetailPresenter; import eu.kanade.mangafeed.presenter.MangaDetailPresenter;
@ -24,6 +25,8 @@ public interface AppComponent {
void inject(MangaDetailPresenter mangaDetailPresenter); void inject(MangaDetailPresenter mangaDetailPresenter);
void inject(SourcePresenter sourcePresenter); void inject(SourcePresenter sourcePresenter);
void inject(CataloguePresenter cataloguePresenter); void inject(CataloguePresenter cataloguePresenter);
void inject(MangaCataloguePresenter mangaCataloguePresenter);
Application application(); Application application();
} }

View file

@ -11,11 +11,13 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
import de.greenrobot.event.EventBus;
import eu.kanade.mangafeed.App; import eu.kanade.mangafeed.App;
import eu.kanade.mangafeed.data.helpers.DatabaseHelper; import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
import eu.kanade.mangafeed.data.helpers.SourceManager; import eu.kanade.mangafeed.data.helpers.SourceManager;
import eu.kanade.mangafeed.data.models.Manga; import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.sources.Source; import eu.kanade.mangafeed.sources.Source;
import eu.kanade.mangafeed.ui.activity.MangaCatalogueActivity;
import eu.kanade.mangafeed.ui.adapter.CatalogueHolder; import eu.kanade.mangafeed.ui.adapter.CatalogueHolder;
import eu.kanade.mangafeed.view.CatalogueView; import eu.kanade.mangafeed.view.CatalogueView;
import rx.Observable; import rx.Observable;
@ -65,13 +67,14 @@ public class CataloguePresenter extends BasePresenter {
private void initializeSource() { private void initializeSource() {
int sourceId = view.getIntent().getIntExtra(Intent.EXTRA_UID, -1); int sourceId = view.getIntent().getIntExtra(Intent.EXTRA_UID, -1);
selectedSource = sourceManager.get(sourceId); selectedSource = sourceManager.get(sourceId);
view.setSourceTitle(selectedSource.getName()); view.setTitle(selectedSource.getName());
} }
private void initializeAdapter() { private void initializeAdapter() {
adapter = new EasyAdapter<>(view.getActivity(), CatalogueHolder.class); adapter = new EasyAdapter<>(view.getActivity(), CatalogueHolder.class);
view.setAdapter(adapter); view.setAdapter(adapter);
view.setScrollListener(); view.setScrollListener();
view.setMangaClickListener();
} }
private void initializeSearch() { private void initializeSearch() {
@ -171,6 +174,13 @@ public class CataloguePresenter extends BasePresenter {
return localManga; 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) { public void onQueryTextChange(String query) {
if (mSearchViewPublishSubject != null) if (mSearchViewPublishSubject != null)
mSearchViewPublishSubject.onNext(Observable.just(query)); mSearchViewPublishSubject.onNext(Observable.just(query));

View file

@ -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);
}
}

View file

@ -33,12 +33,12 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
private CataloguePresenter presenter; private CataloguePresenter presenter;
private EndlessScrollListener scrollListener; private EndlessScrollListener scroll_listener;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalogue_list); setContentView(R.layout.activity_catalogue);
ButterKnife.bind(this); ButterKnife.bind(this);
setupToolbar(toolbar); setupToolbar(toolbar);
@ -80,7 +80,7 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
// CatalogueView // CatalogueView
@Override @Override
public void setSourceTitle(String title) { public void setTitle(String title) {
setToolbarTitle(title); setToolbarTitle(title);
} }
@ -89,9 +89,17 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
manga_list.setAdapter(adapter); manga_list.setAdapter(adapter);
} }
@Override
public void setMangaClickListener() {
manga_list.setOnItemClickListener(
(parent, view, position, id) ->
presenter.onMangaClick(position)
);
}
@Override @Override
public void setScrollListener() { public void setScrollListener() {
scrollListener = new EndlessScrollListener() { scroll_listener = new EndlessScrollListener() {
@Override @Override
public boolean onLoadMore(int page, int totalItemsCount) { public boolean onLoadMore(int page, int totalItemsCount) {
presenter.loadMoreMangas(page); presenter.loadMoreMangas(page);
@ -99,12 +107,12 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
} }
}; };
manga_list.setOnScrollListener(scrollListener); manga_list.setOnScrollListener(scroll_listener);
} }
@Override @Override
public void resetScrollListener() { public void resetScrollListener() {
scrollListener.resetScroll(); scroll_listener.resetScroll();
} }
@Override @Override

View file

@ -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);
}
}

View file

@ -7,8 +7,9 @@ import uk.co.ribot.easyadapter.EasyAdapter;
public interface CatalogueView extends BaseView { public interface CatalogueView extends BaseView {
Intent getIntent(); Intent getIntent();
void setSourceTitle(String title); void setTitle(String title);
void setAdapter(EasyAdapter adapter); void setAdapter(EasyAdapter adapter);
void setMangaClickListener();
void setScrollListener(); void setScrollListener();
void resetScrollListener(); void resetScrollListener();
void showProgressBar(); void showProgressBar();

View file

@ -0,0 +1,5 @@
package eu.kanade.mangafeed.view;
public interface MangaCatalogueView extends BaseView {
void setTitle(String title);
}

View file

@ -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>