package org.commcare.android.adapters;
import java.util.List;
import org.commcare.android.framework.EntityDetailFragment;
import org.commcare.android.models.Entity;
import org.commcare.android.util.DetailCalloutListener;
import org.commcare.suite.model.Detail;
import org.odk.collect.android.views.media.AudioController;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
/**
* Subclass of FragmentStatePagerAdapter for populating a ViewPager (swipe-based paging widget) with entity detail fields.
* @author jschweers
*/
public class EntityDetailPagerAdapter extends FragmentStatePagerAdapter {
Detail detail;
int detailIndex;
boolean hasDetailCalloutListener;
public EntityDetailPagerAdapter(FragmentManager fm, Detail detail, int detailIndex, boolean hasDetailCalloutListener) {
super(fm);
this.detail = detail;
this.detailIndex = detailIndex;
this.hasDetailCalloutListener = hasDetailCalloutListener;
}
/*
* (non-Javadoc)
* @see android.support.v4.app.FragmentStatePagerAdapter#getItem(int)
*/
@Override
public Fragment getItem(int i) {
Fragment fragment = new EntityDetailFragment();
Bundle args = new Bundle();
args.putString(EntityDetailFragment.DETAIL_ID, detail.getId());
if (detail.isCompound()) {
args.putInt(EntityDetailFragment.CHILD_DETAIL_INDEX, i);
}
args.putInt(EntityDetailFragment.DETAIL_INDEX, detailIndex);
args.putBoolean(EntityDetailFragment.HAS_DETAIL_CALLOUT_LISTENER, hasDetailCalloutListener);
fragment.setArguments(args);
return fragment;
}
/*
* (non-Javadoc)
* @see android.support.v4.view.PagerAdapter#getCount()
*/
@Override
public int getCount() {
return detail.isCompound() ? detail.getDetails().length : 1;
}
}