From c334cfa62e5252eb1114c9a4c21677c7ce9203fd Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Sat, 1 Aug 2020 15:53:41 +0300 Subject: [PATCH] Remove unnecessary method --- .../main/java/net/osmand/util/Algorithms.java | 4 +- .../net/osmand/plus/GpxSelectionHelper.java | 12 +++- .../plus/track/CustomColorBottomSheet.java | 63 +++---------------- .../src/net/osmand/plus/views/GPXLayer.java | 44 +++++++------ 4 files changed, 40 insertions(+), 83 deletions(-) diff --git a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java index b5a466cb8b..6a3425c05e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java +++ b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java @@ -320,10 +320,8 @@ public class Algorithms { * exception. Supported formats are: * #RRGGBB * #AARRGGBB - * 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', - * 'yellow', 'lightgray', 'darkgray' */ - public static int parseColor(String colorString) { + public static int parseColor(String colorString) throws IllegalArgumentException { if (colorString.charAt(0) == '#') { // Use a long to avoid rollovers on #ffXXXXXX if (colorString.length() == 4) { diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java index 76425c8e0c..8281a127e4 100644 --- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java +++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java @@ -520,12 +520,12 @@ public class GpxSelectionHelper { } GPXFile gpx = GPXUtilities.loadGPXFile(fl); if (obj.has(COLOR)) { - int clr = Algorithms.parseColor(obj.getString(COLOR)); + int clr = parseColor(obj.getString(COLOR)); gpx.setColor(clr); } for (GradientScaleType scaleType : GradientScaleType.values()) { if (obj.has(scaleType.getColorTypeName())) { - int clr = Algorithms.parseColor(obj.getString(scaleType.getColorTypeName())); + int clr = parseColor(obj.getString(scaleType.getColorTypeName())); gpx.setGradientScaleColor(scaleType.getColorTypeName(), clr); } } @@ -567,6 +567,14 @@ public class GpxSelectionHelper { } } + private int parseColor(String color) { + try { + return Algorithms.isEmpty(color) ? 0 : Algorithms.parseColor(color); + } catch (IllegalArgumentException e) { + return 0; + } + } + private void saveCurrentSelections() { JSONArray ar = new JSONArray(); for (SelectedGpxFile s : selectedGPXFiles) { diff --git a/OsmAnd/src/net/osmand/plus/track/CustomColorBottomSheet.java b/OsmAnd/src/net/osmand/plus/track/CustomColorBottomSheet.java index 66029119d5..5096978208 100644 --- a/OsmAnd/src/net/osmand/plus/track/CustomColorBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/track/CustomColorBottomSheet.java @@ -26,6 +26,7 @@ import net.osmand.plus.base.MenuBottomSheetDialogFragment; import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.SimpleBottomSheetItem; import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem; +import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; @@ -103,7 +104,13 @@ public class CustomColorBottomSheet extends MenuBottomSheetDialogFragment implem @Override public void afterTextChanged(Editable s) { if (hexEditText.isFocused()) { - int color = parseColorString(s.toString()); + int color = colorPicker.getColor(); + try { + color = Algorithms.parseColor("#" + s.toString()); + } catch (IllegalArgumentException e) { + hexEditText.setError(getString(R.string.wrong_input)); + log.error(e); + } if (color != colorPicker.getColor()) { fromEditText = true; colorPicker.setColor(color, true); @@ -166,60 +173,6 @@ public class CustomColorBottomSheet extends MenuBottomSheetDialogFragment implem } } - private static int parseColorString(String colorString) throws NumberFormatException { - int a, r, g, b = 0; - if (colorString.startsWith("#")) { - colorString = colorString.substring(1); - } - if (colorString.length() == 0) { - r = 0; - a = 255; - g = 0; - } else if (colorString.length() <= 2) { - a = 255; - r = 0; - b = Integer.parseInt(colorString, 16); - g = 0; - } else if (colorString.length() == 3) { - a = 255; - r = Integer.parseInt(colorString.substring(0, 1), 16); - g = Integer.parseInt(colorString.substring(1, 2), 16); - b = Integer.parseInt(colorString.substring(2, 3), 16); - } else if (colorString.length() == 4) { - a = 255; - r = Integer.parseInt(colorString.substring(0, 2), 16); - g = r; - r = 0; - b = Integer.parseInt(colorString.substring(2, 4), 16); - } else if (colorString.length() == 5) { - a = 255; - r = Integer.parseInt(colorString.substring(0, 1), 16); - g = Integer.parseInt(colorString.substring(1, 3), 16); - b = Integer.parseInt(colorString.substring(3, 5), 16); - } else if (colorString.length() == 6) { - a = 255; - r = Integer.parseInt(colorString.substring(0, 2), 16); - g = Integer.parseInt(colorString.substring(2, 4), 16); - b = Integer.parseInt(colorString.substring(4, 6), 16); - } else if (colorString.length() == 7) { - a = Integer.parseInt(colorString.substring(0, 1), 16); - r = Integer.parseInt(colorString.substring(1, 3), 16); - g = Integer.parseInt(colorString.substring(3, 5), 16); - b = Integer.parseInt(colorString.substring(5, 7), 16); - } else if (colorString.length() == 8) { - a = Integer.parseInt(colorString.substring(0, 2), 16); - r = Integer.parseInt(colorString.substring(2, 4), 16); - g = Integer.parseInt(colorString.substring(4, 6), 16); - b = Integer.parseInt(colorString.substring(6, 8), 16); - } else { - b = -1; - g = -1; - r = -1; - a = -1; - } - return Color.argb(a, r, g, b); - } - public interface ColorPickerListener { void onColorSelected(@ColorInt int prevColor, @ColorInt int newColor); diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 4eb6e3d30d..108c646776 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -379,7 +379,8 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM for (int k = 0; k < items.size(); k++) { GpxDisplayItem i = items.get(k); WptPt point = i.locationEnd; - if (point != null) { + if (point != null && point.lat >= latLonBounds.bottom && point.lat <= latLonBounds.top + && point.lon >= latLonBounds.left && point.lon <= latLonBounds.right) { float x = tileBox.getPixXFromLatLon(point.lat, point.lon); float y = tileBox.getPixYFromLatLon(point.lat, point.lon); if (px != -1 || py != -1) { @@ -389,29 +390,26 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM } px = x; py = y; - if (point.lat >= latLonBounds.bottom && point.lat <= latLonBounds.top - && point.lon >= latLonBounds.left && point.lon <= latLonBounds.right) { - String name = i.splitName; - if (name != null) { - int ind = name.indexOf(' '); - if (ind > 0) { - name = name.substring(0, ind); - } - Rect bounds = new Rect(); - paintTextIcon.getTextBounds(name, 0, name.length(), bounds); - - float nameHalfWidth = bounds.width() / 2f; - float nameHalfHeight = bounds.height() / 2f; - float density = (float) Math.ceil(tileBox.getDensity()); - RectF rect = new RectF(x - nameHalfWidth - 2 * density, - y + nameHalfHeight + 3 * density, - x + nameHalfWidth + 3 * density, - y - nameHalfHeight - 2 * density); - - canvas.drawRoundRect(rect, 0, 0, paintInnerRect); - canvas.drawRoundRect(rect, 0, 0, paintOuterRect); - canvas.drawText(name, x, y + nameHalfHeight, paintTextIcon); + String name = i.splitName; + if (name != null) { + int ind = name.indexOf(' '); + if (ind > 0) { + name = name.substring(0, ind); } + Rect bounds = new Rect(); + paintTextIcon.getTextBounds(name, 0, name.length(), bounds); + + float nameHalfWidth = bounds.width() / 2f; + float nameHalfHeight = bounds.height() / 2f; + float density = (float) Math.ceil(tileBox.getDensity()); + RectF rect = new RectF(x - nameHalfWidth - 2 * density, + y + nameHalfHeight + 3 * density, + x + nameHalfWidth + 3 * density, + y - nameHalfHeight - 2 * density); + + canvas.drawRoundRect(rect, 0, 0, paintInnerRect); + canvas.drawRoundRect(rect, 0, 0, paintOuterRect); + canvas.drawText(name, x, y + nameHalfHeight, paintTextIcon); } } }