From 9ab1bdca9feebd468534effb8f0572d6dc81f73a Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 7 Jun 2018 18:18:51 +0200 Subject: [PATCH] Fixes scale for shortcut icons --- .../quasseldroid/ui/chat/ChatActivity.kt | 6 ++++- .../quasseldroid/util/ui/TextDrawable.java | 23 ++++++++++++++++++- .../ic_shortcut_channel_foreground.xml | 2 +- .../drawable/ic_shortcut_query_foreground.xml | 2 +- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt index 8f4e1e819..9979f75e8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ChatActivity.kt @@ -764,7 +764,11 @@ class ChatActivity : ServiceBoundActivity(), SharedPreferences.OnSharedPreferenc val initial = rawInitial?.toUpperCase().toString() val senderColor = senderColors[senderColorIndex] - val fallback = colorContext.prepareTextDrawable().buildRect(initial, senderColor) + val fallback = colorContext.prepareTextDrawable() + .beginConfig() + .scale(0.5f) + .endConfig() + .buildRect(initial, senderColor) val urls = viewModel.networks.value?.get(info.networkId)?.ircUser(info.bufferName)?.let { AvatarHelper.avatar(messageSettings, it, 432) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java b/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java index 10e0cc53c..66edc9f88 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/TextDrawable.java @@ -50,6 +50,7 @@ public class TextDrawable extends ShapeDrawable { private final int fontSize; private final float radius; private final int borderThickness; + private final float scale; private TextDrawable(Builder builder) { super(builder.shape); @@ -60,6 +61,8 @@ public class TextDrawable extends ShapeDrawable { width = builder.width; radius = builder.radius; + scale = builder.scale; + // text and color text = builder.toUpperCase ? builder.text.toUpperCase(Locale.getDefault()) : builder.text; @@ -114,7 +117,7 @@ public class TextDrawable extends ShapeDrawable { // draw text int width = this.width < 0 ? r.width() : this.width; int height = this.height < 0 ? r.height() : this.height; - int fontSize = this.fontSize < 0 ? (int) (Math.min(width, height) * 0.67) : this.fontSize; + int fontSize = this.fontSize < 0 ? (int) (Math.min(width, height) * scale) : this.fontSize; textPaint.setTextSize(fontSize); canvas.drawText(text, width / 2, height / 2 - ((textPaint.descent() + textPaint.ascent()) / 2), textPaint); @@ -165,6 +168,8 @@ public class TextDrawable extends ShapeDrawable { IConfigBuilder height(int height); + IConfigBuilder scale(float scale); + IConfigBuilder textColor(int color); IConfigBuilder withBorder(int thickness); @@ -203,6 +208,7 @@ public class TextDrawable extends ShapeDrawable { public static class Builder implements IConfigBuilder, IShapeBuilder, IBuilder { public int textColor; public float radius; + private float scale; private String text; private int color; private int borderThickness; @@ -221,6 +227,7 @@ public class TextDrawable extends ShapeDrawable { borderThickness = 0; width = -1; height = -1; + scale = 0.67f; shape = new RectShape(); font = Typeface.create("sans-serif-light", Typeface.NORMAL); fontSize = -1; @@ -228,41 +235,55 @@ public class TextDrawable extends ShapeDrawable { toUpperCase = false; } + @Override public IConfigBuilder width(int width) { this.width = width; return this; } + @Override public IConfigBuilder height(int height) { this.height = height; return this; } + @Override public IConfigBuilder textColor(int color) { this.textColor = color; return this; } + @Override + public IConfigBuilder scale(float scale) { + this.scale = scale; + return this; + } + + @Override public IConfigBuilder withBorder(int thickness) { this.borderThickness = thickness; return this; } + @Override public IConfigBuilder useFont(Typeface font) { this.font = font; return this; } + @Override public IConfigBuilder fontSize(int size) { this.fontSize = size; return this; } + @Override public IConfigBuilder bold() { this.isBold = true; return this; } + @Override public IConfigBuilder toUpperCase() { this.toUpperCase = true; return this; diff --git a/app/src/main/res/drawable/ic_shortcut_channel_foreground.xml b/app/src/main/res/drawable/ic_shortcut_channel_foreground.xml index 56dfeb49f..7992233be 100644 --- a/app/src/main/res/drawable/ic_shortcut_channel_foreground.xml +++ b/app/src/main/res/drawable/ic_shortcut_channel_foreground.xml @@ -23,7 +23,7 @@ android:viewportHeight="108" android:viewportWidth="108"> <path - android:fillColor="#fff" + android:fillColor="#8affffff" android:pathData="m47.116,47.211 0.885,-6.39a1.875,1.875 0 0 1 3.714,0.51l-0.81,5.859 8.337, -0.045 0.879,-6.327a1.876,1.876 0 0 1 3.717,0.513l-0.804,5.796 4.827,-0.024a1.876,1.876 0 1 1 0.018,3.75l-5.367,0.027-0.993,7.164 5.136,-0.027a1.875,1.875 0 0 1 0.021,3.747l-5.676,0.03-0.915 diff --git a/app/src/main/res/drawable/ic_shortcut_query_foreground.xml b/app/src/main/res/drawable/ic_shortcut_query_foreground.xml index 3ed44cbfc..fed66dcf3 100644 --- a/app/src/main/res/drawable/ic_shortcut_query_foreground.xml +++ b/app/src/main/res/drawable/ic_shortcut_query_foreground.xml @@ -23,7 +23,7 @@ android:viewportHeight="108" android:viewportWidth="108"> <path - android:fillColor="#fff" + android:fillColor="#8affffff" android:pathData="m 54,40 a 7,7 0 0 1 7,7 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 m 0,17 c 7.735,0 14,3.1325 14,7 l 0,3.5 -28,0 0,-3.5 c 0,-3.8675 6.265,-7 14,-7 z" /> </vector> -- GitLab