package com.knight.arch.ui.fragment;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.knight.arch.R;
import com.knight.arch.ui.base.BaseFragment;
import com.umeng.analytics.MobclickAgent;

import java.util.ArrayList;
import java.util.List;

/**
 * @author andyiac
 * @date 15-10-16
 * @web http://blog.andyiac.com
 * @github https://github.com/andyiac
 */
@SuppressLint("ValidFragment")
public class TrendingReposMainFragment extends BaseFragment {

    private TabLayout mTabLayout;

    public TrendingReposMainFragment() {
    }


    public void onResume() {
        super.onResume();
        MobclickAgent.onPageStart("TrendingReposMainFragment"); //统计页面
    }

    public void onPause() {
        super.onPause();
        MobclickAgent.onPageEnd("TrendingReposMainFragment");
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//        setStatusColor(android.R.color.transparent);
        View view = inflater.inflate(R.layout.fragment_trending_repos_main, container, false);
        initView(view);
        return view;
    }

    private void initView(View view) {

        ViewPager viewPager = (ViewPager) view.findViewById(R.id.trending_repos_fragment_viewpager);
        if (viewPager != null) {
            setupViewPager(viewPager);
        }

        mTabLayout = (TabLayout) view.findViewById(R.id.trending_repos_tabs);
        mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
        if (viewPager != null) {
            mTabLayout.setupWithViewPager(viewPager);
        }
    }

    private void setupViewPager(ViewPager viewPager) {
        Adapter adapter = new Adapter(getActivity().getSupportFragmentManager());
        adapter.addFragment(new TrendingReposFragment("java"), "Java");
        adapter.addFragment(new TrendingReposFragment("c"), "C");
        adapter.addFragment(new TrendingReposFragment("objective-c"), "Objective-C");
        adapter.addFragment(new TrendingReposFragment("swift"), "Swift");
        adapter.addFragment(new TrendingReposFragment("csharp"), "C#");
        adapter.addFragment(new TrendingReposFragment("python"), "Python");
        adapter.addFragment(new TrendingReposFragment("php"), "PHP");
        adapter.addFragment(new TrendingReposFragment("javascript"), "JavaScript");
        adapter.addFragment(new TrendingReposFragment("ruby"), "Ruby");
        viewPager.setAdapter(adapter);
    }

    static class Adapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragments = new ArrayList<>();
        private final List<String> mFragmentTitles = new ArrayList<>();

        public Adapter(FragmentManager fm) {
            super(fm);
        }

        public void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mFragmentTitles.add(title);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {

            return mFragmentTitles.get(position);
        }
    }
}