package com.zcy.ghost.vivideo.ui.view; import android.content.Context; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.Toolbar; import android.util.AttributeSet; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import com.jude.easyrecyclerview.EasyRecyclerView; import com.jude.easyrecyclerview.adapter.RecyclerArrayAdapter; import com.jude.easyrecyclerview.decoration.SpaceDecoration; import com.mikepenz.material_design_iconic_typeface_library.MaterialDesignIconic; import com.zcy.ghost.vivideo.R; import com.zcy.ghost.vivideo.base.RootView; import com.zcy.ghost.vivideo.model.bean.VideoInfo; import com.zcy.ghost.vivideo.model.bean.VideoType; import com.zcy.ghost.vivideo.presenter.VideoInfoPresenter; import com.zcy.ghost.vivideo.presenter.contract.MineContract; import com.zcy.ghost.vivideo.ui.activitys.CollectionActivity; import com.zcy.ghost.vivideo.ui.activitys.HistoryActivity; import com.zcy.ghost.vivideo.ui.activitys.SettingActivity; import com.zcy.ghost.vivideo.ui.adapter.MineHistoryVideoListAdapter; import com.zcy.ghost.vivideo.ui.fragments.MineFragment; import com.zcy.ghost.vivideo.utils.BeanUtil; import com.zcy.ghost.vivideo.utils.EventUtil; import com.zcy.ghost.vivideo.utils.JumpUtil; import com.zcy.ghost.vivideo.utils.Preconditions; import com.zcy.ghost.vivideo.utils.ScreenUtil; import com.zcy.ghost.vivideo.utils.StringUtils; import com.zcy.ghost.vivideo.widget.theme.ColorTextView; import org.simple.eventbus.EventBus; import org.simple.eventbus.Subscriber; import java.util.List; import butterknife.BindView; import butterknife.OnClick; import static com.zcy.ghost.vivideo.R.id.recyclerView; /** * Description: MineView * Creator: cp * date: 2016/9/29 12:16 */ public class MineView extends RootView<MineContract.Presenter> implements MineContract.View { MineHistoryVideoListAdapter mAdapter; VideoInfo videoInfo; @BindView(R.id.title_name) ColorTextView titleName; @BindView(R.id.rl_them) RelativeLayout rlThem; @BindView(R.id.toolbar) Toolbar toolbar; @BindView(recyclerView) EasyRecyclerView mRecyclerView; @BindView(R.id.tv_history) TextView mTvHistory; @BindView(R.id.tv_down) TextView tvDown; @BindView(R.id.tv_collection) TextView tvCollection; @BindView(R.id.tv_them) TextView tvThem; public MineView(Context context) { super(context); } public MineView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void getLayout() { inflate(mContext, R.layout.fragment_mine_view, this); } @Override protected void initView() { ((AppCompatActivity) getContext()).setSupportActionBar(toolbar); toolbar.setTitle(""); titleName.setText(getResources().getString(R.string.mine_title)); StringUtils.setIconDrawable(mContext, mTvHistory, MaterialDesignIconic.Icon.gmi_account_calendar, 16, 15); StringUtils.setIconDrawable(mContext, tvDown, MaterialDesignIconic.Icon.gmi_time_countdown, 16, 15); StringUtils.setIconDrawable(mContext, tvCollection, MaterialDesignIconic.Icon.gmi_collection_bookmark, 16, 15); StringUtils.setIconDrawable(mContext, tvThem, MaterialDesignIconic.Icon.gmi_palette, 16, 15); mRecyclerView.setAdapter(mAdapter = new MineHistoryVideoListAdapter(mContext)); GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 3); gridLayoutManager.setSpanSizeLookup(mAdapter.obtainGridSpanSizeLookUp(3)); mRecyclerView.setLayoutManager(gridLayoutManager); SpaceDecoration itemDecoration = new SpaceDecoration(ScreenUtil.dip2px(mContext, 8)); itemDecoration.setPaddingEdgeSide(true); itemDecoration.setPaddingStart(true); itemDecoration.setPaddingHeaderFooter(false); mRecyclerView.addItemDecoration(itemDecoration); } @Override protected void initEvent() { mAdapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() { @Override public void onItemClick(int position) { videoInfo = BeanUtil.VideoType2VideoInfo(mAdapter.getItem(position), videoInfo); JumpUtil.go2VideoInfoActivity(getContext(), videoInfo); } }); } @Override public void setPresenter(MineContract.Presenter presenter) { mPresenter = Preconditions.checkNotNull(presenter); } @Override public void showError(String msg) { EventUtil.showToast(mContext, msg); } @Override public boolean isActive() { return mActive; } @Override public void showContent(List<VideoType> list) { mAdapter.clear(); mAdapter.addAll(list); if (list.size() > 0) { mRecyclerView.setVisibility(View.VISIBLE); } else { mRecyclerView.setVisibility(View.GONE); } } @OnClick({R.id.rl_record, R.id.rl_down, R.id.rl_collection, R.id.rl_them, R.id.img_setting}) public void onClick(View view) { switch (view.getId()) { case R.id.rl_record: getContext().startActivity(new Intent(mContext, HistoryActivity.class)); break; case R.id.rl_down: EventUtil.showToast(getContext(), "敬请期待"); break; case R.id.rl_collection: getContext().startActivity(new Intent(mContext, CollectionActivity.class)); break; case R.id.rl_them: EventBus.getDefault().post("", MineFragment.SET_THEME); break; case R.id.img_setting: getContext().startActivity(new Intent(mContext, SettingActivity.class)); break; } } @Subscriber(tag = VideoInfoPresenter.Refresh_History_List) public void setData(String tag) { mPresenter.getHistoryData(); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); EventBus.getDefault().register(this); } @Override protected void onDetachedFromWindow() { EventBus.getDefault().unregister(this); super.onDetachedFromWindow(); } }