package com.forezp.banya.viewimpl.filmdetail;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.forezp.banya.Presenter.DoubanFilmPresenter;
import com.forezp.banya.R;
import com.forezp.banya.adapter.CastAdapter;
import com.forezp.banya.base.BaseActivity;
import com.forezp.banya.base.EasyRecyclerViewAdapter;
import com.forezp.banya.bean.filmdetail.FilmDetail;
import com.forezp.banya.bean.filmdetail.FilmPeople;
import com.forezp.banya.bean.top250.Casts;
import com.forezp.banya.bean.top250.Directors;
import com.forezp.banya.utils.DisplayImgUtis;
import com.forezp.banya.utils.ThemeUtils;
import com.forezp.banya.viewimpl.webview.WebviewActivity;
import com.forezp.banya.viewinterface.film.IGetFilmDetail;
import com.forezp.banya.widget.FullyLinearLayoutManager;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* Created by forezp on 16/9/24.
*/
public class FilmDetailActivity extends BaseActivity implements IGetFilmDetail {
public static String EXTRA_ID = "id";
@BindView(R.id.tv_title)
TextView tvTitle;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.iv_film)
ImageView ivFilm;
@BindView(R.id.tv_rating)
TextView tvRating;
@BindView(R.id.tv_rating_num)
TextView tvRatingNum;
@BindView(R.id.tv_date_and_film_time)
TextView tvDateAndFilmTime;
@BindView(R.id.tv_film_type)
TextView tvFilmType;
@BindView(R.id.tv_film_country)
TextView tvFilmCountry;
@BindView(R.id.tv_film_name)
TextView tvFilmName;
@BindView(R.id.tv_description)
TextView tvDescription;
@BindView(R.id.recyclerview)
RecyclerView recyclerview;
@BindView(R.id.tv_more_info)
TextView tvMoreInfo;
private DoubanFilmPresenter doubanFilmPresenter;
private String id;//
private Context context;
private String alt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.actvity_film_detail);
ButterKnife.bind(this);
context = this;
applyKitKatTranslucency();
initView();
initData();
}
private void initView() {
toolbar.setBackgroundColor(ThemeUtils.getThemeColor());
toolbar.setNavigationIcon(R.drawable.back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
backThActivity();
}
});
}
private void initData() {
Intent intent = getIntent();
if (intent != null) {
id = intent.getStringExtra(EXTRA_ID);
}
if (!TextUtils.isEmpty(id)) {
doubanFilmPresenter = new DoubanFilmPresenter(this);
doubanFilmPresenter.getFilmDetail(this, id);
}
}
@Override
public String setActName() {
return null;
}
@Override
public void getFilmDetailSuccess(FilmDetail filmDetail) {
if (filmDetail.getImages() != null && filmDetail.getImages().getLarge() != null) {
DisplayImgUtis.getInstance().display(context, filmDetail.getImages().getLarge(), ivFilm);
}
if (!TextUtils.isEmpty(filmDetail.getTitle())) {
toolbar.setTitle(filmDetail.getTitle());
}
if (filmDetail.getRating() != null) {
tvRating.setText("评分" + filmDetail.getRating().getAverage());
}
tvRatingNum.setText(filmDetail.getRatings_count() + "人评分");
tvDateAndFilmTime.setText(filmDetail.getYear() + "年 出品");
if (filmDetail.getCountries() != null && filmDetail.getCountries().size() > 0) {
tvFilmCountry.setText(filmDetail.getCountries().get(0));
}
if (filmDetail.getGenres() != null && filmDetail.getGenres().size() > 0) {
StringBuilder stringBuilder = new StringBuilder();
for (String s : filmDetail.getGenres()) {
stringBuilder.append(s + "/");
}
tvFilmType.setText(stringBuilder.toString().substring(0, stringBuilder.toString().length() - 1));
}
tvDescription.setText(filmDetail.getSummary());
tvFilmName.setText(filmDetail.getOriginal_title() + " [原名]");
initFilmData(filmDetail);
CastAdapter castAdapter = new CastAdapter(this);
castAdapter.setDatas(list);
FullyLinearLayoutManager fullyLinearLayoutManager = new FullyLinearLayoutManager(this);
recyclerview.setLayoutManager(fullyLinearLayoutManager);
recyclerview.setAdapter(castAdapter);
alt=filmDetail.getAlt();
castAdapter.setOnItemClickListener(new EasyRecyclerViewAdapter.OnItemClickListener() {
@Override
public void OnItemClick(View view, int position, Object data) {
Intent intent=new Intent(FilmDetailActivity.this, WebviewActivity.class);
String alt=list.get(position).getAlt();
intent.putExtra(WebviewActivity.EXTRA_URL,alt);
startThActivityByIntent(intent);
}
});
}
private List<FilmPeople> list = new ArrayList<>();
private void initFilmData(FilmDetail filmDetail) {
if (filmDetail.getDirectors() != null && filmDetail.getDirectors().size() > 0) {
for (int i = 0; i < filmDetail.getDirectors().size(); i++) {
Directors directors = filmDetail.getDirectors().get(i);
FilmPeople filmPeople = new FilmPeople();
filmPeople.setAlt(directors.getAlt());
filmPeople.setAvatars(directors.getAvatars());
filmPeople.setId(directors.getId());
filmPeople.setName(directors.getName());
filmPeople.setType(1);
list.add(filmPeople);
}
}
if (filmDetail.getCasts() != null && filmDetail.getCasts().size() > 0) {
for (int i = 0; i < filmDetail.getCasts().size(); i++) {
Casts casts = filmDetail.getCasts().get(i);
FilmPeople filmPeople = new FilmPeople();
filmPeople.setAlt(casts.getAlt());
filmPeople.setAvatars(casts.getAvatars());
filmPeople.setId(casts.getId());
filmPeople.setName(casts.getName());
filmPeople.setType(2);
list.add(filmPeople);
}
}
}
@Override
public void getDataFail() {
}
@OnClick({R.id.iv_film, R.id.tv_more_info})
public void onClick(View view) {
Intent intent;
switch (view.getId()) {
case R.id.iv_film:
case R.id.tv_more_info:
intent=new Intent(this, WebviewActivity.class);
intent.putExtra(WebviewActivity.EXTRA_URL,alt);
startThActivityByIntent(intent);
break;
}
}
}