X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e836fd66e47c445c3a5e9c8e790fe474dfba5dbc..refs/heads/master:/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 362106e6..4ad73173 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -34,8 +34,8 @@ import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.ThumbnailUtils; import android.net.Uri; @@ -74,8 +74,8 @@ public class ThumbnailsCacheManager { public static Bitmap mDefaultImg = BitmapFactory.decodeResource( - MainApp.getAppContext().getResources(), - DisplayUtils.getFileTypeIconId("image/png", "default.png") + MainApp.getAppContext().getResources(), + R.drawable.file_image ); @@ -195,10 +195,6 @@ public class ThumbnailsCacheManager { } protected void onPostExecute(Bitmap bitmap){ - if (isCancelled()) { - bitmap = null; - } - if (bitmap != null) { final ImageView imageView = mImageViewReference.get(); final ThumbnailGenerationTask bitmapWorkerTask = getBitmapWorkerTask(imageView); @@ -282,17 +278,15 @@ public class ThumbnailsCacheManager { OwnCloudVersion serverOCVersion = AccountUtils.getServerVersion(mAccount); if (mClient != null && serverOCVersion != null) { if (serverOCVersion.supportsRemoteThumbnails()) { + GetMethod get = null; try { String uri = mClient.getBaseUri() + "" + "/index.php/apps/files/api/v1/thumbnail/" + px + "/" + px + Uri.encode(file.getRemotePath(), "/"); Log_OC.d("Thumbnail", "URI: " + uri); - GetMethod get = new GetMethod(uri); + get = new GetMethod(uri); int status = mClient.executeMethod(get); if (status == HttpStatus.SC_OK) { -// byte[] bytes = get.getResponseBody(); -// Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, -// bytes.length); InputStream inputStream = get.getResponseBodyAsStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px); @@ -306,9 +300,15 @@ public class ThumbnailsCacheManager { if (thumbnail != null) { addBitmapToCache(imageKey, thumbnail); } + } else { + mClient.exhaustResponse(get.getResponseBodyAsStream()); } } catch (Exception e) { e.printStackTrace(); + } finally { + if (get != null) { + get.releaseConnection(); + } } } else { Log_OC.d(TAG, "Server too old"); @@ -326,16 +326,9 @@ public class ThumbnailsCacheManager { px, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(resultBitmap); - Bitmap checker = BitmapFactory.decodeResource(MainApp.getAppContext().getResources(), - R.drawable.checker_16_16); - - BitmapDrawable background; - background = new BitmapDrawable(MainApp.getAppContext().getResources(), checker); - - background.setBounds(0, 0, px, px); - background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); - background.draw(c); + c.drawColor(MainApp.getAppContext().getResources(). + getColor(R.color.background_color)); c.drawBitmap(bitmap, 0, 0, null); return resultBitmap; @@ -375,6 +368,7 @@ public class ThumbnailsCacheManager { if (bitmapData == null || bitmapData != file) { // Cancel previous task bitmapWorkerTask.cancel(true); + Log_OC.v(TAG, "Cancelled generation of thumbnail for a reused imageView"); } else { // The same work is already in progress return false;