/* * Copyright (C) 2014 barter.li * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package li.barter.fragments; import java.util.ArrayList; import java.util.Arrays; import li.barter.R; import li.barter.analytics.AnalyticsConstants.Screens; import li.barter.analytics.GoogleAnalyticsManager; import li.barter.fragments.BooksPagerFragment.BookPageAdapter; import li.barter.http.IBlRequestContract; import li.barter.http.ResponseInfo; import android.annotation.SuppressLint; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.viewpagerindicator.IconPagerAdapter; import com.viewpagerindicator.TitlePageIndicator; /** * @author Anshul Kamboj Fragment for Paging {@link CollaborateFragment}, * {@link AboutUsPagerFragment} , {@link OssLicenseFragment}, * {@link TributeFragment} and {@link BarterLiDescriptionFragment} */ public class AboutUsPagerFragment extends AbstractBarterLiFragment implements OnPageChangeListener { private static final String TAG = "AboutUsPagerFragment"; /** * {@link BookPageAdapter} holds the {@link BookDetailFragment} as viewpager */ private AboutUsPageAdapter mAdapter; private ArrayList<String> mTitles; /** * ViewPager which holds the fragment */ private ViewPager mAboutUsPager; private TitlePageIndicator mIndicator; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { init(container, savedInstanceState); setHasOptionsMenu(true); setActionBarTitle(getString(R.string.Aboutus_fragment_title)); final View view = inflater .inflate(R.layout.fragment_aboutus_pager, container, false); mTitles= new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.aboutus_fragment_titles))); mAboutUsPager = (ViewPager) view.findViewById(R.id.pager_aboutus); mAdapter = new AboutUsPageAdapter(getChildFragmentManager(), mTitles); mAboutUsPager.setAdapter(mAdapter); mIndicator = (TitlePageIndicator) view .findViewById(R.id.aboutUsTitlesIndicator); mIndicator.setOnPageChangeListener(this); mIndicator.setViewPager(mAboutUsPager); onPageSelected(0); return view; } public class AboutUsPageAdapter extends FragmentStatePagerAdapter implements IconPagerAdapter { private int mCount; @SuppressLint("UseSparseArrays") /* * The benefits of SparseArrays are not noticeable unless the data size * is huge(~10k) and the API to use them is cumbersome compared to a Map */ public AboutUsPageAdapter(FragmentManager fm, ArrayList<String> content) { super(fm); mCount = mTitles.size(); } @Override public int getCount() { return mCount; } @Override public Fragment getItem(int position) { switch (position) { case 0: final TributeFragment tributeFragment = TributeFragment .newInstance(); return tributeFragment; case 1: final BarterLiDescriptionFragment barterliDescFragment = BarterLiDescriptionFragment .newInstance(); return barterliDescFragment; case 2: final TeamFragment teamFragment = TeamFragment .newInstance(); return teamFragment; case 3: final CollaborateFragment collaborateFragment = CollaborateFragment .newInstance(); return collaborateFragment; case 4: final OssLicenseFragment ossLicenseFragment = OssLicenseFragment .newInstance(); return ossLicenseFragment; default: break; } return null; } @Override public void destroyItem(ViewGroup container, int position, Object object) { super.destroyItem(container, position, object); } @Override public int getIconResId(int index) { // TODO Auto-generated method stub return 0; } @Override public CharSequence getPageTitle(int position) { return mTitles.get(position % mTitles.size()); } } @Override protected Object getTaskTag() { return hashCode(); } @Override public void onSuccess(int requestId, IBlRequestContract request, ResponseInfo response) { // TODO Auto-generated method stub } @Override public void onBadRequestError(int requestId, IBlRequestContract request, int errorCode, String errorMessage, Bundle errorResponseBundle) { // TODO Auto-generated method stub } @Override protected String getAnalyticsScreenName() { return Screens.ABOUT_US_PAGER; } @Override public void onPageScrollStateChanged(int state) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: { GoogleAnalyticsManager.getInstance().sendScreenHit(Screens.TRIBUTE); break; } case 1: { GoogleAnalyticsManager.getInstance().sendScreenHit(Screens.BARTERLI_DESCRIPTION); break; } case 2: { GoogleAnalyticsManager.getInstance().sendScreenHit(Screens.TEAM); break; } case 3: { GoogleAnalyticsManager.getInstance().sendScreenHit(Screens.COLLABORATE); break; } case 4: { GoogleAnalyticsManager.getInstance().sendScreenHit(Screens.OPEN_SOURCE); break; } default: { break; } } } }