package com.holo.fileexplorer;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.View.BaseSavedState;
import android.view.ViewGroup;
import android.widget.Toast;
public class ViewPagerAdapter extends FragmentPagerAdapter {
private static final String TAG = "[ViewPagerAdapter] called: ";
private int NUM_ITEMS = 2;
private int[] scrollPosition = new int[NUM_ITEMS];
private Context context;
private Map<Integer, FileListFragment> mPageReferenceMap = new HashMap<Integer, FileListFragment>();
private boolean debug = true;
public ViewPagerAdapter(Context context, FragmentManager fm) {
super(fm);
this.context = context;
for (int i = 0; i < NUM_ITEMS; i++) {
scrollPosition[i] = 0;
}
}
public void onActivityCreated(Bundle savedInstanceState) {
getFragment(0).takeOver();
// TODO: make this do something different on restart
}
// for Jake Wharton's viewpagerindicator. may be nixed because of the onPageChangeListener interference
// @Override
// public String getTitle(int position) {
// return "Tab #" + Integer.toString(position + 1);
// }
// for PagerTitleStrip
@Override
public CharSequence getPageTitle (int position) {
return "Tab #" + Integer.toString(position + 1);
}
@Override
public int getCount() {
//if (debug) Log.i(TAG, "getCount");
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
if (debug) Log.i(TAG, "getItem @ " + position);
FileListFragment myFragment = FileListFragment.newInstance(position);
mPageReferenceMap.put(position, myFragment);
return myFragment;
}
@Override
public void destroyItem(ViewGroup pager, int position, Object object) {
super.destroyItem(pager, position, object);
mPageReferenceMap.remove(position);
if (debug) Log.i(TAG, "destroyItem @ " + position);
}
@Override
public void finishUpdate(ViewGroup pager) {
super.finishUpdate(pager);
}
@Override
public Object instantiateItem(ViewGroup pager, int position) {
if (debug) Log.i(TAG, "instantiateItem @ " + position);
return super.instantiateItem(pager, position);
}
// public Object getItemReference (ViewGroup pager, int position) {
//// if (mCurTransaction == null) {
//// mCurTransaction = mFragmentManager.beginTransaction();
//// }
//
// String name = makeFragmentName(pager.getId(), position);
// Fragment fragment = fm.findFragmentByTag(name);
// }
@Override
public boolean isViewFromObject(View view, Object object) {
//if (debug) Log.i(TAG, "isViewFromObject result = " + super.isViewFromObject(view, object));
return super.isViewFromObject(view, object);
}
// @Override
// public void restoreState(Parcelable state, ClassLoader loader) {
// super.restoreState(state, loader);
// if (debug) Log.i(TAG, "restoreState");
// }
//
// @Override
// public Parcelable saveState() {
// if (debug) Log.i(TAG, "saveState");
// return super.saveState();
//
//// Parcelable superState = super.saveState();
//// SavedState savedState = new SavedState(superState);
//// //savedState.currentPage = mCurrentPage;
//// return savedState;
// }
@Override
public void startUpdate(ViewGroup pager) {
super.startUpdate(pager);
if (debug) Log.i(TAG, "startUpdate");
}
public FileListFragment getFragment(int key) {
return mPageReferenceMap.get(key);
}
public int getNumItems() {
return NUM_ITEMS;
}
}