@Override
    public Object instantiateItem(View collection, int position) {
      if (getCount() > 1 && position > getCount() - 6) {
        mAdapter.loadNextPage();
      }
      Photo photo = (Photo) mAdapter.getItem(position);

      final View view =
          mInflator.inflate(R.layout.photo_details_item, ((ViewPager) collection), false);
      ImageView imageView = (ImageView) view.findViewById(R.id.image);
      ((TextView) view.findViewById(R.id.image_title)).setText(photo.getTitle());
      ((TextView) view.findViewById(R.id.image_description)).setText(photo.getDescription());
      OnImageDisplayedCallback callback =
          new OnImageDisplayedCallback() {

            @Override
            public void onImageDisplayed(ImageView imageView) {
              view.findViewById(R.id.loading).setVisibility(View.GONE);
            }
          };
      if (photo.getUrl(PhotosEndlessAdapter.SIZE_BIG) != null) {
        mStorage.displayImageFor(imageView, photo.getUrl(PhotosEndlessAdapter.SIZE_BIG), callback);
      } else {
        new LoadImageTask(photo, imageView, callback).execute();
      }

      ((ViewPager) collection).addView(view, 0);

      return view;
    }
 public PhotoDetailPagerAdapter(PhotosAdapter adatper) {
   mAdapter = adatper;
   mAdapter.registerDataSetObserver(mObserver);
   mInflator =
       (LayoutInflater)
           PhotoDetailsActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }
 @Override
 public int getCount() {
   return mAdapter.getCount();
 }