Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CamerasAdapter extends AbstractAdapter<Camera> {
- private static final int TYPE_BIG_IMAGE = 0;
- private static final int TYPE_DUAL_IMAGE = 1;
- private static final int TYPE_ADVERSING = 2;
- private static final int TYPE_MAX_COUNT = 3;
- private int currentType = 0;
- private int jump = 0;
- private Context mContext;
- private int mCount;
- private ViewHolder mViewHolder;
- private OnOpenDetailsClick mCallbackDetails;
- public CamerasAdapter(Context context, List<Camera> items, OnOpenDetailsClick onOpenDetailsClick) {
- super(context, items);
- mContext = context;
- mCallbackDetails = onOpenDetailsClick;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- DebugUtil.log("POSITION: " + position);
- int typeItem = getItemViewType(position);
- mViewHolder = new ViewHolder();
- if(convertView == null) {
- switch (typeItem) {
- case TYPE_BIG_IMAGE:
- convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_big, parent, false);
- mViewHolder.background = (ImageView) convertView.findViewById(R.id.big_thumbnail);
- mViewHolder.cityName = (TextView) convertView.findViewById(R.id.city);
- mViewHolder.cameraName = (TextView) convertView.findViewById(R.id.camera_name);
- break;
- case TYPE_DUAL_IMAGE:
- convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_double, parent, false);
- mViewHolder.background = (ImageView) convertView.findViewById(R.id.thumbnail_one);
- mViewHolder.cityName = (TextView) convertView.findViewById(R.id.city_one);
- mViewHolder.cameraName = (TextView) convertView.findViewById(R.id.camera_name_one);
- //
- // mViewHolder.backgroundTwo = (ImageView) convertView.findViewById(R.id.thumbnail_two);
- // mViewHolder.cityNameTwo = (TextView) convertView.findViewById(R.id.city_two);
- // mViewHolder.cameraNameTwo = (TextView) convertView.findViewById(R.id.camera_name_two);
- break;
- case TYPE_ADVERSING:
- convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_advertising, parent, false);
- mViewHolder.mAd = (AdView) convertView.findViewById(R.id.ad_view);
- break;
- }
- convertView.setTag(mViewHolder);
- } else {
- mViewHolder = (ViewHolder) convertView.getTag();
- }
- if(position != mViewHolder.position) {
- if (typeItem == TYPE_BIG_IMAGE) {
- Camera camera = getItem(position + jump);
- mViewHolder.cityName.setText(camera.getCity() + " / " + camera.getStatePrefix());
- mViewHolder.cameraName.setText(camera.getTitle());
- mViewHolder.background.setTag(position + jump);
- mViewHolder.cameraName.setTag(position + jump);
- mViewHolder.cityName.setTag(position + jump);
- mViewHolder.position = position;
- mViewHolder.background.setOnClickListener(onItemClick);
- ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + camera.getUrlImage(), mViewHolder.background);
- } else if (typeItem == TYPE_DUAL_IMAGE) {
- Camera camera = getItem(position);
- mViewHolder.position = position;
- mViewHolder.cityName.setText(camera.getCity() + " / " + camera.getStatePrefix());
- mViewHolder.cameraName.setText(camera.getTitle());
- mViewHolder.background.setTag(position);
- mViewHolder.cameraName.setTag(position);
- mViewHolder.cityName.setTag(position);
- mViewHolder.background.setOnClickListener(onItemClick);
- ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + camera.getUrlImage(), mViewHolder.background);
- //
- // Camera cameraTwo = getItem(position);
- //
- // mViewHolder.cityNameTwo.setText(cameraTwo.getCity() + " / " + cameraTwo.getStatePrefix());
- // mViewHolder.cameraNameTwo.setText(cameraTwo.getTitle());
- //
- // mViewHolder.backgroundTwo.setTag(position);
- // mViewHolder.cameraNameTwo.setTag(position);
- // mViewHolder.cityNameTwo.setTag(position);
- //
- // mViewHolder.backgroundTwo.setOnClickListener(onItemClick);
- //
- // ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + cameraTwo.getUrlImage(), mViewHolder.backgroundTwo);
- } else {
- AdRequest adRequest = new AdRequest.Builder().build();
- mViewHolder.mAd.loadAd(adRequest);
- mViewHolder.position = position;
- }
- }
- DebugUtil.log("position: " + position);
- DebugUtil.log("getCount: " + getCount());
- if(position > getCount()){
- //mLoadTrigger.loadTriggered();
- DebugUtil.log("LOAD MORE");
- }
- return convertView;
- }
- @Override
- public int getViewTypeCount() {
- return TYPE_MAX_COUNT;
- }
- @Override
- public int getItemViewType(int position) {
- if(position % 4 == 0) {
- currentType = TYPE_BIG_IMAGE;
- } else if (position % 3 == 0) {
- currentType = TYPE_ADVERSING;
- } else {
- currentType = TYPE_DUAL_IMAGE;
- }
- return currentType;
- }
- private View.OnClickListener onItemClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Camera camera = getItem(Integer.valueOf(view.getTag().toString()));
- if (camera != null && mCallbackDetails != null) {
- mCallbackDetails.onItemClick(camera);
- }
- }
- };
- private static class ViewHolder {
- private ImageView background;
- private TextView cameraName;
- private TextView cityName;
- private ImageView backgroundTwo;
- private TextView cameraNameTwo;
- private TextView cityNameTwo;
- public int position = -1;
- public Handler handler;
- private AdView mAd;
- }
- public static interface OnOpenDetailsClick {
- public void onItemClick(Camera camera);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment