package com.citrus.sample;
import android.app.Activity;
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;
import android.support.v4.view.ViewPager;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.citrus.mobile.CType;
import com.citrus.sdk.classes.Amount;
import com.viewpagerindicator.TabPageIndicator;
/**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* {@link WalletPaymentFragment} interface
* to handle interaction events.
* Use the {@link CardPaymentFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class CardPaymentFragment extends Fragment {
private static final String[] OPTIONS = new String[]{"SAVED\nACCOUNTS", "CREDIT\nCARD", "DEBIT\nCARD", "NET\nBANKING"};
private Utils.PaymentType paymentType = null;
private Amount amount = null;
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @return A new instance of fragment CardPaymentFragment.
*/
// TODO: Rename and change types and number of parameters
public static CardPaymentFragment newInstance(Utils.PaymentType paymentType, Amount amount) {
CardPaymentFragment fragment = new CardPaymentFragment();
Bundle bundle = new Bundle();
bundle.putSerializable("paymentType", paymentType);
bundle.putParcelable("amount", amount);
fragment.setArguments(bundle);
return fragment;
}
public CardPaymentFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
Bundle bundle = getArguments();
paymentType = (Utils.PaymentType) bundle.getSerializable("paymentType");
amount = bundle.getParcelable("amount");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
// create ContextThemeWrapper from the original Activity Context with the custom theme
final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.PagerIndicatorDefaultNewWithDivider);
// clone the inflater using the ContextThemeWrapper
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
// Inflate the layout for this fragment
View rootView = localInflater.inflate(R.layout.fragment_card_payment, container, false);
FragmentStatePagerAdapter adapter = new SavePayAdapter(getChildFragmentManager());
ViewPager pager = (ViewPager) rootView.findViewById(R.id.pager);
pager.setOffscreenPageLimit(4);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) rootView.findViewById(R.id.indicator);
indicator.setViewPager(pager);
return rootView;
}
public class SavePayAdapter extends FragmentStatePagerAdapter {
public SavePayAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return SavedOptionsFragment.newInstance(paymentType, amount);
} else if (position == 1) {
return CreditDebitCardFragment.newInstance(paymentType, CType.CREDIT, amount);
}
if (position == 2) {
return CreditDebitCardFragment.newInstance(paymentType, CType.DEBIT, amount);
} else {
return NetbankingFragment.newInstance(paymentType, amount);
}
}
@Override
public CharSequence getPageTitle(int position) {
return OPTIONS[position];
}
@Override
public int getCount() {
return OPTIONS.length;
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}
}