From aa4a1de6f7456ef4989839b46fa84b2a0f6b9469 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 23 Mar 2014 02:40:55 +0100 Subject: [PATCH] s3db: use non-exception version of parseColor --- vtm/src/org/oscim/backend/canvas/Color.java | 15 +++++++++++++++ vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java | 7 ++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/vtm/src/org/oscim/backend/canvas/Color.java b/vtm/src/org/oscim/backend/canvas/Color.java index a9ad2177..acec4ebc 100644 --- a/vtm/src/org/oscim/backend/canvas/Color.java +++ b/vtm/src/org/oscim/backend/canvas/Color.java @@ -223,4 +223,19 @@ public class Color { } throw new IllegalArgumentException("Unknown color"); } + + public static int parseColor(String colorString, int fallBackColor) { + if (colorString.charAt(0) == '#') { + // Use a long to avoid rollovers on #ffXXXXXX + long color = Long.parseLong(colorString.substring(1), 16); + if (colorString.length() == 7) { + // Set the alpha value + color |= 0x00000000ff000000; + } else if (colorString.length() != 9) { + return fallBackColor; + } + return (int) color; + } + return fallBackColor; + } } diff --git a/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java b/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java index 291f0763..888d396f 100644 --- a/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java +++ b/vtm/src/org/oscim/layers/tile/s3db/S3DBLayer.java @@ -55,11 +55,8 @@ public class S3DBLayer extends TileLayer { static int getColor(String color, boolean roof) { - try { - return Color.parseColor(color); - } catch (Exception e) { - - } + if (color.charAt(0) == '#') + return Color.parseColor(color, Color.CYAN); if (roof) { if ("brown" == color)