+    @Override
+    public Object instantiateItem(ViewGroup container, int position) {
+        Object fragment = super.instantiateItem(container, position);
+        mCachedFragments.put(Integer.valueOf(position), (FileFragment)fragment);
+        return fragment;
+    }
+    
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+       mCachedFragments.remove(Integer.valueOf(position));
+       super.destroyItem(container, position, object);
+    }
+
+
+    public boolean pendingErrorAt(int position) {
+        return mDownloadErrors.contains(Integer.valueOf(position));
+    }
+
+    /**
+     * Reset the image zoom to default value for each CachedFragments
+     */
+    public void resetZoom() {
+        Iterator<FileFragment> entries = mCachedFragments.values().iterator();
+        while (entries.hasNext()) {
+        FileFragment fileFragment = (FileFragment) entries.next();
+            if (fileFragment instanceof PreviewImageFragment) {
+                ((PreviewImageFragment) fileFragment).getImageView().resetZoom();
+            }
+        }
+    }
+
+    /* -*