package com.hellodev.lightme.view;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import com.hellodev.lightme.FlashApp;
import com.hellodev.lightme.R;
public class GuidePagerAdapter extends PagerAdapter implements OnClickListener {
private int[] IMG_RES;
private int pageCount;
private Context appContext;
private boolean fromSettingFlag;
private OnGuideViewClickListener listener;
public GuidePagerAdapter(int[] imgRes, boolean fromSetting,
OnGuideViewClickListener listener) {
appContext = FlashApp.getContext();
IMG_RES = imgRes;
pageCount = IMG_RES.length + 1;
fromSettingFlag = fromSetting;
this.listener = listener;
}
public void release() {
this.listener = null;
}
@Override
public int getCount() {
return pageCount;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View pager = generatePagerView(position);
container.addView(pager);
return pager;
}
private View generatePagerView(int position) {
View view = null;
if (position < pageCount - 1) {
ImageView imgView = new ImageView(appContext);
imgView.setBackgroundResource(IMG_RES[position]);
view = imgView;
} else {
View lastView = LayoutInflater.from(appContext).inflate(
R.layout.pager_view, null);
Button btnStart = (Button) lastView
.findViewById(R.id.btn_start);
if (fromSettingFlag) {
btnStart.setVisibility(View.GONE);
} else {
btnStart.setOnClickListener(this);
}
view = lastView;
}
return view;
}
@Override
public void onClick(View v) {
if (listener != null)
listener.onGuideViewClick(v);
}
public interface OnGuideViewClickListener {
public void onGuideViewClick(View view);
}
};