diff options
88 files changed, 553 insertions, 3289 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index 0cb6e529f1..5e7025c4c8 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -116,7 +116,7 @@ android { } lintOptions { - baseline file("lint-baseline.xml") + baseline file("lint-baseline-local.xml") checkAllWarnings true warningsAsErrors true } diff --git a/platform/android/MapboxGLAndroidSDK/lint-baseline-local.xml b/platform/android/MapboxGLAndroidSDK/lint-baseline-local.xml new file mode 100644 index 0000000000..0a76f53505 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/lint-baseline-local.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<issues format="4" by="lint 2.3.1"> + + <issue + id="MissingTranslation" + message=""`mapbox_attributionErrorNoBrowser`" is not translated in "ca" (Catalan), "es" (Spanish), "lt" (Lithuanian), "nl" (Dutch), "sv" (Swedish), "vi" (Vietnamese)" + errorLine1=" <string name="mapbox_attributionErrorNoBrowser">No web browser installed on device, can\'t open web page.</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/values/strings.xml" + line="13" + column="13"/> + </issue> + + <issue + id="MissingTranslation" + message=""`mapbox_telemetrySettings`" is not translated in "ca" (Catalan), "es" (Spanish), "lt" (Lithuanian), "nl" (Dutch), "sv" (Swedish), "vi" (Vietnamese)" + errorLine1=" <string name="mapbox_telemetrySettings">Telemetry Settings</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/values/strings.xml" + line="15" + column="13"/> + </issue> + + <issue + id="TypographyQuotes" + message="Replace straight quotes ('') with directional quotes (‘’, &#8216; and &#8217;) ?" + errorLine1=" <string name="mapbox_attributionTelemetryMessage">Estàs ajudant a millorar els mapes d\'OpenStreetMap i de Mapbox aportant dades d\'ús anònimes.</string>" + errorLine2=" ^"> + <location + file="src/main/res/values-ca/strings.xml" + line="9" + column="55"/> + </issue> + +</issues> diff --git a/platform/android/MapboxGLAndroidSDK/lint/lint-baseline-ci.xml b/platform/android/MapboxGLAndroidSDK/lint/lint-baseline-ci.xml index 4dc8ecde70..fd65c9f627 100644 --- a/platform/android/MapboxGLAndroidSDK/lint/lint-baseline-ci.xml +++ b/platform/android/MapboxGLAndroidSDK/lint/lint-baseline-ci.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- REMEMBER! First you run Lint locally you'll need to move the lint-baseline.xml file +<!-- REMEMBER! First you run Lint locally you'll need to move lint-baseline-local.xml.xml file generated into the lint folder and called it lint-baseline-local.xml If you remove any error when running Lint locally, you'll get a warning from the command line advising you to remove it from the baseline. If you remove it (remember to remove it @@ -9,94 +9,6 @@ <issues format="4" by="lint 2.3.1"> <issue - id="MissingPermission" - message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`" - errorLine1=" Location lastKnownLocation = locationEngine.getLastLocation();" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java" - line="783" - column="38"/> - </issue> - - <issue - id="MissingPermission" - message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`" - errorLine1=" locationEngine.requestLocationUpdates();" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java" - line="787" - column="9"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" Timber.v(String.format("[HTTP] Request was successful (code = %d).", response.code()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="112" - column="16"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" Timber.d(String.format(" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="116" - column="16"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to read the package metadata: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to read the package metadata: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="75" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to read the storage key: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to read the storage key: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="77" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to obtain the external storage path: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to obtain the external storage path: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="86" - column="9"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to delete old ambient cache database: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to delete old ambient cache database: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="113" - column="11"/> - </issue> - - <issue id="MissingTranslation" message=""`mapbox_attributionErrorNoBrowser`" is not translated in "ca" (Catalan), "es" (Spanish), "lt" (Lithuanian), "nl" (Dutch), "sv" (Swedish), "vi" (Vietnamese)" errorLine1=" <string name="mapbox_attributionErrorNoBrowser">No web browser installed on device, can\'t open web page.</string>" @@ -119,431 +31,6 @@ </issue> <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.v("Connected: " + connected);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java" - line="85" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Device returned an out of range width size, "" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="178" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Device returned an out of range height size, "" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="185" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Old ambient cache database deleted to save space: " + path);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="110" - column="22"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Not setting minZoomPreference, value is in unsupported range: " + minZoom);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/Transform.java" - line="349" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Not setting maxZoomPreference, value is in unsupported range: " + maxZoom);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/Transform.java" - line="361" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Stops: %s is a different type: %s", stops.getClass(), exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java" - line="282" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.v(String.format("[HTTP] Request was successful (code = %d).", response.code()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="112" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.d(String.format(" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="116" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.d(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="163" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="166" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.w(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="170" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Layer: %s is a different type: %s", layerId, exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java" - line="286" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Source: %s is a different type: %s", sourceId, exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java" - line="407" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="92" - column="16"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to read the package metadata: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="75" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to read the storage key: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="77" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to obtain the external storage path: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="86" - column="9"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to delete old ambient cache database: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="113" - column="11"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `ConnectivityReceiver` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static ConnectivityReceiver INSTANCE;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java" - line="24" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `IconFactory` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static IconFactory instance;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java" - line="38" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `Mapbox` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static Mapbox INSTANCE;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/Mapbox.java" - line="29" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `OfflineManager` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" // This object is implemented as a singleton" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="42" - column="3"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.color.mapbox_my_location_ring` appears to be unused" - errorLine1=" <color name="mapbox_my_location_ring">@color/mapbox_blue</color>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/colors.xml" - line="6" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_infowindow_offset` appears to be unused" - errorLine1=" <dimen name="mapbox_infowindow_offset">-2dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="5" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_infowindow_line_width` appears to be unused" - errorLine1=" <dimen name="mapbox_infowindow_line_width">1.5dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="6" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_left_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_left_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="7" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_top_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_top_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="8" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_right_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_right_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="9" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_bottom_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_bottom_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="10" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_two_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_two_dp">2dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="11" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_ten_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_ten_dp">10dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="14" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_sixteen_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_sixteen_dp">16dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="15" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.drawable.mapbox_infowindow_icon_bg` appears to be unused"> - <location - file="src/main/res/drawable-xxxhdpi/mapbox_infowindow_icon_bg.9.png"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.color.mapbox_material_bg_selector` appears to be unused" - errorLine1="<selector xmlns:android="http://schemas.android.com/apk/res/android">" - errorLine2="^"> - <location - file="src/main/res/color/mapbox_material_bg_selector.xml" - line="2" - column="1"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_outdoors` appears to be unused" - errorLine1=" <string name="mapbox_style_outdoors" translatable="false">mapbox://styles/mapbox/outdoors-v10</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/strings.xml" - line="22" - column="13"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_traffic_day` appears to be unused" - errorLine1=" <string name="mapbox_style_traffic_day" translatable="false">mapbox://styles/mapbox/traffic-day-v2</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/strings.xml" - line="27" - column="13"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_traffic_night` appears to be unused" - errorLine1=" <string name="mapbox_style_traffic_night" translatable="false">mapbox://styles/mapbox/traffic-night-v2</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/strings.xml" - line="28" - column="13"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.infowindow_subdescription` appears to be unused" - errorLine1=" android:id="@+id/infowindow_subdescription"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/mapbox_infowindow_content.xml" - line="43" - column="9"/> - </issue> - - <issue id="TypographyQuotes" message="Replace straight quotes ('') with directional quotes (‘’, &#8216; and &#8217;) ?" errorLine1=" <string name="mapbox_attributionTelemetryMessage">Estàs ajudant a millorar els mapes d\'OpenStreetMap i de Mapbox aportant dades d\'ús anònimes.</string>" @@ -554,76 +41,4 @@ column="55"/> </issue> - <issue - id="IconDensities" - message="Missing the following drawables in `drawable-hdpi`: mapbox_infowindow_icon_bg.9.png, mapbox_mapview_preview.jpg"> - <location - file="src/main/res/drawable-hdpi"/> - </issue> - - <issue - id="IconDensities" - message="Missing the following drawables in `drawable-mdpi`: mapbox_infowindow_icon_bg.9.png, mapbox_mapview_preview.jpg"> - <location - file="src/main/res/drawable-mdpi"/> - </issue> - - <issue - id="IconDensities" - message="Missing the following drawables in `drawable-xhdpi`: mapbox_infowindow_icon_bg.9.png, mapbox_mapview_preview.jpg"> - <location - file="src/main/res/drawable-xhdpi"/> - </issue> - - <issue - id="IconDensities" - message="Missing the following drawables in `drawable-xxhdpi`: mapbox_infowindow_icon_bg.9.png (found in drawable-xxxhdpi)"> - <location - file="src/main/res/drawable-xxhdpi"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1="<TextView" - errorLine2="^"> - <location - file="src/main/res/layout/mapbox_attribution_list_item.xml" - line="2" - column="1"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/mapbox_infowindow_content.xml" - line="21" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/mapbox_infowindow_content.xml" - line="31" - column="5"/> - </issue> - - <issue - id="ContentDescription" - message="[Accessibility] Missing `contentDescription` attribute on image" - errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android"" - errorLine2="^"> - <location - file="src/main/res/layout/mapbox_view_image_marker.xml" - line="2" - column="1"/> - </issue> - </issues> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java index 3af7921596..70b13f05fb 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk; +import android.annotation.SuppressLint; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; @@ -26,6 +27,7 @@ import com.mapbox.services.android.telemetry.location.LocationEnginePriority; @UiThread public final class Mapbox { + @SuppressLint("StaticFieldLeak") private static Mapbox INSTANCE; private Context context; private String accessToken; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java index f9ca9bf4cc..3c9cb31211 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.annotations; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -35,6 +36,7 @@ public final class IconFactory { public static final String ICON_MARKERVIEW_ID = ICON_ID_PREFIX + "marker_view"; private Context context; + @SuppressLint("StaticFieldLeak") private static IconFactory instance; private Icon defaultMarker; private Icon defaultMarkerView; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index 9c8cda5544..91a235616a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -109,13 +109,11 @@ class HTTPRequest implements Callback { @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()) { - Timber.v(String.format("[HTTP] Request was successful (code = %d).", response.code())); + Timber.v("[HTTP] Request was successful (code = %s).", response.code()); } else { // We don't want to call this unsuccessful because a 304 isn't really an error String message = !TextUtils.isEmpty(response.message()) ? response.message() : "No additional information"; - Timber.d(String.format( - "[HTTP] Request with response code = %d: %s", - response.code(), message)); + Timber.d("[HTTP] Request with response code = %s: %s", response.code(), message); } byte[] body; @@ -160,15 +158,12 @@ class HTTPRequest implements Callback { String errorMessage = e.getMessage() != null ? e.getMessage() : "Error processing the request"; if (type == TEMPORARY_ERROR) { - Timber.d(String.format(MapboxConstants.MAPBOX_LOCALE, - "Request failed due to a temporary error: %s", errorMessage)); + Timber.d("Request failed due to a temporary error: %s", errorMessage); } else if (type == CONNECTION_ERROR) { - Timber.i(String.format(MapboxConstants.MAPBOX_LOCALE, - "Request failed due to a connection error: %s", errorMessage)); + Timber.i("Request failed due to a connection error: %s", errorMessage); } else { // PERMANENT_ERROR - Timber.w(String.format(MapboxConstants.MAPBOX_LOCALE, - "Request failed due to a permanent error: %s", errorMessage)); + Timber.w("Request failed due to a permanent error: %s", errorMessage); } mLock.lock(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index f47fcdfd4a..3b8bc16bb3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -272,7 +272,6 @@ public final class MapboxMap { * Check whether tile pre-fetching is enabled or not. * * @return true if enabled - * * @see MapboxMap#setPrefetchesTiles(boolean) */ @UiThread @@ -316,7 +315,7 @@ public final class MapboxMap { // noinspection unchecked return (T) nativeMapView.getLayer(layerId); } catch (ClassCastException exception) { - Timber.e(String.format("Layer: %s is a different type: %s", layerId, exception)); + Timber.e(exception, "Layer: %s is a different type: ", layerId); return null; } } @@ -437,7 +436,7 @@ public final class MapboxMap { // noinspection unchecked return (T) nativeMapView.getSource(sourceId); } catch (ClassCastException exception) { - Timber.e(String.format("Source: %s is a different type: %s", sourceId, exception)); + Timber.e(exception, "Source: %s is a different type: ", sourceId); return null; } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index 52596358e2..ddeb4b326e 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -17,7 +17,6 @@ import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.Polygon; import com.mapbox.mapboxsdk.annotations.Polyline; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.geometry.ProjectedMeters; @@ -84,9 +83,10 @@ final class NativeMapView { private boolean isDestroyedOn(String callingMethod) { if (destroyed && !TextUtils.isEmpty(callingMethod)) { - Timber.e(String.format(MapboxConstants.MAPBOX_LOCALE, + Timber.e( "You're calling `%s` after the `MapView` was destroyed, were you invoking it after `onDestroy()`?", - callingMethod)); + callingMethod + ); } return destroyed; } @@ -143,14 +143,14 @@ final class NativeMapView { if (width > 65535) { // we have seen edge cases where devices return incorrect values #6111 Timber.e("Device returned an out of range width size, " - + "capping value at 65535 instead of " + width); + + "capping value at 65535 instead of %s", width); width = 65535; } if (height > 65535) { // we have seen edge cases where devices return incorrect values #6111 Timber.e("Device returned an out of range height size, " - + "capping value at 65535 instead of " + height); + + "capping value at 65535 instead of %s", height); height = 65535; } nativeResizeView(width, height); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java index d788b7772b..6f63c2eba8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java @@ -346,7 +346,7 @@ final class Transform implements MapView.OnMapChangedListener { void setMinZoom(double minZoom) { if ((minZoom < MapboxConstants.MINIMUM_ZOOM) || (minZoom > MapboxConstants.MAXIMUM_ZOOM)) { - Timber.e("Not setting minZoomPreference, value is in unsupported range: " + minZoom); + Timber.e("Not setting minZoomPreference, value is in unsupported range: %s", minZoom); return; } mapView.setMinZoom(minZoom); @@ -358,7 +358,7 @@ final class Transform implements MapView.OnMapChangedListener { void setMaxZoom(double maxZoom) { if ((maxZoom < MapboxConstants.MINIMUM_ZOOM) || (maxZoom > MapboxConstants.MAXIMUM_ZOOM)) { - Timber.e("Not setting maxZoomPreference, value is in unsupported range: " + maxZoom); + Timber.e("Not setting maxZoomPreference, value is in unsupported range: %s", maxZoom); return; } mapView.setMaxZoom(maxZoom); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index 017fdb353a..4e696fb56b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -1,6 +1,7 @@ package com.mapbox.mapboxsdk.maps.widgets; import android.animation.ValueAnimator; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Camera; import android.graphics.Canvas; @@ -775,6 +776,7 @@ public class MyLocationView extends View { locationSource = new WeakReference<>(locationEngine); } + @SuppressLint("MissingPermission") @Override public void onConnected() { MyLocationView locationView = userLocationView.get(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java index a1bd98b780..817dcdb438 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.net; +import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -21,6 +22,7 @@ import timber.log.Timber; * Not public api. */ public class ConnectivityReceiver extends BroadcastReceiver { + @SuppressLint("StaticFieldLeak") private static ConnectivityReceiver INSTANCE; /** @@ -82,7 +84,7 @@ public class ConnectivityReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { boolean connected = isConnected(context); - Timber.v("Connected: " + connected); + Timber.v("Connected: %s", connected); // Loop over listeners for (ConnectivityListener listener : listeners) { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java index 1e6f44f094..130284e88d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.offline; +import android.annotation.SuppressLint; import android.content.Context; import android.os.Handler; import android.os.Looper; @@ -40,6 +41,7 @@ public class OfflineManager { private Handler handler; // This object is implemented as a singleton + @SuppressLint("StaticFieldLeak") private static OfflineManager instance; // The application context @@ -90,11 +92,11 @@ public class OfflineManager { */ private OfflineManager(Context context) { this.context = context.getApplicationContext(); - this.fileSource = FileSource.getInstance(context); + this.fileSource = FileSource.getInstance(this.context); initialize(fileSource); // Delete any existing previous ambient cache database - deleteAmbientDatabase(context); + deleteAmbientDatabase(this.context); } private void deleteAmbientDatabase(final Context context) { @@ -107,10 +109,10 @@ public class OfflineManager { File file = new File(path); if (file.exists()) { file.delete(); - Timber.d("Old ambient cache database deleted to save space: " + path); + Timber.d("Old ambient cache database deleted to save space: %s", path); } } catch (Exception exception) { - Timber.e("Failed to delete old ambient cache database: ", exception); + Timber.e(exception, "Failed to delete old ambient cache database: "); } } }).start(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java index eafef80e8d..a968cdf192 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java @@ -72,9 +72,9 @@ public class FileSource { MapboxConstants.KEY_META_DATA_SET_STORAGE_EXTERNAL, MapboxConstants.DEFAULT_SET_STORAGE_EXTERNAL); } catch (PackageManager.NameNotFoundException exception) { - Timber.e("Failed to read the package metadata: ", exception); + Timber.e(exception,"Failed to read the package metadata: "); } catch (Exception exception) { - Timber.e("Failed to read the storage key: ", exception); + Timber.e(exception, "Failed to read the storage key: "); } String cachePath = null; @@ -83,7 +83,7 @@ public class FileSource { // Try getting the external storage path cachePath = context.getExternalFilesDir(null).getAbsolutePath(); } catch (NullPointerException exception) { - Timber.e("Failed to obtain the external storage path: ", exception); + Timber.e(exception, "Failed to obtain the external storage path: "); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java index e1e40821b1..e7bb52ebb3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java @@ -279,7 +279,7 @@ public class Function<I, O> { // noinspection unchecked return (S) stops; } catch (ClassCastException exception) { - Timber.e(String.format("Stops: %s is a different type: %s", stops.getClass(), exception)); + Timber.e(exception, "Stops: %s is a different type: ", stops.getClass()); return null; } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml index 3decd6ead1..d59eef7427 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -83,11 +83,13 @@ <!-- Exposed styles --> <public name="mapbox_style_mapbox_streets" type="string" /> - <public name="mapbox_style_emerald" type="string" /> + <public name="mapbox_style_outdoors" type="string" /> <public name="mapbox_style_light" type="string" /> <public name="mapbox_style_dark" type="string" /> <public name="mapbox_style_satellite" type="string" /> <public name="mapbox_style_satellite_streets" type="string" /> + <public name="mapbox_style_traffic_day" type="string" /> + <public name="mapbox_style_traffic_night" type="string" /> <!-- Exposed strings --> <public name="mapbox_compassContentDescription" type="string" /> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/color/mapbox_material_bg_selector.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/color/mapbox_material_bg_selector.xml deleted file mode 100644 index 4c733ed112..0000000000 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/color/mapbox_material_bg_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:color="?attr/colorPrimaryDark" android:state_pressed="true" /> - <item android:color="?attr/colorPrimary" /> -</selector> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/mapbox_mapview_preview.jpg b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-nodpi/mapbox_mapview_preview.jpg Binary files differindex 3a21fc08bc..3a21fc08bc 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/mapbox_mapview_preview.jpg +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-nodpi/mapbox_mapview_preview.jpg diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_infowindow_icon_bg.9.png b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_infowindow_icon_bg.9.png Binary files differdeleted file mode 100644 index 584b320299..0000000000 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_infowindow_icon_bg.9.png +++ /dev/null diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_attribution_list_item.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_attribution_list_item.xml index 763bb118e0..648946e8ce 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_attribution_list_item.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_attribution_list_item.xml @@ -9,5 +9,6 @@ android:paddingLeft="24dp" android:paddingRight="24dp" android:textAllCaps="true" + android:textIsSelectable="true" android:textAppearance="?android:attr/textAppearanceButton" android:textColor="@color/mapbox_blue"/> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_infowindow_content.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_infowindow_content.xml index 26c974dc0d..027f3690d5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_infowindow_content.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_infowindow_content.xml @@ -23,6 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="2dp" + android:textIsSelectable="true" android:maxEms="17" android:textColor="@android:color/black" android:textSize="18sp" @@ -34,13 +35,13 @@ android:layout_height="wrap_content" android:layout_marginBottom="2dp" android:layout_marginTop="2dp" + android:textIsSelectable="true" android:lineSpacingExtra="1dp" android:maxEms="17" android:textColor="@color/mapbox_gray" android:textSize="14sp"/> <TextView - android:id="@+id/infowindow_subdescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxEms="17" diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_view_image_marker.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_view_image_marker.xml index 7e4a079063..51eb46e1d5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_view_image_marker.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_view_image_marker.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/image" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> + android:id="@+id/image" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="@null"/> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml index 63ef42c2c3..68e70e948e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml @@ -3,5 +3,4 @@ <color name="mapbox_gray">#7D7F80</color> <color name="mapbox_gray_light">#EEEEEE</color> <color name="mapbox_blue">#1E8CAB</color> - <color name="mapbox_my_location_ring">@color/mapbox_blue</color> </resources> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml index 8edbd47c29..1c6a265587 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml @@ -2,17 +2,8 @@ <resources> <dimen name="mapbox_infowindow_tipview_width">8dp</dimen> <dimen name="mapbox_infowindow_margin">8dp</dimen> - <dimen name="mapbox_infowindow_offset">-2dp</dimen> - <dimen name="mapbox_infowindow_line_width">1.5dp</dimen> - <dimen name="mapbox_attribution_icon_left_padding">@dimen/mapbox_two_dp</dimen> - <dimen name="mapbox_attribution_icon_top_padding">@dimen/mapbox_two_dp</dimen> - <dimen name="mapbox_attribution_icon_right_padding">@dimen/mapbox_two_dp</dimen> - <dimen name="mapbox_attribution_icon_bottom_padding">@dimen/mapbox_two_dp</dimen> - <dimen name="mapbox_two_dp">2dp</dimen> <dimen name="mapbox_four_dp">4dp</dimen> <dimen name="mapbox_eight_dp">8dp</dimen> - <dimen name="mapbox_ten_dp">10dp</dimen> - <dimen name="mapbox_sixteen_dp">16dp</dimen> <dimen name="mapbox_ninety_two_dp">92dp</dimen> <dimen name="mapbox_my_locationview_outer_circle">18dp</dimen> </resources> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index b13362751a..360cb36067 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -25,12 +25,10 @@ android { } lintOptions { - baseline file("lint-baseline.xml") + baseline file("lint-baseline-local.xml") checkAllWarnings true warningsAsErrors true - disable 'MissingTranslation' - disable 'IconDensities' - disable 'InvalidPackage' + disable 'MissingTranslation', 'GoogleAppIndexingWarning', 'UnpackedNativeCode', 'IconDipSize' } buildTypes { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/lint-baseline-local.xml b/platform/android/MapboxGLAndroidSDKTestApp/lint-baseline-local.xml new file mode 100644 index 0000000000..e3c5abce4f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/lint-baseline-local.xml @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8"?> +<issues format="4" by="lint 2.3.1"> + + <issue + id="UnusedResources" + message="The resource `R.string.mapbox_access_token` appears to be unused" + errorLine1=" <string name="mapbox_access_token">YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/values/developer-config.xml" + line="3" + column="13"/> + </issue> + + <issue + id="Overdraw" + message="Possible overdraw: Root element paints background `#cccc` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" + errorLine1=" android:background="#cccc"" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/layout/drawer_navigation_drawer.xml" + line="4" + column="5"/> + </issue> + + <issue + id="Overdraw" + message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" + errorLine1=" android:background="?android:attr/selectableItemBackground"" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/layout/item_main_feature.xml" + line="6" + column="5"/> + </issue> + + <issue + id="Overdraw" + message="Possible overdraw: Root element paints background `@color/mapboxGreen` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" + errorLine1=" android:background="@color/mapboxGreen">" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + <location + file="src/main/res/layout/view_text_marker.xml" + line="5" + column="5"/> + </issue> + + <issue + id="TypographyQuotes" + message="Replace straight quotes ('') with directional quotes (‘’, &#8216; and &#8217;) ?" + errorLine1=" <string name="mapbox_attributionTelemetryMessage">Estàs ajudant a millorar els mapes d\'OpenStreetMap i de Mapbox aportant dades d\'ús anònimes.</string>" + errorLine2=" ^"> + <location + file="src/main/res/values-ca/strings.xml" + line="9" + column="55"/> + </issue> + + <issue + id="IconDuplicatesConfig" + message="The `icon_burned.png` icon has identical contents in the following configuration folders: drawable-hdpi, drawable-xhdpi"> + <location + file="src/main/res/drawable-xhdpi/icon_burned.png"/> + <location + file="src/main/res/drawable-hdpi/icon_burned.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-hdpi/ic_launcher_round.png`: expected 72x72, but was 216x216"> + <location + file="src/main/res/drawable-hdpi/ic_launcher_round.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-mdpi/ic_launcher_round.png`: expected 48x48, but was 144x144"> + <location + file="src/main/res/drawable-mdpi/ic_launcher_round.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xhdpi/ic_launcher_round.png`: expected 96x96, but was 288x288"> + <location + file="src/main/res/drawable-xhdpi/ic_launcher_round.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xxhdpi/ic_launcher_round.png`: expected 144x144, but was 432x432"> + <location + file="src/main/res/drawable-xxhdpi/ic_launcher_round.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xxxhdpi/ic_launcher_round.png`: expected 192x192, but was 576x576"> + <location + file="src/main/res/drawable-xxxhdpi/ic_launcher_round.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-hdpi/icon.png`: expected 72x72, but was 215x212"> + <location + file="src/main/res/drawable-hdpi/icon.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-mdpi/icon.png`: expected 48x48, but was 143x141"> + <location + file="src/main/res/drawable-mdpi/icon.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xhdpi/icon.png`: expected 96x96, but was 286x282"> + <location + file="src/main/res/drawable-xhdpi/icon.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xxhdpi/icon.png`: expected 144x144, but was 429x423"> + <location + file="src/main/res/drawable-xxhdpi/icon.png"/> + </issue> + + <issue + id="IconExpectedSize" + message="Incorrect icon size for `drawable-xxxhdpi/icon.png`: expected 192x192, but was 572x564"> + <location + file="src/main/res/drawable-xxxhdpi/icon.png"/> + </issue> + + <issue + id="IconDensities" + message="Missing the following drawables in `drawable-hdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png, southeast_radar_0.png, southeast_radar_1.png... (2 more)"> + <location + file="src/main/res/drawable-hdpi"/> + </issue> + + <issue + id="IconDensities" + message="Missing the following drawables in `drawable-mdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png"> + <location + file="src/main/res/drawable-mdpi"/> + </issue> + + <issue + id="IconDensities" + message="Missing the following drawables in `drawable-xhdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png, southeast_radar_0.png, southeast_radar_1.png... (2 more)"> + <location + file="src/main/res/drawable-xhdpi"/> + </issue> + + <issue + id="IconDensities" + message="Missing the following drawables in `drawable-xxhdpi`: ic_car_top.png, ic_taxi_top.png, southeast_radar_0.png, southeast_radar_1.png, southeast_radar_2.png... (1 more)"> + <location + file="src/main/res/drawable-xxhdpi"/> + </issue> + +</issues> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/lint/lint-baseline-ci.xml b/platform/android/MapboxGLAndroidSDKTestApp/lint/lint-baseline-ci.xml index 89eab70c48..64e3d41bcc 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/lint/lint-baseline-ci.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/lint/lint-baseline-ci.xml @@ -1,1418 +1,65 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- REMEMBER! First you run Lint locally you'll need to move the lint-baseline.xml file +<!-- REMEMBER! First you run Lint locally you'll need to move lint-baseline-local.xml.xml file generated into the lint folder and called it lint-baseline-local.xml If you remove any error when running Lint locally, you'll get a warning from the command line advising you to remove it from the baseline. If you remove it (remember to remove it from lint-baseline-local.xml file) you should remove it too from lint-baseline-ci.xml (THIS FILE) which is the only one included in the repo. Eventually, it'll be removed (when we remove all current lint errors included). --> -<issues format="4" by="lint 2.3.1"> - - <issue - id="MissingPermission" - message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`" - errorLine1=" Location lastKnownLocation = locationEngine.getLastLocation();" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java" - line="783" - column="38"/> - </issue> - - <issue - id="MissingPermission" - message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`" - errorLine1=" locationEngine.requestLocationUpdates();" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java" - line="787" - column="9"/> - </issue> - - <issue - id="MissingPermission" - message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`" - errorLine1=" .target(new LatLng(Mapbox.getLocationSource().getLastLocation()))" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/widgets/MyLocationViewTest.java" - line="107" - column="34"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" ((TextView) infoWindow.getView()).setText(String.format("%.2fkm", distanceKm));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java" - line="72" - column="53"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" Timber.v(String.format("[HTTP] Request was successful (code = %d).", response.code()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="112" - column="16"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" Timber.d(String.format(" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="116" - column="16"/> - </issue> - - <issue - id="DefaultLocale" - message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" - errorLine1=" String.format("Snapshot taken in %d ms", duration)," - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.java" - line="59" - column="11"/> - </issue> - - <issue - id="InflateParams" - message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)" - errorLine1=" final View dialogContent = LayoutInflater.from(context).inflate(R.layout.dialog_camera_position, null);" - errorLine2=" ~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java" - line="89" - column="106"/> - </issue> - - <issue - id="StringFormatMatches" - message="Suspicious argument type for formatting argument #1 in `debug_zoom`: conversion is `s`, received `double` (argument #2 in method call) (Did you mean formatting character `e`, 'f', 'g' or `a`?)" - errorLine1=" textView.setText(String.format(getString(R.string.debug_zoom), position.zoom));" - errorLine2=" ~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java" - line="60" - column="76"/> - <location - file="src/main/res/values/strings.xml" - line="186" - column="5"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Could not add markers,` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Could not add markers,", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java" - line="277" - column="9"/> - </issue> - +<issues by="lint 2.3.1" format="4"> + <issue - id="TimberArgCount" - message="Wrong argument count, format string `That's not an url... ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("That's not an url... ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java" - line="77" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `That's not an url... ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("That's not an url... ", malformedUrlException);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java" - line="135" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Could not resolve package info` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Could not resolve package info", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java" - line="95" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to read the package metadata: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to read the package metadata: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="75" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to read the storage key: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to read the storage key: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="77" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to obtain the external storage path: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to obtain the external storage path: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="86" - column="9"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Failed to delete old ambient cache database: ` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Failed to delete old ambient cache database: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="113" - column="11"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `could not reflect` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("could not reflect", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java" - line="49" - column="7"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Got NULL feature %s` requires `1` but format call supplies `0`" - errorLine1=" Timber.i("Got NULL feature %s");" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java" - line="84" - column="9"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Got NULL feature %s` requires `1` but format call supplies `0`" - errorLine1=" Timber.i("Got NULL feature %s");" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java" - line="102" - column="9"/> - </issue> - - <issue - id="TimberArgCount" - message="Wrong argument count, format string `Invalid URL` requires `0` but format call supplies `1`" - errorLine1=" Timber.e("Invalid URL", malformedUrlException);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java" - line="58" - column="7"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Remove marker with " + activeMarker.getId());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java" - line="118" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("showLowThresholdMarker() " + activeMarker.getId());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java" - line="125" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Remove marker with " + activeMarker.getId());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java" - line="137" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("showHighThresholdMarker() " + activeMarker.getId());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java" - line="144" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.v("Connected: " + connected);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java" - line="85" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Debug FAB: isDebug Active? " + mapboxMap.isDebugActive());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java" - line="72" - column="20"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("That's not an url... " + malformedUrlException.getMessage());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java" - line="131" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Device returned an out of range width size, "" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="178" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Device returned an out of range height size, "" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="185" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Error: " + error);" - errorLine2=" ~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java" - line="210" - column="18"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Download started: " + regionName);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java" - line="226" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Offline region created: " + regionName);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java" - line="244" - column="18"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Error: " + error);" - errorLine2=" ~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java" - line="251" - column="18"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Selected item: " + which);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java" - line="35" - column="20"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Old ambient cache database deleted to save space: " + path);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="110" - column="22"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Failed to encode metadata: " + exception.getMessage());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/utils/OfflineUtils.java" - line="32" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("isMapboxReady called with value " + (mapboxMap != null));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java" - line="46" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Could not load geojson: " + ioException.getMessage());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java" - line="62" - column="20"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Fill anti alias: " + fillAntialias.getValue());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="320" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Fill translate anchor: " + fillTranslateAnchor.getValue());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="323" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Visibility: " + visibility.getValue());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="325" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Fill color base: " + stops.getBase());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="480" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Fill color #stops: " + stops.size());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="481" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d("Fill color #stops: " + stop);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java" - line="484" - column="20"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.i("Writing style file to: " + cacheStyleFile.getAbsolutePath());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java" - line="75" - column="18"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d(label + ": begin");" - errorLine2=" ~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java" - line="149" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d(label + ": " + (now - prev) + " ms, " + splitLabel);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java" - line="156" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.d(label + ": end, " + (now - first) + " ms");" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java" - line="158" - column="14"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Not setting minZoomPreference, value is in unsupported range: " + minZoom);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/Transform.java" - line="349" - column="16"/> - </issue> - - <issue - id="BinaryOperationInTimber" - message="Replace String concatenation with Timber's string formatting" - errorLine1=" Timber.e("Not setting maxZoomPreference, value is in unsupported range: " + maxZoom);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/Transform.java" - line="361" - column="16"/> - </issue> - - <issue - id="LogNotTimber" - message="Using 'Log' instead of 'Timber'" - errorLine1=" Log.w(LOG_TAG, ACCESS_TOKEN_NOT_SET_MESSAGE);" - errorLine2=" ~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java" - line="58" - column="7"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Stops: %s is a different type: %s", stops.getClass(), exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/style/functions/Function.java" - line="282" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.v(String.format("[HTTP] Request was successful (code = %d).", response.code()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="112" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.d(String.format(" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="116" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.d(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="163" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="166" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.w(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java" - line="170" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Layer: %s is a different type: %s", layerId, exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java" - line="286" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format("Source: %s is a different type: %s", sourceId, exception));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java" - line="407" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Querying box %s", box));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java" - line="56" - column="14"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.e(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java" - line="92" - column="16"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.d(String.format(MapboxConstants.MAPBOX_LOCALE," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java" - line="78" - column="14"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Querying box %s", box));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java" - line="51" - column="22"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Got %s features", features.size()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java" - line="69" - column="14"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Got feature %s with %s properties and Geometry %s"," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java" - line="72" - column="18"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Prop %s - %s", entry.getKey(), entry.getValue()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java" - line="79" - column="22"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Querying box %s for buildings", box));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java" - line="56" - column="22"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Querying box %s", box));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java" - line="79" - column="22"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format(" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java" - line="62" - column="22"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Got %s features", features.size()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java" - line="87" - column="14"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Got feature %s with %s properties and Geometry %s"," - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java" - line="90" - column="18"/> - </issue> - - <issue - id="StringFormatInTimber" - message="Using 'String#format' inside of 'Timber'" - errorLine1=" Timber.i(String.format("Prop %s - %s", entry.getKey(), entry.getValue()));" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java" - line="97" - column="22"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Could not add markers,", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java" - line="277" - column="9"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("That's not an url... ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java" - line="77" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("That's not an url... ", malformedUrlException);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java" - line="135" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Could not resolve package info", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java" - line="95" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to read the package metadata: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="75" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to read the storage key: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="77" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to obtain the external storage path: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java" - line="86" - column="9"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Failed to delete old ambient cache database: ", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="113" - column="11"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("could not reflect", exception);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java" - line="49" - column="7"/> - </issue> - - <issue - id="ThrowableNotAtBeginning" - message="Throwable should be first argument" - errorLine1=" Timber.e("Invalid URL", malformedUrlException);" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java" - line="58" - column="7"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `ConnectivityReceiver` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static ConnectivityReceiver INSTANCE;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/net/ConnectivityReceiver.java" - line="24" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `IconFactory` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static IconFactory instance;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/annotations/IconFactory.java" - line="38" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `Mapbox` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" private static Mapbox INSTANCE;" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/Mapbox.java" - line="29" - column="3"/> - </issue> - - <issue - id="StaticFieldLeak" - message="Do not place Android context classes in static fields (static reference to `OfflineManager` which has field `context` pointing to `Context`); this is a memory leak (and also breaks Instant Run)" - errorLine1=" // This object is implemented as a singleton" - errorLine2=" ^"> - <location - file="src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java" - line="42" - column="3"/> - </issue> - - <issue - id="UnpackedNativeCode" - message="Missing attribute android:extractNativeLibs="false" on the `<application>` tag." - errorLine1=" <application" - errorLine2=" ^"> - <location - file="src/main/AndroidManifest.xml" - line="8" - column="5"/> - </issue> - - <issue - id="MergeRootFrame" - message="This `<FrameLayout>` can be replaced with a `<merge>` tag" - errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"" - errorLine2="^"> - <location - file="src/main/res/layout/activity_building_layer.xml" - line="2" - column="1"/> - </issue> - - <issue - id="MergeRootFrame" - message="This `<FrameLayout>` can be replaced with a `<merge>` tag" - errorLine1="<FrameLayout" - errorLine2="^"> - <location - file="src/main/res/layout/activity_map_in_dialog.xml" - line="2" - column="1"/> - </issue> - - <issue - id="MergeRootFrame" - message="This `<FrameLayout>` can be replaced with a `<merge>` tag" - errorLine1="<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"" - errorLine2="^"> - <location - file="src/main/res/layout/activity_map_padding.xml" - line="2" - column="1"/> - </issue> - - <issue - id="DisableBaselineAlignment" - message="Set `android:baselineAligned="false"` on this element for better performance" - errorLine1=" <LinearLayout" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="10" - column="5"/> - </issue> - - <issue - id="DisableBaselineAlignment" - message="Set `android:baselineAligned="false"` on this element for better performance" - errorLine1=" <LinearLayout" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="42" - column="5"/> - </issue> - - <issue - id="NestedWeights" - message="Nested weights are bad for performance" - errorLine1=" android:layout_weight="0.5"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="23" - column="13"/> - </issue> - - <issue - id="NestedWeights" - message="Nested weights are bad for performance" - errorLine1=" android:layout_weight="0.5"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="55" - column="13"/> - </issue> - - <issue - id="Overdraw" - message="Possible overdraw: Root element paints background `#cccc` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" errorLine1=" android:background="#cccc"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~" + id="Overdraw" + message="Possible overdraw: Root element paints background `#cccc` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"> <location + column="5" file="src/main/res/layout/drawer_navigation_drawer.xml" - line="4" - column="5"/> + line="4"/> </issue> <issue - id="Overdraw" - message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" errorLine1=" android:background="?android:attr/selectableItemBackground"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + id="Overdraw" + message="Possible overdraw: Root element paints background `?android:attr/selectableItemBackground` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"> <location + column="5" file="src/main/res/layout/item_main_feature.xml" - line="6" - column="5"/> + line="6"/> </issue> <issue - id="Overdraw" - message="Possible overdraw: Root element paints background `@color/mapboxGreen` with a theme that also paints a background (inferred theme is `@style/AppTheme`)" errorLine1=" android:background="@color/mapboxGreen">" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + id="Overdraw" + message="Possible overdraw: Root element paints background `@color/mapboxGreen` with a theme that also paints a background (inferred theme is `@style/AppTheme`)"> <location + column="5" file="src/main/res/layout/view_text_marker.xml" - line="5" - column="5"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.color.mapbox_my_location_ring` appears to be unused" - errorLine1=" <color name="mapbox_my_location_ring">@color/mapbox_blue</color>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml" - line="6" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_access_token` appears to be unused" - errorLine1=" <string name="mapbox_access_token">YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/developer-config.xml" - line="3" - column="13"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_infowindow_offset` appears to be unused" - errorLine1=" <dimen name="mapbox_infowindow_offset">-2dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="5" - column="12"/> + line="5"/> </issue> <issue - id="UnusedResources" - message="The resource `R.dimen.coordinatebounds_margin` appears to be unused" - errorLine1=" <dimen name="coordinatebounds_margin">32dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/values/dimens.xml" - line="6" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_infowindow_line_width` appears to be unused" - errorLine1=" <dimen name="mapbox_infowindow_line_width">1.5dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="6" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_left_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_left_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="7" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_top_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_top_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="8" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_right_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_right_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="9" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_attribution_icon_bottom_padding` appears to be unused" - errorLine1=" <dimen name="mapbox_attribution_icon_bottom_padding">@dimen/mapbox_two_dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="10" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_two_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_two_dp">2dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="11" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_ten_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_ten_dp">10dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="14" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.dimen.mapbox_sixteen_dp` appears to be unused" - errorLine1=" <dimen name="mapbox_sixteen_dp">16dp</dimen>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/dimens.xml" - line="15" - column="12"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.drawable.ic_check_box` appears to be unused" - errorLine1="<vector xmlns:android="http://schemas.android.com/apk/res/android"" - errorLine2="^"> - <location - file="src/main/res/drawable/ic_check_box.xml" - line="1" - column="1"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.drawable.mapbox_infowindow_icon_bg` appears to be unused"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_infowindow_icon_bg.9.png"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.color.mapbox_material_bg_selector` appears to be unused" - errorLine1="<selector xmlns:android="http://schemas.android.com/apk/res/android">" - errorLine2="^"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/color/mapbox_material_bg_selector.xml" - line="2" - column="1"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.drawable.marker` appears to be unused" - errorLine1="<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">" - errorLine2="^"> - <location - file="src/main/res/drawable/marker.xml" - line="1" - column="1"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_outdoors` appears to be unused" - errorLine1=" <string name="mapbox_style_outdoors" translatable="false">mapbox://styles/mapbox/outdoors-v10</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml" - line="22" - column="13"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_traffic_day` appears to be unused" - errorLine1=" <string name="mapbox_style_traffic_day" translatable="false">mapbox://styles/mapbox/traffic-day-v2</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml" - line="27" - column="13"/> - </issue> - - <issue - id="UnusedResources" - message="The resource `R.string.mapbox_style_traffic_night` appears to be unused" - errorLine1=" <string name="mapbox_style_traffic_night" translatable="false">mapbox://styles/mapbox/traffic-night-v2</string>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml" - line="28" - column="13"/> - </issue> - - <issue - id="UselessParent" - message="This `FrameLayout` layout or its `LinearLayout` parent is possibly useless" - errorLine1=" <FrameLayout" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_my_location_customization.xml" - line="9" - column="5"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.fabStartStop` appears to be unused" - errorLine1=" android:id="@+id/fabStartStop"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_animated_image_source.xml" - line="18" - column="5"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.map_container` appears to be unused" - errorLine1=" android:id="@+id/map_container"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="5" - column="5"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.map_container1` appears to be unused" - errorLine1=" android:id="@+id/map_container1"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="11" - column="9"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.map_container2` appears to be unused" - errorLine1=" android:id="@+id/map_container2"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_multi_map.xml" - line="43" - column="9"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.content_frame` appears to be unused" - errorLine1=" android:id="@+id/content_frame"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="69" - column="9"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.viewpager_header` appears to be unused" - errorLine1=" android:id="@+id/viewpager_header"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_viewpager.xml" - line="13" - column="13"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.map_card` appears to be unused" - errorLine1=" android:id="@+id/map_card"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/fragment_double_map.xml" - line="12" - column="9"/> - </issue> - - <issue - id="UnusedIds" - message="The resource `R.id.infowindow_subdescription` appears to be unused" - errorLine1=" android:id="@+id/infowindow_subdescription"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="/src/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_infowindow_content.xml" - line="43" - column="9"/> - </issue> - - <issue - id="TypographyQuotes" - message="Replace straight quotes ('') with directional quotes (‘’, &#8216; and &#8217;) ?" errorLine1=" <string name="mapbox_attributionTelemetryMessage">Estàs ajudant a millorar els mapes d\'OpenStreetMap i de Mapbox aportant dades d\'ús anònimes.</string>" - errorLine2=" ^"> + errorLine2=" ^" + id="TypographyQuotes" + message="Replace straight quotes ('') with directional quotes (‘’, &#8216; and &#8217;) ?"> <location + column="55" file="src/main/res/values-ca/strings.xml" - line="9" - column="55"/> + line="9"/> </issue> <issue id="IconDipSize" - message="The image `icon_burned.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/icon_burned.png: 64x64 dp (96x96 px), drawable-xxxhdpi/icon_burned.png: 48x48 dp (192x192 px), drawable-xxhdpi/icon_burned.png: 48x48 dp (144x144 px), drawable-mdpi/icon_burned.png: 48x48 dp (48x48 px), drawable-xhdpi/icon_burned.png: 48x48 dp (96x96 px)"> - <location - file="src/main/res/drawable-xhdpi/icon_burned.png"/> + message="The image `icon_burned.png` varies significantly in its density-independent (dip) size across the various density versions: drawable-hdpi/icon_burned.png: 64x64 dp (96x96 px), drawable-xxxhdpi/icon_burned.png: 48x48 dp (192x192 px), drawable-xxhdpi/icon_burned.png: 48x48 dp (144x144 px), drawable-xhdpi/icon_burned.png: 48x48 dp (96x96 px), drawable-mdpi/icon_burned.png: 48x48 dp (48x48 px)"> <location file="src/main/res/drawable-mdpi/icon_burned.png"/> <location + file="src/main/res/drawable-xhdpi/icon_burned.png"/> + <location file="src/main/res/drawable-xxhdpi/icon_burned.png"/> <location file="src/main/res/drawable-xxxhdpi/icon_burned.png"/> @@ -1500,1070 +147,31 @@ </issue> <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_debug_mode.xml" - line="18" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_marker_bulk.xml" - line="18" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_marker_view.xml" - line="18" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/item_main_feature.xml" - line="14" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/item_main_feature.xml" - line="25" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1="<TextView" - errorLine2="^"> - <location - file="src/main/res/layout/mapbox_attribution_list_item.xml" - line="2" - column="1"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/mapbox_infowindow_content.xml" - line="21" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/mapbox_infowindow_content.xml" - line="31" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/section_main_layout.xml" - line="13" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/view_custom_marker.xml" - line="11" - column="5"/> - </issue> - - <issue - id="SelectableText" - message="Consider making the text value selectable by specifying `android:textIsSelectable="true"`" - errorLine1=" <TextView" - errorLine2=" ^"> - <location - file="src/main/res/layout/view_text_marker.xml" - line="7" - column="5"/> - </issue> - - <issue - id="ButtonStyle" - message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)" - errorLine1=" <Button" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_camera_animation_types.xml" - line="24" - column="9"/> - </issue> - - <issue - id="ButtonStyle" - message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)" - errorLine1=" <Button" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_camera_animation_types.xml" - line="31" - column="9"/> - </issue> - - <issue - id="ButtonStyle" - message="Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)" - errorLine1=" <Button" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_camera_animation_types.xml" - line="38" - column="9"/> - </issue> - - <issue - id="GoogleAppIndexingWarning" - message="App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details." - errorLine1=" <application" - errorLine2=" ^"> - <location - file="src/main/AndroidManifest.xml" - line="8" - column="5"/> - </issue> - - <issue - id="ContentDescription" - message="[Accessibility] Missing `contentDescription` attribute on image" - errorLine1=" <ImageView" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_snapshot.xml" - line="14" - column="9"/> - </issue> - - <issue - id="ContentDescription" - message="[Accessibility] Missing `contentDescription` attribute on image" - errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android"" - errorLine2="^"> - <location - file="src/main/res/layout/mapbox_view_image_marker.xml" - line="2" - column="1"/> - </issue> - - <issue - id="ContentDescription" - message="[Accessibility] Missing `contentDescription` attribute on image" - errorLine1=" <ImageView" - errorLine2=" ^"> - <location - file="src/main/res/layout/view_custom_marker.xml" - line="6" - column="5"/> - </issue> - - <issue - id="SetTextI18n" - message="String literal in `setText` can not be translated. Use Android resources instead." - errorLine1=" textView.setText("Click the map to calculate the distance");" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java" - line="103" - column="26"/> - </issue> - - <issue - id="SetTextI18n" - message="Do not concatenate text displayed with `setText`. Use resource string with placeholders." - errorLine1=" viewCountView.setText("ViewCache size " + markerViewContainer.getChildCount());" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java" - line="153" - column="39"/> - </issue> - - <issue - id="SetTextI18n" - message="String literal in `setText` can not be translated. Use Android resources instead." - errorLine1=" viewCountView.setText("ViewCache size " + markerViewContainer.getChildCount());" - errorLine2=" ~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java" - line="153" - column="39"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "No Results", should use `@string` resource" - errorLine1=" android:text="No Results"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_metadata_update.xml" - line="18" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "No Results", should use `@string` resource" - errorLine1=" android:text="No Results"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_offline_region_delete.xml" - line="18" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Move the map by x/y pixels", should use `@string` resource" - errorLine1=" android:text="Move the map by x/y pixels"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="25" - column="17"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "X: 0000", should use `@string` resource" - errorLine1=" android:text="X: 0000" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="35" - column="17"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Y: 0000", should use `@string` resource" - errorLine1=" android:text="Y: 0000" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="51" - column="17"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Latitude", should use `@string` resource" - errorLine1=" android:text="Latitude"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="19" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "-180", should use `@string` resource" - errorLine1=" android:text="-180"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="41" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Longitude", should use `@string` resource" - errorLine1=" android:text="Longitude" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="59" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "-180", should use `@string` resource" - errorLine1=" android:text="-180" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="81" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom", should use `@string` resource" - errorLine1=" android:text="Zoom" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="98" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "18", should use `@string` resource" - errorLine1=" android:text="18" />" - errorLine2=" ~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="120" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Bearing", should use `@string` resource" - errorLine1=" android:text="Bearing" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="137" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "0", should use `@string` resource" - errorLine1=" android:text="0" />" - errorLine2=" ~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="159" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Tilt", should use `@string` resource" - errorLine1=" android:text="Tilt" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="176" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "0", should use `@string` resource" - errorLine1=" android:text="0" />" - errorLine2=" ~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="198" - column="13"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Change intensity", should use `@string` resource" - errorLine1=" android:title="Change intensity"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_building.xml" - line="6" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Change Anchor", should use `@string` resource" - errorLine1=" android:title="Change Anchor"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_building.xml" - line="10" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Amount of markers", should use `@string` resource" - errorLine1=" android:title="Amount of markers"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_bulk_marker.xml" - line="6" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Update layer (invalidate)", should use `@string` resource" - errorLine1=" android:title="Update layer (invalidate)" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_custom_layer.xml" - line="7" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Red", should use `@string` resource" - errorLine1=" android:title="Red" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_custom_layer.xml" - line="10" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Green", should use `@string` resource" - errorLine1=" android:title="Green" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_custom_layer.xml" - line="13" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Blue", should use `@string` resource" - errorLine1=" android:title="Blue" />" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_custom_layer.xml" - line="16" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add an exponential zoom function", should use `@string` resource" - errorLine1=" android:title="Add an exponential zoom function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="7" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add an interval zoom function", should use `@string` resource" - errorLine1=" android:title="Add an interval zoom function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="12" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a categorical source function", should use `@string` resource" - errorLine1=" android:title="Add a categorical source function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="17" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add an exponential source function", should use `@string` resource" - errorLine1=" android:title="Add an exponential source function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="22" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add an identity source function", should use `@string` resource" - errorLine1=" android:title="Add an identity source function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="27" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add an interval source function", should use `@string` resource" - errorLine1=" android:title="Add an interval source function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="32" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a composite, exponential function", should use `@string` resource" - errorLine1=" android:title="Add a composite, exponential function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="37" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a composite, categorical function", should use `@string` resource" - errorLine1=" android:title="Add a composite, categorical function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="42" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a composite, interval function", should use `@string` resource" - errorLine1=" android:title="Add a composite, interval function"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_data_driven_style.xml" - line="47" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "My Location Tracking", should use `@string` resource" - errorLine1=" android:title="My Location Tracking"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_padding.xml" - line="6" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Bangalore", should use `@string` resource" - errorLine1=" android:title="Bangalore"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_padding.xml" - line="10" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "List all layers in the style", should use `@string` resource" - errorLine1=" android:title="List all layers in the style"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="7" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "List all sources in the style", should use `@string` resource" - errorLine1=" android:title="List all sources in the style"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="11" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Color the water", should use `@string` resource" - errorLine1=" android:title="Color the water"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="15" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Set background opacity", should use `@string` resource" - errorLine1=" android:title="Set background opacity"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="19" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Set road symbol placement to Point", should use `@string` resource" - errorLine1=" android:title="Set road symbol placement to Point"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="23" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Set layer visibility to false", should use `@string` resource" - errorLine1=" android:title="Set layer visibility to false"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="27" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a parks layer", should use `@string` resource" - errorLine1=" android:title="Add a parks layer"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="31" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a dynamic GeoJSON source", should use `@string` resource" - errorLine1=" android:title="Add a dynamic GeoJSON source"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="35" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Remove buildings layer", should use `@string` resource" - errorLine1=" android:title="Remove buildings layer"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="39" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a terrain layer", should use `@string` resource" - errorLine1=" android:title="Add a terrain layer"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="43" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Add a satellite layer", should use `@string` resource" - errorLine1=" android:title="Add a satellite layer"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="47" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Change the water color on zoom", should use `@string` resource" - errorLine1=" android:title="Change the water color on zoom"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="51" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Custom tiles", should use `@string` resource" - errorLine1=" android:title="Custom tiles"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="55" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Apply filtered fill", should use `@string` resource" - errorLine1=" android:title="Apply filtered fill"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="59" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Apply filtered line", should use `@string` resource" - errorLine1=" android:title="Apply filtered line"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="63" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Apply numeric fill filter", should use `@string` resource" - errorLine1=" android:title="Apply numeric fill filter"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_runtime_style.xml" - line="67" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Toggle text size", should use `@string` resource" - errorLine1=" android:title="Toggle text size"/>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_symbol_layer.xml" - line="6" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Toggle text field contents", should use `@string` resource" - errorLine1=" android:title="Toggle text field contents"/>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_symbol_layer.xml" - line="10" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Toggle text font", should use `@string` resource" - errorLine1=" android:title="Toggle text font"/>" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_symbol_layer.xml" - line="14" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom in", should use `@string` resource" - errorLine1=" android:title="Zoom in"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_zoom.xml" - line="6" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom out", should use `@string` resource" - errorLine1=" android:title="Zoom out"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_zoom.xml" - line="10" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom by 2", should use `@string` resource" - errorLine1=" android:title="Zoom by 2"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_zoom.xml" - line="14" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom to point", should use `@string` resource" - errorLine1=" android:title="Zoom to point"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_zoom.xml" - line="18" - column="9"/> - </issue> - - <issue - id="HardcodedText" - message="[I18N] Hardcoded string "Zoom to 4", should use `@string` resource" - errorLine1=" android:title="Zoom to 4"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/menu/menu_zoom.xml" - line="22" - column="9"/> - </issue> - - <issue - id="RelativeOverlap" - message="`@id/button_list_regions` can overlap `@id/button_download_region` if @string/button_download_region, @string/button_list_regions grow due to localized text expansion" - errorLine1=" <Button" - errorLine2=" ^"> - <location - file="src/main/res/layout/activity_offline.xml" - line="33" - column="5"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginEnd="@dimen/fab_margin"` to better support right-to-left layouts" - errorLine1=" android:layout_marginRight="@dimen/fab_margin"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_animated_image_source.xml" - line="25" - column="5"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginEnd="@dimen/fab_margin"` to better support right-to-left layouts" - errorLine1=" android:layout_marginRight="@dimen/fab_margin"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_circle_layer.xml" - line="25" - column="9"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginEnd="@dimen/fab_margin"` to better support right-to-left layouts" - errorLine1=" android:layout_marginRight="@dimen/fab_margin"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_circle_layer.xml" - line="37" - column="9"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginEnd="@dimen/fab_margin"` to better support right-to-left layouts" - errorLine1=" android:layout_marginRight="@dimen/fab_margin"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_debug_mode.xml" - line="32" - column="9"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_alignParentEnd="true"` to better support right-to-left layouts" - errorLine1=" android:layout_alignParentRight="true"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_offline.xml" - line="38" - column="9"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginEnd="@dimen/fab_margin"` to better support right-to-left layouts" - errorLine1=" android:layout_marginRight="@dimen/fab_margin"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_offline.xml" - line="39" - column="9"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginStart="56dp"` to better support right-to-left layouts" - errorLine1=" android:layout_marginLeft="56dp"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="42" - column="17"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_marginStart="56dp"` to better support right-to-left layouts" - errorLine1=" android:layout_marginLeft="56dp"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/activity_scroll_by.xml" - line="59" - column="17"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toStartOf="@+id/value_lat"` to better support right-to-left layouts" - errorLine1=" android:layout_toLeftOf="@+id/value_lat"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="28" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toEndOf="@id/text_lat"` to better support right-to-left layouts" - errorLine1=" android:layout_toRightOf="@id/text_lat"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="29" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toStartOf="@+id/value_lon"` to better support right-to-left layouts" - errorLine1=" android:layout_toLeftOf="@+id/value_lon"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="67" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toEndOf="@id/text_lon"` to better support right-to-left layouts" - errorLine1=" android:layout_toRightOf="@id/text_lon"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="68" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toStartOf="@+id/value_zoom"` to better support right-to-left layouts" - errorLine1=" android:layout_toLeftOf="@+id/value_zoom"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="106" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toEndOf="@id/text_zoom"` to better support right-to-left layouts" - errorLine1=" android:layout_toRightOf="@id/text_zoom"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/res/layout/dialog_camera_position.xml" - line="107" - column="13"/> - </issue> - - <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toStartOf="@+id/value_bearing"` to better support right-to-left layouts" - errorLine1=" android:layout_toLeftOf="@+id/value_bearing"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + id="IconDensities" + message="Missing the following drawables in `drawable-hdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png, southeast_radar_0.png, southeast_radar_1.png... (2 more)"> <location - file="src/main/res/layout/dialog_camera_position.xml" - line="145" - column="13"/> + file="src/main/res/drawable-hdpi"/> </issue> <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toEndOf="@id/text_bearing"` to better support right-to-left layouts" - errorLine1=" android:layout_toRightOf="@id/text_bearing"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + id="IconDensities" + message="Missing the following drawables in `drawable-mdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png"> <location - file="src/main/res/layout/dialog_camera_position.xml" - line="146" - column="13"/> + file="src/main/res/drawable-mdpi"/> </issue> <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toStartOf="@+id/value_tilt"` to better support right-to-left layouts" - errorLine1=" android:layout_toLeftOf="@+id/value_tilt"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + id="IconDensities" + message="Missing the following drawables in `drawable-xhdpi`: ic_car_top.png, ic_taxi_top.png, ic_us.png, southeast_radar_0.png, southeast_radar_1.png... (2 more)"> <location - file="src/main/res/layout/dialog_camera_position.xml" - line="184" - column="13"/> + file="src/main/res/drawable-xhdpi"/> </issue> <issue - id="RtlHardcoded" - message="Consider adding `android:layout_toEndOf="@id/text_tilt"` to better support right-to-left layouts" - errorLine1=" android:layout_toRightOf="@id/text_tilt"" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + id="IconDensities" + message="Missing the following drawables in `drawable-xxhdpi`: ic_car_top.png, ic_taxi_top.png, southeast_radar_0.png, southeast_radar_1.png, southeast_radar_2.png... (1 more)"> <location - file="src/main/res/layout/dialog_camera_position.xml" - line="185" - column="13"/> + file="src/main/res/drawable-xxhdpi"/> </issue> </issues> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/widgets/MyLocationViewTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/widgets/MyLocationViewTest.java index fa19235ad0..ec7105c321 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/widgets/MyLocationViewTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/maps/widgets/MyLocationViewTest.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.testapp.maps.widgets; +import android.annotation.SuppressLint; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -97,6 +98,7 @@ public class MyLocationViewTest extends BaseActivityTest { return getClass().getSimpleName(); } + @SuppressLint("MissingPermission") @Override public void perform(UiController uiController, View view) { if (isEnabled) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java index 6e582c6a3a..3148ec6793 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/OnMapReadyIdlingResource.java @@ -43,10 +43,10 @@ public class OnMapReadyIdlingResource implements IdlingResource { Field field = activity.getClass().getDeclaredField("mapboxMap"); field.setAccessible(true); mapboxMap = (MapboxMap) field.get(activity); - Timber.e("isMapboxReady called with value " + (mapboxMap != null)); + Timber.e("isMapboxReady called with value %s", (mapboxMap != null)); return mapboxMap != null; } catch (Exception exception) { - Timber.e("could not reflect", exception); + Timber.e(exception, "could not reflect"); return false; } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java index deee312bb3..fba33bb380 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java @@ -3,7 +3,6 @@ package com.mapbox.mapboxsdk.testapp; import android.app.Application; import android.os.StrictMode; import android.text.TextUtils; -import android.util.Log; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.testapp.utils.TokenUtils; @@ -21,7 +20,6 @@ import static timber.log.Timber.DebugTree; */ public class MapboxApplication extends Application { - private static final String LOG_TAG = MapboxApplication.class.getSimpleName(); private static final String DEFAULT_MAPBOX_ACCESS_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE"; private static final String ACCESS_TOKEN_NOT_SET_MESSAGE = "In order to run the Test App you need to set a valid " + "access token. During development, you can set the MAPBOX_ACCESS_TOKEN environment variable for the SDK to " @@ -55,7 +53,7 @@ public class MapboxApplication extends Application { String mapboxAccessToken = TokenUtils.getMapboxAccessToken(getApplicationContext()); if (TextUtils.isEmpty(mapboxAccessToken) || mapboxAccessToken.equals(DEFAULT_MAPBOX_ACCESS_TOKEN)) { - Log.w(LOG_TAG, ACCESS_TOKEN_NOT_SET_MESSAGE); + Timber.e(ACCESS_TOKEN_NOT_SET_MESSAGE); } Mapbox.getInstance(getApplicationContext(), mapboxAccessToken); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java index f8617366a0..3f20f19f5d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/FeatureOverviewActivity.java @@ -92,7 +92,7 @@ public class FeatureOverviewActivity extends AppCompatActivity implements Permis getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES | PackageManager.GET_META_DATA)); } catch (PackageManager.NameNotFoundException exception) { - Timber.e("Could not resolve package info", exception); + Timber.e(exception, "Could not resolve package info"); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java index 27958c3d0c..d54063a77e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java @@ -115,14 +115,14 @@ public class AddRemoveMarkerActivity extends AppCompatActivity { isShowingHighThresholdMarker = false; if (activeMarker != null) { - Timber.d("Remove marker with " + activeMarker.getId()); + Timber.d("Remove marker with id %s", activeMarker.getId()); mapboxMap.removeMarker(activeMarker); } else { Timber.e("active marker is null"); } activeMarker = mapboxMap.addMarker(lowThresholdMarker); - Timber.d("showLowThresholdMarker() " + activeMarker.getId()); + Timber.d("showLowThresholdMarker() with id %s ", activeMarker.getId()); } private void showHighThresholdMarker() { @@ -134,14 +134,14 @@ public class AddRemoveMarkerActivity extends AppCompatActivity { isShowingHighThresholdMarker = true; if (activeMarker != null) { - Timber.d("Remove marker with " + activeMarker.getId()); + Timber.d("Remove marker with id %s", activeMarker.getId()); mapboxMap.removeMarker(activeMarker); } else { Timber.e("active marker is null"); } activeMarker = mapboxMap.addMarker(highThresholdMarker); - Timber.d("showHighThresholdMarker() " + activeMarker.getId()); + Timber.d("showHighThresholdMarker() with id %s", activeMarker.getId()); } @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java index 8b238e49a8..50adeb2d74 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java @@ -274,7 +274,7 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView String json = GeoParseUtil.loadStringFromAssets(activity.getApplicationContext(), "points.geojson"); return GeoParseUtil.parseGeoJsonCoordinates(json); } catch (IOException | JSONException exception) { - Timber.e("Could not add markers,", exception); + Timber.e(exception, "Could not add markers"); return null; } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java index f2f82865d1..61ece0a94f 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java @@ -36,6 +36,7 @@ import com.mapbox.mapboxsdk.testapp.model.annotations.CountryMarkerViewOptions; import com.mapbox.mapboxsdk.testapp.model.annotations.TextMarkerView; import com.mapbox.mapboxsdk.testapp.model.annotations.TextMarkerViewOptions; +import java.util.Locale; import java.util.Random; /** @@ -150,7 +151,11 @@ public class MarkerViewActivity extends AppCompatActivity { public void onMapChanged(@MapView.MapChange int change) { if (change == MapView.REGION_IS_CHANGING || change == MapView.REGION_DID_CHANGE) { if (!markerViewManager.getMarkerViewAdapters().isEmpty() && viewCountView != null) { - viewCountView.setText("ViewCache size " + markerViewContainer.getChildCount()); + viewCountView.setText(String.format( + Locale.getDefault(), + getString(R.string.viewcache_size), + markerViewContainer.getChildCount()) + ); } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java index 266db3fdd1..a8a5054eaf 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java @@ -53,7 +53,7 @@ public class MarkerViewsInRectangleActivity extends AppCompatActivity implements int top = selectionBox.getTop() - mapView.getTop(); int left = selectionBox.getLeft() - mapView.getLeft(); RectF box = new RectF(left, top, left + selectionBox.getWidth(), top + selectionBox.getHeight()); - Timber.i(String.format("Querying box %s", box)); + Timber.i("Querying box %s", box); List<MarkerView> markers = mapboxMap.getMarkerViewsInRect(box); // Show count diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java index cb2f57d860..f82e9573f2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraPositionActivity.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.testapp.activity.camera; +import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; @@ -83,6 +84,7 @@ public class CameraPositionActivity extends AppCompatActivity implements OnMapRe fab = (FloatingActionButton) findViewById(R.id.fab); fab.setColorFilter(ContextCompat.getColor(CameraPositionActivity.this, R.color.primary)); fab.setOnClickListener(new View.OnClickListener() { + @SuppressLint("InflateParams") @Override public void onClick(View view) { Context context = view.getContext(); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java index 9c031ad32a..20174daeaa 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java @@ -48,7 +48,7 @@ public class QueryRenderedFeaturesBoxCountActivity extends AppCompatActivity { int top = selectionBox.getTop() - mapView.getTop(); int left = selectionBox.getLeft() - mapView.getLeft(); RectF box = new RectF(left, top, left + selectionBox.getWidth(), top + selectionBox.getHeight()); - Timber.i(String.format("Querying box %s", box)); + Timber.i("Querying box %s", box); List<Feature> features = mapboxMap.queryRenderedFeatures(box); // Show count @@ -66,22 +66,21 @@ public class QueryRenderedFeaturesBoxCountActivity extends AppCompatActivity { } private void debugOutput(List<Feature> features) { - Timber.i(String.format("Got %s features", features.size())); + Timber.i("Got %s features", features.size()); for (Feature feature : features) { if (feature != null) { - Timber.i(String.format("Got feature %s with %s properties and Geometry %s", + Timber.i("Got feature %s with %s properties and Geometry %s", feature.getId(), feature.getProperties() != null ? feature.getProperties().entrySet().size() : "<null>", - feature.getGeometry() != null ? feature.getGeometry().getClass().getSimpleName() : "<null>") + feature.getGeometry() != null ? feature.getGeometry().getClass().getSimpleName() : "<null>" ); if (feature.getProperties() != null) { for (Map.Entry<String, JsonElement> entry : feature.getProperties().entrySet()) { - Timber.i(String.format("Prop %s - %s", entry.getKey(), entry.getValue())); + Timber.i("Prop %s - %s", entry.getKey(), entry.getValue()); } } } else { - // TODO Question: Why not formatting here?? - Timber.i("Got NULL feature %s"); + Timber.i("Got 0 features"); } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java index 1d15efef84..a909bb7151 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java @@ -53,7 +53,7 @@ public class QueryRenderedFeaturesBoxHighlightActivity extends AppCompatActivity int top = selectionBox.getTop() - mapView.getTop(); int left = selectionBox.getLeft() - mapView.getLeft(); RectF box = new RectF(left, top, left + selectionBox.getWidth(), top + selectionBox.getHeight()); - Timber.i(String.format("Querying box %s for buildings", box)); + Timber.i("Querying box %s for buildings", box); List<Feature> features = mapboxMap.queryRenderedFeatures(box, Filter.lt("height", 10), "building"); // Show count diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java index 8c2f3a8fb5..251a3855f0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java @@ -59,7 +59,7 @@ public class QueryRenderedFeaturesBoxSymbolCountActivity extends AppCompatActivi try { mapboxMap.addSource(new GeoJsonSource("symbols-source", readRawResource(R.raw.test_points_utrecht))); } catch (IOException ioException) { - Timber.e("Could not load geojson: " + ioException.getMessage()); + Timber.e(ioException,"Could not load geojson"); return; } mapboxMap.addImage( @@ -76,7 +76,7 @@ public class QueryRenderedFeaturesBoxSymbolCountActivity extends AppCompatActivi int top = selectionBox.getTop() - mapView.getTop(); int left = selectionBox.getLeft() - mapView.getLeft(); RectF box = new RectF(left, top, left + selectionBox.getWidth(), top + selectionBox.getHeight()); - Timber.i(String.format("Querying box %s", box)); + Timber.i("Querying box %s", box); List<Feature> features = mapboxMap.queryRenderedFeatures(box, "symbols-layer"); // Show count diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java index 8b83db3069..1bd6a34b7c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java @@ -59,9 +59,9 @@ public class QueryRenderedFeaturesPropertiesActivity extends AppCompatActivity { public void onMapClick(@NonNull LatLng point) { // Query final PointF pixel = mapboxMap.getProjection().toScreenLocation(point); - Timber.i(String.format( + Timber.i( "Requesting features for %sx%s (%sx%s adjusted for density)", - pixel.x, pixel.y, pixel.x / density, pixel.y / density) + pixel.x, pixel.y, pixel.x / density, pixel.y / density ); List<Feature> features = mapboxMap.queryRenderedFeatures(pixel); @@ -84,22 +84,21 @@ public class QueryRenderedFeaturesPropertiesActivity extends AppCompatActivity { } private void debugOutput(List<Feature> features) { - Timber.i(String.format("Got %s features", features.size())); + Timber.i("Got %s features", features.size()); for (Feature feature : features) { if (feature != null) { - Timber.i(String.format("Got feature %s with %s properties and Geometry %s", + Timber.i("Got feature %s with %s properties and Geometry %s", feature.getId(), feature.getProperties() != null ? feature.getProperties().entrySet().size() : "<null>", - feature.getGeometry() != null ? feature.getGeometry().getClass().getSimpleName() : "<null>") + feature.getGeometry() != null ? feature.getGeometry().getClass().getSimpleName() : "<null>" ); if (feature.getProperties() != null) { for (Map.Entry<String, JsonElement> entry : feature.getProperties().entrySet()) { - Timber.i(String.format("Prop %s - %s", entry.getKey(), entry.getValue())); + Timber.i("Prop %s - %s", entry.getKey(), entry.getValue()); } } } else { - // TODO Question: Why not formatting here?? - Timber.i("Got NULL feature %s"); + Timber.i("Got NULL feature"); } } } @@ -185,7 +184,7 @@ public class QueryRenderedFeaturesPropertiesActivity extends AppCompatActivity { private final List<Feature> features; - public CustomMarker(BaseMarkerOptions baseMarkerOptions, List<Feature> features) { + CustomMarker(BaseMarkerOptions baseMarkerOptions, List<Feature> features) { super(baseMarkerOptions); this.features = features; } @@ -201,7 +200,7 @@ public class QueryRenderedFeaturesPropertiesActivity extends AppCompatActivity { return this; } - public CustomMarkerOptions() { + CustomMarkerOptions() { } private CustomMarkerOptions(Parcel in) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.java index 2be47b4e25..655012f799 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.java @@ -15,6 +15,8 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; +import java.util.Locale; + /** * Test activity showcasing the Snapshot API to create and display a bitmap of the current shown Map. */ @@ -56,7 +58,7 @@ public class SnapshotActivity extends AppCompatActivity implements OnMapReadyCal snapshotView.setImageBitmap(snapshot); Toast.makeText( SnapshotActivity.this, - String.format("Snapshot taken in %d ms", duration), + String.format(Locale.getDefault(), "Snapshot taken in %d ms", duration), Toast.LENGTH_LONG).show(); } }); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java index 18db2ba8a8..e8525b6a62 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java @@ -21,6 +21,8 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.IconUtils; +import java.util.Locale; + /** * Test activity showcasing how to dynamically update InfoWindow when Using an MapboxMap.InfoWindowAdapter. */ @@ -69,7 +71,7 @@ public class DynamicInfoWindowAdapterActivity extends AppCompatActivity implemen // Get the view from the info window if (infoWindow != null && infoWindow.getView() != null) { // Set the new text on the text view in the info window - ((TextView) infoWindow.getView()).setText(String.format("%.2fkm", distanceKm)); + ((TextView) infoWindow.getView()).setText(String.format(Locale.getDefault(), "%.2fkm", distanceKm)); // Update the info window position (as the text length changes) infoWindow.update(); @@ -100,9 +102,8 @@ public class DynamicInfoWindowAdapterActivity extends AppCompatActivity implemen TextView textView = new TextView(DynamicInfoWindowAdapterActivity.this); textView.setText(marker.getTitle()); textView.setBackgroundColor(Color.WHITE); - textView.setText("Click the map to calculate the distance"); + textView.setText(R.string.action_calculate_distance); textView.setPadding(padding, padding, padding, padding); - return textView; } }); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java index 18d6fadcb8..dea1abea8e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java @@ -69,7 +69,7 @@ public class DebugModeActivity extends AppCompatActivity { @Override public void onClick(View view) { if (mapboxMap != null) { - Timber.d("Debug FAB: isDebug Active? " + mapboxMap.isDebugActive()); + Timber.d("Debug FAB: isDebug Active? %s" , mapboxMap.isDebugActive()); mapboxMap.cycleDebugOptions(); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java index 344e9e140a..5bffd4d930 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/OfflineActivity.java @@ -12,7 +12,6 @@ import android.widget.Toast; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; -import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; @@ -75,8 +74,7 @@ public class OfflineActivity extends AppCompatActivity // state of your app. This will override any checks performed via the ConnectivityManager. // Mapbox.getInstance().setConnected(false); Boolean connected = Mapbox.isConnected(); - Timber.d(String.format(MapboxConstants.MAPBOX_LOCALE, - "Mapbox is connected: %b", connected)); + Timber.d("Mapbox is connected: %s", connected); // Set up map mapView = (MapView) findViewById(R.id.mapView); @@ -207,7 +205,7 @@ public class OfflineActivity extends AppCompatActivity @Override public void onError(String error) { - Timber.e("Error: " + error); + Timber.e("Error: %s" , error); } }); } @@ -223,7 +221,7 @@ public class OfflineActivity extends AppCompatActivity } // Start progress bar - Timber.d("Download started: " + regionName); + Timber.d("Download started: %s", regionName); startProgress(); // Definition @@ -241,14 +239,14 @@ public class OfflineActivity extends AppCompatActivity offlineManager.createOfflineRegion(definition, metadata, new OfflineManager.CreateOfflineRegionCallback() { @Override public void onCreate(OfflineRegion offlineRegion) { - Timber.d("Offline region created: " + regionName); + Timber.d("Offline region created: %s" , regionName); OfflineActivity.this.offlineRegion = offlineRegion; launchDownload(); } @Override public void onError(String error) { - Timber.e("Error: " + error); + Timber.e("Error: %s", error); } }); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java index 2238d1d5fe..f99a1fdb96 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java @@ -74,7 +74,7 @@ public class CircleLayerActivity extends AppCompatActivity implements View.OnCli source = new GeoJsonSource("bus_stop", new URL("https://raw.githubusercontent.com/cheeaun/busrouter-sg/master/data/2/bus-stops.geojson")); } catch (MalformedURLException exception) { - Timber.e("That's not an url... ", exception); + Timber.e(exception, "That's not an url... "); } mapboxMap.addSource(source); } @@ -132,7 +132,7 @@ public class CircleLayerActivity extends AppCompatActivity implements View.OnCli new URL("https://gist.githubusercontent.com/tobrun/7fbc0fe7e9ffea509f7608cda2601d5d/raw/" + "a4b8cc289020f91fa2e1553524820054395e36f5/line.geojson"))); } catch (MalformedURLException malformedUrlException) { - Timber.e("That's not an url... ", malformedUrlException); + Timber.e(malformedUrlException, "That's not an url... "); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java index 80dfe777cb..a2111bc304 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java @@ -128,7 +128,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { ) ); } catch (MalformedURLException malformedUrlException) { - Timber.e("That's not an url... " + malformedUrlException.getMessage()); + Timber.e(malformedUrlException,"That's not an url... "); } // Add unclustered layer diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java index b9f7ebce35..b9f1dfe810 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java @@ -55,7 +55,7 @@ public class RealTimeGeoJsonActivity extends AppCompatActivity implements OnMapR try { mapboxMap.addSource(new GeoJsonSource(ID_GEOJSON_SOURCE, new URL(URL_GEOJSON_SOURCE))); } catch (MalformedURLException malformedUrlException) { - Timber.e("Invalid URL", malformedUrlException); + Timber.e(malformedUrlException, "Invalid URL"); } // add layer diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java index f6754af0f9..287108c6aa 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java @@ -317,12 +317,12 @@ public class RuntimeStyleActivity extends AppCompatActivity { layer = mapboxMap.getLayerAs("parksLayer"); // And get some properties PropertyValue<Boolean> fillAntialias = layer.getFillAntialias(); - Timber.d("Fill anti alias: " + fillAntialias.getValue()); + Timber.d("Fill anti alias: %s", fillAntialias.getValue()); layer.setProperties(fillTranslateAnchor(FILL_TRANSLATE_ANCHOR_MAP)); PropertyValue<String> fillTranslateAnchor = layer.getFillTranslateAnchor(); - Timber.d("Fill translate anchor: " + fillTranslateAnchor.getValue()); + Timber.d("Fill translate anchor: %s", fillTranslateAnchor.getValue()); PropertyValue<String> visibility = layer.getVisibility(); - Timber.d("Visibility: " + visibility.getValue()); + Timber.d("Visibility: %s", visibility.getValue()); // Get a good look at it all mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(12)); @@ -477,11 +477,11 @@ public class RuntimeStyleActivity extends AppCompatActivity { Function<Float, String> function = (Function<Float, String>) fillColor.getFunction(); if (function != null) { ExponentialStops<Float, String> stops = (ExponentialStops) function.getStops(); - Timber.d("Fill color base: " + stops.getBase()); - Timber.d("Fill color #stops: " + stops.size()); + Timber.d("Fill color base: %s", stops.getBase()); + Timber.d("Fill color #stops: %s", stops.size()); if (function.getStops() != null) { for (Stop<Float, String> stop : stops) { - Timber.d("Fill color #stops: " + stop); + Timber.d("Fill color #stops: %s", stop); } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java index 6906e90f6e..7dcae6a16d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java @@ -72,7 +72,7 @@ public class StyleFileActivity extends AppCompatActivity { try { cacheStyleFile = File.createTempFile("my-", ".style.json"); cacheStyleFile.createNewFile(); - Timber.i("Writing style file to: " + cacheStyleFile.getAbsolutePath()); + Timber.i("Writing style file to: %s", cacheStyleFile.getAbsolutePath()); writeToFile(cacheStyleFile, readRawResource(R.raw.local_style)); } catch (Exception exception) { Toast.makeText(StyleFileActivity.this, "Could not create style file in cache dir", Toast.LENGTH_SHORT).show(); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java index 69e6d64325..9f6f2b2fcd 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java @@ -50,7 +50,7 @@ public class MyLocationDrawableActivity extends BaseLocationActivity implements mapView = new MapView(this, mapboxMapOptions); mapView.setId(R.id.mapView); - ViewGroup parent = (ViewGroup) findViewById(R.id.container); + ViewGroup parent = (ViewGroup) findViewById(android.R.id.content); parent.addView(mapView); mapView.onCreate(savedInstanceState); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java index f717daeada..76f07ba526 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java @@ -32,7 +32,7 @@ public class OfflineListRegionsDialog extends DialogFragment { .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - Timber.d("Selected item: " + which); + Timber.d("Selected item: %s", which); } }) .setPositiveButton("Accept", new DialogInterface.OnClickListener() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/OfflineUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/OfflineUtils.java index 8c6ab3e211..6220dc7e69 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/OfflineUtils.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/OfflineUtils.java @@ -29,7 +29,7 @@ public class OfflineUtils { String json = jsonObject.toString(); metadata = json.getBytes(JSON_CHARSET); } catch (Exception exception) { - Timber.e("Failed to encode metadata: " + exception.getMessage()); + Timber.e(exception, "Failed to encode metadata: "); } return metadata; } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java index 6f20d6fb0f..235fd8233b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/TimingLogger.java @@ -146,15 +146,15 @@ public class TimingLogger { if (disabled) { return; } - Timber.d(label + ": begin"); + Timber.d("%s: begin", label); final long first = splits.get(0); long now = first; for (int i = 1; i < splits.size(); i++) { now = splits.get(i); final String splitLabel = splitLabels.get(i); final long prev = splits.get(i - 1); - Timber.d(label + ": " + (now - prev) + " ms, " + splitLabel); + Timber.d("%s: %s ms, %s", label, (now - prev), splitLabel); } - Timber.d(label + ": end, " + (now - first) + " ms"); + Timber.d("%s: end, %s ms", label, (now - first)); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_check_box.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_check_box.xml deleted file mode 100644 index cf8bfa24b5..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_check_box.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M19,5v14H5V5h14m0,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z"/> -</vector> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/marker.xml deleted file mode 100644 index 71992ebd7f..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/marker.xml +++ /dev/null @@ -1,4 +0,0 @@ -<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> - <size android:width="10px" android:height="10px"/> - <solid android:color="@color/redAccent"/> -</shape>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml index ac1f08e821..cfc923902c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml @@ -14,16 +14,4 @@ app:mapbox_cameraZoom="3" app:mapbox_styleUrl="@string/mapbox_style_mapbox_streets"/> -<android.support.design.widget.FloatingActionButton - android:id="@+id/fabStartStop" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:layout_alignParentEnd="true" - android:layout_alignParentRight="true" - android:layout_marginBottom="@dimen/fab_margin" - android:layout_marginRight="@dimen/fab_margin" - android:src="@android:drawable/ic_media_play" - app:backgroundTint="@color/primary"/> - </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_building_layer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_building_layer.xml index fa37c485d7..c8752df1bf 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_building_layer.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_building_layer.xml @@ -1,8 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent"> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> <com.mapbox.mapboxsdk.maps.MapView android:id="@id/mapView" @@ -20,8 +18,8 @@ android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_marginBottom="82dp" - android:layout_marginRight="@dimen/fab_margin" android:layout_marginEnd="@dimen/fab_margin" + android:layout_marginRight="@dimen/fab_margin" android:src="@drawable/ic_my_location" app:backgroundTint="@color/accent" app:layout_anchorGravity="top"/> @@ -35,4 +33,4 @@ android:src="@drawable/ic_paint" app:backgroundTint="@color/primary"/> -</FrameLayout> +</merge> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml index b70bb6d7b2..0cb065a676 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml @@ -15,7 +15,9 @@ app:mapbox_cameraZoom="15"/> <LinearLayout + style="?android:attr/buttonBarStyle" android:layout_width="match_parent" + android:background="@color/primary" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" @@ -23,6 +25,7 @@ <Button android:id="@+id/cameraMoveButton" + style="?android:attr/buttonBarButtonStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" @@ -30,6 +33,7 @@ <Button android:id="@+id/cameraEaseButton" + style="?android:attr/buttonBarButtonStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" @@ -37,6 +41,7 @@ <Button android:id="@+id/cameraAnimateButton" + style="?android:attr/buttonBarButtonStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_circle_layer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_circle_layer.xml index 6e8a4e5eb2..5ac55e75e2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_circle_layer.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_circle_layer.xml @@ -23,6 +23,7 @@ android:layout_alignParentRight="true" android:layout_marginBottom="@dimen/fab_margin" android:layout_marginRight="@dimen/fab_margin" + android:layout_marginEnd="@dimen/fab_margin" android:src="@drawable/ic_directions_bus_black" app:backgroundTint="@android:color/white"/> @@ -36,6 +37,7 @@ android:layout_marginBottom="@dimen/fab_margin" android:layout_marginRight="@dimen/fab_margin" android:src="@drawable/ic_layers" + android:layout_marginEnd="@dimen/fab_margin" app:backgroundTint="@color/primary"/> </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_debug_mode.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_debug_mode.xml index 6db8b073d9..56fe909c45 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_debug_mode.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_debug_mode.xml @@ -21,6 +21,7 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|start" android:layout_margin="8dp" + android:textIsSelectable="true" android:textSize="14sp"/> <android.support.design.widget.FloatingActionButton @@ -29,6 +30,7 @@ android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_marginBottom="82dp" + android:layout_marginEnd="@dimen/fab_margin" android:layout_marginRight="@dimen/fab_margin" android:src="@drawable/ic_refresh" app:backgroundTint="@color/accent" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_in_dialog.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_in_dialog.xml index 3fd66977e2..0a12fd9e50 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_in_dialog.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_in_dialog.xml @@ -1,8 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent"> +<merge xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/button_open_dialog" @@ -11,4 +8,4 @@ android:layout_gravity="center" android:text="@string/button_open_dialog"/> -</FrameLayout> +</merge> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml index a0de31ee48..cd4aa4bdef 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml @@ -1,19 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> +<merge xmlns:android="http://schemas.android.com/apk/res/android"> <com.mapbox.mapboxsdk.maps.MapView android:id="@id/mapView" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> <View android:layout_width="@dimen/map_padding_left" android:layout_height="match_parent" android:alpha="0.5" - android:background="@color/mapbox_blue" /> + android:background="@color/mapbox_blue"/> <View android:layout_width="match_parent" @@ -24,13 +21,13 @@ android:layout_marginRight="@dimen/map_padding_right" android:layout_marginStart="@dimen/map_padding_left" android:alpha="0.5" - android:background="@color/mapbox_blue" /> + android:background="@color/mapbox_blue"/> <View android:layout_width="@dimen/map_padding_right" android:layout_height="match_parent" android:layout_gravity="end" android:alpha="0.5" - android:background="@color/mapbox_blue" /> + android:background="@color/mapbox_blue"/> -</FrameLayout> +</merge> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml index ff28d2edf0..357d50132b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml @@ -17,6 +17,7 @@ <TextView android:id="@+id/countView" + android:textIsSelectable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/toolbar" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_view.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_view.xml index cf4b51bbe0..abc51698aa 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_view.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_view.xml @@ -10,16 +10,18 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/toolbar" + android:textIsSelectable="true" app:mapbox_cameraTargetLat="38.907192" app:mapbox_cameraTargetLng="-77.036871" - app:mapbox_styleUrl="@string/mapbox_style_mapbox_streets" - app:mapbox_cameraZoom="12" /> + app:mapbox_cameraZoom="12" + app:mapbox_styleUrl="@string/mapbox_style_mapbox_streets"/> <TextView android:id="@+id/countView" + android:textIsSelectable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="16dp" - android:textSize="20sp" /> + android:textSize="20sp"/> </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_metadata_update.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_metadata_update.xml index 084675fb2c..1eb999caf5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_metadata_update.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_metadata_update.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:text="No Results" + android:text="@string/no_results" android:textSize="24sp"/> </LinearLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_multi_map.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_multi_map.xml index 599ae3fa1c..193ae55e59 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_multi_map.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_multi_map.xml @@ -2,13 +2,13 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mapbox="http://schemas.android.com/tools" - android:id="@+id/map_container" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + mapbox:ignore="NestedWeights"> <LinearLayout - android:id="@+id/map_container1" + android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.5" @@ -40,7 +40,7 @@ </LinearLayout> <LinearLayout - android:id="@+id/map_container2" + android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.5" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_customization.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_customization.xml index d65d5796f1..addfe8427b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_customization.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_customization.xml @@ -1,22 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@id/container" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> +<merge xmlns:android="http://schemas.android.com/apk/res/android"> - <FrameLayout + <android.support.v4.widget.ContentLoadingProgressBar android:id="@id/progress" - android:layout_width="match_parent" - android:layout_height="match_parent"> + style="?android:attr/progressBarStyleLarge" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center"/> - <android.support.v4.widget.ContentLoadingProgressBar - style="?android:attr/progressBarStyleLarge" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center"/> - - </FrameLayout> - -</LinearLayout> +</merge> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline.xml index d4b64b1ea2..3e21015e96 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline.xml @@ -18,27 +18,30 @@ android:layout_height="match_parent" android:layout_below="@+id/progress_bar"/> - <Button - android:id="@+id/button_download_region" - android:layout_width="wrap_content" + <LinearLayout + style="?android:attr/buttonBarStyle" + android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_margin="@dimen/fab_margin" - android:background="@color/white" - android:padding="10dp" - android:text="@string/button_download_region"/> + android:background="@color/primary" + android:orientation="horizontal" + android:weightSum="2"> - <Button - android:id="@+id/button_list_regions" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignBottom="@+id/button_download_region" - android:layout_alignParentRight="true" - android:layout_marginRight="@dimen/fab_margin" - android:background="@color/white" - android:padding="10dp" - android:text="@string/button_list_regions"/> + <Button + android:id="@+id/button_download_region" + style="?android:attr/buttonBarButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/button_download_region"/> + + <Button + android:id="@+id/button_list_regions" + style="?android:attr/buttonBarButtonStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/button_list_regions"/> + </LinearLayout> </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline_region_delete.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline_region_delete.xml index 084675fb2c..1eb999caf5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline_region_delete.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_offline_region_delete.xml @@ -15,7 +15,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:text="No Results" + android:text="@string/no_results" android:textSize="24sp"/> </LinearLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml index bc24533960..cfbd07ce39 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar @@ -22,7 +23,7 @@ android:layout_height="wrap_content" android:layout_marginTop="12dp" android:paddingBottom="8dp" - android:text="Move the map by x/y pixels" + android:text="@string/action_scroll_by" android:textColor="#FFFFFF" android:textSize="20sp" /> @@ -32,7 +33,8 @@ android:layout_height="wrap_content" android:layout_alignBottom="@+id/seekbar_move_x" android:layout_below="@id/title" - android:text="X: 0000" /> + android:text="X: 0000" + tools:ignore="HardcodedText"/> <SeekBar android:id="@id/seekbar_move_x" @@ -40,6 +42,7 @@ android:layout_height="wrap_content" android:layout_below="@id/title" android:layout_marginLeft="56dp" + android:layout_marginStart="56dp" android:max="50" android:progress="0" /> @@ -48,7 +51,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/seekbar_move_y" - android:text="Y: 0000" /> + android:text="Y: 0000" + tools:ignore="HardcodedText"/> <SeekBar android:id="@id/seekbar_move_y" @@ -58,6 +62,7 @@ android:layout_marginBottom="8dp" android:layout_marginLeft="56dp" android:layout_marginTop="16dp" + android:layout_marginStart="56dp" android:max="50" android:progress="0" /> @@ -66,7 +71,6 @@ </android.support.v7.widget.Toolbar> <FrameLayout - android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar"> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_snapshot.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_snapshot.xml index 6b99711e84..53345571b4 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_snapshot.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_snapshot.xml @@ -16,6 +16,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" + android:contentDescription="@null" android:background="@color/primary"/> <com.mapbox.mapboxsdk.maps.MapView diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_viewpager.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_viewpager.xml index 3b96277d23..3edaff6985 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_viewpager.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_viewpager.xml @@ -10,7 +10,6 @@ android:layout_height="match_parent"> <android.support.v4.view.PagerTabStrip - android:id="@+id/viewpager_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/dialog_camera_position.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/dialog_camera_position.xml index 1c9fbbd482..a7f422f9ce 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/dialog_camera_position.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/dialog_camera_position.xml @@ -16,7 +16,7 @@ android:layout_marginEnd="4dp" android:layout_marginRight="4dp" android:gravity="center" - android:text="Latitude" + android:text="@string/latitude" android:textColor="@android:color/white" /> <SeekBar @@ -25,7 +25,9 @@ android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + android:layout_toStartOf="@+id/value_lat" android:layout_toLeftOf="@+id/value_lat" + android:layout_toEndOf="@+id/text_lat" android:layout_toRightOf="@id/text_lat" android:max="360" /> @@ -38,7 +40,7 @@ android:layout_marginLeft="4dp" android:layout_marginStart="4dp" android:gravity="center" - android:text="-180" + android:text="@string/min_value" android:textColor="@android:color/white" /> </RelativeLayout> @@ -56,7 +58,7 @@ android:textColor="@android:color/white" android:layout_marginRight="4dp" android:gravity="center" - android:text="Longitude" /> + android:text="@string/longitude" /> <SeekBar android:id="@+id/seekbar_lon" @@ -64,8 +66,10 @@ android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + android:layout_toStartOf="@+id/value_lon" android:layout_toLeftOf="@+id/value_lon" android:layout_toRightOf="@id/text_lon" + android:layout_toEndOf="@id/text_lon" android:max="360" /> <TextView @@ -78,7 +82,7 @@ android:layout_marginLeft="4dp" android:layout_marginStart="4dp" android:gravity="center" - android:text="-180" /> + android:text="@string/min_value" /> </RelativeLayout> @@ -95,7 +99,7 @@ android:textColor="@android:color/white" android:layout_marginRight="4dp" android:gravity="center" - android:text="Zoom" /> + android:text="@string/zoom" /> <SeekBar android:id="@+id/seekbar_zoom" @@ -103,8 +107,10 @@ android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + android:layout_toStartOf="@+id/value_zoom" android:layout_toLeftOf="@+id/value_zoom" android:layout_toRightOf="@id/text_zoom" + android:layout_toEndOf="@+id/text_zoom" android:max="18" /> <TextView @@ -117,7 +123,7 @@ android:textColor="@android:color/white" android:layout_marginStart="4dp" android:gravity="center" - android:text="18" /> + android:text="@string/default_zoom_value" /> </RelativeLayout> @@ -134,7 +140,7 @@ android:layout_marginEnd="4dp" android:layout_marginRight="4dp" android:gravity="center" - android:text="Bearing" /> + android:text="@string/bearing" /> <SeekBar android:id="@+id/seekbar_bearing" @@ -142,8 +148,10 @@ android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + android:layout_toStartOf="@+id/value_bearing" android:layout_toLeftOf="@+id/value_bearing" android:layout_toRightOf="@id/text_bearing" + android:layout_toEndOf="@id/text_bearing" android:max="360" /> <TextView @@ -156,7 +164,7 @@ android:layout_marginLeft="4dp" android:layout_marginStart="4dp" android:gravity="center" - android:text="0" /> + android:text="@string/default_tilt_value" /> </RelativeLayout> @@ -173,7 +181,7 @@ android:textColor="@android:color/white" android:layout_marginRight="4dp" android:gravity="center" - android:text="Tilt" /> + android:text="@string/tilt" /> <SeekBar android:id="@+id/seekbar_tilt" @@ -181,8 +189,10 @@ android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" + android:layout_toStartOf="@+id/value_tilt" android:layout_toLeftOf="@+id/value_tilt" android:layout_toRightOf="@id/text_tilt" + android:layout_toEndOf="@id/text_tilt" android:max="60" /> <TextView @@ -195,7 +205,7 @@ android:layout_marginLeft="4dp" android:layout_marginStart="4dp" android:gravity="center" - android:text="0" /> + android:text="@string/default_tilt_value" /> </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml index b976013ead..ecfa1372f6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml @@ -9,7 +9,6 @@ android:layout_height="match_parent" /> <FrameLayout - android:id="@+id/map_card" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginLeft="5dp" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/item_main_feature.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/item_main_feature.xml index b290d013f0..49b38f081a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/item_main_feature.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/item_main_feature.xml @@ -20,6 +20,7 @@ android:gravity="center_vertical" android:maxLines="1" android:textColor="@android:color/black" + android:textIsSelectable="false" android:textSize="16sp"/> <TextView @@ -31,6 +32,7 @@ android:alpha="0.56" android:maxLines="1" android:textColor="@android:color/black" + android:textIsSelectable="false" android:textSize="14sp"/> </LinearLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/section_main_layout.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/section_main_layout.xml index 75f6ac9588..54ae113840 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/section_main_layout.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/section_main_layout.xml @@ -18,6 +18,7 @@ android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_marginStart="16dp" + android:textIsSelectable="true" android:layout_marginTop="16dp" android:alpha="0.54" android:background="@android:color/transparent" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_custom_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_custom_marker.xml index 324a4861c3..3b941d5603 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_custom_marker.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_custom_marker.xml @@ -6,6 +6,7 @@ <ImageView android:id="@id/imageView" android:layout_width="64dp" + android:contentDescription="@null" android:layout_height="64dp"/> <TextView @@ -14,6 +15,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="2dp" + android:textIsSelectable="true" android:textColor="@android:color/white" android:textStyle="bold"/> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_text_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_text_marker.xml index 299865be9e..a8d93f51be 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_text_marker.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/view_text_marker.xml @@ -11,6 +11,7 @@ android:layout_height="wrap_content" android:textStyle="bold" android:padding="4dp" + android:textIsSelectable="true" android:layout_centerInParent="true" /> </RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_building.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_building.xml index 92d1dd5380..ff65f319f9 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_building.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_building.xml @@ -3,10 +3,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_action_intensity" - android:title="Change intensity" + android:title="@string/change_intensity" app:showAsAction="never"/> <item android:id="@+id/menu_action_anchor" - android:title="Change Anchor" + android:title="@string/change_anchor" app:showAsAction="never"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bulk_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bulk_marker.xml index 8b7245c5ca..43a191f7b1 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bulk_marker.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bulk_marker.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/spinner" - android:title="Amount of markers" + android:title="@string/amount_of_markers" app:actionViewClass="android.widget.Spinner" app:showAsAction="always"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_custom_layer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_custom_layer.xml index 4639dd65ba..915afd77fa 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_custom_layer.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_custom_layer.xml @@ -1,17 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:mapbox="http://schemas.android.com/apk/res-auto"> - +<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_update_layer" - android:title="Update layer (invalidate)" /> + android:title="@string/update_layer_invalidate"/> <item android:id="@+id/action_set_color_red" - android:title="Red" /> + android:title="@string/red"/> <item android:id="@+id/action_set_color_green" - android:title="Green" /> + android:title="@string/green"/> <item android:id="@+id/action_set_color_blue" - android:title="Blue" /> + android:title="@string/blue"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_data_driven_style.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_data_driven_style.xml index 3eae56a273..a596ff5708 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_data_driven_style.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_data_driven_style.xml @@ -4,47 +4,47 @@ <item android:id="@+id/action_add_exponential_zoom_function" - android:title="Add an exponential zoom function" + android:title="@string/add_an_exponential_zoom_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_interval_zoom_function" - android:title="Add an interval zoom function" + android:title="@string/add_an_interval_zoom_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_categorical_source_function" - android:title="Add a categorical source function" + android:title="@string/add_a_categorical_source_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_exponential_source_function" - android:title="Add an exponential source function" + android:title="@string/add_an_exponential_source_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_identity_source_function" - android:title="Add an identity source function" + android:title="@string/add_an_identity_source_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_interval_source_function" - android:title="Add an interval source function" + android:title="@string/add_an_interval_source_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_composite_exponential_function" - android:title="Add a composite, exponential function" + android:title="@string/add_a_composite_exponential_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_composite_categorical_function" - android:title="Add a composite, categorical function" + android:title="@string/add_a_composite_categorical_function" mapbox:showAsAction="never"/> <item android:id="@+id/action_add_composite_interval_function" - android:title="Add a composite, interval function" + android:title="@string/add_a_composite_interval_function" mapbox:showAsAction="never"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml index e0052d4a8c..7132c0c2a9 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml @@ -3,10 +3,10 @@ xmlns:mapbox="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_user_tracking" - android:title="My Location Tracking" + android:title="@string/my_location_tracking" mapbox:showAsAction="never" /> <item android:id="@+id/action_bangalore" - android:title="Bangalore" + android:title="@string/bangalore" mapbox:showAsAction="never" /> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_press_for_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_press_for_marker.xml index 0b3a8e797e..7d20442c8c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_press_for_marker.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_press_for_marker.xml @@ -4,6 +4,5 @@ <item android:id="@+id/menuItemReset" android:title="@string/menuitem_title_reset" - app:showAsAction="always" - /> + app:showAsAction="always"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_runtime_style.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_runtime_style.xml index 86f0b4faee..5c77179272 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_runtime_style.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_runtime_style.xml @@ -4,66 +4,66 @@ <item android:id="@+id/action_list_layers" - android:title="List all layers in the style" + android:title="@string/list_all_layers_in_the_style" mapbox:showAsAction="never" /> <item android:id="@+id/action_list_sources" - android:title="List all sources in the style" + android:title="@string/list_all_sources_in_the_style" mapbox:showAsAction="never" /> <item android:id="@+id/action_water_color" - android:title="Color the water" + android:title="@string/color_the_water" mapbox:showAsAction="never" /> <item android:id="@+id/action_background_opacity" - android:title="Set background opacity" + android:title="@string/set_background_opacity" mapbox:showAsAction="never" /> <item android:id="@+id/action_road_avoid_edges" - android:title="Set road symbol placement to Point" + android:title="@string/set_road_symbol_placement_to_point" mapbox:showAsAction="never" /> <item android:id="@+id/action_layer_visibility" - android:title="Set layer visibility to false" + android:title="@string/set_layer_visibility_to_false" mapbox:showAsAction="never" /> <item android:id="@+id/action_add_parks_layer" - android:title="Add a parks layer" + android:title="@string/add_a_parks_layer" mapbox:showAsAction="never" /> <item android:id="@+id/action_add_dynamic_parks_layer" - android:title="Add a dynamic GeoJSON source" + android:title="@string/add_a_dynamic_geojson_source" mapbox:showAsAction="never" /> <item android:id="@+id/action_remove_layer" - android:title="Remove buildings layer" + android:title="@string/remove_buildings_layer" mapbox:showAsAction="never" /> <item android:id="@+id/action_add_terrain_layer" - android:title="Add a terrain layer" + android:title="@string/add_a_terrain_layer" mapbox:showAsAction="never" /> <item android:id="@+id/action_add_satellite_layer" - android:title="Add a satellite layer" + android:title="@string/add_a_satellite_layer" mapbox:showAsAction="never" /> <item android:id="@+id/action_update_water_color_on_zoom" - android:title="Change the water color on zoom" + android:title="@string/change_the_water_color_on_zoom" mapbox:showAsAction="never" /> <item android:id="@+id/action_add_custom_tiles" - android:title="Custom tiles" + android:title="@string/custom_tiles" mapbox:showAsAction="never" /> <item android:id="@+id/action_fill_filter" - android:title="Apply filtered fill" + android:title="@string/apply_filtered_fill" mapbox:showAsAction="never" /> <item android:id="@+id/action_line_filter" - android:title="Apply filtered line" + android:title="@string/apply_filtered_line" mapbox:showAsAction="never" /> <item android:id="@+id/action_numeric_filter" - android:title="Apply numeric fill filter" + android:title="@string/apply_numeric_fill_filter" mapbox:showAsAction="never" /> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_symbol_layer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_symbol_layer.xml index 77468b4861..8f396b07b0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_symbol_layer.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_symbol_layer.xml @@ -3,14 +3,14 @@ <item android:id="@+id/action_toggle_text_size" - android:title="Toggle text size"/> + android:title="@string/toggle_text_size"/> <item android:id="@+id/action_toggle_text_field" - android:title="Toggle text field contents"/> + android:title="@string/toggle_text_field_contents"/> <item android:id="@+id/action_toggle_text_font" - android:title="Toggle text font"/> + android:title="@string/toggle_text_font"/> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_zoom.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_zoom.xml index 0cea519a24..67c0b2df55 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_zoom.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_zoom.xml @@ -3,23 +3,23 @@ xmlns:mapbox="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_zoom_in" - android:title="Zoom in" + android:title="@string/zoom_in" mapbox:showAsAction="never" /> <item android:id="@+id/action_zoom_out" - android:title="Zoom out" + android:title="@string/zoom_out" mapbox:showAsAction="never" /> <item android:id="@+id/action_zoom_by" - android:title="Zoom by 2" + android:title="@string/zoom_by_2" mapbox:showAsAction="never" /> <item android:id="@+id/action_zoom_to_point" - android:title="Zoom to point" + android:title="@string/zoom_to_point" mapbox:showAsAction="never" /> <item android:id="@+id/action_zoom_to" - android:title="Zoom to 4" + android:title="@string/zoom_to_4" mapbox:showAsAction="never" /> </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml index 402d42d485..caf7f72b8b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml @@ -3,7 +3,6 @@ <dimen name="circle_size">24dp</dimen> <dimen name="fab_margin">16dp</dimen> <dimen name="attr_margin">10dp</dimen> - <dimen name="coordinatebounds_margin">32dp</dimen> <dimen name="map_padding_left">96dp</dimen> <dimen name="map_padding_bottom">256dp</dimen> <dimen name="map_padding_right">32dp</dimen> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index 671dccbd2b..6e9f28e598 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -150,6 +150,8 @@ <string name="action_color_polygon">Change color</string> <string name="action_holes_polygon">Change holes</string> <string name="action_width_polyline">Change width</string> + <string name="action_calculate_distance">"Click the map to calculate the distance"</string> + <string name="action_scroll_by">Move the map by x/y pixels</string> <!--Menu--> <string name="menuitem_title_concurrent_infowindow">Concurrent Open InfoWindows</string> @@ -185,5 +187,57 @@ <string name="dynamic_marker_chelsea_snippet">Stamford Bridge</string> <string name="dynamic_marker_arsenal_title">Arsenal</string> <string name="dynamic_marker_arsenal_snippet">Emirates Stadium</string> - <string name="debug_zoom">Zoom: %s</string> + <string name="debug_zoom">Zoom: %d</string> + <string name="viewcache_size">"ViewCache size %d"</string> + <string name="latitude">Latitude</string> + <string name="min_value">-180</string> + <string name="longitude">Longitude</string> + <string name="zoom">Zoom</string> + <string name="default_zoom_value">18</string> + <string name="bearing">Bearing</string> + <string name="default_tilt_value">0</string> + <string name="tilt">Tilt</string> + <string name="no_results">No Results</string> + <string name="change_intensity">Change intensity</string> + <string name="change_anchor">Change Anchor</string> + <string name="amount_of_markers">Amount of markers</string> + <string name="update_layer_invalidate">Update layer (invalidate)</string> + <string name="red">Red</string> + <string name="green">Green</string> + <string name="blue">Blue</string> + <string name="add_an_exponential_zoom_function">Add an exponential zoom function</string> + <string name="add_an_interval_zoom_function">Add an interval zoom function</string> + <string name="add_a_categorical_source_function">Add a categorical source function</string> + <string name="add_an_exponential_source_function">Add an exponential source function</string> + <string name="add_an_identity_source_function">Add an identity source function</string> + <string name="add_an_interval_source_function">Add an interval source function</string> + <string name="add_a_composite_categorical_function">Add a composite, categorical function</string> + <string name="add_a_composite_exponential_function">Add a composite, exponential function</string> + <string name="add_a_composite_interval_function">Add a composite, interval function</string> + <string name="my_location_tracking">My Location Tracking</string> + <string name="bangalore">Bangalore</string> + <string name="list_all_layers_in_the_style">List all layers in the style</string> + <string name="list_all_sources_in_the_style">List all sources in the style</string> + <string name="color_the_water">Color the water</string> + <string name="set_background_opacity">Set background opacity</string> + <string name="set_road_symbol_placement_to_point">Set road symbol placement to Point</string> + <string name="set_layer_visibility_to_false">Set layer visibility to false</string> + <string name="add_a_parks_layer">Add a parks layer</string> + <string name="add_a_dynamic_geojson_source">Add a dynamic GeoJSON source</string> + <string name="remove_buildings_layer">Remove buildings layer</string> + <string name="add_a_terrain_layer">Add a terrain layer</string> + <string name="add_a_satellite_layer">Add a satellite layer</string> + <string name="change_the_water_color_on_zoom">Change the water color on zoom</string> + <string name="custom_tiles">Custom tiles</string> + <string name="apply_filtered_fill">Apply filtered fill</string> + <string name="apply_filtered_line">Apply filtered line</string> + <string name="apply_numeric_fill_filter">Apply numeric fill filter</string> + <string name="toggle_text_size">Toggle text size</string> + <string name="toggle_text_field_contents">Toggle text field contents</string> + <string name="toggle_text_font">Toggle text font</string> + <string name="zoom_in">Zoom in</string> + <string name="zoom_out">Zoom out</string> + <string name="zoom_by_2">Zoom by 2</string> + <string name="zoom_to_point">Zoom to point</string> + <string name="zoom_to_4">Zoom to 4</string> </resources> |