ppamorim

Untitled

Nov 3rd, 2014
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.51 KB | None | 0 0
  1. public class RecyclerCamerasAdapter extends RecyclerView.Adapter<RecyclerCamerasAdapter.ViewHolder> {
  2.  
  3.     private Context mContext;
  4.     private TwoWayView mRecyclerView;
  5.     public List<Camera> mCamerasList = new ArrayList<Camera>();
  6.  
  7.     private Camera mCamera;
  8.     private final int mLayoutId;
  9.  
  10. //    private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
  11.     private OnOpenDetailsClick mCallbackDetails;
  12.  
  13.     public RecyclerCamerasAdapter(Context context, List<Camera> items, OnOpenDetailsClick callback,TwoWayView recyclerView, int layoutId) {
  14.         mContext = context;
  15.         mCamerasList.addAll(items);
  16.         mCallbackDetails = callback;
  17.         mRecyclerView = recyclerView;
  18.         mLayoutId = layoutId;
  19.     }
  20.  
  21.     @Override
  22.     public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
  23.         return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.adapter_camera, viewGroup, false));
  24.     }
  25.  
  26.     @Override
  27.     public void onBindViewHolder(ViewHolder viewHolder, int position) {
  28.  
  29.         if (position > getItemCount()-2) {
  30.             mCallbackDetails.loadMore();
  31.         }
  32.  
  33.         Camera camera = mCamerasList.get(position);
  34.  
  35.         if(camera != null) {
  36.  
  37.             String cityName = camera.getCity();
  38.             String statePrefix = camera.getStatePrefix();
  39.             String title = camera.getTitle();
  40.  
  41.             if(cityName != null && statePrefix != null && !cityName.equals("") && !statePrefix.equals("")) {
  42.                 viewHolder.cityName.setVisibility(View.VISIBLE);
  43.                 viewHolder.cityName.setText(new StringBuilder(cityName).append(" - ").append(statePrefix));
  44.             } else {
  45.                 viewHolder.cityName.setVisibility(View.GONE);
  46.             }
  47.  
  48.             if(title != null && !title.equals("")) {
  49.                 viewHolder.cameraName.setVisibility(View.VISIBLE);
  50.                 viewHolder.cameraName.setText(title);
  51.             } else {
  52.                 viewHolder.cameraName.setVisibility(View.GONE);
  53.             }
  54.  
  55.             viewHolder.background.setTag(position);
  56.             viewHolder.cameraName.setTag(position);
  57.             viewHolder.cityName.setTag(position);
  58.  
  59.             viewHolder.background.setOnClickListener(onItemClick);
  60.             viewHolder.background.setOnLongClickListener(onItemLongClick);
  61.             viewHolder.background.setOnTouchListener(onItemTouchListener);
  62.             viewHolder.cityName.setOnClickListener(onItemClick);
  63.             viewHolder.cityName.setOnLongClickListener(onItemLongClick);
  64.             viewHolder.cityName.setOnTouchListener(onItemTouchListener);
  65.             viewHolder.cameraName.setOnClickListener(onItemClick);
  66.             viewHolder.cameraName.setOnLongClickListener(onItemLongClick);
  67.             viewHolder.cameraName.setOnTouchListener(onItemTouchListener);
  68.  
  69.             String urlImage = camera.getUrlImage();
  70.  
  71.             if(urlImage != null) {
  72.  
  73. // Test
  74. //                createBlabla("teste", 12, viewHolder.background);
  75.  
  76. //                ImageLoader.getInstance().displayImage(
  77. //                        TagApplication.URL_IMAGE + urlImage,
  78. //                        viewHolder.background,
  79. //                        TagApplication.options);
  80.  
  81.             }
  82.         }
  83.  
  84.         final View itemView = viewHolder.itemView;
  85.  
  86.         if (mLayoutId == R.layout.layout_staggered_grid) {
  87.  
  88.             int span = 1;
  89.             if (position % 5 == 0) {
  90.                 span = 2;
  91.             }
  92.  
  93.             final StaggeredGridLayoutManager.LayoutParams lp =
  94.                     (StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams();
  95.  
  96.             lp.span = span;
  97.             lp.height = mContext.getResources().getDimensionPixelSize(R.dimen.camera_item);
  98.             itemView.setLayoutParams(lp);
  99.         }
  100.  
  101.     }
  102.  
  103.     @Override
  104.     public int getItemCount() {
  105.         return mCamerasList.size();
  106.     }
  107.  
  108.     public static class ViewHolder extends RecyclerView.ViewHolder {
  109.  
  110.         public ImageView background;
  111.         public TextView cameraName;
  112.         public TextView cityName;
  113.  
  114.         public ViewHolder(View itemView) {
  115.             super(itemView);
  116.             cameraName = (TextView) itemView.findViewById(R.id.camera_name);
  117.             cityName = (TextView) itemView.findViewById(R.id.city);
  118.             background = (ImageView) itemView.findViewById(R.id.big_thumbnail);
  119.         }
  120.  
  121.     }
  122.    
  123.     //Removed animation for tests
  124.  
  125. //    private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener {
  126. //        static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());
  127. //        @Override
  128. //        public void onLoadingComplete(String imageUri, View view,  Bitmap loadedImage) {
  129. ////            if (loadedImage != null) {
  130. ////                if (!displayedImages.contains(imageUri)) {
  131. ////                    FadeInBitmapDisplayer.animate(view, 500);
  132. ////                    displayedImages.add(imageUri);
  133. ////                }
  134. ////            }
  135. //        }
  136. //    }
  137.  
  138.     private OnSingleClickListener onItemClick = new OnSingleClickListener() {
  139.         @Override
  140.         public void onSingleClick( View view) {
  141.             mCamera = mCamerasList.get(Integer.valueOf(view.getTag().toString()));
  142.             if (mCamera != null && mCallbackDetails != null) {
  143.                 mCallbackDetails.onItemClick(mCamera);
  144.             }
  145.         }
  146.     };
  147.  
  148.  
  149.     private View.OnLongClickListener onItemLongClick = new View.OnLongClickListener() {
  150.         @Override
  151.         public boolean onLongClick( View view) {
  152.             mCamera = mCamerasList.get(Integer.valueOf(view.getTag().toString()));
  153.             if(mCamera != null && mCallbackDetails != null) {
  154.                 mCallbackDetails.onItemLongPress(mCamera);
  155.             }
  156.             return false;
  157.         }
  158.     };
  159.  
  160.  
  161.     private View.OnTouchListener onItemTouchListener = new View.OnTouchListener() {
  162.         @Override
  163.         public boolean onTouch(View view, MotionEvent motionEvent) {
  164.             mCallbackDetails.onItemTouch(motionEvent);
  165.             return false;
  166.         }
  167.     };
  168.  
  169.     public static interface OnOpenDetailsClick {
  170.         public void onItemClick(Camera camera);
  171.         public void onItemTouch(MotionEvent motionEvent);
  172.         public void onItemLongPress(Camera camera);
  173.         public void loadMore();
  174.     }
  175.  
  176.     public void updateList(ArrayList<Camera> cameras){
  177.         this.mCamerasList.addAll(cameras);
  178.         this.notifyDataSetChanged();
  179.     }
Advertisement
Add Comment
Please, Sign In to add comment