package com.example.jingbin.cloudreader.ui.book.child;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.widget.ImageView;
import com.example.jingbin.cloudreader.R;
import com.example.jingbin.cloudreader.base.BaseHeaderActivity;
import com.example.jingbin.cloudreader.bean.book.BookDetailBean;
import com.example.jingbin.cloudreader.bean.book.BooksBean;
import com.example.jingbin.cloudreader.databinding.ActivityBookDetailBinding;
import com.example.jingbin.cloudreader.databinding.HeaderBookDetailBinding;
import com.example.jingbin.cloudreader.http.HttpClient;
import com.example.jingbin.cloudreader.utils.CommonUtils;
import com.example.jingbin.cloudreader.utils.DebugUtil;
import com.example.jingbin.cloudreader.view.webview.WebViewActivity;
import rx.Observer;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public class BookDetailActivity extends BaseHeaderActivity<HeaderBookDetailBinding, ActivityBookDetailBinding> {
private BooksBean booksBean;
private String mBookDetailUrl;
private String mBookDetailName;
public final static String EXTRA_PARAM = "bookBean";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_detail);
if (getIntent() != null) {
booksBean = (BooksBean) getIntent().getSerializableExtra(EXTRA_PARAM);
}
setMotion(setHeaderPicView(),true);
initSlideShapeTheme(setHeaderImgUrl(), setHeaderImageView());
setTitle(booksBean.getTitle());
setSubTitle("作者:" + booksBean.getAuthor());
bindingHeaderView.setBooksBean(booksBean);
bindingHeaderView.executePendingBindings();
loadBookDetail();
}
@Override
protected int setHeaderLayout() {
return R.layout.header_book_detail;
}
private void loadBookDetail() {
DebugUtil.error("------http2");
Subscription get = HttpClient.Builder.getDouBanService().getBookDetail(booksBean.getId())
// Subscription get = HttpUtils.getInstance().getDouBanServer().getBookDetail(booksBean.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BookDetailBean>() {
@Override
public void onCompleted() {
showContentView();
}
@Override
public void onError(Throwable e) {
showError();
}
@Override
public void onNext(final BookDetailBean bookDetailBean) {
mBookDetailUrl = bookDetailBean.getAlt();
mBookDetailName = bookDetailBean.getTitle();
bindingContentView.setBookDetailBean(bookDetailBean);
bindingContentView.executePendingBindings();
}
});
addSubscription(get);
}
@Override
protected void setTitleClickMore() {
WebViewActivity.loadUrl(this, mBookDetailUrl, mBookDetailName);
}
@Override
protected String setHeaderImgUrl() {
if (booksBean == null) {
return "";
}
return booksBean.getImages().getMedium();
}
@Override
protected ImageView setHeaderImageView() {
return bindingHeaderView.imgItemBg;
}
@Override
protected ImageView setHeaderPicView() {
return bindingHeaderView.ivOnePhoto;
}
@Override
protected void onRefresh() {
loadBookDetail();
}
/**
* @param context activity
* @param positionData bean
* @param imageView imageView
*/
public static void start(Activity context, BooksBean positionData, ImageView imageView) {
Intent intent = new Intent(context, BookDetailActivity.class);
intent.putExtra(EXTRA_PARAM, positionData);
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(context,
imageView, CommonUtils.getString(R.string.transition_book_img));//与xml文件对应
ActivityCompat.startActivity(context, intent, options.toBundle());
}
}