Create empty MangaCatalogue
This commit is contained in:
parent
684c5e98d3
commit
68f1102c40
10 changed files with 136 additions and 8 deletions
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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();
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package eu.kanade.mangafeed.view;
|
||||||
|
|
||||||
|
public interface MangaCatalogueView extends BaseView {
|
||||||
|
void setTitle(String title);
|
||||||
|
}
|
16
app/src/main/res/layout/activity_manga_catalogue.xml
Normal file
16
app/src/main/res/layout/activity_manga_catalogue.xml
Normal 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>
|
Reference in a new issue