package com.github.ppamorim.creator; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import com.github.ppamorim.collection.FragmentItem; public class FragmentViewItem extends FragmentItem { private static final String TAG = "FragmentViewItem"; private static final String KEY_POSITION = TAG + ":Position"; private final String className; private final Bundle args; public FragmentViewItem(CharSequence tag, String className, Bundle args) { super(tag); this.className = className; this.args = args; } public static FragmentViewItem of(CharSequence title, Class<? extends Fragment> clazz) { return new FragmentViewItem(title, clazz.getName(), new Bundle()); } public static FragmentViewItem of(CharSequence title, Class<? extends Fragment> clazz, Bundle args) { return new FragmentViewItem(title, clazz.getName(), args); } public static boolean hasPosition(Bundle args) { return args != null && args.containsKey(KEY_POSITION); } public static int getPosition(Bundle args) { return (hasPosition(args)) ? args.getInt(KEY_POSITION) : 0; } static void setPosition(Bundle args, int position) { args.putInt(KEY_POSITION, position); } public Fragment instantiate(Context context, int position) { setPosition(args, position); return Fragment.instantiate(context, className, args); } }