Begin switch to Nucleus
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package eu.kanade.mangafeed.ui.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
|
||||
import eu.kanade.mangafeed.App;
|
||||
import eu.kanade.mangafeed.AppComponent;
|
||||
import nucleus.factory.PresenterFactory;
|
||||
import nucleus.presenter.Presenter;
|
||||
import nucleus.view.NucleusAppCompatActivity;
|
||||
|
||||
public class BaseActivity2<P extends Presenter> extends NucleusAppCompatActivity<P> {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
final PresenterFactory<P> superFactory = super.getPresenterFactory();
|
||||
setPresenterFactory(() -> {
|
||||
P presenter = superFactory.createPresenter();
|
||||
App.getComponentReflection(getActivity()).inject(presenter);
|
||||
return presenter;
|
||||
});
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
protected void setupToolbar(Toolbar toolbar) {
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
public void setToolbarTitle(String title) {
|
||||
getSupportActionBar().setTitle(title);
|
||||
}
|
||||
|
||||
protected AppComponent applicationComponent() {
|
||||
return App.get(this).getComponent();
|
||||
}
|
||||
|
||||
public Context getActivity() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -9,15 +9,20 @@ import android.widget.GridView;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.presenter.CataloguePresenter;
|
||||
import eu.kanade.mangafeed.view.CatalogueView;
|
||||
import eu.kanade.mangafeed.ui.adapter.CatalogueHolder;
|
||||
import eu.kanade.mangafeed.widget.EndlessScrollListener;
|
||||
import nucleus.factory.RequiresPresenter;
|
||||
import uk.co.ribot.easyadapter.EasyAdapter;
|
||||
|
||||
public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
@RequiresPresenter(CataloguePresenter.class)
|
||||
public class CatalogueActivity extends BaseActivity2<CataloguePresenter> {
|
||||
|
||||
@Bind(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
@@ -31,8 +36,7 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
@Bind(R.id.progress_grid)
|
||||
ProgressBar progress_grid;
|
||||
|
||||
private CataloguePresenter presenter;
|
||||
|
||||
private EasyAdapter<Manga> adapter;
|
||||
private EndlessScrollListener scroll_listener;
|
||||
|
||||
@Override
|
||||
@@ -43,14 +47,9 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
|
||||
setupToolbar(toolbar);
|
||||
|
||||
presenter = new CataloguePresenter(this);
|
||||
presenter.initialize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
presenter.destroySubscriptions();
|
||||
initializeAdapter();
|
||||
initializeClickListener();
|
||||
initializeScrollListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -65,44 +64,39 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
presenter.onQueryTextChange(query);
|
||||
getPresenter().onQueryTextChange(query);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
presenter.onQueryTextChange(newText);
|
||||
getPresenter().onQueryTextChange(newText);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// CatalogueView
|
||||
|
||||
@Override
|
||||
public void setTitle(String title) {
|
||||
setToolbarTitle(title);
|
||||
public EasyAdapter<Manga> getAdapter() {
|
||||
return adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAdapter(EasyAdapter adapter) {
|
||||
public void initializeAdapter() {
|
||||
adapter = new EasyAdapter<>(this, CatalogueHolder.class);
|
||||
manga_list.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMangaClickListener() {
|
||||
public void initializeClickListener() {
|
||||
manga_list.setOnItemClickListener(
|
||||
(parent, view, position, id) ->
|
||||
presenter.onMangaClick(position)
|
||||
getPresenter().onMangaClick(position)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrollListener() {
|
||||
public void initializeScrollListener() {
|
||||
scroll_listener = new EndlessScrollListener() {
|
||||
@Override
|
||||
public boolean onLoadMore(int page, int totalItemsCount) {
|
||||
presenter.loadMoreMangas(page);
|
||||
getPresenter().loadMoreMangas(page);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
@@ -110,28 +104,31 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
manga_list.setOnScrollListener(scroll_listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetScrollListener() {
|
||||
scroll_listener.resetScroll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getScrollPage() {
|
||||
return scroll_listener.getCurrentPage();
|
||||
}
|
||||
|
||||
public void setScrollPage(int page) {
|
||||
scroll_listener.setCurrentPage(page);
|
||||
}
|
||||
|
||||
public void showProgressBar() {
|
||||
progress.setVisibility(ProgressBar.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showGridProgressBar() {
|
||||
progress_grid.setVisibility(ProgressBar.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideProgressBar() {
|
||||
progress.setVisibility(ProgressBar.GONE);
|
||||
progress_grid.setVisibility(ProgressBar.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageView getImageView(int position) {
|
||||
View v = manga_list.getChildAt(position -
|
||||
manga_list.getFirstVisiblePosition());
|
||||
@@ -141,4 +138,8 @@ public class CatalogueActivity extends BaseActivity implements CatalogueView {
|
||||
|
||||
return (ImageView) v.findViewById(R.id.catalogue_thumbnail);
|
||||
}
|
||||
|
||||
public void onMangasNext(List<Manga> newMangas) {
|
||||
adapter.addItems(newMangas);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user