From 9a3eadfd5baa8b070bf8d34fbd90ecae964f170c Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Fri, 8 Jul 2016 18:31:55 +0200 Subject: [android] #5610 - Initial Runtime Style Bindings [android] #5610 - Adjusted public api after discussion [android] #5610 - added jni binding for NativeMapView#getLayer [android] #5610 - Added initial test Activity [android] #5610 - Started on NativePeer implementation for Layer [android] #5610 - replaced low-level jni code with high-level for native getLayer [android] 5610 - completed basic layer peer class - constructible from java and c++ [android] #5610 - removed reference that was redundant and causing the finalizer exception [android] #5610 - Added a property peer [android] #5610 - added value type to do type conversions - wip [android] #5610 - simplified property conversion approach - wrapped value with jenv [android] #5610 - added some more value conversions [android] #5610 - Finished conversion for basic types [android] #5610 - allow color's to be set as either an android color int or a String to support all formats in the spec [android] #5610 - encode color ints as rgba to retain alpha channel [android] #5610 - recalculate classes after paint property [android] #5610 - more examples [android] #5610 - fixed the example [android] #5610 - cleaned up example code before continueing [android] #5610 - added layout property example [android] #5610 - set visibility on layer [android] #5610 - added removeLayer and example [android] #5610 - added more type conversions [android] #5610 - Started on peer classes for layer implementations - WIP [android] #5610 - First complete layer subclass peer implementation [android] #5610 - added a little bit of structure before adding the other layer types [android] #5610 - generate the c++ headers from the style spec [android] #5610 - make sure the visibility is set as a string [android] #5610 - Generate c++ layer peer class implementations from the style spec [android] #5610 - generate java layer peer classes [android] #5610 - cleanup comments [android] #5610 - register all c++ peer classes with jni [android] #5610 - addLayer [android] #5610 - comment out broken case [android] #5610 - Sources api - very much WIP [android] 5610 - GeoJson source implementation and geojson conversion [android] #5610 - cleanup add source/layer example a bit [android] #5610 - initial filter api [android] #5610 - Added filter api on the relevant Layer classes [android] #5610 - raster layer is not filterable [android] #5610 - actually make it compile [android] #5610 - completed filter implementation [android] #5610 - Vector and Raster Source + examples [android] #5610 - removed superfluous interface, moved filters to the correct package [android] #5610 - fixed comments [android] #5610 - moved tests to the right package [android] #5610 - hide difference between paint and layout properties in public api, make more performant set method for proeprties [android] #5610 - fix rebase issue --- platform/android/src/style/android_conversion.hpp | 95 +++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 platform/android/src/style/android_conversion.hpp (limited to 'platform/android/src/style/android_conversion.hpp') diff --git a/platform/android/src/style/android_conversion.hpp b/platform/android/src/style/android_conversion.hpp new file mode 100644 index 0000000000..5128cce51f --- /dev/null +++ b/platform/android/src/style/android_conversion.hpp @@ -0,0 +1,95 @@ +#pragma once + +#include "value.hpp" + +#include +#include +#include +#include + +#include + +namespace mbgl { +namespace style { +namespace conversion { + + +//XXX +#pragma GCC diagnostic ignored "-Wunused-parameter" + +inline bool isUndefined(const mbgl::android::Value& value) { + return value.isNull(); +} + +inline bool isArray(const mbgl::android::Value& value) { + return value.isArray(); +} + +inline bool isObject(const mbgl::android::Value& value) { + return value.isObject(); +} + +inline std::size_t arrayLength(const mbgl::android::Value& value) { + return value.getLength();; +} + +inline mbgl::android::Value arrayMember(const mbgl::android::Value& value, std::size_t i) { + return value.get(i); +} + +inline optional objectMember(const mbgl::android::Value& value, const char* key) { + mbgl::android::Value member = value.get(key); + + if (!member.isNull()) { + return member; + } else { + return {}; + } +} + +template +optional eachMember(const mbgl::android::Value& value, Fn&& fn) { + //TODO + mbgl::Log::Warning(mbgl::Event::Android, "eachMember not implemented"); + return {}; +} + +inline optional toBool(const mbgl::android::Value& value) { + if (value.isBool()) { + return value.toBool(); + } else { + return {}; + } +} + +inline optional toNumber(const mbgl::android::Value& value) { + if (value.isNumber()) { + return value.toNumber(); + } else { + return {}; + } +} + +inline optional toString(const mbgl::android::Value& value) { + if (value.isString()) { + return value.toString(); + } else { + return {}; + } +} + +inline optional toValue(const mbgl::android::Value& value) { + if (value.isBool()) { + return { value.toBool() }; + } else if (value.isString()) { + return { value.toString() }; + } else if (value.isNumber()) { + return { value.toNumber() }; + } else { + return {}; + } +} + +} // namespace conversion +} // namespace style +} // namespace mbgl \ No newline at end of file -- cgit v1.2.1