ppamorim

Untitled

Jul 22nd, 2014
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.58 KB | None | 0 0
  1. public class CamerasAdapter extends AbstractAdapter<Camera> {
  2.  
  3.     private static final int TYPE_BIG_IMAGE = 0;
  4.     private static final int TYPE_DUAL_IMAGE = 1;
  5.     private static final int TYPE_ADVERSING = 2;
  6.     private static final int TYPE_MAX_COUNT = 3;
  7.  
  8.     private int currentType = 0;
  9.     private int jump = 0;
  10.  
  11.     private Context mContext;
  12.     private int mCount;
  13.     private ViewHolder mViewHolder;
  14.  
  15.     private OnOpenDetailsClick mCallbackDetails;
  16.  
  17.     public CamerasAdapter(Context context, List<Camera> items, OnOpenDetailsClick onOpenDetailsClick) {
  18.         super(context, items);
  19.         mContext = context;
  20.         mCallbackDetails = onOpenDetailsClick;
  21.     }
  22.  
  23.     @Override
  24.     public View getView(int position, View convertView, ViewGroup parent) {
  25.  
  26.         DebugUtil.log("POSITION: " + position);
  27.  
  28.         int typeItem = getItemViewType(position);
  29.         mViewHolder = new ViewHolder();
  30.  
  31.         if(convertView == null) {
  32.  
  33.             switch (typeItem) {
  34.                 case TYPE_BIG_IMAGE:
  35.                     convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_big, parent, false);
  36.                     mViewHolder.background = (ImageView) convertView.findViewById(R.id.big_thumbnail);
  37.                     mViewHolder.cityName = (TextView) convertView.findViewById(R.id.city);
  38.                     mViewHolder.cameraName = (TextView) convertView.findViewById(R.id.camera_name);
  39.                     break;
  40.                 case TYPE_DUAL_IMAGE:
  41.                     convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_double, parent, false);
  42.                     mViewHolder.background = (ImageView) convertView.findViewById(R.id.thumbnail_one);
  43.                     mViewHolder.cityName = (TextView) convertView.findViewById(R.id.city_one);
  44.                     mViewHolder.cameraName = (TextView) convertView.findViewById(R.id.camera_name_one);
  45. //
  46. //                    mViewHolder.backgroundTwo = (ImageView) convertView.findViewById(R.id.thumbnail_two);
  47. //                    mViewHolder.cityNameTwo = (TextView) convertView.findViewById(R.id.city_two);
  48. //                    mViewHolder.cameraNameTwo = (TextView) convertView.findViewById(R.id.camera_name_two);
  49.                     break;
  50.                 case TYPE_ADVERSING:
  51.                     convertView = LayoutInflater.from(mContext).inflate(R.layout.adapter_thumbnail_advertising, parent, false);
  52.                     mViewHolder.mAd = (AdView) convertView.findViewById(R.id.ad_view);
  53.                     break;
  54.             }
  55.  
  56.             convertView.setTag(mViewHolder);
  57.  
  58.         } else {
  59.             mViewHolder = (ViewHolder) convertView.getTag();
  60.         }
  61.  
  62.         if(position != mViewHolder.position) {
  63.  
  64.             if (typeItem == TYPE_BIG_IMAGE) {
  65.  
  66.                 Camera camera = getItem(position + jump);
  67.  
  68.                 mViewHolder.cityName.setText(camera.getCity() + " / " + camera.getStatePrefix());
  69.                 mViewHolder.cameraName.setText(camera.getTitle());
  70.  
  71.                 mViewHolder.background.setTag(position + jump);
  72.                 mViewHolder.cameraName.setTag(position + jump);
  73.                 mViewHolder.cityName.setTag(position + jump);
  74.                 mViewHolder.position = position;
  75.  
  76.                 mViewHolder.background.setOnClickListener(onItemClick);
  77.  
  78.                 ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + camera.getUrlImage(), mViewHolder.background);
  79.  
  80.             } else if (typeItem == TYPE_DUAL_IMAGE) {
  81.  
  82.                 Camera camera = getItem(position);
  83.  
  84.                 mViewHolder.position = position;
  85.  
  86.                 mViewHolder.cityName.setText(camera.getCity() + " / " + camera.getStatePrefix());
  87.                 mViewHolder.cameraName.setText(camera.getTitle());
  88.  
  89.                 mViewHolder.background.setTag(position);
  90.                 mViewHolder.cameraName.setTag(position);
  91.                 mViewHolder.cityName.setTag(position);
  92.  
  93.                 mViewHolder.background.setOnClickListener(onItemClick);
  94.  
  95.                 ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + camera.getUrlImage(), mViewHolder.background);
  96. //
  97. //                Camera cameraTwo = getItem(position);
  98. //
  99. //                mViewHolder.cityNameTwo.setText(cameraTwo.getCity() + " / " + cameraTwo.getStatePrefix());
  100. //                mViewHolder.cameraNameTwo.setText(cameraTwo.getTitle());
  101. //
  102. //                mViewHolder.backgroundTwo.setTag(position);
  103. //                mViewHolder.cameraNameTwo.setTag(position);
  104. //                mViewHolder.cityNameTwo.setTag(position);
  105. //
  106. //                mViewHolder.backgroundTwo.setOnClickListener(onItemClick);
  107. //
  108. //                ImageLoader.getInstance().displayImage(TagApplication.URL_TEMP_SERVER + cameraTwo.getUrlImage(), mViewHolder.backgroundTwo);
  109.  
  110.  
  111.             } else {
  112.                 AdRequest adRequest = new AdRequest.Builder().build();
  113.                 mViewHolder.mAd.loadAd(adRequest);
  114.                 mViewHolder.position = position;
  115.             }
  116.         }
  117.  
  118.         DebugUtil.log("position: " + position);
  119.         DebugUtil.log("getCount: " + getCount());
  120.  
  121.         if(position > getCount()){
  122.             //mLoadTrigger.loadTriggered();
  123.             DebugUtil.log("LOAD MORE");
  124.         }
  125.  
  126.         return convertView;
  127.     }
  128.  
  129.     @Override
  130.     public int getViewTypeCount() {
  131.         return TYPE_MAX_COUNT;
  132.     }
  133.  
  134.     @Override
  135.     public int getItemViewType(int position) {
  136.  
  137.         if(position % 4 == 0) {
  138.             currentType = TYPE_BIG_IMAGE;
  139.         } else if (position % 3 == 0) {
  140.             currentType = TYPE_ADVERSING;
  141.         } else {
  142.             currentType = TYPE_DUAL_IMAGE;
  143.         }
  144.  
  145.         return currentType;
  146.     }
  147.  
  148.  
  149.     private View.OnClickListener onItemClick = new View.OnClickListener() {
  150.         @Override
  151.         public void onClick(View view) {
  152.  
  153.             Camera camera = getItem(Integer.valueOf(view.getTag().toString()));
  154.             if (camera != null && mCallbackDetails != null) {
  155.                 mCallbackDetails.onItemClick(camera);
  156.             }
  157.         }
  158.     };
  159.  
  160.     private static class ViewHolder {
  161.  
  162.         private ImageView background;
  163.         private TextView cameraName;
  164.         private TextView cityName;
  165.  
  166.         private ImageView backgroundTwo;
  167.         private TextView cameraNameTwo;
  168.         private TextView cityNameTwo;
  169.  
  170.         public int position = -1;
  171.         public Handler handler;
  172.  
  173.         private AdView mAd;
  174.  
  175.     }
  176.  
  177.     public static interface OnOpenDetailsClick {
  178.         public void onItemClick(Camera camera);
  179.     }
  180.  
  181. }
Advertisement
Add Comment
Please, Sign In to add comment