package me.weyye.todaynews.ui.activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import com.chad.library.adapter.base.BaseQuickAdapter; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import me.weyye.todaynews.R; import me.weyye.todaynews.base.BaseMvpActivity; import me.weyye.todaynews.model.Comment; import me.weyye.todaynews.model.CommentList; import me.weyye.todaynews.presenter.BaseDetailPresenter; import me.weyye.todaynews.ui.adapter.CommentAdapter; import me.weyye.todaynews.ui.view.ProgressWebView; import me.weyye.todaynews.utils.ConstanceValue; import me.weyye.todaynews.view.IBaseDetailView; import static me.weyye.todaynews.R.id.action_comment_count; /** * Created by Administrator on 2016/11/24 0024. */ public abstract class BaseNewsActivity extends BaseMvpActivity<BaseDetailPresenter> implements IBaseDetailView { @BindView(R.id.recyclerView) protected RecyclerView recyclerView; @BindView(R.id.write_comment_layout) TextView writeCommentLayout; @BindView(R.id.action_view_up) ImageView actionViewUp; @BindView(R.id.action_view_comment) ImageView actionViewComment; @BindView(action_comment_count) TextView actionCommentCount; @BindView(R.id.action_commont_layout) FrameLayout actionCommontLayout; @BindView(R.id.view_comment_layout) FrameLayout viewCommentLayout; @BindView(R.id.action_favor) ImageView actionFavor; @BindView(R.id.action_repost) ImageView actionRepost; private ProgressWebView web; private String mUrl; private CommentAdapter mAdapter; private View headerView; @Override protected void loadViewLayout() { ButterKnife.bind(this); } @Override protected void bindViews() { } protected int mPageNow = 1; protected List<Comment> mDatas = new ArrayList<>(); protected String groupId; protected String itemId; @Override protected void processLogic(Bundle savedInstanceState) { initCommonRecyclerView(mAdapter = new CommentAdapter(mDatas), null); headerView = View.inflate(this, R.layout.layout_webview, null); headerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); mAdapter.openLoadMore(10, true); View emptyView = View.inflate(this, R.layout.subscribe_list_empty_view, null); emptyView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); mAdapter.setEmptyView(true, emptyView); Intent intent = getIntent(); mUrl = intent.getStringExtra(ConstanceValue.URL); groupId = intent.getStringExtra(ConstanceValue.GROUP_ID); itemId = intent.getStringExtra(ConstanceValue.ITEM_ID); getData(); mAdapter.addHeaderView(createHeader()); } public abstract View createHeader(); @Override protected BaseDetailPresenter createPresenter() { return new BaseDetailPresenter(this); } protected void onUriLoad(Uri uri) { } public static void startNews(Context context, String url, String groupId, String itemId) { start(context, NewsDetailActivity.class, url, groupId, itemId); } public static void startVideo(Context context, String url, String groupId, String itemId) { start(context, VideoDetailActivity.class, url, groupId, itemId); } private static void start(Context context, Class activityClass, String url, String groupId, String itemId) { Intent intent = new Intent(context, activityClass); intent.putExtra(ConstanceValue.URL, url); intent.putExtra(ConstanceValue.GROUP_ID, groupId); intent.putExtra(ConstanceValue.ITEM_ID, itemId); context.startActivity(intent); } protected void getData() { getNewsDetail(); getComment(); } private void getComment() { mvpPresenter.getComment(groupId, itemId, mPageNow); } private void getNewsDetail() { mvpPresenter.getNewsDetail(mUrl); // mvpPresenter.getNewsDetail("http://m.toutiao.com/i6417407501330809346/info/"); } @Override protected void setListener() { mAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() { @Override public void onLoadMoreRequested() { if (!TextUtils.isEmpty(groupId) && !TextUtils.isEmpty(itemId)) { mPageNow++; getComment(); } } }); } @Override public void onGetCommentSuccess(CommentList response) { if (response.total > 0) { actionCommentCount.setVisibility(View.VISIBLE); actionCommentCount.setText(response.total + ""); } if (response.comments.size() > 0) { mAdapter.notifyDataChangedAfterLoadMore(response.comments, response.has_more); } else { mAdapter.notifyDataChangedAfterLoadMore(false); } } @OnClick({R.id.action_commont_layout, R.id.action_favor, R.id.action_repost}) public void onClick(View view) { switch (view.getId()) { case R.id.action_commont_layout: recyclerView.smoothScrollToPosition(1); break; case R.id.action_favor: break; case R.id.action_repost: break; } } }