From 1b7fbfb77f7b3cd29c88cc8e970afba4cbe928af Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Mon, 26 Aug 2019 13:53:39 +0300 Subject: [PATCH] ImagesPlugin print a warning for SVG and GIF instead of full stacktrace --- .../markwon/image/gif/GifMediaDecoder.java | 5 +---- .../noties/markwon/image/gif/GifSupport.java | 19 +++++++++++++++++-- .../markwon/image/svg/SvgMediaDecoder.java | 3 +-- .../noties/markwon/image/svg/SvgSupport.java | 18 ++++++++++++++++-- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/markwon-image/src/main/java/io/noties/markwon/image/gif/GifMediaDecoder.java b/markwon-image/src/main/java/io/noties/markwon/image/gif/GifMediaDecoder.java index e8ac616e..2efd9f93 100644 --- a/markwon-image/src/main/java/io/noties/markwon/image/gif/GifMediaDecoder.java +++ b/markwon-image/src/main/java/io/noties/markwon/image/gif/GifMediaDecoder.java @@ -11,7 +11,6 @@ import java.io.InputStream; import java.util.Collection; import java.util.Collections; -import io.noties.markwon.image.DrawableUtils; import io.noties.markwon.image.MediaDecoder; import pl.droidsonroids.gif.GifDrawable; @@ -97,9 +96,7 @@ public class GifMediaDecoder extends MediaDecoder { private static void validate() { if (!GifSupport.hasGifSupport()) { - throw new IllegalStateException("`pl.droidsonroids.gif:android-gif-drawable:*` " + - "dependency is missing, please add to your project explicitly if you " + - "wish to use GIF media decoder"); + throw new IllegalStateException(GifSupport.missingMessage()); } } } diff --git a/markwon-image/src/main/java/io/noties/markwon/image/gif/GifSupport.java b/markwon-image/src/main/java/io/noties/markwon/image/gif/GifSupport.java index d90a34d5..b8d91bb5 100644 --- a/markwon-image/src/main/java/io/noties/markwon/image/gif/GifSupport.java +++ b/markwon-image/src/main/java/io/noties/markwon/image/gif/GifSupport.java @@ -1,5 +1,9 @@ package io.noties.markwon.image.gif; +import android.util.Log; + +import androidx.annotation.NonNull; + /** * @since 4.0.0 */ @@ -13,8 +17,9 @@ public abstract class GifSupport { pl.droidsonroids.gif.GifDrawable.class.getName(); result = true; } catch (Throwable t) { - // @since 4.1.1-SNAPSHOT do not print stacktrace (it can become noisy) -// t.printStackTrace(); + // @since 4.1.1-SNAPSHOT instead of printing full stacktrace of the exception, + // just print a warning to the console + Log.w("MarkwonImagesPlugin", missingMessage()); result = false; } HAS_GIF = result; @@ -24,6 +29,16 @@ public abstract class GifSupport { return HAS_GIF; } + /** + * @since 4.1.1-SNAPSHOT + */ + @NonNull + static String missingMessage() { + return "`pl.droidsonroids.gif:android-gif-drawable:*` " + + "dependency is missing, please add to your project explicitly if you " + + "wish to use GIF media-decoder"; + } + private GifSupport() { } } diff --git a/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgMediaDecoder.java b/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgMediaDecoder.java index b307a105..fc5da090 100644 --- a/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgMediaDecoder.java +++ b/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgMediaDecoder.java @@ -83,8 +83,7 @@ public class SvgMediaDecoder extends MediaDecoder { private static void validate() { if (!SvgSupport.hasSvgSupport()) { - throw new IllegalStateException("`com.caverock:androidsvg:*` dependency is missing, " + - "please add to your project explicitly if you wish to use SVG media decoder"); + throw new IllegalStateException(SvgSupport.missingMessage()); } } } diff --git a/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgSupport.java b/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgSupport.java index efb6108a..775cde3d 100644 --- a/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgSupport.java +++ b/markwon-image/src/main/java/io/noties/markwon/image/svg/SvgSupport.java @@ -1,5 +1,9 @@ package io.noties.markwon.image.svg; +import android.util.Log; + +import androidx.annotation.NonNull; + /** * @since 4.0.0 */ @@ -13,8 +17,9 @@ public abstract class SvgSupport { com.caverock.androidsvg.SVG.class.getName(); result = true; } catch (Throwable t) { - // @since 4.1.1-SNAPSHOT do not print stacktrace (it can become noisy) -// t.printStackTrace(); + // @since 4.1.1-SNAPSHOT instead of printing full stacktrace of the exception, + // just print a warning to the console + Log.w("MarkwonImagesPlugin", missingMessage()); result = false; } HAS_SVG = result; @@ -24,6 +29,15 @@ public abstract class SvgSupport { return HAS_SVG; } + /** + * @since 4.1.1-SNAPSHOT + */ + @NonNull + static String missingMessage() { + return "`com.caverock:androidsvg:*` dependency is missing, " + + "please add to your project explicitly if you wish to use SVG media-decoder"; + } + private SvgSupport() { } }