Use same activity for manga details on catalague and library. Move some methos to view.

This commit is contained in:
inorichi
2015-10-17 17:09:33 +02:00
parent c768b4de3b
commit 161a4b17a6
7 changed files with 32 additions and 141 deletions
@@ -11,10 +11,13 @@ import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.bumptech.glide.Glide;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnItemClick;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.presenter.CataloguePresenter;
@@ -58,7 +61,6 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> {
setupToolbar(toolbar);
initializeAdapter();
initializeClickListener();
initializeScrollListener();
}
@@ -95,11 +97,12 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> {
manga_list.setAdapter(adapter);
}
public void initializeClickListener() {
manga_list.setOnItemClickListener(
(parent, view, position, id) ->
getPresenter().onMangaClick(position)
);
@OnItemClick(R.id.gridView)
public void onMangaClick(int position) {
Manga selectedManga = adapter.getItem(position);
Intent intent = MangaDetailActivity.newIntent(this, selectedManga);
startActivity(intent);
}
public void initializeScrollListener() {
@@ -139,7 +142,20 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> {
progress_grid.setVisibility(ProgressBar.GONE);
}
public ImageView getImageView(int position) {
public void onMangasNext(List<Manga> newMangas) {
adapter.addItems(newMangas);
}
private int getMangaIndex(Manga manga) {
for (int i = 0; i < adapter.getCount(); i++) {
if (manga.id == adapter.getItem(i).id) {
return i;
}
}
return -1;
}
private ImageView getImageView(int position) {
View v = manga_list.getChildAt(position -
manga_list.getFirstVisiblePosition());
@@ -149,7 +165,13 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> {
return (ImageView) v.findViewById(R.id.catalogue_thumbnail);
}
public void onMangasNext(List<Manga> newMangas) {
adapter.addItems(newMangas);
public void updateImage(Manga manga) {
ImageView imageView = getImageView(getMangaIndex(manga));
if (imageView != null) {
Glide.with(this)
.load(manga.thumbnail_url)
.centerCrop()
.into(imageView);
}
}
}
@@ -1,56 +0,0 @@
package eu.kanade.mangafeed.ui.activity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import butterknife.Bind;
import butterknife.ButterKnife;
import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.data.models.Manga;
import eu.kanade.mangafeed.presenter.MangaCataloguePresenter;
import nucleus.factory.RequiresPresenter;
@RequiresPresenter(MangaCataloguePresenter.class)
public class MangaCatalogueActivity extends BaseActivity<MangaCataloguePresenter> {
@Bind(R.id.toolbar) Toolbar toolbar;
@Bind(R.id.manga_artist) TextView mArtist;
@Bind(R.id.manga_author) TextView mAuthor;
@Bind(R.id.manga_chapters) TextView mChapters;
@Bind(R.id.manga_genres) TextView mGenres;
@Bind(R.id.manga_status) TextView mStatus;
@Bind(R.id.manga_summary) TextView mDescription;
@Bind(R.id.manga_cover) ImageView mCover;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manga_catalogue);
ButterKnife.bind(this);
setupToolbar(toolbar);
}
public void setMangaInfo(Manga manga) {
mArtist.setText(manga.artist);
mAuthor.setText(manga.author);
mChapters.setText("0"); // TODO
mGenres.setText(manga.genre);
mStatus.setText("Ongoing"); //TODO
mDescription.setText(manga.description);
Glide.with(getActivity())
.load(manga.thumbnail_url)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.centerCrop()
.into(mCover);
}
}