package me.qixingchen.mdbilibili.ui.activity; import android.content.Intent; import android.support.design.widget.AppBarLayout; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import me.qixingchen.mdbilibili.R; import me.qixingchen.mdbilibili.network.Api; import me.qixingchen.mdbilibili.network.RetrofitNetwork; import me.qixingchen.mdbilibili.ui.base.BaseActivity; import rx.Observer; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; /** * Created by Farble on 2015/6/24. * detail page */ public class BilibiliDetailActivity extends BaseActivity { private static final String TAG = "BilibiliDetail"; private static final String IMG_URL = "IMG_URL"; private static final String TITLE = "TITLE"; private static final String AID = "AID"; protected FloatingActionButton fab; protected String imageUrl; protected String title; private int aid; private Toolbar toolbar; private CollapsingToolbarLayout collapsingtoolbar; private android.support.design.widget.AppBarLayout appbar; private android.widget.TextView aidTextView; private android.widget.TextView PlayTextView; private android.widget.TextView reviewTextView; private android.widget.TextView videoreviewTextView; private android.widget.TextView favoritesTextView; private ImageView backdrop; private FloatingActionButton detailfab; @Override protected int getContentView() { return R.layout.dast_bilibili_detail; } @Override protected void bindView() { toolbar = (Toolbar) findViewById(R.id.toolbar); collapsingtoolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); fab = (FloatingActionButton) findViewById(R.id.detail_fab); this.detailfab = (FloatingActionButton) findViewById(R.id.detail_fab); this.favoritesTextView = (TextView) findViewById(R.id.favoritesTextView); this.videoreviewTextView = (TextView) findViewById(R.id.video_reviewTextView); this.reviewTextView = (TextView) findViewById(R.id.reviewTextView); this.PlayTextView = (TextView) findViewById(R.id.PlayTextView); this.aidTextView = (TextView) findViewById(R.id.aidTextView); this.appbar = (AppBarLayout) findViewById(R.id.appbar); this.collapsingtoolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); this.toolbar = (Toolbar) findViewById(R.id.toolbar); this.backdrop = (ImageView) findViewById(R.id.backdrop); } @SuppressWarnings("ConstantConditions") @Override protected void initData() { Intent intent = getIntent(); imageUrl = intent.getStringExtra(IMG_URL); title = intent.getStringExtra(TITLE); aid = intent.getIntExtra(AID, 0); RetrofitNetwork.retrofitAPI.create(Api.View.class).getViewInfo(aid, 1) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<me.qixingchen.mdbilibili.model.View>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { e.printStackTrace(); Snackbar.make(view, e.getMessage(), Snackbar.LENGTH_LONG).show(); } @Override public void onNext(me.qixingchen.mdbilibili.model.View view) { setVideoInfo(view); } }); toolbar.setTitle("Detail"); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); collapsingtoolbar.setTitle(title); loadBackdrop(); } @Override protected void bindEvent() { fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent playDemoIntent = new Intent(mContext, PlayerActivity.class); playDemoIntent.putExtra("AID", aid); mContext.startActivity(playDemoIntent); } }); } private void setVideoInfo(me.qixingchen.mdbilibili.model.View views) { favoritesTextView.setText("收藏数:" + views.getFavorites()); videoreviewTextView.setText("弹幕数:" + views.getVideo_review()); reviewTextView.setText("评论数:" + views.getReview()); PlayTextView.setText("播放数:" + views.getPlay()); aidTextView.setText("AV" + aid); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } private void loadBackdrop() { Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(backdrop); } }