package com.odoo.widgets.slider;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class SliderPagerAdapter extends FragmentStatePagerAdapter {
public static final String KEY_POSITION = "key_pos";
Context mContext = null;
List<SliderItem> mItems = new ArrayList<SliderItem>();
public SliderPagerAdapter(Context context, FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
PageFragment frag = new PageFragment();
Bundle bundle = new Bundle();
bundle.putInt(KEY_POSITION, position);
frag.setArguments(bundle);
return frag;
}
public void initPager(Context context, List<SliderItem> items) {
mContext = context;
mItems.clear();
mItems.addAll(items);
notifyDataSetChanged();
}
@Override
public int getCount() {
return mItems.size();
}
class PageFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View layout = null;
int pos = getPosition();
SliderItem item = mItems.get(pos);
if (item.getSliderCustomViewListener() != null) {
layout = item.getSliderCustomViewListener().getCustomView(
mContext, item, container);
} else {
layout = (LinearLayout) inflater.inflate(R.layout.default_ui,
container, false);
}
return layout;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
int pos = getPosition();
SliderItem item = mItems.get(pos);
if (item.getSliderCustomViewListener() == null) {
ImageView imgPic = (ImageView) view
.findViewById(R.id.view_image);
TextView txvTitle, txvContent;
txvTitle = (TextView) view.findViewById(R.id.view_title);
txvContent = (TextView) view.findViewById(R.id.view_content);
imgPic.setImageResource(item.getImagePath());
txvTitle.setText(item.getTitle());
txvContent.setText(item.getContent());
}
}
private int getPosition() {
return getArguments().getInt(KEY_POSITION);
}
}
public interface SliderBuilderListener {
public View getCustomView(Context context, SliderItem item,
ViewGroup parent);
}
}