mirror of
https://github.com/nextcloud/android.git
synced 2024-11-22 21:25:35 +03:00
extracted method and improved code
Signed-off-by: camillo-positano <camillo.positano@hotmail.it>
This commit is contained in:
parent
d42198a96f
commit
92d641eabc
1 changed files with 46 additions and 39 deletions
|
@ -296,53 +296,60 @@ public final class ThumbnailsCacheManager {
|
|||
if (file.getRemoteId() != null || file.isPreviewAvailable()) {
|
||||
// Thumbnail in cache?
|
||||
thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
|
||||
ThumbnailsCacheManager.PREFIX_RESIZED_IMAGE + file.getRemoteId()
|
||||
);
|
||||
ThumbnailsCacheManager.PREFIX_RESIZED_IMAGE + file.getRemoteId());
|
||||
|
||||
if (thumbnail != null && !file.isUpdateThumbnailNeeded()) {
|
||||
Float size = (float) ThumbnailsCacheManager.getThumbnailDimension();
|
||||
if (thumbnail != null && !file.isUpdateThumbnailNeeded())
|
||||
return getThumbnailFromCache(thumbnail);
|
||||
|
||||
// resized dimensions
|
||||
ImageDimension imageDimension = file.getImageDimension();
|
||||
if (imageDimension == null ||
|
||||
imageDimension.getWidth() != size ||
|
||||
imageDimension.getHeight() != size) {
|
||||
file.setImageDimension(new ImageDimension(thumbnail.getWidth(), thumbnail.getHeight()));
|
||||
storageManager.saveFile(file);
|
||||
}
|
||||
|
||||
if (MimeTypeUtil.isVideo(file)) {
|
||||
return ThumbnailsCacheManager.addVideoOverlay(thumbnail, MainApp.getAppContext());
|
||||
} else {
|
||||
return thumbnail;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
mClient = OwnCloudClientManagerFactory.getDefaultSingleton().getClientFor(user.toOwnCloudAccount(),
|
||||
MainApp.getAppContext());
|
||||
|
||||
thumbnail = doResizedImageInBackground(file, storageManager);
|
||||
newImage = true;
|
||||
|
||||
if (MimeTypeUtil.isVideo(file) && thumbnail != null) {
|
||||
thumbnail = addVideoOverlay(thumbnail, MainApp.getAppContext());
|
||||
}
|
||||
|
||||
} catch (OutOfMemoryError oome) {
|
||||
Log_OC.e(TAG, "Out of memory");
|
||||
} catch (Throwable t) {
|
||||
// the app should never break due to a problem with thumbnails
|
||||
Log_OC.e(TAG, "Generation of gallery image for " + file + " failed", t);
|
||||
}
|
||||
|
||||
return thumbnail;
|
||||
}
|
||||
return getThumbnailFromServerAndAddToCache(thumbnail);
|
||||
}
|
||||
|
||||
Log_OC.d(TAG, "File cannot be previewed");
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private Bitmap getThumbnailFromServerAndAddToCache(Bitmap thumbnail) {
|
||||
try {
|
||||
mClient = OwnCloudClientManagerFactory.getDefaultSingleton().getClientFor(user.toOwnCloudAccount(),
|
||||
MainApp.getAppContext());
|
||||
|
||||
thumbnail = doResizedImageInBackground(file, storageManager);
|
||||
newImage = true;
|
||||
|
||||
if (MimeTypeUtil.isVideo(file) && thumbnail != null) {
|
||||
thumbnail = addVideoOverlay(thumbnail, MainApp.getAppContext());
|
||||
}
|
||||
|
||||
} catch (OutOfMemoryError oome) {
|
||||
Log_OC.e(TAG, "Out of memory");
|
||||
} catch (Throwable t) {
|
||||
// the app should never break due to a problem with thumbnails
|
||||
Log_OC.e(TAG, "Generation of gallery image for " + file + " failed", t);
|
||||
}
|
||||
|
||||
return thumbnail;
|
||||
}
|
||||
|
||||
private Bitmap getThumbnailFromCache(Bitmap thumbnail) {
|
||||
float size = (float) ThumbnailsCacheManager.getThumbnailDimension();
|
||||
|
||||
// resized dimensions
|
||||
ImageDimension imageDimension = file.getImageDimension();
|
||||
if (imageDimension == null ||
|
||||
imageDimension.getWidth() != size ||
|
||||
imageDimension.getHeight() != size) {
|
||||
file.setImageDimension(new ImageDimension(thumbnail.getWidth(), thumbnail.getHeight()));
|
||||
storageManager.saveFile(file);
|
||||
}
|
||||
|
||||
if (MimeTypeUtil.isVideo(file)) {
|
||||
return ThumbnailsCacheManager.addVideoOverlay(thumbnail, MainApp.getAppContext());
|
||||
} else {
|
||||
return thumbnail;
|
||||
}
|
||||
}
|
||||
|
||||
protected void onPostExecute(Bitmap bitmap) {
|
||||
if (bitmap != null && imageViewReference != null) {
|
||||
final ImageView imageView = imageViewReference.get();
|
||||
|
|
Loading…
Reference in a new issue