package com.king.tv.mvp.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
import com.king.base.adapter.ViewPagerFragmentAdapter;
import com.king.base.util.ToastUtils;
import com.king.tv.Constants;
import com.king.tv.R;
import com.king.tv.bean.LiveCategory;
import com.king.tv.mvp.base.BaseFragment;
import com.king.tv.mvp.presenter.CategoryPresenter;
import com.king.tv.mvp.view.ICategoryView;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
/**
* @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a>
* @since 2017/2/20
*/
public class HomeFragment extends BaseFragment<ICategoryView, CategoryPresenter> implements ICategoryView {
@BindView(R.id.ivLeft)
ImageView ivLeft;
@BindView(R.id.ivTitle)
ImageView ivTitle;
@BindView(R.id.ivRight)
ImageView ivRight;
@BindView(R.id.tabLayout)
TabLayout tabLayout;
@BindView(R.id.btnMore)
ImageView btnMore;
@BindView(R.id.viewPager)
ViewPager viewPager;
@BindView(R.id.fab)
FloatingActionButton fab;
private ViewPagerFragmentAdapter viewPagerFragmentAdapter;
private List<LiveCategory> listCategory;
private List<CharSequence> listTitle;
private List<Fragment> listData;
public static HomeFragment newInstance() {
Bundle args = new Bundle();
HomeFragment fragment = new HomeFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public int getRootViewId() {
return R.layout.fragment_home;
}
@Override
public void initUI() {
listCategory = new ArrayList<>();
listTitle = new ArrayList<>();
listData = new ArrayList<>();
// listTitle.add(getText(R.string.recommend));
// listData.add(RecommendFragment.newInstance());
// listTitle.add(getText(R.string.tab_all));
// listData.add(LiveListFragment.newInstance(null));
viewPagerFragmentAdapter = new ViewPagerFragmentAdapter(getChildFragmentManager(),listData,listTitle);
viewPager.setAdapter(viewPagerFragmentAdapter);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void initData(){
// getPresenter().getAllCategoriesByDB();
getPresenter().getAllCategories();
}
@NonNull
@Override
public CategoryPresenter createPresenter() {
return new CategoryPresenter(getApp());
}
@Override
public void onGetLiveCategory(List<LiveCategory> list) {
if(list!=null){
toSetList(listCategory,list,false);
listData.clear();
List<CharSequence> listTemp = new ArrayList<>();
//----------------------
listTemp.add(getText(R.string.recommend));
listData.add(RecommendFragment.newInstance());
listTemp.add(getText(R.string.tab_all));
listData.add(LiveListFragment.newInstance(null));
//----------------------
for (int i = 0; i < list.size(); i++) {
LiveCategory liveCategory = list.get(i);
listTemp.add(liveCategory.getName());
listData.add(LiveListFragment.newInstance(liveCategory.getSlug()));
}
toSetList(listTitle,listTemp,false);
}
if(viewPagerFragmentAdapter!=null){
viewPagerFragmentAdapter.setListTitle(listTitle);
viewPagerFragmentAdapter.setListData(listData);
viewPagerFragmentAdapter.notifyDataSetChanged();
}
}
public void updateLiveCategory(List<LiveCategory> list,boolean isFirst){
}
@Override
public void onError(Throwable e) {
}
@Override
public void showProgress() {
}
@Override
public void onCompleted() {
}
@OnClick({R.id.ivLeft, R.id.ivRight, R.id.btnMore,R.id.fab})
public void onClick(View view) {
switch (view.getId()) {
case R.id.ivLeft:
startActivity(getFragmentIntent(Constants.SEARCH_FRAGMENT));
break;
case R.id.ivRight:
startLogin();
break;
case R.id.btnMore:
break;
case R.id.fab:
startAbout();
break;
}
}
}