package au.com.museumvictoria.fieldguide.bunurong.ui.fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.util.Log;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import au.com.museumvictoria.fieldguide.bunurong.R;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragment;
public class SpeciesListFragment extends SherlockFragment {
public static final String TAG = SpeciesListFragment.class.getSimpleName();
/**
* Whether or not the activity is in two-pane mode, i.e. running on a tablet
* device.
*/
private boolean mTwoPane;
private static boolean mShowGroups;
private static View mygroupsview;
public static SpeciesListFragment newInstance() {
mShowGroups = false;
return new SpeciesListFragment();
}
public static SpeciesListFragment newInstance(boolean showGroups) {
mShowGroups = showGroups;
return new SpeciesListFragment();
}
public static SpeciesListFragment newInstance(boolean showGroups, Bundle args) {
mShowGroups = showGroups;
SpeciesListFragment fragment = new SpeciesListFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (mShowGroups) {
if (mygroupsview != null) {
ViewGroup groupparent = (ViewGroup) mygroupsview.getParent();
if (groupparent != null) {
groupparent.removeView(mygroupsview);
}
}
try {
Bundle arguments = this.getArguments();
if (arguments != null) {
String speciesgroup = arguments.getString("speciesgroup");
if (TextUtils.isEmpty(speciesgroup)) {
speciesgroup = "My Group";
}
}
mygroupsview = inflater.inflate(R.layout.fragment_species_grouplist, container, false);
} catch (InflateException ie) {
// System.out.println("Catching the InflateException");
// ie.printStackTrace(System.out);
}
TextView subgroupname = (TextView) mygroupsview.findViewById(R.id.subgroupname);
if (subgroupname != null) {
Bundle arguments = this.getArguments();
String speciesgroup = arguments.getString("speciesgroup");
if (TextUtils.isEmpty(speciesgroup)) {
speciesgroup = "ALL";
}
subgroupname.setText(speciesgroup);
// final ActionBar ab = getSherlockActivity().getSupportActionBar();
// ab.setDisplayShowTitleEnabled(true);
// ab.setDisplayHomeAsUpEnabled(true);
// ab.setDisplayUseLogoEnabled(false);
// ab.setDisplayShowHomeEnabled(false);
// ab.setTitle(speciesgroup);
SpeciesItemListFragment fragment = (SpeciesItemListFragment) getFragmentManager()
.findFragmentById(R.id.item_list);
if (fragment != null) {
if (this.getArguments() != null) {
fragment.onSpeciesGroupUpdated(getArguments().getString("speciesgroup"));
}
}
}
mShowGroups = false;
return mygroupsview;
}
mShowGroups = false;
return inflater.inflate(R.layout.fragment_species, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
String[] speciestabs = getResources().getStringArray(
R.array.speciestabs);
ViewPager mViewPager = (ViewPager) view.findViewById(R.id.viewPager);
if (mViewPager != null) {
mViewPager.setAdapter(new SpeciesListAdapter(getChildFragmentManager(), SpeciesItemListFragment.class, speciestabs));
}
}
public static class SpeciesListAdapter extends FragmentPagerAdapter {
String[] speciestabs;
Class fragmentClass;
public SpeciesListAdapter(FragmentManager fm, Class fragmentClass, String[] speciestabs) {
super(fm);
this.speciestabs = speciestabs;
this.fragmentClass = fragmentClass;
}
@Override
public int getCount() {
return speciestabs.length;
}
@Override
public Fragment getItem(int position) {
Log.d(TAG, "Adding '" + this.speciestabs[position].toUpperCase() + "' to as fragment type");
// if (speciestabs[position].toUpperCase().equalsIgnoreCase(SpeciesItemListFragment.LIST_TYPE_GROUP) || speciestabs[position].toUpperCase().equalsIgnoreCase(SpeciesItemListFragment.LIST_TYPE_ALPHABETICAL)) {
// Bundle args = new Bundle();
// args.putString(SpeciesItemListFragment.LIST_TYPE, this.speciestabs[position].toUpperCase());
// return SpeciesItemListFragment.newInstance(args);
// } else {
// return new HomeFragment();
// }
Bundle args = new Bundle();
if (fragmentClass == SpeciesItemListFragment.class) {
args.putString(SpeciesItemListFragment.LIST_TYPE, this.speciestabs[position].toUpperCase());
return SpeciesItemListFragment.newInstance(args);
} else if (fragmentClass == SpeciesDetailFragment.class) {
args.putString(SpeciesDetailFragment.FRAGMENT_NAME, this.speciestabs[position].toUpperCase());
args.putString("commonname", "My Common Name");
return SpeciesDetailFragment.newInstance(args);
} else {
return new HomeFragment();
}
}
@Override
public CharSequence getPageTitle(int position) {
return this.speciestabs[position];
}
}
}