package com.dl7.mvp.module.news.detail; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.design.widget.FloatingActionButton; import android.support.v4.widget.NestedScrollView; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.ViewStub; import android.widget.TextView; import com.dl7.mvp.R; import com.dl7.mvp.api.NewsUtils; import com.dl7.mvp.api.bean.NewsDetailInfo; import com.dl7.mvp.injector.components.DaggerNewsDetailComponent; import com.dl7.mvp.injector.modules.NewsDetailModule; import com.dl7.mvp.module.base.BaseSwipeBackActivity; import com.dl7.mvp.module.base.IBasePresenter; import com.dl7.mvp.utils.ListUtils; import com.dl7.recycler.adapter.BaseQuickAdapter; import com.dl7.recycler.helper.RecyclerViewHelper; import com.orhanobut.logger.Logger; import com.zzhoujay.richtext.RichText; import com.zzhoujay.richtext.callback.OnURLClickListener; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import butterknife.OnClick; @Deprecated public class NewsDetailActivity extends BaseSwipeBackActivity<IBasePresenter> implements INewsDetailView { private static final String APP_KEY = "AppKey"; @BindView(R.id.tool_bar) Toolbar mToolBar; @BindView(R.id.tv_title) TextView mTvTitle; @BindView(R.id.fab_coping) FloatingActionButton mFabCoping; @BindView(R.id.tv_source) TextView mTvSource; @BindView(R.id.tv_time) TextView mTvTime; @BindView(R.id.sv_content) NestedScrollView mSvContent; @BindView(R.id.tv_content) TextView mTvContent; @Inject BaseQuickAdapter mRelatedAdapter; private String mNewsId; public static void launch(Context context, String newsId) { Intent intent = new Intent(context, NewsDetailActivity.class); intent.putExtra(APP_KEY, newsId); context.startActivity(intent); ((Activity)context).overridePendingTransition(R.anim.slide_right_entry, R.anim.hold); } @Override protected int attachLayoutRes() { return R.layout.activity_news_detail; } @Override protected void initInjector() { mNewsId = getIntent().getStringExtra(APP_KEY); DaggerNewsDetailComponent.builder() .newsDetailModule(new NewsDetailModule(this, mNewsId)) .build() .inject(this); } @Override protected void initViews() { initToolBar(mToolBar, true, "新闻详情"); } @Override protected void updateViews(boolean isRefresh) { mPresenter.getData(isRefresh); } @Override public void loadData(NewsDetailInfo newsDetailBean) { mTvTitle.setText(newsDetailBean.getTitle()); mTvSource.setText(newsDetailBean.getSource()); mTvTime.setText(newsDetailBean.getPtime()); RichText.from(newsDetailBean.getBody()) .into(mTvContent); _handleSpInfo(newsDetailBean.getSpinfo()); _handleRelatedNews(newsDetailBean); } /** * 处理关联的内容 * * @param spinfo */ private void _handleSpInfo(List<NewsDetailInfo.SpinfoEntity> spinfo) { if (!ListUtils.isEmpty(spinfo)) { ViewStub stub = (ViewStub) findViewById(R.id.vs_related_content); assert stub != null; stub.inflate(); TextView tvType = (TextView) findViewById(R.id.tv_type); TextView tvRelatedContent = (TextView) findViewById(R.id.tv_related_content); tvType.setText(spinfo.get(0).getSptype()); RichText.from(spinfo.get(0).getSpcontent()) .urlClick(new OnURLClickListener() { @Override public boolean urlClicked(String url) { Logger.e(url); String newsId = NewsUtils.clipNewsIdFromUrl(url); Logger.w(url); if (newsId != null) { launch(NewsDetailActivity.this, newsId); } return true; } }) .into(tvRelatedContent); } } /** * 处理关联新闻 * * @param newsDetailBean */ private void _handleRelatedNews(NewsDetailInfo newsDetailBean) { if (!ListUtils.isEmpty(newsDetailBean.getRelative_sys())) { ViewStub stub = (ViewStub) findViewById(R.id.vs_related_news); assert stub != null; stub.inflate(); TextView mTvTopicName = (TextView) findViewById(R.id.tv_topic_name); if (!ListUtils.isEmpty(newsDetailBean.getHuati())) { mTvTopicName.setText(newsDetailBean.getHuati().get(0).getTopicName()); } RecyclerView mRvRelatedNews = (RecyclerView) findViewById(R.id.rv_related_news); RecyclerViewHelper.initRecyclerViewV(this, mRvRelatedNews, false, mRelatedAdapter); mRelatedAdapter.updateItems(newsDetailBean.getRelative_sys()); } } @OnClick(R.id.fab_coping) public void onClick() { mSvContent.stopNestedScroll(); mSvContent.smoothScrollTo(0, 0); } @Override public void finish() { super.finish(); overridePendingTransition(R.anim.hold, R.anim.slide_right_exit); } }