From a33f3fe40012c82316058a3417f51c2f6a9b3b4d Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Wed, 28 Dec 2022 14:44:38 +0100 Subject: [PATCH] Spotbug: Simple field is used like an enum Signed-off-by: Andy Scherzinger --- .../com/nextcloud/talk/ui/StatusDrawable.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/StatusDrawable.java b/app/src/main/java/com/nextcloud/talk/ui/StatusDrawable.java index 258263327..b2a1fe1b8 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/StatusDrawable.java +++ b/app/src/main/java/com/nextcloud/talk/ui/StatusDrawable.java @@ -42,9 +42,9 @@ import androidx.core.content.res.ResourcesCompat; */ public class StatusDrawable extends Drawable { private String text; - private @DrawableRes int icon = -1; + private StatusDrawableType icon = StatusDrawableType.UNDEFINED; private Paint textPaint; - private int backgroundColor; + private final int backgroundColor; private final float radius; private Context context; @@ -54,17 +54,17 @@ public class StatusDrawable extends Drawable { if ("dnd".equals(status)) { - icon = R.drawable.ic_user_status_dnd; + icon = StatusDrawableType.DND; this.context = context; } else if (TextUtils.isEmpty(statusIcon) && status != null) { switch (status) { case "online": - icon = R.drawable.online_status; + icon = StatusDrawableType.ONLINE; this.context = context; break; case "away": - icon = R.drawable.ic_user_status_away; + icon = StatusDrawableType.AWAY; this.context = context; break; @@ -95,7 +95,7 @@ public class StatusDrawable extends Drawable { canvas.drawText(text, radius, radius - ((textPaint.descent() + textPaint.ascent()) / 2), textPaint); } - if (icon != -1) { + if (icon != StatusDrawableType.UNDEFINED) { Paint backgroundPaint = new Paint(); backgroundPaint.setStyle(Paint.Style.FILL); @@ -104,7 +104,7 @@ public class StatusDrawable extends Drawable { canvas.drawCircle(radius, radius, radius, backgroundPaint); - Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), icon, null); + Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), icon.drawableId, null); if (drawable != null) { drawable.setBounds(0, @@ -130,4 +130,18 @@ public class StatusDrawable extends Drawable { public int getOpacity() { return PixelFormat.TRANSLUCENT; } + + private enum StatusDrawableType { + DND(R.drawable.ic_user_status_dnd), + ONLINE(R.drawable.online_status), + AWAY(R.drawable.ic_user_status_away), + UNDEFINED(-1); + + @DrawableRes + private final int drawableId; + + StatusDrawableType(int drawableId) { + this.drawableId = drawableId; + } + } }