diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-12-07 15:50:46 -0800 |
---|---|---|
committer | Chris Loer <chris.loer@mapbox.com> | 2017-12-11 10:43:00 -0800 |
commit | bee60130d31f502a0bf4f07f4674c6a8a21619e8 (patch) | |
tree | 137e1998d56560efe3f96959a1eaa1378e4d8bd8 /platform/android/MapboxGLAndroidSDK | |
parent | 56aa7dad4f218215f249a9a2484f8c144ecbde9f (diff) | |
download | qtlocation-mapboxgl-bee60130d31f502a0bf4f07f4674c6a8a21619e8.tar.gz |
[android] Add Configuration hook for local ideograph font family and demo activity
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK')
7 files changed, 40 insertions, 10 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index c468ecbc8c..c9bfbeb80a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -293,7 +293,7 @@ public class MapView extends FrameLayout { private void initialiseDrawingSurface(MapboxMapOptions options) { if (options.getTextureMode()) { TextureView textureView = new TextureView(getContext()); - mapRenderer = new TextureViewMapRenderer(getContext(), textureView) { + mapRenderer = new TextureViewMapRenderer(getContext(), textureView, options.getLocalIdeographFontFamily()) { @Override protected void onSurfaceCreated(GL10 gl, EGLConfig config) { MapView.this.post(new Runnable() { @@ -315,7 +315,7 @@ public class MapView extends FrameLayout { GLSurfaceView glSurfaceView = (GLSurfaceView) findViewById(R.id.surfaceView); glSurfaceView.setZOrderMediaOverlay(mapboxMapOptions.getRenderSurfaceOnTop()); - mapRenderer = new GLSurfaceViewMapRenderer(getContext(), glSurfaceView) { + mapRenderer = new GLSurfaceViewMapRenderer(getContext(), glSurfaceView, options.getLocalIdeographFontFamily()) { @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { MapView.this.post(new Runnable() { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index f26e0b9d3b..5d8da05fa8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -82,6 +82,7 @@ public class MapboxMapOptions implements Parcelable { private float myLocationAccuracyThreshold; private boolean prefetchesTiles = true; private boolean zMediaOverlay = false; + private String localIdeographFontFamily; private String apiBaseUrl; @@ -157,6 +158,7 @@ public class MapboxMapOptions implements Parcelable { textureMode = in.readByte() != 0; prefetchesTiles = in.readByte() != 0; zMediaOverlay = in.readByte() != 0; + localIdeographFontFamily = in.readString(); } static Bitmap getBitmapFromDrawable(Drawable drawable) { @@ -304,6 +306,7 @@ public class MapboxMapOptions implements Parcelable { typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_enableTilePrefetch, true)); mapboxMapOptions.renderSurfaceOnTop( typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_enableZMediaOverlay, false)); + mapboxMapOptions.localIdeographFontFamily(typedArray.getString(R.styleable.mapbox_MapView_mapbox_localIdeographFontFamily)); } finally { typedArray.recycle(); } @@ -734,6 +737,18 @@ public class MapboxMapOptions implements Parcelable { } /** + * Set the font-family for generating glyphs locally for ideographs in the ‘CJK Unified Ideographs’ + * and ‘Hangul Syllables’ ranges. + * + * @param fontFamily font family for local ideograph generation. + * @return + */ + public MapboxMapOptions localIdeographFontFamily(String fontFamily) { + this.localIdeographFontFamily = fontFamily; + return this; + } + + /** * Check whether tile pre-fetching is enabled. * * @return true if enabled @@ -1079,6 +1094,14 @@ public class MapboxMapOptions implements Parcelable { return textureMode; } + /** + * Returns the font-family for locally overriding generation of glyphs in the + * ‘CJK Unified Ideographs’ and ‘Hangul Syllables’ ranges. + * + * @return Local ideograph font family name. + */ + public String getLocalIdeographFontFamily() { return localIdeographFontFamily; } + public static final Parcelable.Creator<MapboxMapOptions> CREATOR = new Parcelable.Creator<MapboxMapOptions>() { public MapboxMapOptions createFromParcel(Parcel in) { return new MapboxMapOptions(in); @@ -1145,6 +1168,7 @@ public class MapboxMapOptions implements Parcelable { dest.writeByte((byte) (textureMode ? 1 : 0)); dest.writeByte((byte) (prefetchesTiles ? 1 : 0)); dest.writeByte((byte) (zMediaOverlay ? 1 : 0)); + dest.writeString(localIdeographFontFamily); } @Override @@ -1274,6 +1298,9 @@ public class MapboxMapOptions implements Parcelable { if (zMediaOverlay != options.zMediaOverlay) { return false; } + if (localIdeographFontFamily != options.localIdeographFontFamily) { + return false; + } return false; } @@ -1323,6 +1350,7 @@ public class MapboxMapOptions implements Parcelable { result = 31 * result + (style != null ? style.hashCode() : 0); result = 31 * result + (prefetchesTiles ? 1 : 0); result = 31 * result + (zMediaOverlay ? 1 : 0); + result = 31 * result + (localIdeographFontFamily != null ? localIdeographFontFamily.hashCode() : 0); return result; } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java index 2baff473e9..fcee5bd179 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java @@ -23,14 +23,13 @@ public abstract class MapRenderer implements MapRendererScheduler { private MapboxMap.OnFpsChangedListener onFpsChangedListener; - public MapRenderer(Context context) { + public MapRenderer(Context context, String localIdeographFontFamily) { FileSource fileSource = FileSource.getInstance(context); float pixelRatio = context.getResources().getDisplayMetrics().density; String programCacheDir = context.getCacheDir().getAbsolutePath(); - // Initialise native peer - nativeInitialize(this, fileSource, pixelRatio, programCacheDir); + nativeInitialize(this, fileSource, pixelRatio, programCacheDir, localIdeographFontFamily); } public void onStart() { @@ -112,7 +111,8 @@ public abstract class MapRenderer implements MapRendererScheduler { private native void nativeInitialize(MapRenderer self, FileSource fileSource, float pixelRatio, - String programCacheDir); + String programCacheDir, + String localIdeographFontFamily); @CallSuper @Override diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java index d98e4d06a3..7bc56475c0 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java @@ -21,8 +21,8 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi private final GLSurfaceView glSurfaceView; - public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView) { - super(context); + public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView, String localIdeographFontFamily) { + super(context, localIdeographFontFamily); this.glSurfaceView = glSurfaceView; glSurfaceView.setEGLContextClientVersion(2); glSurfaceView.setEGLConfigChooser(new EGLConfigChooser()); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java index 397904b1f5..9ebf60051a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java @@ -24,8 +24,8 @@ public class TextureViewMapRenderer extends MapRenderer { * @param context the current Context * @param textureView the TextureView */ - public TextureViewMapRenderer(@NonNull Context context, @NonNull TextureView textureView) { - super(context); + public TextureViewMapRenderer(@NonNull Context context, @NonNull TextureView textureView, String localIdeographFontFamily) { + super(context, localIdeographFontFamily); renderThread = new TextureViewRenderThread(textureView, this); renderThread.start(); } 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 f406f4d042..412d8c5d9b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -11,6 +11,7 @@ <!--Configuration--> <public name="mapbox_styleUrl" type="attr" /> <public name="mapbox_apiBaseUrl" type="attr" /> + <public name="mapbox_localIdeographFontFamily" type="attr" /> <!--Camera--> <public name="mapbox_cameraTargetLng" type="attr" /> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml index 2a4c2fe746..97adce8a4e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml @@ -5,6 +5,7 @@ <!--Configuration--> <attr name="mapbox_styleUrl" format="string"/> <attr name="mapbox_apiBaseUrl" format="string"/> + <attr name="mapbox_localIdeographFontFamily" format="string"/> <!--Camera--> <attr name="mapbox_cameraTargetLat" format="float"/> |