Show chapter list

This commit is contained in:
inorichi
2015-09-28 15:02:46 +02:00
parent d3b6b8721e
commit d47e469665
14 changed files with 189 additions and 51 deletions
@@ -1,6 +1,7 @@
package eu.kanade.mangafeed.ui.activity;
import android.app.FragmentManager;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
@@ -39,4 +40,7 @@ public class BaseActivity extends AppCompatActivity {
return App.get(this).getComponent();
}
public Context getActivity() {
return this;
}
}
@@ -6,29 +6,40 @@ import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import de.greenrobot.event.EventBus;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Chapter;
import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.presenter.MangaDetailPresenter;
import eu.kanade.mangafeed.ui.adapter.ChapterListHolder;
import eu.kanade.mangafeed.view.MangaDetailView;
import uk.co.ribot.easyadapter.EasyAdapter;
public class MangaDetailActivity extends BaseActivity {
public class MangaDetailActivity extends BaseActivity implements MangaDetailView {
Manga manga;
MangaDetailPresenter presenter;
EasyAdapter<Chapter> adapter;
@Bind(R.id.toolbar)
Toolbar toolbar;
@Bind(R.id.manga_chapters_list)
ListView list_chapters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manga_detail);
ButterKnife.bind(this);
presenter = new MangaDetailPresenter(this);
setupToolbar(toolbar);
EventBus.getDefault().registerSticky(this);
}
@Override
@@ -53,26 +64,39 @@ public class MangaDetailActivity extends BaseActivity {
return super.onOptionsItemSelected(item);
}
@Override
public void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
public static Intent newIntent(Context context, Manga manga) {
Intent intent = new Intent(context, MangaDetailActivity.class);
EventBus.getDefault().postSticky(manga);
MangaDetailPresenter.newIntent(manga);
return intent;
}
public void onEventMainThread(Manga manga) {
this.manga = manga;
loadManga();
//loadChapters();
@Override
public void onStart() {
super.onStart();
presenter.onStart();
}
private void loadManga() {
@Override
public void onStop() {
super.onStop();
presenter.onStop();
}
public void loadManga(Manga manga) {
setToolbarTitle(manga.title);
}
public void setChapters(List<Chapter> chapters) {
if (adapter == null) {
adapter = new EasyAdapter<Chapter>(
getActivity(),
ChapterListHolder.class,
chapters
);
list_chapters.setAdapter(adapter);
} else {
adapter.setItems(chapters);
}
}
}
@@ -0,0 +1,26 @@
package eu.kanade.mangafeed.ui.adapter;
import android.view.View;
import android.widget.TextView;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Chapter;
import uk.co.ribot.easyadapter.ItemViewHolder;
import uk.co.ribot.easyadapter.PositionInfo;
import uk.co.ribot.easyadapter.annotations.LayoutId;
import uk.co.ribot.easyadapter.annotations.ViewId;
@LayoutId(R.layout.item_chapter)
public class ChapterListHolder extends ItemViewHolder<Chapter> {
@ViewId(R.id.chapter_title)
TextView title;
public ChapterListHolder(View view) {
super(view);
}
public void onSetValues(Chapter chapter, PositionInfo positionInfo) {
title.setText(chapter.name);
}
}
@@ -7,7 +7,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import java.util.ArrayList;
import java.util.List;
import butterknife.Bind;
@@ -15,7 +14,6 @@ import butterknife.ButterKnife;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.presenter.LibraryPresenter;
import eu.kanade.mangafeed.ui.activity.BaseActivity;
import eu.kanade.mangafeed.ui.activity.MainActivity;
import eu.kanade.mangafeed.ui.adapter.MangaLibraryHolder;
import eu.kanade.mangafeed.view.LibraryView;
@@ -25,8 +23,8 @@ import uk.co.ribot.easyadapter.EasyAdapter;
public class LibraryFragment extends Fragment implements LibraryView {
@Bind(R.id.gridView) GridView grid;
LibraryPresenter mLibraryPresenter;
EasyAdapter<Manga> mEasyAdapter;
LibraryPresenter presenter;
EasyAdapter<Manga> adapter;
public static LibraryFragment newInstance() {
LibraryFragment fragment = new LibraryFragment();
@@ -39,7 +37,7 @@ public class LibraryFragment extends Fragment implements LibraryView {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLibraryPresenter = new LibraryPresenter(this);
presenter = new LibraryPresenter(this);
}
@Override
@@ -50,22 +48,22 @@ public class LibraryFragment extends Fragment implements LibraryView {
((MainActivity)getActivity()).setToolbarTitle(getString(R.string.library_title));
ButterKnife.bind(this, view);
mLibraryPresenter.initializeMangas();
presenter.initializeMangas();
setMangaClickListener();
return view;
}
public void setMangas(List<Manga> mangas) {
if (mEasyAdapter == null) {
mEasyAdapter = new EasyAdapter<Manga>(
if (adapter == null) {
adapter = new EasyAdapter<Manga>(
getActivity(),
MangaLibraryHolder.class,
mangas
);
grid.setAdapter(mEasyAdapter);
grid.setAdapter(adapter);
} else {
mEasyAdapter.setItems(mangas);
adapter.setItems(mangas);
}
}
@@ -73,7 +71,7 @@ public class LibraryFragment extends Fragment implements LibraryView {
private void setMangaClickListener() {
grid.setOnItemClickListener(
(parent, view, position, id) ->
mLibraryPresenter.onMangaClick(mEasyAdapter, position)
presenter.onMangaClick(adapter, position)
);
}