diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index a0a94c7e785680f1340d93ed85b4ab1a5bb9b312..fd409ad13847ba7944116b0a0d01b2678ee645af 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -61,6 +61,7 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.viewpager.widget.ViewPager; import com.caverock.androidsvg.SVG; +import com.caverock.androidsvg.SVGParseException; import com.cheogram.android.ConversationPage; import com.cheogram.android.Util; @@ -2175,9 +2176,16 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl final SVG icon = getItem(position).getIcon(); if (icon != null) { + synchronized (CommandSession.this) { + waitingForRefresh = true; + } v.post(() -> { if (v.getHeight() == 0) return; - icon.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.TOP); + icon.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.LETTERBOX); + try { + icon.setDocumentWidth("100%"); + icon.setDocumentHeight("100%"); + } catch (final SVGParseException e) { } Bitmap bitmap = Bitmap.createBitmap(v.getHeight(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas bmcanvas = new Canvas(bitmap); icon.renderToCanvas(bmcanvas); @@ -2266,7 +2274,14 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl final SVG defaultIcon = defaultOption.getIcon(); if (defaultIcon != null) { - defaultIcon.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.TOP); + synchronized (CommandSession.this) { + waitingForRefresh = true; + } + defaultIcon.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.LETTERBOX); + try { + defaultIcon.setDocumentWidth("100%"); + defaultIcon.setDocumentHeight("100%"); + } catch (final SVGParseException e) { } DisplayMetrics display = mPager.getContext().getResources().getDisplayMetrics(); Bitmap bitmap = Bitmap.createBitmap((int)(display.heightPixels*display.density/4), (int)(display.heightPixels*display.density/4), Bitmap.Config.ARGB_8888); bitmap.setDensity(display.densityDpi); diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index c756bcb660c50ca6794be99da3110b5ed3373929..ce04899821e040083137d57c3b8b7c6a757f2cf2 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -2168,7 +2168,7 @@ public class FileBackend { public Drawable getSVG(File file, int size) { try { SVG svg = SVG.getFromInputStream(new FileInputStream(file)); - svg.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.TOP); + svg.setDocumentPreserveAspectRatio(com.caverock.androidsvg.PreserveAspectRatio.LETTERBOX); float w = svg.getDocumentWidth(); float h = svg.getDocumentHeight();