@situm/cordova 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/CHANGELOG_UNRELEASED.md +28 -0
- package/Jenkinsfile +84 -0
- package/LICENSE +21 -0
- package/README.md +472 -0
- package/azure/common-steps.yaml +5 -0
- package/azure-pipelines.yml +336 -0
- package/docs/JSDoc/MapView.html +300 -0
- package/docs/JSDoc/MapViewControllerImpl.html +299 -0
- package/docs/JSDoc/Situm.html +5257 -0
- package/docs/JSDoc/android_Interfaces.js.html +825 -0
- package/docs/JSDoc/android_situm.js.html +380 -0
- package/docs/JSDoc/fonts/glyphicons-halflings-regular.eot +0 -0
- package/docs/JSDoc/fonts/glyphicons-halflings-regular.svg +288 -0
- package/docs/JSDoc/fonts/glyphicons-halflings-regular.ttf +0 -0
- package/docs/JSDoc/fonts/glyphicons-halflings-regular.woff +0 -0
- package/docs/JSDoc/fonts/glyphicons-halflings-regular.woff2 +0 -0
- package/docs/JSDoc/global.html +7538 -0
- package/docs/JSDoc/img/toast-ui.png +0 -0
- package/docs/JSDoc/index.html +90 -0
- package/docs/JSDoc/map-view-controller.js.html +307 -0
- package/docs/JSDoc/map-view.js.html +172 -0
- package/docs/JSDoc/scripts/jquery.min.js +2 -0
- package/docs/JSDoc/scripts/linenumber.js +30 -0
- package/docs/JSDoc/scripts/prettify/Apache-License-2.0.txt +202 -0
- package/docs/JSDoc/scripts/prettify/lang-css.js +2 -0
- package/docs/JSDoc/scripts/prettify/prettify.js +28 -0
- package/docs/JSDoc/scripts/tui-doc.js +200 -0
- package/docs/JSDoc/styles/bootstrap.min.css +6 -0
- package/docs/JSDoc/styles/custom.css +23 -0
- package/docs/JSDoc/styles/prettify-jsdoc.css +111 -0
- package/docs/JSDoc/styles/prettify-tomorrow.css +132 -0
- package/docs/JSDoc/styles/tui-doc.css +485 -0
- package/docs/conf.json +28 -0
- package/docs/getting-started.md +298 -0
- package/docs/imagotype-SITUM-transparent-90.png +0 -0
- package/docs/static/styles/custom.css +23 -0
- package/package.json +60 -0
- package/plugin.xml +102 -0
- package/scripts/update_changelog.sh +22 -0
- package/src/android/app/build.gradle +51 -0
- package/src/android/app/proguard-rules.pro +21 -0
- package/src/android/app/src/main/AndroidManifest.xml +11 -0
- package/src/android/app/src/main/java/es/situm/plugin/DateUtils.java +15 -0
- package/src/android/app/src/main/java/es/situm/plugin/PluginHelper.java +919 -0
- package/src/android/app/src/main/java/es/situm/plugin/SitumMapper.java +968 -0
- package/src/android/app/src/main/java/es/situm/plugin/SitumPlugin.java +109 -0
- package/src/android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
- package/src/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
- package/src/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- package/src/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
- package/src/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/src/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/src/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/src/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/src/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/src/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/src/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/src/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/src/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/src/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/src/android/app/src/main/res/values/colors.xml +6 -0
- package/src/android/app/src/main/res/values/strings.xml +3 -0
- package/src/android/app/src/main/res/values/styles.xml +11 -0
- package/src/android/app/src/test/java/es/situm/plugin/PluginHelperTest.java +27 -0
- package/src/android/app/src/test/java/es/situm/plugin/SitumMapperTest.java +1485 -0
- package/src/android/app/src/test/java/es/situm/plugin/angle/AngleCreator.java +46 -0
- package/src/android/app/src/test/java/es/situm/plugin/bounds/BoundsCreator.java +50 -0
- package/src/android/app/src/test/java/es/situm/plugin/building/BuildingCreator.java +76 -0
- package/src/android/app/src/test/java/es/situm/plugin/cartesianCoordinate/CartesianCoordinateCreator.java +31 -0
- package/src/android/app/src/test/java/es/situm/plugin/circle/CircleCreator.java +41 -0
- package/src/android/app/src/test/java/es/situm/plugin/coordinate/CoordinateCreator.java +32 -0
- package/src/android/app/src/test/java/es/situm/plugin/dimensions/DimensionsCreator.java +31 -0
- package/src/android/app/src/test/java/es/situm/plugin/directionsRequest/DirectionsRequestCreator.java +105 -0
- package/src/android/app/src/test/java/es/situm/plugin/event/EventCreator.java +108 -0
- package/src/android/app/src/test/java/es/situm/plugin/floor/FloorCreator.java +58 -0
- package/src/android/app/src/test/java/es/situm/plugin/indication/IndicationCreator.java +40 -0
- package/src/android/app/src/test/java/es/situm/plugin/location/LocationCreator.java +197 -0
- package/src/android/app/src/test/java/es/situm/plugin/locationRequest/LocationRequestCreator.java +45 -0
- package/src/android/app/src/test/java/es/situm/plugin/locationStatus/LocationStatusCreator.java +211 -0
- package/src/android/app/src/test/java/es/situm/plugin/navigationProgress/NavigationProgressCreator.java +154 -0
- package/src/android/app/src/test/java/es/situm/plugin/poi/PoiCreator.java +126 -0
- package/src/android/app/src/test/java/es/situm/plugin/poiCategory/PoiCategoryCreator.java +38 -0
- package/src/android/app/src/test/java/es/situm/plugin/point/PointCreator.java +200 -0
- package/src/android/app/src/test/java/es/situm/plugin/route/RouteCreator.java +142 -0
- package/src/android/app/src/test/java/es/situm/plugin/routeStep/RouteStepCreator.java +173 -0
- package/src/android/app/src/test/java/es/situm/plugin/situmConversionArea/SitumConversionAreaCreator.java +35 -0
- package/src/android/build.gradle +31 -0
- package/src/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/src/android/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/src/android/gradle.properties +16 -0
- package/src/android/gradlew +172 -0
- package/src/android/gradlew.bat +84 -0
- package/src/android/settings.gradle +3 -0
- package/src/android/situm.gradle +19 -0
- package/src/ios/Classes/Private/CDVDebug.h +25 -0
- package/src/ios/Classes/Private/CDVJSON_private.h +31 -0
- package/src/ios/Classes/Private/CDVJSON_private.m +99 -0
- package/src/ios/Classes/Private/CDVPlugin+Private.h +24 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVGestureHandler/CDVGestureHandler.h +26 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVGestureHandler/CDVGestureHandler.m +70 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVHandleOpenURL/CDVHandleOpenURL.h +27 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVHandleOpenURL/CDVHandleOpenURL.m +86 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVIntentAndNavigationFilter/CDVIntentAndNavigationFilter.h +34 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVIntentAndNavigationFilter/CDVIntentAndNavigationFilter.m +153 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVLocalStorage/CDVLocalStorage.h +50 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVLocalStorage/CDVLocalStorage.m +487 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVLogger/CDVLogger.h +26 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVLogger/CDVLogger.m +37 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewDelegate.h +41 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewDelegate.m +399 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewEngine.h +27 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewEngine.m +202 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewNavigationDelegate.h +29 -0
- package/src/ios/Classes/Private/CDVPlugins/CDVUIWebViewEngine/CDVUIWebViewNavigationDelegate.m +153 -0
- package/src/ios/Classes/Public/CDV.h +32 -0
- package/src/ios/Classes/Public/CDVAppDelegate.h +28 -0
- package/src/ios/Classes/Public/CDVAppDelegate.m +118 -0
- package/src/ios/Classes/Public/CDVAvailability.h +111 -0
- package/src/ios/Classes/Public/CDVAvailabilityDeprecated.h +26 -0
- package/src/ios/Classes/Public/CDVCommandDelegate.h +51 -0
- package/src/ios/Classes/Public/CDVCommandDelegateImpl.h +36 -0
- package/src/ios/Classes/Public/CDVCommandDelegateImpl.m +186 -0
- package/src/ios/Classes/Public/CDVCommandQueue.h +39 -0
- package/src/ios/Classes/Public/CDVCommandQueue.m +194 -0
- package/src/ios/Classes/Public/CDVConfigParser.h +30 -0
- package/src/ios/Classes/Public/CDVConfigParser.m +81 -0
- package/src/ios/Classes/Public/CDVInvokedUrlCommand.h +52 -0
- package/src/ios/Classes/Public/CDVInvokedUrlCommand.m +116 -0
- package/src/ios/Classes/Public/CDVPlugin+Resources.h +39 -0
- package/src/ios/Classes/Public/CDVPlugin+Resources.m +38 -0
- package/src/ios/Classes/Public/CDVPlugin.h +85 -0
- package/src/ios/Classes/Public/CDVPlugin.m +202 -0
- package/src/ios/Classes/Public/CDVPluginResult.h +66 -0
- package/src/ios/Classes/Public/CDVPluginResult.m +186 -0
- package/src/ios/Classes/Public/CDVScreenOrientationDelegate.h +33 -0
- package/src/ios/Classes/Public/CDVTimer.h +27 -0
- package/src/ios/Classes/Public/CDVTimer.m +123 -0
- package/src/ios/Classes/Public/CDVURLProtocol.h +27 -0
- package/src/ios/Classes/Public/CDVURLProtocol.m +113 -0
- package/src/ios/Classes/Public/CDVUserAgentUtil.h +27 -0
- package/src/ios/Classes/Public/CDVUserAgentUtil.m +124 -0
- package/src/ios/Classes/Public/CDVViewController.h +92 -0
- package/src/ios/Classes/Public/CDVViewController.m +821 -0
- package/src/ios/Classes/Public/CDVWebViewEngineProtocol.h +42 -0
- package/src/ios/Classes/Public/CDVWhitelist.h +34 -0
- package/src/ios/Classes/Public/CDVWhitelist.m +285 -0
- package/src/ios/Classes/Public/NSDictionary+CordovaPreferences.h +35 -0
- package/src/ios/Classes/Public/NSDictionary+CordovaPreferences.m +63 -0
- package/src/ios/Classes/Public/NSMutableArray+QueueAdditions.h +29 -0
- package/src/ios/Classes/Public/NSMutableArray+QueueAdditions.m +58 -0
- package/src/ios/Cordova/Cordova.h +51 -0
- package/src/ios/Cordova/Info.plist +24 -0
- package/src/ios/Podfile +5 -0
- package/src/ios/SitumCordovaPlugin.xcodeproj/project.pbxproj +1324 -0
- package/src/ios/SitumCordovaPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/src/ios/SitumCordovaPlugin.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/src/ios/SitumCordovaPlugin.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
- package/src/ios/SitumCordovaPlugin.xcodeproj/xcshareddata/xcschemes/CordovaLib.xcscheme +100 -0
- package/src/ios/SitumCordovaPlugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/src/ios/SitumCordovaPlugin_Prefix.pch +22 -0
- package/src/ios/VERSION +1 -0
- package/src/ios/cordova.js +2432 -0
- package/src/ios/situmcordovaplugin/AppDelegate.h +22 -0
- package/src/ios/situmcordovaplugin/AppDelegate.m +98 -0
- package/src/ios/situmcordovaplugin/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
- package/src/ios/situmcordovaplugin/Base.lproj/LaunchScreen.storyboard +25 -0
- package/src/ios/situmcordovaplugin/Base.lproj/Main.storyboard +24 -0
- package/src/ios/situmcordovaplugin/Constants.h +14 -0
- package/src/ios/situmcordovaplugin/Constants.m +14 -0
- package/src/ios/situmcordovaplugin/Info.plist +45 -0
- package/src/ios/situmcordovaplugin/SITUtils.h +7 -0
- package/src/ios/situmcordovaplugin/SITUtils.m +13 -0
- package/src/ios/situmcordovaplugin/SitumLocationWrapper.h +109 -0
- package/src/ios/situmcordovaplugin/SitumLocationWrapper.m +983 -0
- package/src/ios/situmcordovaplugin/SitumPlugin.h +41 -0
- package/src/ios/situmcordovaplugin/SitumPlugin.m +752 -0
- package/src/ios/situmcordovaplugin/ViewController.h +15 -0
- package/src/ios/situmcordovaplugin/ViewController.m +29 -0
- package/src/ios/situmcordovaplugin/main.m +16 -0
- package/src/ios/situmcordovaplugin/situmcordovaplugin.xcdatamodeld/.xccurrentversion +8 -0
- package/src/ios/situmcordovaplugin/situmcordovaplugin.xcdatamodeld/situmcordovaplugin.xcdatamodel/contents +4 -0
- package/src/ios/situmcordovaplugintests/AngleTests.m +53 -0
- package/src/ios/situmcordovaplugintests/BoundTests.m +51 -0
- package/src/ios/situmcordovaplugintests/BuildingTests.m +41 -0
- package/src/ios/situmcordovaplugintests/CartesianCoordinateTests.m +42 -0
- package/src/ios/situmcordovaplugintests/ConversionAreaTests.m +43 -0
- package/src/ios/situmcordovaplugintests/CoordinateTests.m +42 -0
- package/src/ios/situmcordovaplugintests/DimensionTests.m +43 -0
- package/src/ios/situmcordovaplugintests/EventTests.m +42 -0
- package/src/ios/situmcordovaplugintests/FloorTests.m +52 -0
- package/src/ios/situmcordovaplugintests/Info.plist +38 -0
- package/src/ios/situmcordovaplugintests/InputTests/DirectionsRequestTest.m +108 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputCartesianCoordinateTests.m +45 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputCoordinateTests.m +45 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputFloorTests.m +59 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputIndicationTests.m +45 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputLocationTests.m +163 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputPoiCategoryTests.m +46 -0
- package/src/ios/situmcordovaplugintests/InputTests/InputPointTests.m +137 -0
- package/src/ios/situmcordovaplugintests/InputTests/LocationRequestTest.m +79 -0
- package/src/ios/situmcordovaplugintests/LocationStatusTests.m +60 -0
- package/src/ios/situmcordovaplugintests/LocationTests.m +114 -0
- package/src/ios/situmcordovaplugintests/NavigationProgressTests.m +50 -0
- package/src/ios/situmcordovaplugintests/PoiCategoryIconTests.m +43 -0
- package/src/ios/situmcordovaplugintests/PoiCategoryTests.m +42 -0
- package/src/ios/situmcordovaplugintests/PoiTests.m +83 -0
- package/src/ios/situmcordovaplugintests/PointTests.m +107 -0
- package/src/ios/situmcordovaplugintests/RouteStepTests.m +78 -0
- package/src/ios/situmcordovaplugintests/RouteTests.m +42 -0
- package/src/ios/situmcordovaplugintests/SitumCreatorTests.h +91 -0
- package/src/ios/situmcordovaplugintests/SitumCreatorTests.m +928 -0
- package/src/ios/situmcordovaplugintests/TestingHelper.h +48 -0
- package/src/ios/situmcordovaplugintests/TestingHelper.m +342 -0
- package/src/ios/situmcordovaplugintests/indicationTests.m +43 -0
- package/tests/common-resources/angle/angle1.json +6 -0
- package/tests/common-resources/angle/angle2.json +6 -0
- package/tests/common-resources/bounds/bounds1.json +18 -0
- package/tests/common-resources/bounds/bounds2.json +18 -0
- package/tests/common-resources/building/building1.json +64 -0
- package/tests/common-resources/cartesianCoordinate/cartesianCoordinate1.json +4 -0
- package/tests/common-resources/circle/circle1.json +17 -0
- package/tests/common-resources/coordinate/coordinate1.json +4 -0
- package/tests/common-resources/dimensions/dimensions1.json +4 -0
- package/tests/common-resources/directionsRequest/directionsRequest1.json +166 -0
- package/tests/common-resources/directionsRequest/directionsRequest2.json +167 -0
- package/tests/common-resources/directionsRequest/directionsRequest3.json +166 -0
- package/tests/common-resources/directionsRequest/directionsRequest4.json +166 -0
- package/tests/common-resources/directionsRequest/directionsRequest5.json +167 -0
- package/tests/common-resources/directionsRequest/directionsRequest6.json +153 -0
- package/tests/common-resources/events/event1.json +66 -0
- package/tests/common-resources/floor/floor1.json +13 -0
- package/tests/common-resources/floor/floor2.json +13 -0
- package/tests/common-resources/indication/indication1.json +10 -0
- package/tests/common-resources/location/location1.json +48 -0
- package/tests/common-resources/location/location10.json +48 -0
- package/tests/common-resources/location/location2.json +48 -0
- package/tests/common-resources/location/location3.json +48 -0
- package/tests/common-resources/location/location4.json +48 -0
- package/tests/common-resources/location/location5.json +48 -0
- package/tests/common-resources/location/location6.json +48 -0
- package/tests/common-resources/location/location7.json +48 -0
- package/tests/common-resources/location/location8.json +48 -0
- package/tests/common-resources/location/location9.json +48 -0
- package/tests/common-resources/locationRequest/locationRequest1.json +6 -0
- package/tests/common-resources/locationRequest/locationRequest2.json +32 -0
- package/tests/common-resources/locationRequest/locationRequest3.json +33 -0
- package/tests/common-resources/locationRequest/locationRequest4.json +31 -0
- package/tests/common-resources/locationStatus/locationStatus1.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus10.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus11.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus12.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus13.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus2.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus3.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus4.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus5.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus6.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus7.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus8.json +4 -0
- package/tests/common-resources/locationStatus/locationStatus9.json +4 -0
- package/tests/common-resources/navigationProgress/navigationProgress1.json +77 -0
- package/tests/common-resources/navigationProgress/navigationProgress2.json +77 -0
- package/tests/common-resources/poi/poi1.json +35 -0
- package/tests/common-resources/poi/poi2.json +35 -0
- package/tests/common-resources/poi/poi3.json +35 -0
- package/tests/common-resources/poi/poi4.json +38 -0
- package/tests/common-resources/poi/poi5.json +35 -0
- package/tests/common-resources/poiCategory/poiCategory1.json +7 -0
- package/tests/common-resources/poiCategoryIcon/poiCategoryIcon1.json +1 -0
- package/tests/common-resources/poiCategoryIcon/poiCategoryIcon1.png +0 -0
- package/tests/common-resources/point/point1.json +14 -0
- package/tests/common-resources/point/point2.json +14 -0
- package/tests/common-resources/point/point3.json +14 -0
- package/tests/common-resources/point/point4.json +14 -0
- package/tests/common-resources/point/point5.json +14 -0
- package/tests/common-resources/point/point6.json +14 -0
- package/tests/common-resources/point/point7.json +14 -0
- package/tests/common-resources/point/point8.json +14 -0
- package/tests/common-resources/route/route1.json +530 -0
- package/tests/common-resources/routeStep/routeStep1.json +35 -0
- package/tests/common-resources/routeStep/routeStep2.json +35 -0
- package/tests/common-resources/routeStep/routeStep3.json +35 -0
- package/tests/common-resources/routeStep/routeStep4.json +35 -0
- package/tests/common-resources/routeStep/routeStep5.json +35 -0
- package/tests/common-resources/situmConversionArea/situmConversionArea1.json +19 -0
- package/tests/js/resources/fetchBuildings.json +176 -0
- package/tests/js/resources/fetchEventsFromBuilding.json +201 -0
- package/tests/js/resources/fetchFloorsFromBuilding.json +34 -0
- package/tests/js/resources/fetchIndoorPOIsFromBuilding.json +574 -0
- package/tests/js/resources/fetchMapFromFloor.json +3 -0
- package/tests/js/resources/fetchOutdoorPOIsFromBuilding.json +68 -0
- package/tests/js/resources/fetchPoiCategories.json +72 -0
- package/tests/js/resources/fetchPoiCategoryIconNormal.json +3 -0
- package/tests/js/resources/fetchPoiCategoryIconSelected.json +3 -0
- package/tests/js/resources/requestDirections.json +1167 -0
- package/tests/js/resources/startPositioning/0_starting.json +4 -0
- package/tests/js/resources/startPositioning/1_preparingPositioningModel.json +4 -0
- package/tests/js/resources/startPositioning/2_startingPositioning.json +4 -0
- package/tests/js/resources/startPositioning/3_calculating.json +4 -0
- package/tests/js/resources/startPositioning/4_position.json +48 -0
- package/tests/js/resources/startPositioning/5_position.json +48 -0
- package/tests/js/test.js +416 -0
- package/tests/scripts/clean_android_resources.sh +3 -0
- package/tests/scripts/clean_ios_resources.sh +3 -0
- package/tests/scripts/copy_android_resources.sh +3 -0
- package/tests/scripts/copy_ios_resources.sh +3 -0
- package/tests/scripts/self-destruct.sh +1 -0
- package/www/android/Interfaces.js +742 -0
- package/www/android/situm.js +296 -0
- package/www/ios/situm.js +99 -0
- package/www/map-view-controller.js +223 -0
- package/www/map-view.js +88 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
var exec = require('cordova/exec');
|
|
2
|
+
|
|
3
|
+
var PLUGIN_NAME = 'Situm';
|
|
4
|
+
let _internalEventDelegate = undefined;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @namespace Situm
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var Situm = {
|
|
11
|
+
/**
|
|
12
|
+
* An internal method.
|
|
13
|
+
* @param {internalEventDelegate} callback.
|
|
14
|
+
*/
|
|
15
|
+
internalSetEventDelegate: function (callback) {
|
|
16
|
+
_internalEventDelegate = callback;
|
|
17
|
+
},
|
|
18
|
+
/**
|
|
19
|
+
* Provides your API key to the Situm SDK.
|
|
20
|
+
* @description Provides your API key to the Situm SDK. This key is generated for your application in the Dashboard. Old credentials will be removed.
|
|
21
|
+
* @param {string} email Email that identifies the account. Can't be empty.
|
|
22
|
+
* @param {string} apiKey Key obtained at situm.es. Can't be empty.
|
|
23
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
24
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
25
|
+
* @return {boolean} success True if operation finished successfully, otherwise false
|
|
26
|
+
*/
|
|
27
|
+
setApiKey: function (email, apiKey, cb, error) {
|
|
28
|
+
exec(cb, error, PLUGIN_NAME, 'setApiKey', [email, apiKey]);
|
|
29
|
+
},
|
|
30
|
+
setUseRemoteConfig: function (useRemoteConfig, cb, error) {
|
|
31
|
+
exec(cb, error, PLUGIN_NAME, 'setUseRemoteConfig', [useRemoteConfig]);
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Provides user's email and password.
|
|
35
|
+
* @description Provides user's email and password. This credentials will be used to obtain a valid user token to authenticate the server request, when necessary. Token obtaining is not necessary done when this method is executed. Old credentials will be removed.
|
|
36
|
+
* @param {string} email User's email. Can't be empty.
|
|
37
|
+
* @param {string} password User's password. Can't be empty.
|
|
38
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
39
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
40
|
+
* @return {boolean} success True if operation finished successfully, otherwise false
|
|
41
|
+
*/
|
|
42
|
+
setUserPass: function (email, password, cb, error) {
|
|
43
|
+
exec(cb, error, PLUGIN_NAME, 'setUserPass', [email, password]);
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* Sets the maximum age of a cached response.
|
|
47
|
+
* @description Sets the maximum age of a cached response. If the cache response's age exceeds maxAge, it will not be used and a network request will be made.
|
|
48
|
+
* @param {number} cacheAge A non-negative integer
|
|
49
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
50
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
51
|
+
* @return {void}
|
|
52
|
+
*/
|
|
53
|
+
setCacheMaxAge: function (cacheAge, cb, error) {
|
|
54
|
+
exec(cb, error, PLUGIN_NAME, 'setCacheMaxAge', [cacheAge]);
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Set callback and starts listen onLocationChanged event.
|
|
58
|
+
* @param {LocationRequest} request Location Request.
|
|
59
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
60
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
61
|
+
* @return {Location} position Current position of device.
|
|
62
|
+
*/
|
|
63
|
+
startPositioning: function (request, cb, error) {
|
|
64
|
+
let internalCallback = (res) => {
|
|
65
|
+
_internalEventDelegate('onLocationUpdate', res);
|
|
66
|
+
cb(res);
|
|
67
|
+
};
|
|
68
|
+
exec(internalCallback, error, PLUGIN_NAME, 'startPositioning', request);;
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* Stop locationListener on current active listener.
|
|
72
|
+
* @description Stop locationListener on current active listener.
|
|
73
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
74
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
75
|
+
* @return {void}
|
|
76
|
+
*/
|
|
77
|
+
stopPositioning: function (cb, error) {
|
|
78
|
+
exec(cb, error, PLUGIN_NAME, 'stopPositioning', []);
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* Get notified about users entering geofences. Take into account:
|
|
82
|
+
* * This method must be called before the positioning is started.
|
|
83
|
+
* * Positioning geofences (with `trainer_metadata` custom field configured in the dashboard (https://situm.com/docs/special-custom-fields/#activating-the-uncalibrated-indoor-geolocation-mode)) won't be notified.
|
|
84
|
+
* * This callback works only with indoor locations. Any outdoor location will produce a call to onExitGeofences with the last positioned geofences as argument.
|
|
85
|
+
* @description Set the geofence listener to receive updates when you enter or exit one of them.
|
|
86
|
+
* @param {function} cb Cordova native callback to recive data. The data is an array of geofences.
|
|
87
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
88
|
+
* @return {Geofence[]}
|
|
89
|
+
*/
|
|
90
|
+
onEnterGeofences: function (cb, error) {
|
|
91
|
+
exec(cb, error, PLUGIN_NAME, 'onEnterGeofences', []);
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Get notified about exiting geofences. Take into account the considerations described at onEnterGeofences
|
|
95
|
+
* @description Set the geofence listener to receive updates when you enter or exit one of them.
|
|
96
|
+
* @param {function} cb Cordova native callback to recive data. The data is an array of geofences.
|
|
97
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
98
|
+
* @return {Geofence[]}
|
|
99
|
+
*/
|
|
100
|
+
onExitGeofences: function (cb, error) {
|
|
101
|
+
exec(cb, error, PLUGIN_NAME, 'onExitGeofences', []);
|
|
102
|
+
},
|
|
103
|
+
/**
|
|
104
|
+
* Download all the buildings for the current user.
|
|
105
|
+
* @description Download all the buildings for the current user
|
|
106
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
107
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
108
|
+
* @return {Building[]} buildings Array of buildings.
|
|
109
|
+
*/
|
|
110
|
+
fetchBuildings: function (cb, error) {
|
|
111
|
+
exec(cb, error, PLUGIN_NAME, 'fetchBuildings', []);
|
|
112
|
+
},
|
|
113
|
+
/**
|
|
114
|
+
* Download all the floors of a building.
|
|
115
|
+
* @description Download all the floors of a building
|
|
116
|
+
* @param {Building} building The building. Not null.
|
|
117
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
118
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
119
|
+
* @return {Floor[]} floors Array of floors.
|
|
120
|
+
*/
|
|
121
|
+
fetchFloorsFromBuilding: function (building, cb, error) {
|
|
122
|
+
exec(cb, error, PLUGIN_NAME, 'fetchFloorsFromBuilding', [building]);
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* Download the indoor POIs of a building.
|
|
126
|
+
* @description Download the indoor POIs of a building
|
|
127
|
+
* @param {Building} building The building. Not null.
|
|
128
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
129
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
130
|
+
* @return {Poi[]} pois Array of POIs
|
|
131
|
+
*/
|
|
132
|
+
fetchIndoorPOIsFromBuilding: function (building, cb, error) {
|
|
133
|
+
exec(cb, error, PLUGIN_NAME, 'fetchIndoorPOIsFromBuilding', [building]);
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Download the outdoor POIs of a building.
|
|
137
|
+
* @description Download the outdoor POIs of a building
|
|
138
|
+
* @param {Building} building The building. Not null.
|
|
139
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
140
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
141
|
+
* @return {Poi[]} pois Array of POIs
|
|
142
|
+
*/
|
|
143
|
+
fetchOutdoorPOIsFromBuilding: function (building, cb, error) {
|
|
144
|
+
exec(cb, error, PLUGIN_NAME, 'fetchOutdoorPOIsFromBuilding', [building]);
|
|
145
|
+
},
|
|
146
|
+
/**
|
|
147
|
+
* Download the events of a building.
|
|
148
|
+
* @description Download the events of a building
|
|
149
|
+
* @param {Building} building The building. Not null.
|
|
150
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
151
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
152
|
+
* @return {event[]} events The events of a building
|
|
153
|
+
*/
|
|
154
|
+
fetchEventsFromBuilding: function (building, cb, error) {
|
|
155
|
+
exec(cb, error, PLUGIN_NAME, 'fetchEventsFromBuilding', [building]);
|
|
156
|
+
},
|
|
157
|
+
/**
|
|
158
|
+
* Get all POI categories, download and cache their icons asynchronously.
|
|
159
|
+
* @description Get all POI categories, download and cache their icons asynchronously. To get some of those icons from local storage @see {@link fetchPoiCategoryIconNormal(PoiCategory)} or {@link fetchPoiCategoryIconSelected(PoiCategory)}
|
|
160
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
161
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
162
|
+
* @return {PoiCategory[]} poiCategories The poiCategories array
|
|
163
|
+
*/
|
|
164
|
+
fetchPoiCategories: function (cb, error) {
|
|
165
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategories');
|
|
166
|
+
},
|
|
167
|
+
/**
|
|
168
|
+
* Download the map image of a floor
|
|
169
|
+
* @description Download the map image of a floor
|
|
170
|
+
* @param {Floor} floor The floor. Not null.
|
|
171
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
172
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
173
|
+
* @return {bitmap} map The map image
|
|
174
|
+
*/
|
|
175
|
+
fetchMapFromFloor: function (floor, cb, error) {
|
|
176
|
+
exec(cb, error, PLUGIN_NAME, 'fetchMapFromFloor', [floor]);
|
|
177
|
+
},
|
|
178
|
+
/**
|
|
179
|
+
* Get the normal category icon for a category.
|
|
180
|
+
* @description Get the normal category icon for a category
|
|
181
|
+
* @param {PoiCategory} category The category. Not null.
|
|
182
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
183
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
184
|
+
* @return {bitmap} icon The category icon
|
|
185
|
+
*/
|
|
186
|
+
fetchPoiCategoryIconNormal: function (category, cb, error) {
|
|
187
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategoryIconNormal', [category]);
|
|
188
|
+
},
|
|
189
|
+
/**
|
|
190
|
+
* Get the selected category icon for a category.
|
|
191
|
+
* @description Get the selected category icon for a category
|
|
192
|
+
* @param {PoiCategory} category The category. Not null.
|
|
193
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
194
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
195
|
+
* @return {bitmap} icon The category icon
|
|
196
|
+
*/
|
|
197
|
+
fetchPoiCategoryIconSelected: function (category, cb, error) {
|
|
198
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategoryIconSelected', [category]);
|
|
199
|
+
},
|
|
200
|
+
/**
|
|
201
|
+
* Download all the information of a building.
|
|
202
|
+
* @description Download the information of a building (floors, pois, basic information, ...)
|
|
203
|
+
* @param {Building} building The building identifier. Not null.
|
|
204
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
205
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
206
|
+
* @return {BuildingInfo} buildingInfo structure
|
|
207
|
+
*/
|
|
208
|
+
fetchBuildingInfo: function (building, cb, error) {
|
|
209
|
+
exec(cb, error, PLUGIN_NAME, 'fetchBuildingInfo', [building]);
|
|
210
|
+
},
|
|
211
|
+
/**
|
|
212
|
+
* Download all the information of a building.
|
|
213
|
+
* @description Download the indoor POIs of a building
|
|
214
|
+
* @param {Int} buildingIdentifier The building identifier. Not null.
|
|
215
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
216
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
217
|
+
* @return {Building[]} pois Array of POIs
|
|
218
|
+
*/
|
|
219
|
+
fetchGeofencesFromBuilding: function (building, cb, error) {
|
|
220
|
+
exec(cb, error, PLUGIN_NAME, 'fetchGeofencesFromBuilding', [building]);
|
|
221
|
+
},
|
|
222
|
+
/**
|
|
223
|
+
* Invalidate all the resources in the cache.
|
|
224
|
+
* @description Invalidate all the resources in the cache
|
|
225
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
226
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
227
|
+
* @return {void}
|
|
228
|
+
*/
|
|
229
|
+
invalidateCache: function (cb, error) {
|
|
230
|
+
exec(cb, error, PLUGIN_NAME, 'invalidateCache');
|
|
231
|
+
},
|
|
232
|
+
/**
|
|
233
|
+
* Calculates a route between two points.
|
|
234
|
+
* @description Calculates a route between two points.
|
|
235
|
+
* @param {DirectionsRequest} directionsRequest Request - non-null search parameters.
|
|
236
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
237
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
238
|
+
* @return {Route} route The route between provided points
|
|
239
|
+
*/
|
|
240
|
+
requestDirections: function (directionsRequest, cb, error) {
|
|
241
|
+
exec(cb, error, PLUGIN_NAME, 'requestDirections', directionsRequest);
|
|
242
|
+
},
|
|
243
|
+
/**
|
|
244
|
+
* Set the navigation params, and the listener that receives the updated navigation progress.
|
|
245
|
+
* @description Set the navigation params, and the listener that receives the updated navigation progress. Can only exist one navigation with one listener at a time. If this method was previously invoked, but removeUpdates() wasn't, removeUpdates() is called internally.
|
|
246
|
+
* @param {NavigationRequest} navigationRequest Request non-null search parameters.
|
|
247
|
+
* @param {function} cb Cordova native callback to recive data. See {@link NavigationProgress}
|
|
248
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
249
|
+
* @return {void}
|
|
250
|
+
*/
|
|
251
|
+
requestNavigationUpdates: function (navigationRequest, cb, error) {
|
|
252
|
+
exec(cb, error, PLUGIN_NAME, 'requestNavigationUpdates', navigationRequest);
|
|
253
|
+
},
|
|
254
|
+
/**
|
|
255
|
+
* Informs NavigationManager object the change of the user's location.
|
|
256
|
+
* @description Informs NavigationManager object the change of the user's location.
|
|
257
|
+
* @param {Location} location New Location of the user. If null, nothing is done.
|
|
258
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
259
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
260
|
+
* @return {boolean} success True if there is a listener to which notify progress update. False if there isn't, so this method do nothing.
|
|
261
|
+
*/
|
|
262
|
+
updateNavigationWithLocation: function (location, cb, error) {
|
|
263
|
+
exec(cb, error, PLUGIN_NAME, 'updateNavigationWithLocation', [location]);
|
|
264
|
+
},
|
|
265
|
+
/**
|
|
266
|
+
* Removes all location updates.
|
|
267
|
+
* @description Removes all location updates. This removes the internal state of the manager, including the listener provided in requestNavigationUpdates(NavigationRequest, NavigationListener), so it won't receive more progress updates.
|
|
268
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
269
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
270
|
+
* @return {boolean} success True if a listener was removed. False if there was no listener.
|
|
271
|
+
*/
|
|
272
|
+
removeNavigationUpdates: function (cb, error) {
|
|
273
|
+
exec(cb, error, PLUGIN_NAME, 'removeNavigationUpdates', []);
|
|
274
|
+
},
|
|
275
|
+
// Realtime
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Set the realtime params and listener that receives realtime location updates
|
|
279
|
+
* @param {RealTimeRequest} request Request - non-null search parameters.
|
|
280
|
+
* @param {fuction} cb Cordova native callback to recive data.
|
|
281
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
282
|
+
*/
|
|
283
|
+
requestRealTimeUpdates: function (request, cb, error) {
|
|
284
|
+
exec(cb, error, PLUGIN_NAME, 'requestRealTimeUpdates', [request]);
|
|
285
|
+
},
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Stops receiving updates in realtime about user location.
|
|
289
|
+
* @param {function} cb Cordova native callback to recive data.
|
|
290
|
+
* @param {function} error Cordova native callback to recive errors.
|
|
291
|
+
*/
|
|
292
|
+
removeRealTimeUpdates: function(cb, error) {
|
|
293
|
+
exec(cb, error, PLUGIN_NAME, 'removeRealTimeUpdates', []);
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
module.exports = Situm;
|
package/www/ios/situm.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var exec = require('cordova/exec');
|
|
2
|
+
|
|
3
|
+
var PLUGIN_NAME = 'SitumPlugin';
|
|
4
|
+
let _internalEventDelegate = undefined;
|
|
5
|
+
|
|
6
|
+
var Situm = {
|
|
7
|
+
internalSetEventDelegate: function (callback) {
|
|
8
|
+
_internalEventDelegate = callback;
|
|
9
|
+
},
|
|
10
|
+
setApiKey: function (email, apiKey, cb, error) {
|
|
11
|
+
exec(cb, error, PLUGIN_NAME, 'setApiKey', [email, apiKey]);
|
|
12
|
+
},
|
|
13
|
+
setUseRemoteConfig: function (useRemoteConfig, cb, error) {
|
|
14
|
+
exec(cb, error, PLUGIN_NAME, 'setUseRemoteConfig', [useRemoteConfig]);
|
|
15
|
+
},
|
|
16
|
+
setUserPass: function (email, password, cb, error) {
|
|
17
|
+
exec(cb, error, PLUGIN_NAME, 'setUserPass', [email, password]);
|
|
18
|
+
},
|
|
19
|
+
setCacheMaxAge: function (cacheAge, cb, error) {
|
|
20
|
+
exec(cb, error, PLUGIN_NAME, 'setCacheMaxAge', [cacheAge]);
|
|
21
|
+
},
|
|
22
|
+
startPositioning: function (request, cb, error) {
|
|
23
|
+
let internalCallback = (res) => {
|
|
24
|
+
_internalEventDelegate('onLocationUpdate', res);
|
|
25
|
+
cb(res);
|
|
26
|
+
};
|
|
27
|
+
exec(internalCallback, error, PLUGIN_NAME, 'startPositioning', request);
|
|
28
|
+
},
|
|
29
|
+
stopPositioning: function (cb, error) {
|
|
30
|
+
exec(cb, error, PLUGIN_NAME, 'stopPositioning', []);
|
|
31
|
+
},
|
|
32
|
+
onEnterGeofences: function (cb, error) {
|
|
33
|
+
exec(cb, error, PLUGIN_NAME, 'onEnterGeofences', []);
|
|
34
|
+
},
|
|
35
|
+
onExitGeofences: function (cb, error) {
|
|
36
|
+
exec(cb, error, PLUGIN_NAME, 'onExitGeofences', []);
|
|
37
|
+
},
|
|
38
|
+
fetchBuildings: function (cb, error) {
|
|
39
|
+
exec(cb, error, PLUGIN_NAME, 'fetchBuildings', []);
|
|
40
|
+
},
|
|
41
|
+
fetchFloorsFromBuilding: function (building, cb, error) {
|
|
42
|
+
exec(cb, error, PLUGIN_NAME, 'fetchFloorsFromBuilding', [building]);
|
|
43
|
+
},
|
|
44
|
+
fetchIndoorPOIsFromBuilding: function (building, cb, error) {
|
|
45
|
+
exec(cb, error, PLUGIN_NAME, 'fetchIndoorPOIsFromBuilding', [building]);
|
|
46
|
+
},
|
|
47
|
+
fetchOutdoorPOIsFromBuilding: function (building, cb, error) {
|
|
48
|
+
exec(cb, error, PLUGIN_NAME, 'fetchOutdoorPOIsFromBuilding', [building]);
|
|
49
|
+
},
|
|
50
|
+
fetchEventsFromBuilding: function (building, cb, error) {
|
|
51
|
+
exec(cb, error, PLUGIN_NAME, 'fetchEventsFromBuilding', [building]);
|
|
52
|
+
},
|
|
53
|
+
fetchPoiCategories: function (cb, error) {
|
|
54
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategories');
|
|
55
|
+
},
|
|
56
|
+
fetchMapFromFloor: function (floor, cb, error) {
|
|
57
|
+
exec(cb, error, PLUGIN_NAME, 'fetchMapFromFloor', [floor]);
|
|
58
|
+
},
|
|
59
|
+
fetchPoiCategoryIconNormal: function (category, cb, error) {
|
|
60
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategoryIconNormal', [category]);
|
|
61
|
+
},
|
|
62
|
+
fetchPoiCategoryIconSelected: function (category, cb, error) {
|
|
63
|
+
exec(cb, error, PLUGIN_NAME, 'fetchPoiCategoryIconSelected', [category]);
|
|
64
|
+
},
|
|
65
|
+
fetchBuildingInfo: function(building, cb, error) {
|
|
66
|
+
exec(cb, error, PLUGIN_NAME, 'fetchBuildingInfo', [building]);
|
|
67
|
+
},
|
|
68
|
+
fetchGeofencesFromBuilding: function (building, cb, error) {
|
|
69
|
+
exec(cb, error, PLUGIN_NAME, 'fetchGeofencesFromBuilding', [building]);
|
|
70
|
+
},
|
|
71
|
+
invalidateCache: function (cb, error) {
|
|
72
|
+
exec(cb, error, PLUGIN_NAME, 'invalidateCache');
|
|
73
|
+
},
|
|
74
|
+
requestDirections: function (args, cb, error) {
|
|
75
|
+
exec(cb, error, PLUGIN_NAME, 'requestDirections', args);
|
|
76
|
+
},
|
|
77
|
+
requestNavigationUpdates: function (args, cb, error) {
|
|
78
|
+
exec(cb, error, PLUGIN_NAME, 'requestNavigationUpdates', args);
|
|
79
|
+
},
|
|
80
|
+
updateNavigationWithLocation: function (args, cb, error) {
|
|
81
|
+
if (!args) {
|
|
82
|
+
args = []
|
|
83
|
+
} else if (!Array.isArray(args)) {
|
|
84
|
+
args = [args]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
exec(cb, error, PLUGIN_NAME, 'updateNavigationWithLocation', args);
|
|
88
|
+
},
|
|
89
|
+
removeNavigationUpdates: function (cb, error) {
|
|
90
|
+
exec(cb, error, PLUGIN_NAME, 'removeNavigationUpdates', []);
|
|
91
|
+
},
|
|
92
|
+
requestRealTimeUpdates: function (request, cb, error) {
|
|
93
|
+
exec(cb, error, PLUGIN_NAME, 'requestRealTimeUpdates', [request]);
|
|
94
|
+
},
|
|
95
|
+
removeRealTimeUpdates: function(cb, error) {
|
|
96
|
+
exec(cb, error, PLUGIN_NAME, 'removeRealTimeUpdates', []);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
module.exports = Situm;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
const Situm = require("@situm/cordova.situm");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @namespace MapViewControllerImpl
|
|
5
|
+
*/
|
|
6
|
+
class MapViewControllerImpl {
|
|
7
|
+
_onLoadCallback = undefined;
|
|
8
|
+
_buildings = undefined;
|
|
9
|
+
_mapView = undefined;
|
|
10
|
+
_isNavigating = false;
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
Situm.internalSetEventDelegate(this._handleSdkNativeEvents.bind(this));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
_prepare(mapView) {
|
|
17
|
+
this._mapView = mapView;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
_setOnLoadCallback(callback) {
|
|
21
|
+
this._onLoadCallback = callback;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
_sendMessageToViewer(type, payload) {
|
|
25
|
+
let message = {
|
|
26
|
+
type: type,
|
|
27
|
+
payload: payload,
|
|
28
|
+
};
|
|
29
|
+
if (this._mapView && this._mapView.firstElementChild){
|
|
30
|
+
this._mapView.firstElementChild.contentWindow.postMessage(
|
|
31
|
+
message,
|
|
32
|
+
this._mapView._getViewerDomain()
|
|
33
|
+
)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ==================================================
|
|
38
|
+
// SDK MESSAGES:
|
|
39
|
+
// ==================================================
|
|
40
|
+
|
|
41
|
+
_handleSdkNativeEvents(eventName, payload) {
|
|
42
|
+
switch (eventName) {
|
|
43
|
+
case "onLocationUpdate":
|
|
44
|
+
// TODO: iOS is sending messages here not related to Location. Check
|
|
45
|
+
// some fields to avoid assuming that we receive an object of type Location.
|
|
46
|
+
if (payload.buildingIdentifier && payload.position) {
|
|
47
|
+
this._handleOnLocationUpdate(payload);
|
|
48
|
+
} else if (payload.statusName) {
|
|
49
|
+
this._handleOnLocationStatus(payload);
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_handleOnLocationUpdate(payload) {
|
|
56
|
+
this._sendMessageToViewer("location.update", payload);
|
|
57
|
+
if (this._isNavigating) {
|
|
58
|
+
Situm.updateNavigationWithLocation(
|
|
59
|
+
[payload],
|
|
60
|
+
() => {
|
|
61
|
+
// Do nothing.
|
|
62
|
+
},
|
|
63
|
+
() => {
|
|
64
|
+
console.error("Error at updateNavigationWithLocation")
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
_handleOnLocationStatus(payload) {
|
|
71
|
+
this._sendMessageToViewer("location.update_status", {status: payload.statusName});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// ==================================================
|
|
75
|
+
// MAP-VIEWER MESSAGES:
|
|
76
|
+
// ==================================================
|
|
77
|
+
|
|
78
|
+
_handleMapViewMessages(m) {
|
|
79
|
+
switch (m.type) {
|
|
80
|
+
case "app.map_is_ready":
|
|
81
|
+
if (this._onLoadCallback && typeof this._onLoadCallback === 'function') {
|
|
82
|
+
this._onLoadCallback(this);
|
|
83
|
+
console.debug('Map is ready!');
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
86
|
+
case "cartography.poi_selected":
|
|
87
|
+
console.debug(`poi (${m.payload.identifier}) was selected`);
|
|
88
|
+
break;
|
|
89
|
+
case "directions.requested":
|
|
90
|
+
this._onDirectionsRequested(m.payload);
|
|
91
|
+
break;
|
|
92
|
+
case "navigation.requested":
|
|
93
|
+
this._onNavigationRequested(m.payload);
|
|
94
|
+
break;
|
|
95
|
+
case "navigation.stopped":
|
|
96
|
+
this._onNavigationCancel();
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
console.debug("Got unmanaged message: ", m);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Fetch the given building and return it or undefined if not found.
|
|
105
|
+
_ensureBuilding(buildingId, callback) {
|
|
106
|
+
if (this._buildings) {
|
|
107
|
+
let building = this._buildings.find(b => b.buildingIdentifier == buildingId);
|
|
108
|
+
callback(building);
|
|
109
|
+
} else {
|
|
110
|
+
// Fetch buildings and calculate route.
|
|
111
|
+
cordova.plugins.Situm.fetchBuildings(
|
|
112
|
+
(res) => {
|
|
113
|
+
this._buildings = res;
|
|
114
|
+
let building = this._buildings.find(b => b.buildingIdentifier == buildingId);
|
|
115
|
+
callback(building);
|
|
116
|
+
},
|
|
117
|
+
(err) => {
|
|
118
|
+
callback(undefined);
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// DIRECTIONS:
|
|
125
|
+
|
|
126
|
+
_onDirectionsRequested(payload) {
|
|
127
|
+
let directionsRequest = payload.directionsRequest;
|
|
128
|
+
let mapViewerData = {
|
|
129
|
+
identifier: payload.identifier,
|
|
130
|
+
originIdentifier: payload.originIdentifier,
|
|
131
|
+
destinationIdentifier: payload.destinationIdentifier,
|
|
132
|
+
type: directionsRequest.accessibilityMode,
|
|
133
|
+
}
|
|
134
|
+
this._ensureBuilding(payload.buildingIdentifier, (building) => {
|
|
135
|
+
if (building){
|
|
136
|
+
Situm.requestDirections(
|
|
137
|
+
[building, directionsRequest.from, directionsRequest.to, directionsRequest],
|
|
138
|
+
(route) => {
|
|
139
|
+
this._sendMessageToViewer("directions.update", { ...route, ...mapViewerData });
|
|
140
|
+
},
|
|
141
|
+
(error) => {
|
|
142
|
+
this._sendMessageToViewer("directions.update", { error: -1, identifier: mapViewerData.identifier });
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
} else {
|
|
146
|
+
this._sendMessageToViewer("directions.update", { error: -1, identifier: payload.identifier });
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// NAVIGATION
|
|
152
|
+
|
|
153
|
+
_onNavigationRequested(payload) {
|
|
154
|
+
let directionsRequest = payload.directionsRequest;
|
|
155
|
+
let mapViewerData = {
|
|
156
|
+
identifier: payload.identifier,
|
|
157
|
+
originIdentifier: payload.originIdentifier,
|
|
158
|
+
destinationIdentifier: payload.destinationIdentifier,
|
|
159
|
+
type: directionsRequest.accessibilityMode,
|
|
160
|
+
}
|
|
161
|
+
let navigationRequest = payload.navigationRequest;
|
|
162
|
+
this._ensureBuilding(payload.buildingIdentifier, (building) => {
|
|
163
|
+
// Request directions again to update the calculated route on the native side.
|
|
164
|
+
Situm.requestDirections(
|
|
165
|
+
[building, directionsRequest.from, directionsRequest.to, directionsRequest],
|
|
166
|
+
(route) => {
|
|
167
|
+
this._isNavigating = true;
|
|
168
|
+
this._sendMessageToViewer("navigation.start", { ...route, ...mapViewerData });
|
|
169
|
+
Situm.requestNavigationUpdates(
|
|
170
|
+
[navigationRequest],
|
|
171
|
+
(progress) => {
|
|
172
|
+
// Navigation is working, handle different progress types:
|
|
173
|
+
if (progress.type == "progress") {
|
|
174
|
+
progress.type = 'PROGRESS'; // The map-viewer waits for an upper case "type".
|
|
175
|
+
this._sendMessageToViewer("navigation.update", progress);
|
|
176
|
+
} else if (progress.type == "destinationReached") {
|
|
177
|
+
this._sendMessageToViewer("navigation.update", {type: "DESTINATION_REACHED"});
|
|
178
|
+
this._isNavigating = false;
|
|
179
|
+
} else if (progress.type == "userOutsideRoute") {
|
|
180
|
+
this._sendMessageToViewer("navigation.update", {type: "OUT_OF_ROUTE"});
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
(error) => {
|
|
184
|
+
this._sendMessageToViewer("directions.update", { error: -1, identifier: mapViewerData.identifier });
|
|
185
|
+
this._isNavigating = false;
|
|
186
|
+
});
|
|
187
|
+
},
|
|
188
|
+
(error) => {
|
|
189
|
+
this._sendMessageToViewer("directions.update", { error: -1, identifier: mapViewerData.identifier });
|
|
190
|
+
this._isNavigating = false;
|
|
191
|
+
}
|
|
192
|
+
);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
_onNavigationCancel() {
|
|
197
|
+
this._isNavigating = false;
|
|
198
|
+
Situm.removeNavigationUpdates(
|
|
199
|
+
() => {
|
|
200
|
+
// Do nothing.
|
|
201
|
+
},
|
|
202
|
+
() => {
|
|
203
|
+
console.error("Error removing navigation updates.");
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// ==================================================
|
|
209
|
+
// ACTIONS
|
|
210
|
+
// ==================================================
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Select a {@link POI} of a building.
|
|
214
|
+
* @param {number} identifier The unique identifier of the resource.
|
|
215
|
+
* */
|
|
216
|
+
selectPoi(identifier) {
|
|
217
|
+
this._sendMessageToViewer("cartography.select_poi", { identifier: identifier });
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
let MapViewController = new MapViewControllerImpl();
|
|
223
|
+
module.exports = MapViewController;
|