[android] - logo placement for creating a Mapview programatically (#9094)
* [android] - Correct logo placement for creating a Mapview programatically, fixup non default placements * Fixed NIGHTY_TWO_DP typo to NINETY_TWO_DP
This commit is contained in:
@@ -36,7 +36,7 @@ import java.util.Arrays;
|
||||
public class MapboxMapOptions implements Parcelable {
|
||||
|
||||
private static final float FOUR_DP = 4f;
|
||||
private static final float EIGHTY_NINE_DP = 92f;
|
||||
private static final float NINETY_TWO_DP = 92f;
|
||||
|
||||
private CameraPosition cameraPosition;
|
||||
|
||||
@@ -241,7 +241,7 @@ public class MapboxMapOptions implements Parcelable {
|
||||
R.styleable.mapbox_MapView_mapbox_uiAttributionGravity, Gravity.BOTTOM));
|
||||
mapboxMapOptions.attributionMargins(new int[] {
|
||||
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginLeft,
|
||||
EIGHTY_NINE_DP * pxlRatio)),
|
||||
NINETY_TWO_DP * pxlRatio)),
|
||||
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginTop,
|
||||
FOUR_DP * pxlRatio)),
|
||||
(int) (typedArray.getDimension(R.styleable.mapbox_MapView_mapbox_uiAttributionMarginRight,
|
||||
|
||||
@@ -193,12 +193,16 @@ public final class UiSettings {
|
||||
private void initialiseLogo(MapboxMapOptions options, Resources resources) {
|
||||
setLogoEnabled(options.getLogoEnabled());
|
||||
setLogoGravity(options.getLogoGravity());
|
||||
int[] logoMargins = options.getLogoMargins();
|
||||
setLogoMargins(resources, options.getLogoMargins());
|
||||
}
|
||||
|
||||
private void setLogoMargins(Resources resources, int[]logoMargins) {
|
||||
if (logoMargins != null) {
|
||||
setLogoMargins(logoMargins[0], logoMargins[1], logoMargins[2], logoMargins[3]);
|
||||
} else {
|
||||
int twoDp = (int) resources.getDimension(R.dimen.mapbox_two_dp);
|
||||
setLogoMargins(twoDp, twoDp, twoDp, twoDp);
|
||||
// user did not specify margins when programmatically creating a map
|
||||
int fourDp = (int) resources.getDimension(R.dimen.mapbox_four_dp);
|
||||
setLogoMargins(fourDp, fourDp, fourDp, fourDp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,17 +227,25 @@ public final class UiSettings {
|
||||
private void initialiseAttribution(Context context, MapboxMapOptions options) {
|
||||
setAttributionEnabled(options.getAttributionEnabled());
|
||||
setAttributionGravity(options.getAttributionGravity());
|
||||
int[] attributionMargins = options.getAttributionMargins();
|
||||
if (attributionMargins != null) {
|
||||
setAttributionMargins(attributionMargins[0], attributionMargins[1],
|
||||
attributionMargins[2], attributionMargins[3]);
|
||||
}
|
||||
|
||||
setAttributionMargins(context, options.getAttributionMargins());
|
||||
int attributionTintColor = options.getAttributionTintColor();
|
||||
setAttributionTintColor(attributionTintColor != -1
|
||||
? attributionTintColor : ColorUtils.getPrimaryColor(context));
|
||||
}
|
||||
|
||||
private void setAttributionMargins(Context context, int[] attributionMargins) {
|
||||
if (attributionMargins != null) {
|
||||
setAttributionMargins(attributionMargins[0], attributionMargins[1],
|
||||
attributionMargins[2], attributionMargins[3]);
|
||||
} else {
|
||||
// user did not specify margins when programmatically creating a map
|
||||
Resources resources = context.getResources();
|
||||
int margin = (int) resources.getDimension(R.dimen.mapbox_four_dp);
|
||||
int leftMargin = (int) resources.getDimension(R.dimen.mapbox_ninety_two_dp);
|
||||
setAttributionMargins(leftMargin, margin, margin, margin);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveAttribution(Bundle outState) {
|
||||
outState.putInt(MapboxConstants.STATE_ATTRIBUTION_GRAVITY, getAttributionGravity());
|
||||
outState.putInt(MapboxConstants.STATE_ATTRIBUTION_MARGIN_LEFT, getAttributionMarginLeft());
|
||||
|
||||
Reference in New Issue
Block a user