Skip to content

Commit 35ac7eb

Browse files
fix missing conversion
1 parent 24671ee commit 35ac7eb

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ public static class AsyncAvatarDrawable extends BitmapDrawable {
11131113
private final WeakReference<AvatarGenerationTask> avatarWorkerTaskReference;
11141114

11151115
public AsyncAvatarDrawable(Resources res, Drawable bitmap, AvatarGenerationTask avatarWorkerTask) {
1116-
super(res, bitmap);
1116+
super(res, BitmapUtils.drawableToBitmap(bitmap));
11171117
avatarWorkerTaskReference = new WeakReference<>(avatarWorkerTask);
11181118
}
11191119

src/main/java/com/owncloud/android/utils/BitmapUtils.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222
import android.graphics.Bitmap;
2323
import android.graphics.BitmapFactory;
2424
import android.graphics.BitmapFactory.Options;
25+
import android.graphics.Canvas;
2526
import android.graphics.Matrix;
27+
import android.graphics.drawable.BitmapDrawable;
28+
import android.graphics.drawable.Drawable;
2629
import android.support.media.ExifInterface;
2730
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
2831
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
@@ -375,4 +378,27 @@ public static RoundedBitmapDrawable bitmapToCircularBitmapDrawable(Resources res
375378
roundedBitmap.setCircular(true);
376379
return roundedBitmap;
377380
}
381+
382+
public static Bitmap drawableToBitmap(Drawable drawable) {
383+
Bitmap bitmap;
384+
385+
if (drawable instanceof BitmapDrawable) {
386+
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
387+
if (bitmapDrawable.getBitmap() != null) {
388+
return bitmapDrawable.getBitmap();
389+
}
390+
}
391+
392+
if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
393+
bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
394+
} else {
395+
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
396+
Bitmap.Config.ARGB_8888);
397+
}
398+
399+
Canvas canvas = new Canvas(bitmap);
400+
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
401+
drawable.draw(canvas);
402+
return bitmap;
403+
}
378404
}

src/main/java/com/owncloud/android/utils/DisplayUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import android.content.Context;
3131
import android.content.Intent;
3232
import android.content.res.Resources;
33+
import android.graphics.Bitmap;
3334
import android.graphics.Color;
3435
import android.graphics.Point;
3536
import android.graphics.drawable.Drawable;

0 commit comments

Comments
 (0)