/*
* Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.home;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import butterknife.BindView;
import butterknife.ButterKnife;
import me.zhanghai.android.douya.R;
import me.zhanghai.android.douya.broadcast.ui.HomeBroadcastListFragment;
import me.zhanghai.android.douya.ui.AppBarHost;
import me.zhanghai.android.douya.ui.AppBarWrapperLayout;
import me.zhanghai.android.douya.ui.NotYetImplementedFragment;
import me.zhanghai.android.douya.ui.TabFragmentPagerAdapter;
public class HomeFragment extends Fragment implements AppBarHost {
@BindView(R.id.appBarWrapper)
AppBarWrapperLayout mAppBarWrapperLayout;
@BindView(R.id.toolbar)
Toolbar mToolbar;
@BindView(R.id.tab)
TabLayout mTabLayout;
@BindView(R.id.viewPager)
ViewPager mViewPager;
private TabFragmentPagerAdapter mTabAdapter;
public static HomeFragment newInstance() {
//noinspection deprecation
return new HomeFragment();
}
/**
* @deprecated Use {@link #newInstance()} instead.
*/
public HomeFragment() {}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.home_fragment, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.setSupportActionBar(mToolbar);
mTabAdapter = new TabFragmentPagerAdapter(this);
mTabAdapter.addTab(new TabFragmentPagerAdapter.FragmentCreator() {
@Override
public Fragment createFragment() {
return HomeBroadcastListFragment.newInstance();
}
}, getString(R.string.home_broadcast));
mTabAdapter.addTab(new TabFragmentPagerAdapter.FragmentCreator() {
@Override
public Fragment createFragment() {
return NotYetImplementedFragment.newInstance();
}
}, getString(R.string.home_discover));
mTabAdapter.addTab(new TabFragmentPagerAdapter.FragmentCreator() {
@Override
public Fragment createFragment() {
return NotYetImplementedFragment.newInstance();
}
}, getString(R.string.home_online));
mViewPager.setOffscreenPageLimit(mTabAdapter.getCount() - 1);
mViewPager.setAdapter(mTabAdapter);
mTabLayout.setupWithViewPager(mViewPager);
}
@Override
public void showAppBar() {
mAppBarWrapperLayout.show();
}
@Override
public void hideAppBar() {
mAppBarWrapperLayout.hide();
}
}