package com.zcy.ghost.vivideo.ui.view; import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.daprlabs.cardstack.SwipeFrameLayout; import com.zcy.ghost.vivideo.R; import com.zcy.ghost.vivideo.app.Constants; import com.zcy.ghost.vivideo.base.RootView; import com.zcy.ghost.vivideo.model.bean.VideoRes; import com.zcy.ghost.vivideo.model.bean.VideoType; import com.zcy.ghost.vivideo.presenter.contract.DiscoverContract; import com.zcy.ghost.vivideo.ui.adapter.SwipeDeckAdapter; import com.zcy.ghost.vivideo.utils.EventUtil; import com.zcy.ghost.vivideo.utils.PreUtils; import com.zcy.ghost.vivideo.utils.Preconditions; import com.zcy.ghost.vivideo.utils.ScreenUtil; import com.zcy.ghost.vivideo.widget.LVGhost; import com.zcy.ghost.vivideo.widget.SwipeDeck; import com.zcy.ghost.vivideo.widget.theme.ColorTextView; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.OnClick; /** * Description: ThreeView * Creator: yxc * date: 2016/9/21 17:56 */ public class DiscoverView extends RootView<DiscoverContract.Presenter> implements DiscoverContract.View { @BindView(R.id.title_name) ColorTextView titleName; @BindView(R.id.swipe_deck) SwipeDeck swipeDeck; @BindView(R.id.swipeLayout) SwipeFrameLayout swipeLayout; @BindView(R.id.loading) LVGhost loading; @BindView(R.id.btn_next) Button btn_next; @BindView(R.id.tv_nomore) TextView tvNomore; private SwipeDeckAdapter adapter; private List<VideoType> videos = new ArrayList<>(); public DiscoverView(Context context) { super(context); } public DiscoverView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void getLayout() { inflate(mContext, R.layout.fragment_discover_view, this); } @Override protected void initView() { titleName.setText("发现"); ViewGroup.LayoutParams lp = swipeDeck.getLayoutParams(); lp.height = ScreenUtil.getScreenHeight(getContext()) / 3 * 2; swipeDeck.setLayoutParams(lp); swipeDeck.setHardwareAccelerationEnabled(true); } @Override protected void initEvent() { swipeDeck.setEventCallback(new SwipeDeck.SwipeEventCallback() { @Override public void cardSwipedLeft(int position) { } @Override public void cardSwipedRight(int position) { } @Override public void cardsDepleted() { swipeDeck.setVisibility(View.GONE); } @Override public void cardActionDown() { } @Override public void cardActionUp() { } }); } @Override public boolean isActive() { return mActive; } @Override public void setPresenter(DiscoverContract.Presenter presenter) { mPresenter = Preconditions.checkNotNull(presenter); } @Override public void showError(String msg) { EventUtil.showToast(mContext, msg); } @Override public void showContent(final VideoRes videoRes) { if (videoRes != null) { videos.clear(); videos.addAll(videoRes.list); swipeDeck.removeAllViews(); swipeDeck.removeAllViews(); adapter = new SwipeDeckAdapter(videos, getContext()); swipeDeck.setAdapter(adapter); tvNomore.setVisibility(View.VISIBLE); } } @Override public void refreshFaild(String msg) { hidLoading(); if (!TextUtils.isEmpty(msg)) showError(msg); } @Override public void hidLoading() { loading.setVisibility(View.GONE); } @Override public int getLastPage() { return PreUtils.getInt(getContext(), Constants.DISCOVERlASTpAGE, 1); } @Override public void setLastPage(int page) { PreUtils.putInt(getContext(), Constants.DISCOVERlASTpAGE, page); } private void nextVideos() { swipeDeck.setVisibility(View.VISIBLE); loading.setVisibility(View.VISIBLE); tvNomore.setVisibility(View.GONE); mPresenter.getData(); } @OnClick({R.id.btn_next, R.id.tv_nomore}) public void onClick(View view) { switch (view.getId()) { case R.id.btn_next: case R.id.tv_nomore: nextVideos(); break; } } }