summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java8
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java31
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java23
4 files changed, 53 insertions, 13 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java
index 0877b3ab97..561ce5bf1a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java
@@ -1,5 +1,7 @@
package com.mapbox.mapboxsdk.attribution;
+import android.support.annotation.Nullable;
+
public class Attribution {
private static final String OPENSTREETMAP = "OpenStreetMap";
@@ -34,7 +36,7 @@ public class Attribution {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (this == o) {
return true;
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java
index b08a8353be..25d5de7ea6 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java
@@ -2,11 +2,14 @@ package com.mapbox.mapboxsdk.attribution;
import android.graphics.Bitmap;
import android.graphics.PointF;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
public class AttributionLayout {
+ @Nullable
private Bitmap logo;
+ @Nullable
private PointF anchorPoint;
private boolean shortText;
@@ -16,10 +19,12 @@ public class AttributionLayout {
this.shortText = shortText;
}
+ @Nullable
public Bitmap getLogo() {
return logo;
}
+ @Nullable
public PointF getAnchorPoint() {
return anchorPoint;
}
@@ -29,7 +34,7 @@ public class AttributionLayout {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
if (this == o) {
return true;
}
@@ -52,6 +57,7 @@ public class AttributionLayout {
return result;
}
+ @NonNull
@Override
public String toString() {
return "AttributionLayout{"
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java
index c2408ca718..b40a7be24c 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java
@@ -2,6 +2,8 @@ package com.mapbox.mapboxsdk.attribution;
import android.graphics.Bitmap;
import android.graphics.PointF;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.widget.TextView;
import java.util.Arrays;
@@ -27,6 +29,7 @@ public class AttributionMeasure {
this.margin = margin;
}
+ @Nullable
public AttributionLayout measure() {
Chain chain = new Chain(
new FullLogoLongTextCommand(),
@@ -45,7 +48,8 @@ public class AttributionMeasure {
private static class FullLogoLongTextCommand implements Command {
- public AttributionLayout execute(AttributionMeasure measure) {
+ @Nullable
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getLogoContainerWidth() + measure.getTextViewContainerWidth();
boolean fitBounds = width <= measure.getMaxSize();
if (fitBounds) {
@@ -57,8 +61,9 @@ public class AttributionMeasure {
}
private static class FullLogoShortTextCommand implements Command {
+ @Nullable
@Override
- public AttributionLayout execute(AttributionMeasure measure) {
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getLogoContainerWidth() + measure.getTextViewShortContainerWidth();
boolean fitBounds = width <= measure.getMaxSizeShort();
if (fitBounds) {
@@ -70,8 +75,9 @@ public class AttributionMeasure {
}
private static class SmallLogoLongTextCommand implements Command {
+ @Nullable
@Override
- public AttributionLayout execute(AttributionMeasure measure) {
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getLogoSmallContainerWidth() + measure.getTextViewContainerWidth();
boolean fitBounds = width <= measure.getMaxSize();
if (fitBounds) {
@@ -83,8 +89,9 @@ public class AttributionMeasure {
}
private static class SmallLogoShortTextCommand implements Command {
+ @Nullable
@Override
- public AttributionLayout execute(AttributionMeasure measure) {
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getLogoContainerWidth() + measure.getTextViewShortContainerWidth();
boolean fitBounds = width <= measure.getMaxSizeShort();
if (fitBounds) {
@@ -96,8 +103,9 @@ public class AttributionMeasure {
}
private static class LongTextCommand implements Command {
+ @Nullable
@Override
- public AttributionLayout execute(AttributionMeasure measure) {
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getTextViewContainerWidth() + measure.margin;
boolean fitBounds = width <= measure.getMaxSize();
if (fitBounds) {
@@ -108,8 +116,9 @@ public class AttributionMeasure {
}
private static class ShortTextCommand implements Command {
+ @Nullable
@Override
- public AttributionLayout execute(AttributionMeasure measure) {
+ public AttributionLayout execute(@NonNull AttributionMeasure measure) {
float width = measure.getTextViewShortContainerWidth() + measure.margin;
boolean fitBounds = width <= measure.getMaxSizeShort();
if (fitBounds) {
@@ -121,6 +130,7 @@ public class AttributionMeasure {
}
private static class NoTextCommand implements Command {
+ @NonNull
@Override
public AttributionLayout execute(AttributionMeasure measure) {
return new AttributionLayout(null, null, false);
@@ -145,6 +155,7 @@ public class AttributionMeasure {
this.commands = Arrays.asList(commands);
}
+ @Nullable
public AttributionLayout start(AttributionMeasure measure) {
AttributionLayout attributionLayout = null;
for (Command command : commands) {
@@ -158,6 +169,7 @@ public class AttributionMeasure {
}
public interface Command {
+ @Nullable
AttributionLayout execute(AttributionMeasure measure);
}
@@ -193,36 +205,43 @@ public class AttributionMeasure {
private TextView textViewShort;
private float marginPadding;
+ @NonNull
public Builder setSnapshot(Bitmap snapshot) {
this.snapshot = snapshot;
return this;
}
+ @NonNull
public Builder setLogo(Bitmap logo) {
this.logo = logo;
return this;
}
+ @NonNull
public Builder setLogoSmall(Bitmap logoSmall) {
this.logoSmall = logoSmall;
return this;
}
+ @NonNull
public Builder setTextView(TextView textView) {
this.textView = textView;
return this;
}
+ @NonNull
public Builder setTextViewShort(TextView textViewShort) {
this.textViewShort = textViewShort;
return this;
}
+ @NonNull
public Builder setMarginPadding(float marginPadding) {
this.marginPadding = marginPadding;
return this;
}
+ @NonNull
public AttributionMeasure build() {
return new AttributionMeasure(snapshot, logo, logoSmall, textView, textViewShort, marginPadding);
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java
index ccba0f9300..025207cc2d 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java
@@ -1,6 +1,7 @@
package com.mapbox.mapboxsdk.attribution;
import android.content.Context;
+import android.support.annotation.NonNull;
import android.text.Html;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
@@ -44,6 +45,7 @@ public class AttributionParser {
*
* @return the attributions
*/
+ @NonNull
public Set<Attribution> getAttributions() {
return attributions;
}
@@ -53,6 +55,7 @@ public class AttributionParser {
*
* @return the parsed attribution string
*/
+ @NonNull
public String createAttributionString() {
return createAttributionString(false);
}
@@ -63,6 +66,7 @@ public class AttributionParser {
* @param shortenedOutput if attribution string should contain shortened output
* @return the parsed attribution string
*/
+ @NonNull
public String createAttributionString(boolean shortenedOutput) {
StringBuilder stringBuilder = new StringBuilder(withCopyrightSign ? "" : "© ");
int counter = 0;
@@ -101,7 +105,7 @@ public class AttributionParser {
* @param htmlBuilder the html builder
* @param urlSpan the url span to be parsed
*/
- private void parseUrlSpan(SpannableStringBuilder htmlBuilder, URLSpan urlSpan) {
+ private void parseUrlSpan(@NonNull SpannableStringBuilder htmlBuilder, @NonNull URLSpan urlSpan) {
String url = urlSpan.getURL();
if (isUrlValid(url)) {
String anchor = parseAnchorValue(htmlBuilder, urlSpan);
@@ -118,7 +122,7 @@ public class AttributionParser {
* @param url the url to be validated
* @return if the url is valid
*/
- private boolean isUrlValid(String url) {
+ private boolean isUrlValid(@NonNull String url) {
return isValidForImproveThisMap(url) && isValidForMapbox(url);
}
@@ -152,7 +156,7 @@ public class AttributionParser {
* @param url the url to be validated
* @return if the url is valid for improve this map
*/
- private boolean isValidForImproveThisMap(String url) {
+ private boolean isValidForImproveThisMap(@NonNull String url) {
return withImproveMap || !url.equals(Attribution.IMPROVE_MAP_URL);
}
@@ -162,7 +166,7 @@ public class AttributionParser {
* @param url the url to be validated
* @return if the url is valid for Mapbox
*/
- private boolean isValidForMapbox(String url) {
+ private boolean isValidForMapbox(@NonNull String url) {
return withMapboxAttribution || !url.equals(Attribution.MAPBOX_URL);
}
@@ -173,6 +177,7 @@ public class AttributionParser {
* @param urlSpan the current urlSpan
* @return the parsed anchor value
*/
+ @NonNull
private String parseAnchorValue(SpannableStringBuilder htmlBuilder, URLSpan urlSpan) {
int start = htmlBuilder.getSpanStart(urlSpan);
int end = htmlBuilder.getSpanEnd(urlSpan);
@@ -188,7 +193,8 @@ public class AttributionParser {
* @param anchor the attribution string to strip
* @return the stripped attribution string without the copyright sign
*/
- private String stripCopyright(String anchor) {
+ @NonNull
+ private String stripCopyright(@NonNull String anchor) {
if (!withCopyrightSign && anchor.startsWith("© ")) {
anchor = anchor.substring(2, anchor.length());
}
@@ -242,36 +248,43 @@ public class AttributionParser {
private boolean withMapboxAttribution = true;
private String[] attributionDataStringArray;
+ @NonNull
public Options withAttributionData(String... attributionData) {
this.attributionDataStringArray = attributionData;
return this;
}
+ @NonNull
public Options withImproveMap(boolean withImproveMap) {
this.withImproveMap = withImproveMap;
return this;
}
+ @NonNull
public Options withCopyrightSign(boolean withCopyrightSign) {
this.withCopyrightSign = withCopyrightSign;
return this;
}
+ @NonNull
public Options withTelemetryAttribution(boolean withTelemetryAttribution) {
this.withTelemetryAttribution = withTelemetryAttribution;
return this;
}
+ @NonNull
public Options withMapboxAttribution(boolean withMapboxAttribution) {
this.withMapboxAttribution = withMapboxAttribution;
return this;
}
+ @NonNull
public Options withContext(Context context) {
this.context = new WeakReference<>(context);
return this;
}
+ @NonNull
public AttributionParser build() {
if (attributionDataStringArray == null) {
throw new IllegalStateException("Using builder without providing attribution data");