diff --git a/drawable_resources/shared_via_link.svg b/drawable_resources/shared_via_link.svg
index 4eaa7bbd77..51ea807400 100644
--- a/drawable_resources/shared_via_link.svg
+++ b/drawable_resources/shared_via_link.svg
@@ -1,20 +1,11 @@
-
diff --git a/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java
index ad510103c6..67a49a836a 100644
--- a/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java
+++ b/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java
@@ -23,8 +23,11 @@
package com.owncloud.android.ui.adapter;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.Resources;
-import android.graphics.drawable.PictureDrawable;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
import android.net.Uri;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
@@ -69,9 +72,8 @@ import com.owncloud.android.ui.interfaces.ActivityListInterface;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimeTypeUtil;
import com.owncloud.android.utils.glide.CustomGlideStreamLoader;
+import com.owncloud.android.utils.svg.SvgBitmapTranscoder;
import com.owncloud.android.utils.svg.SvgDecoder;
-import com.owncloud.android.utils.svg.SvgDrawableTranscoder;
-import com.owncloud.android.utils.svg.SvgSoftwareLayerSetter;
import java.io.InputStream;
import java.util.ArrayList;
@@ -196,9 +198,22 @@ public class ActivityListAdapter extends RecyclerView.Adapter 0) {
activityViewHolder.list.setVisibility(View.VISIBLE);
@@ -329,21 +344,20 @@ public class ActivityListAdapter extends RecyclerView.Adapter requestBuilder = Glide.with(context)
+ private void downloadIcon(Activity activity, ImageView itemViewType) {
+ GenericRequestBuilder requestBuilder = Glide.with(context)
.using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class)
.from(Uri.class)
.as(SVG.class)
- .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
+ .transcode(new SvgBitmapTranscoder(128, 128), Bitmap.class)
.sourceEncoder(new StreamEncoder())
.cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
.decoder(new SvgDecoder())
.placeholder(R.drawable.ic_activity)
.error(R.drawable.ic_activity)
- .animate(android.R.anim.fade_in)
- .listener(new SvgSoftwareLayerSetter<>());
+ .animate(android.R.anim.fade_in);
- Uri uri = Uri.parse(icon);
+ Uri uri = Uri.parse(activity.getIcon());
requestBuilder
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.load(uri)
diff --git a/src/main/java/com/owncloud/android/utils/svg/SvgBitmapTranscoder.java b/src/main/java/com/owncloud/android/utils/svg/SvgBitmapTranscoder.java
new file mode 100644
index 0000000000..01a7c38047
--- /dev/null
+++ b/src/main/java/com/owncloud/android/utils/svg/SvgBitmapTranscoder.java
@@ -0,0 +1,73 @@
+/*
+ *
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2020 Tobias Kaminsky
+ * Copyright (C) 2020 Nextcloud GmbH
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.owncloud.android.utils.svg;
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+
+import com.bumptech.glide.load.engine.Resource;
+import com.bumptech.glide.load.resource.SimpleResource;
+import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
+import com.caverock.androidsvg.SVG;
+import com.caverock.androidsvg.SVGParseException;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+/**
+ * Convert the {@link SVG}'s internal representation to a Bitmap.
+ */
+public class SvgBitmapTranscoder implements ResourceTranscoder