package com.dl7.mvp.module.video.main;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.dl7.mvp.R;
import com.dl7.mvp.adapter.ViewPagerAdapter;
import com.dl7.mvp.injector.components.DaggerVideoMainComponent;
import com.dl7.mvp.injector.modules.VideoMainModule;
import com.dl7.mvp.module.base.BaseFragment;
import com.dl7.mvp.module.base.IRxBusPresenter;
import com.dl7.mvp.module.manage.download.DownloadActivity;
import com.dl7.mvp.module.manage.love.LoveActivity;
import com.dl7.mvp.module.video.list.VideoListFragment;
import com.dl7.mvp.rxbus.event.VideoEvent;
import com.flyco.tablayout.SlidingTabLayout;
import java.util.ArrayList;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.OnClick;
import rx.functions.Action1;
/**
* Created by long on 2016/12/20.
* video主界面
*/
public class VideoMainFragment extends BaseFragment<IRxBusPresenter> implements IVideoMainView {
private final String[] VIDEO_ID = new String[]{
"V9LG4B3A0", "V9LG4E6VR", "V9LG4CHOR", "00850FRB"
};
private final String[] VIDEO_TITLE = new String[]{
"热点", "搞笑", "娱乐", "精品"
};
@BindView(R.id.iv_love_count)
TextView mIvLoveCount;
@BindView(R.id.fl_love_layout)
FrameLayout mFlLoveLayout;
@BindView(R.id.tv_download_count)
TextView mTvDownloadCount;
@BindView(R.id.fl_download_layout)
FrameLayout mFlDownloadLayout;
@BindView(R.id.tool_bar)
Toolbar mToolBar;
@BindView(R.id.tab_layout)
SlidingTabLayout mTabLayout;
@BindView(R.id.view_pager)
ViewPager mViewPager;
@Inject
ViewPagerAdapter mPagerAdapter;
@Override
protected int attachLayoutRes() {
return R.layout.fragment_video_main;
}
@Override
protected void initInjector() {
DaggerVideoMainComponent.builder()
.applicationComponent(getAppComponent())
.videoMainModule(new VideoMainModule(this))
.build()
.inject(this);
}
@Override
protected void initViews() {
initToolBar(mToolBar, true, "视频");
mPresenter.registerRxBus(VideoEvent.class, new Action1<VideoEvent>() {
@Override
public void call(VideoEvent videoEvent) {
if (videoEvent.checkStatus == VideoEvent.CHECK_INVALID) {
mPresenter.getData(false);
}
}
});
}
@Override
protected void updateViews(boolean isRefresh) {
ArrayList<Fragment> fragments = new ArrayList<>();
for (int i = 0; i < VIDEO_ID.length; i++) {
fragments.add(VideoListFragment.newInstance(VIDEO_ID[i]));
}
mPagerAdapter.setItems(fragments, VIDEO_TITLE);
mViewPager.setAdapter(mPagerAdapter);
mTabLayout.setViewPager(mViewPager);
mPresenter.getData(isRefresh);
}
@Override
public void updateLovedCount(int lovedCount) {
mIvLoveCount.setText(lovedCount + "");
}
@Override
public void updateDownloadCount(int downloadCount) {
mTvDownloadCount.setVisibility(downloadCount > 0 ? View.VISIBLE : View.GONE);
mTvDownloadCount.setText(downloadCount + "");
}
@Override
public void onDestroy() {
super.onDestroy();
mPresenter.unregisterRxBus();
}
@OnClick({R.id.fl_love_layout, R.id.fl_download_layout})
public void onClick(View view) {
switch (view.getId()) {
case R.id.fl_love_layout:
LoveActivity.launch(mContext, 1);
break;
case R.id.fl_download_layout:
DownloadActivity.launch(mContext, 0);
break;
}
}
}