summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2016-03-04 19:51:22 +0900
committerjk7744.park <jk7744.park@samsung.com>2016-03-04 19:51:22 +0900
commit648a8bfa60cb93feb9941fde159f58ab5594b64d (patch)
treed03dc92608e07434124606ccc3dd6ba45984ab11
parent30aa89fe44757936f60148344791cecbc8e745f4 (diff)
downloadmaps-plugin-here-648a8bfa60cb93feb9941fde159f58ab5594b64d.tar.gz
maps-plugin-here-648a8bfa60cb93feb9941fde159f58ab5594b64d.tar.bz2
maps-plugin-here-648a8bfa60cb93feb9941fde159f58ab5594b64d.zip
-rwxr-xr-xCMakeLists.txt6
-rw-r--r--heremaps-uc/AUTHORS2
-rw-r--r--heremaps-uc/CMakeLists.txt47
-rw-r--r--heremaps-uc/org.tizen.heremaps-uc.manifest8
-rw-r--r--heremaps-uc/org.tizen.heremaps-uc.xml20
-rw-r--r--heremaps-uc/resources/po/CMakeLists.txt24
-rw-r--r--heremaps-uc/resources/po/ar.po9
-rw-r--r--heremaps-uc/resources/po/az.po11
-rw-r--r--heremaps-uc/resources/po/bg.po11
-rw-r--r--heremaps-uc/resources/po/ca.po11
-rw-r--r--heremaps-uc/resources/po/cs.po11
-rw-r--r--heremaps-uc/resources/po/da.po11
-rw-r--r--heremaps-uc/resources/po/de.po11
-rw-r--r--heremaps-uc/resources/po/el.po11
-rw-r--r--heremaps-uc/resources/po/el_GR.po11
-rw-r--r--heremaps-uc/resources/po/en.po11
-rw-r--r--heremaps-uc/resources/po/en_GB.po11
-rw-r--r--heremaps-uc/resources/po/en_PH.po11
-rw-r--r--heremaps-uc/resources/po/en_US.po11
-rw-r--r--heremaps-uc/resources/po/es.po11
-rw-r--r--heremaps-uc/resources/po/es_MX.po11
-rw-r--r--heremaps-uc/resources/po/es_US.po11
-rw-r--r--heremaps-uc/resources/po/et.po11
-rw-r--r--heremaps-uc/resources/po/eu.po11
-rw-r--r--heremaps-uc/resources/po/fi.po11
-rw-r--r--heremaps-uc/resources/po/fr.po11
-rw-r--r--heremaps-uc/resources/po/fr_CA.po11
-rw-r--r--heremaps-uc/resources/po/ga.po11
-rw-r--r--heremaps-uc/resources/po/gl.po11
-rw-r--r--heremaps-uc/resources/po/hi.po11
-rw-r--r--heremaps-uc/resources/po/hr.po11
-rw-r--r--heremaps-uc/resources/po/hu.po11
-rw-r--r--heremaps-uc/resources/po/hy.po11
-rw-r--r--heremaps-uc/resources/po/is.po11
-rw-r--r--heremaps-uc/resources/po/it.po11
-rw-r--r--heremaps-uc/resources/po/it_IT.po11
-rw-r--r--heremaps-uc/resources/po/ja.po11
-rw-r--r--heremaps-uc/resources/po/ja_JP.po11
-rw-r--r--heremaps-uc/resources/po/ka.po11
-rw-r--r--heremaps-uc/resources/po/kk.po11
-rw-r--r--heremaps-uc/resources/po/ko.po11
-rw-r--r--heremaps-uc/resources/po/ko_KR.po11
-rw-r--r--heremaps-uc/resources/po/lt.po11
-rw-r--r--heremaps-uc/resources/po/lv.po11
-rw-r--r--heremaps-uc/resources/po/mk.po11
-rw-r--r--heremaps-uc/resources/po/nb.po11
-rw-r--r--heremaps-uc/resources/po/nl.po11
-rw-r--r--heremaps-uc/resources/po/pl.po11
-rw-r--r--heremaps-uc/resources/po/pt.po11
-rw-r--r--heremaps-uc/resources/po/pt_BR.po11
-rw-r--r--heremaps-uc/resources/po/pt_PT.po11
-rw-r--r--heremaps-uc/resources/po/ro.po11
-rw-r--r--heremaps-uc/resources/po/ru.po11
-rw-r--r--heremaps-uc/resources/po/ru_RU.po11
-rw-r--r--heremaps-uc/resources/po/sk.po11
-rw-r--r--heremaps-uc/resources/po/sl.po11
-rw-r--r--heremaps-uc/resources/po/sr.po11
-rw-r--r--heremaps-uc/resources/po/sv.po11
-rw-r--r--heremaps-uc/resources/po/tr.po11
-rw-r--r--heremaps-uc/resources/po/tr_TR.po11
-rw-r--r--heremaps-uc/resources/po/uk.po11
-rw-r--r--heremaps-uc/resources/po/uz.po11
-rw-r--r--heremaps-uc/resources/po/zh_CN.po11
-rw-r--r--heremaps-uc/resources/po/zh_HK.po11
-rw-r--r--heremaps-uc/resources/po/zh_SG.po11
-rw-r--r--heremaps-uc/resources/po/zh_TW.po11
-rw-r--r--heremaps-uc/src/CMakeLists.txt45
-rw-r--r--heremaps-uc/src/heremaps-uc-common.h146
-rw-r--r--heremaps-uc/src/heremaps-uc.c341
-rw-r--r--maps-plugin-here.changes10
-rwxr-xr-xpackaging/maps-plugin-here.spec29
-rwxr-xr-xsrc/here/here_api.cpp8
-rw-r--r--src/here/here_base.cpp77
-rw-r--r--src/here/here_base.h2
-rwxr-xr-xsrc/here/here_geocode.cpp11
-rwxr-xr-xsrc/here/here_geocode.h1
-rwxr-xr-xsrc/here/here_manager.cpp111
-rwxr-xr-xsrc/here/here_manager.h5
-rwxr-xr-xsrc/here/here_place.cpp198
-rwxr-xr-xsrc/here/here_place.h8
-rwxr-xr-xsrc/here/here_revgeocode.cpp11
-rwxr-xr-xsrc/here/here_revgeocode.h1
-rwxr-xr-xsrc/here/here_route.cpp10
-rwxr-xr-xsrc/here/here_route.h1
-rwxr-xr-xsrc/here/here_utils.cpp84
-rwxr-xr-xsrc/here/here_utils.h3
86 files changed, 1766 insertions, 101 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c065a38..de8647f 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ SET(CMAKE_INSTALL_PREFIX /usr)
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
# Dependencies
-SET(dependents "glib-2.0 gmodule-2.0 dlog capi-network-connection capi-appfw-app-manager capi-maps-service heremaps-engine")
+SET(dependents "glib-2.0 gmodule-2.0 libxml-2.0 dlog capi-network-connection capi-appfw-app-manager capi-maps-service heremaps-engine capi-appfw-application")
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED ${dependents})
@@ -23,11 +23,13 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -fPIC -Wall -Werror")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIC -std=c++0x -fvisibility=hidden")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
ADD_DEFINITIONS("-DEXPORT_API=__attribute__((visibility(\"default\")))")
ADD_DEFINITIONS("-DTIZEN_DEBUG")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}")
# Main Include file
SET(INC_DIR
@@ -73,3 +75,5 @@ INSTALL(TARGETS ${pkg_name} DESTINATION ${LIBDIR}/maps/plugins)
# Test Suite
#IF("${BINTYPE}" STREQUAL "eng")
#ENDIF("${BINTYPE}" STREQUAL "eng")
+
+ADD_SUBDIRECTORY(heremaps-uc)
diff --git a/heremaps-uc/AUTHORS b/heremaps-uc/AUTHORS
new file mode 100644
index 0000000..65876f6
--- /dev/null
+++ b/heremaps-uc/AUTHORS
@@ -0,0 +1,2 @@
+Jongmun Woo <jongmun.woo@samsung.com>
+Young-Ae Kang <youngae.kang@samsung.com>
diff --git a/heremaps-uc/CMakeLists.txt b/heremaps-uc/CMakeLists.txt
new file mode 100644
index 0000000..72e7e17
--- /dev/null
+++ b/heremaps-uc/CMakeLists.txt
@@ -0,0 +1,47 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(heremaps-uc C)
+SET(PKG_NAME org.tizen.heremaps-uc)
+
+# Version control
+SET(VERSION_MAJOR 0)
+SET(VERSION "${VERSION_MAJOR}.0.1")
+
+# Architecture
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+ ADD_DEFINITIONS("-D_SOUND_EQ_ARCH_ARM_")
+ENDIF()
+
+SET(COMMON_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
+
+SET(HERE_PREFIX /usr/apps/org.tizen.heremaps-uc)
+SET(BINDIR "${HERE_PREFIX}/bin")
+SET(LIBDIR "${HERE_PREFIX}/lib")
+SET(RESDIR "${HERE_PREFIX}/res")
+SET(LOCALE_DIR "${RESDIR}/locale")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+INCLUDE(FindPkgConfig)
+
+# Check external libraries
+INCLUDE(FindPkgConfig)
+pkg_check_modules(HEREMAPS_UC_EXT_LIBS "REQUIRED" glib-2.0 gthread-2.0 efl-extension capi-appfw-application capi-system-info evas elementary dlog vconf appcore-efl ecore)
+
+SET(EXTRA_CFLAGS "")
+FOREACH(flag ${${HEREMAPS_UC_EXT_LIBS}_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${COMMON_C_FLAGS} ${EXTRA_CFLAGS}")
+
+ADD_DEFINITIONS("-DHEREMAPS_UC_PKG=\"${PKG_NAME}\"")
+ADD_DEFINITIONS("-DRES_DIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALE_DIR=\"${LOCALE_DIR}\"")
+
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(resources/po)
diff --git a/heremaps-uc/org.tizen.heremaps-uc.manifest b/heremaps-uc/org.tizen.heremaps-uc.manifest
new file mode 100644
index 0000000..a43bca5
--- /dev/null
+++ b/heremaps-uc/org.tizen.heremaps-uc.manifest
@@ -0,0 +1,8 @@
+<manifest>
+ <define>
+ <domain name="org.tizen.heremaps-uc" />
+ </define>
+ <request>
+ <domain name="org.tizen.heremaps-uc" />
+ </request>
+</manifest>
diff --git a/heremaps-uc/org.tizen.heremaps-uc.xml b/heremaps-uc/org.tizen.heremaps-uc.xml
new file mode 100644
index 0000000..5730619
--- /dev/null
+++ b/heremaps-uc/org.tizen.heremaps-uc.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.heremaps-uc" version="1.0.0" install-location="internal-only">
+ <label>HereMaps UC</label>
+ <author email="youngae.kang@samsung.com" href="www.samsung.com">Youngae kang</author>
+ <author email="jongmun.woo@samsung.com" href="www.samsung.com">JongMun Woo</author>
+ <description>HereMaps User Consent application</description>
+ <privileges>
+ <privilege>http://tizen.org/privilege/application.launch</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+ <privilege>http://tizen.org/privilege/haptic</privilege>
+ <privilege>http://tizen.org/privilege/mapservice</privilege>
+ </privileges>
+ <ui-application appid="org.tizen.heremaps-uc" exec="/usr/apps/org.tizen.heremaps-uc/bin/heremaps-uc" launch_mode="caller" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+ <label>HereMaps UC</label>
+ <application-service>
+ <operation name="http://tizen.org/appcontrol/operation/configure/heremaps_uc"/>
+ </application-service>
+ </ui-application>
+</manifest>
diff --git a/heremaps-uc/resources/po/CMakeLists.txt b/heremaps-uc/resources/po/CMakeLists.txt
new file mode 100644
index 0000000..e89e87c
--- /dev/null
+++ b/heremaps-uc/resources/po/CMakeLists.txt
@@ -0,0 +1,24 @@
+# for i18n
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el.po en_GB.po en_PH.po en_US.po es.po es_MX.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it.po ja.po ka.po kk.po ko.po lt.po lv.po mk.po nl.po nb.po pl.po pt.po pt_BR.po ro.po ru.po sk.po sl.po sr.po sv.po tr.po uk.po uz.po zh_CN.po zh_HK.po zh_SG.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile}
+ DESTINATION ${HERE_PREFIX}/res/locale/${lang}/LC_MESSAGES RENAME ${PKG_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
+
diff --git a/heremaps-uc/resources/po/ar.po b/heremaps-uc/resources/po/ar.po
new file mode 100644
index 0000000..e1edbd7
--- /dev/null
+++ b/heremaps-uc/resources/po/ar.po
@@ -0,0 +1,9 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "موافق"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "غير موافق"
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "يستخدم جهازك تقنيات إعداد الخرائط المقدمة من HERE. يجمع HERE معلومات حول تفاعلاتك مع النظام الأساسي لدينا مثل الاستفسارات ذات الصلة الخاصة بك وعمليات البحث التي أجريتها بالقرب من موقعك. تتم معالجة هذه المعلومات وفقا لنهج الخصوصية الخاص بنا ولا يتم استخدامها للتعرف عليك شخصيًا. بالمتابعة، أنت توافق على بنود خدمة النظام الأساسي لتطبيق HERE:(here.com/terms) ونهج الخصوصية: (here.com/privacy)."
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "مرحبًا"
diff --git a/heremaps-uc/resources/po/az.po b/heremaps-uc/resources/po/az.po
new file mode 100644
index 0000000..d0e2fa4
--- /dev/null
+++ b/heremaps-uc/resources/po/az.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Razıyam"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Müvafiq deyil"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Cihazınız HERE tərəfindən təmin olunan xəritə texnologiyalarından istifadə edir. HERE aidiyyəti olan sorğularınız və məkanınıza yaxın etdiyiniz sorğularınız kimi platforma ilə əməliyyatlarınız haqda məlumatı toplayır. Bu məlumat bizim məxfilik siyasətimizə uyğun olaraq emal olunur və şəxsiyyətinizi müəyyən etmək üçün istifadə edilmir. Davam etməklə siz HERE platformasının Xidmət şərtləri: (here.com/terms) və Məxfilik siyasəti ilə razılaşırsınız: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Xoş gəlmisiniz"
diff --git a/heremaps-uc/resources/po/bg.po b/heremaps-uc/resources/po/bg.po
new file mode 100644
index 0000000..2f0467c
--- /dev/null
+++ b/heremaps-uc/resources/po/bg.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Съгласен"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Несъгласен"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Устройството ви използва картографски технологии, предоставени от HERE. HERE събира информация за взаимодействието ви с платформата ни, като например свързаните заявки и търсения, извършени близо до местоположението ви. Информацията се обработва в съответствие с политиката ни за защита на личните данни и не се използва за персонална идентификация. Ако продължите, вие приемате Условията на услугата на платформата HERE: (here.com/terms) и Правилата за защита на личните данни: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Добре дошъл"
diff --git a/heremaps-uc/resources/po/ca.po b/heremaps-uc/resources/po/ca.po
new file mode 100644
index 0000000..07ebffa
--- /dev/null
+++ b/heremaps-uc/resources/po/ca.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Aceptar"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "No acceptar"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "El teu dispositiu fa servir tecnologies de mapes facilitades per HERE. HERE recopila informaci sobre les teves interaccions amb la nostra plataforma, com ara les consultes i cerques relacionades realitzades a prop de la teva ubicaci. Aquesta informaci es processa d'acord amb la nostra poltica de privadesa i no s'utilitza per identificar-te de forma personal. En continuar, acceptes les Condicions del servei de la plataforma HERE: (here.com/terms) i la Poltica de privadesa: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Benvingut"
diff --git a/heremaps-uc/resources/po/cs.po b/heremaps-uc/resources/po/cs.po
new file mode 100644
index 0000000..1174d31
--- /dev/null
+++ b/heremaps-uc/resources/po/cs.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Souhlasím"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Nesouhlasím"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Vaše zařízení používá technologie map platformy HERE. HERE sbírá informace o tom, jak platformu využíváte, například vaše dotazy a hledání prováděná v blízkosti vaší polohy. Tyto informace jsou zpracovávány v souladu s našimi zásadami ochrany soukromí a neslouží k vaší osobní identifikaci. Pokračováním vyjadřujete souhlas s Podmínkami poskytování služeb platformy HERE: (here.com/terms) a s Pravidly ochrany soukromí: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Vítejte"
diff --git a/heremaps-uc/resources/po/da.po b/heremaps-uc/resources/po/da.po
new file mode 100644
index 0000000..fdda9e8
--- /dev/null
+++ b/heremaps-uc/resources/po/da.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Acceptér"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Uenig"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Din enhed bruger kortlægningsteknologier fra HERE. HERE indsamler oplysninger om dine interaktioner med vores platform, f.eks. dine relaterede forespørgsler og søgninger, der udføres tæt på din placering. Disse oplysninger behandles i overensstemmelse med vores politik for beskyttelse af personlige oplysninger og bruges ikke til at identificere dig personligt. Ved at fortsætte erklærer du, at du er enig i vilkårene for HERE-platformen: (here.com/terms) samt Politik til beskyttelse af personlige oplysninger: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Velkommen"
diff --git a/heremaps-uc/resources/po/de.po b/heremaps-uc/resources/po/de.po
new file mode 100644
index 0000000..b63489c
--- /dev/null
+++ b/heremaps-uc/resources/po/de.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Zustimmen"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ablehnen"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Ihr Gert verwendet von HERE bereitgestellte Kartentechnologien. HERE erfasst Informationen zu Ihren Interaktionen mit unserer Plattform, beispielsweise Ihre entsprechenden Abfragen und Suchen in der Nhe Ihres Standorts. Diese Informationen werden gem unseren Datenschutzregelungen verarbeitet und nicht dazu verwendet, Sie persnlich zu identifizieren. Wenn Sie fortfahren, besttigen Sie Ihre Zustimmung zu den HERE Plattform-Nutzungsbeding-ungen: (here.com/terms) und Datenschutzricht-linien: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Willkommen!"
diff --git a/heremaps-uc/resources/po/el.po b/heremaps-uc/resources/po/el.po
new file mode 100644
index 0000000..af85f12
--- /dev/null
+++ b/heremaps-uc/resources/po/el.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Αποδοχή"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Δεν συμφωνώ"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Η συσκευή σας χρησιμοποιεί τεχνολογίες χαρτογράφησης που παρέχονται από τη HERE. Η HERE συλλέγει πληροφορίες σχετικά με την αλληλεπίδρασή σας με την πλατφόρμα μας, όπως είναι τα πρόσφατα ερωτήματα και αναζητήσεις που έχετε πραγματοποιήσει κοντά στην τοποθεσία σας. Η επεξεργασία αυτών των πληροφοριών γίνεται με βάση την πολιτική απορρήτου και δεν χρησιμοποιούνται για την ταυτοποίησή σας. Αν συνεχίσετε, αποδέχεστε τους Όρους παροχής υπηρεσιών της πλατφόρμας HERE: (here.com/terms) και την Πολιτική απορρήτου: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Καλώς ορίσατε"
diff --git a/heremaps-uc/resources/po/el_GR.po b/heremaps-uc/resources/po/el_GR.po
new file mode 100644
index 0000000..af85f12
--- /dev/null
+++ b/heremaps-uc/resources/po/el_GR.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Αποδοχή"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Δεν συμφωνώ"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Η συσκευή σας χρησιμοποιεί τεχνολογίες χαρτογράφησης που παρέχονται από τη HERE. Η HERE συλλέγει πληροφορίες σχετικά με την αλληλεπίδρασή σας με την πλατφόρμα μας, όπως είναι τα πρόσφατα ερωτήματα και αναζητήσεις που έχετε πραγματοποιήσει κοντά στην τοποθεσία σας. Η επεξεργασία αυτών των πληροφοριών γίνεται με βάση την πολιτική απορρήτου και δεν χρησιμοποιούνται για την ταυτοποίησή σας. Αν συνεχίσετε, αποδέχεστε τους Όρους παροχής υπηρεσιών της πλατφόρμας HERE: (here.com/terms) και την Πολιτική απορρήτου: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Καλώς ορίσατε"
diff --git a/heremaps-uc/resources/po/en.po b/heremaps-uc/resources/po/en.po
new file mode 100644
index 0000000..819ce46
--- /dev/null
+++ b/heremaps-uc/resources/po/en.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Your device uses mapping technologies provided by HERE. HERE collects info about your interactions with our platform such as your related queries and searches performed near your location. This information is processed in accordance with our privacy policy and is not used to identify you personally. By continuing, you agree to the HERE platform Service Terms: (here.com/terms) and Privacy Policy: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welcome"
diff --git a/heremaps-uc/resources/po/en_GB.po b/heremaps-uc/resources/po/en_GB.po
new file mode 100644
index 0000000..819ce46
--- /dev/null
+++ b/heremaps-uc/resources/po/en_GB.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Your device uses mapping technologies provided by HERE. HERE collects info about your interactions with our platform such as your related queries and searches performed near your location. This information is processed in accordance with our privacy policy and is not used to identify you personally. By continuing, you agree to the HERE platform Service Terms: (here.com/terms) and Privacy Policy: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welcome"
diff --git a/heremaps-uc/resources/po/en_PH.po b/heremaps-uc/resources/po/en_PH.po
new file mode 100644
index 0000000..819ce46
--- /dev/null
+++ b/heremaps-uc/resources/po/en_PH.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Your device uses mapping technologies provided by HERE. HERE collects info about your interactions with our platform such as your related queries and searches performed near your location. This information is processed in accordance with our privacy policy and is not used to identify you personally. By continuing, you agree to the HERE platform Service Terms: (here.com/terms) and Privacy Policy: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welcome"
diff --git a/heremaps-uc/resources/po/en_US.po b/heremaps-uc/resources/po/en_US.po
new file mode 100644
index 0000000..819ce46
--- /dev/null
+++ b/heremaps-uc/resources/po/en_US.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Your device uses mapping technologies provided by HERE. HERE collects info about your interactions with our platform such as your related queries and searches performed near your location. This information is processed in accordance with our privacy policy and is not used to identify you personally. By continuing, you agree to the HERE platform Service Terms: (here.com/terms) and Privacy Policy: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welcome"
diff --git a/heremaps-uc/resources/po/es.po b/heremaps-uc/resources/po/es.po
new file mode 100644
index 0000000..258c181
--- /dev/null
+++ b/heremaps-uc/resources/po/es.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "No acepto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "La tecnologia cartografica que usa su dispositivo la suministra HERE. HERE recopila informacion sobre sus interacciones con nuestra plataforma como las consultas y busquedas realizadas cerca de su ubicacion. Esta informacion se procesa de acuerdo con nuestra politica de privacidad y no se utiliza para identificarle personalmente. Al continuar, aceptas las Condiciones de servicio de la plataforma HERE: (here.com/terms) y la Politica de privacidad: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bienvenido"
diff --git a/heremaps-uc/resources/po/es_MX.po b/heremaps-uc/resources/po/es_MX.po
new file mode 100644
index 0000000..8ee8247
--- /dev/null
+++ b/heremaps-uc/resources/po/es_MX.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "No acepto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Tu dispositivo usa tecnologias de mapas proporcionadas por HERE. HERE recopila informacion acerca de tus interacciones con nuestra plataforma, como por ejemplo, tus consultas relacionadas y las busquedas realizadas cerca de tu ubicacion. Esta informacion se procesa de acuerdo con nuestra Politica de Privacidad y no se utiliza para identificarte personalmente. Si continuas, aceptas las Condiciones del servicio de la plataforma HERE: (here.com/terms) y la Politica de privacidad: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bienvenido"
diff --git a/heremaps-uc/resources/po/es_US.po b/heremaps-uc/resources/po/es_US.po
new file mode 100644
index 0000000..8ee8247
--- /dev/null
+++ b/heremaps-uc/resources/po/es_US.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "No acepto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Tu dispositivo usa tecnologias de mapas proporcionadas por HERE. HERE recopila informacion acerca de tus interacciones con nuestra plataforma, como por ejemplo, tus consultas relacionadas y las busquedas realizadas cerca de tu ubicacion. Esta informacion se procesa de acuerdo con nuestra Politica de Privacidad y no se utiliza para identificarte personalmente. Si continuas, aceptas las Condiciones del servicio de la plataforma HERE: (here.com/terms) y la Politica de privacidad: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bienvenido"
diff --git a/heremaps-uc/resources/po/et.po b/heremaps-uc/resources/po/et.po
new file mode 100644
index 0000000..da1bddf
--- /dev/null
+++ b/heremaps-uc/resources/po/et.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Nõustu"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ei nõustu"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Teie seade kasutab ettevõtte HERE kaarditehnoloogiaid. HERE kogub teavet selle kohta, kuidas te meie tarkvaraplatvormi kasutate, sh teie asukohas sooritatud seonduvad päringud ja otsingud. Seda teavet töödeldakse meie privaatsuspoliitika alusel ega kasutata teie isiku tuvastamiseks. Jätkamine tähendab, et nõustute rakenduse HERE platvormi kasutustingimuste: (here.com/terms) ja privaatsusavaldusega: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Tere tulemast"
diff --git a/heremaps-uc/resources/po/eu.po b/heremaps-uc/resources/po/eu.po
new file mode 100644
index 0000000..dbb03b8
--- /dev/null
+++ b/heremaps-uc/resources/po/eu.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Ados"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ez nago ados"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Zure gailuak HERE-k hornitutako mapa-teknologia erabiltzen du. HERE-k gure plataformekin dituzun interakzioei buruzko informazioa biltzen du, hala nola zure kokalekuarekin lotutako kontsultak edo kokaleku horretan egindako bilaketak. Informazio hori gure pribatutasun-gidalerroei jarraiki prozesatuko dira eta ez da zu pertsonalki identifikatzeko erabiliko. Jarraituz gero, HERE plataformaren Zerbitzu-baldintzak (here.com/terms) eta Pribatutasun-gidalerroak (here.com/privacy) onartzen dituzu."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Ongi etorri"
diff --git a/heremaps-uc/resources/po/fi.po b/heremaps-uc/resources/po/fi.po
new file mode 100644
index 0000000..e2d0569
--- /dev/null
+++ b/heremaps-uc/resources/po/fi.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Hyväksyn"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Eri mieltä"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Laitteesi käyttää karttateknologioita, joiden toimittaja on HERE. HERE kerää tietoja järjestelmissämme tekemistäsi toimista, kuten kyselyistäsi ja sijaintisi lähellä tehdyistä hauista. Näin kerättyjä tietoja käsitellään tietosuojakäytäntömme mukaisesti, eikä niitä käytetä sinun tunnistamiseesi. Jatkamalla hyväksyt HERE-käyttöympäristön palveluehdot: (here.com/terms) ja tietosuojakäytännön: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Tervetuloa"
diff --git a/heremaps-uc/resources/po/fr.po b/heremaps-uc/resources/po/fr.po
new file mode 100644
index 0000000..a240682
--- /dev/null
+++ b/heremaps-uc/resources/po/fr.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Accepter"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Refuser"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Votre appareil utilise les technologies de cartographie fournies par HERE. HERE collecte des informations concernant vos interactions avec notre plate-forme, telles que vos recherches relatives a votre position. Ces informations sont traitees conformement a notre politique de confidentialite et ne permettent pas de vous identifier personnellement. En continuant, vous acceptez les Conditions de service de la plate-forme HERE : (here.com/terms) et la Politique de confidentialite : (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bienvenue"
diff --git a/heremaps-uc/resources/po/fr_CA.po b/heremaps-uc/resources/po/fr_CA.po
new file mode 100644
index 0000000..d01080e
--- /dev/null
+++ b/heremaps-uc/resources/po/fr_CA.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Accepter"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Refuser"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Votre appareil utilise la technologie de cartographie fournie par HERE. HERE recueille des donnees sur vos interactions avec notre plateforme, telles que vos demandes et recherches a proximite de votre emplacement. Ces donnees sont traitees selon notre politique de confidentialite et ne sont pas utilisees pour vous identifier personnellement. En continuant, vous acceptez les Modalites de service de la plateforme HERE : (here.com/terms) ainsi que la Politique de confidentialite : (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bienvenue"
diff --git a/heremaps-uc/resources/po/ga.po b/heremaps-uc/resources/po/ga.po
new file mode 100644
index 0000000..1972bfe
--- /dev/null
+++ b/heremaps-uc/resources/po/ga.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Aontaim"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ní aontaím"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Úsáidtear teicneolaíochtaí léarscáilíochta arna gcur ar fáil ag HERE ar do ghléas. Bailíonn HERE faisnéis faoi do chuid idirghníomhaíochtaí lenár n-ardán, amhail d’iarratais ghaolmhara agus na cuardaigh a dhéantar gar do do shuíomh. Déantar an fhaisnéis seo a phróiseáil de réir ár mbeartais príobháideachais agus ní úsáidtear chun tú a aithint go pearsanta í. Má leannan tú ar aghaidh, tá tú ag aontú le Téarmaí Seirbhísí: (here.com/terms) agus le Beartas Príobháideachais: (here.com/privacy) ardán HERE."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Fáilte"
diff --git a/heremaps-uc/resources/po/gl.po b/heremaps-uc/resources/po/gl.po
new file mode 100644
index 0000000..189bc3e
--- /dev/null
+++ b/heremaps-uc/resources/po/gl.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Acepto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Non acepto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "O dispositivo utiliza tecnoloxia de mapas proporcionada por HERE. HERE recolle informacion sobre a interaccion coa nosa plataforma, como consultas e buscas relacionadas na proximidade da tua situacion. Esta informacion procesase de acordo coa nosa politica de privacidade e non se utiliza para te identificar persoalmente. Ao continuar, aceptas os Termos do Servizo da plataforma HERE: (here.com/terms) e a Politica de Privacidade: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Benvido"
diff --git a/heremaps-uc/resources/po/hi.po b/heremaps-uc/resources/po/hi.po
new file mode 100644
index 0000000..8528b6a
--- /dev/null
+++ b/heremaps-uc/resources/po/hi.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "सहमत"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "असहमत"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "आपका उपकरण HERE द्वारा उपलब्ध कराई मैपिंग प्रौद्योगिकियों का उपयोग करता है।. HERE हमारे प्लेटफार्म के साथ आपके संपर्क के बारे में जानकारी एकत्र करता है, जैसे आपकी सम्बंधित पूछताछ तथा आपके स्थान के निकट की गयी खोजें। यह जानकारी हमारी गोपनीयता नीति के अनुसार संसाधित की गयी है और इसका उपयोग व्यक्तिगत रूप से आपकी पहचान करने के लिए नहीं किया जाता है।. जारी रखकर, आप HERE प्लेटफ़ॉर्म की सेवा शर्तों से सहमत हैं: (here.com/terms) और गोपनीयता नीति: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "स्वागत"
diff --git a/heremaps-uc/resources/po/hr.po b/heremaps-uc/resources/po/hr.po
new file mode 100644
index 0000000..a284fd8
--- /dev/null
+++ b/heremaps-uc/resources/po/hr.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Prihvaćam"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ne prihvaćam"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Uređaj koristi tehnologije karata koje je omogućio HERE. HERE prikuplja podatke o vašoj interakciji s našom platformom, kao što su povezani upiti i pretraživanja pokrenuta u blizini vaše lokacije. Ti se podaci obrađuju u skladu s našim pravilima o zaštiti podataka i ne koriste se za utvrđivanje vašeg identiteta. Ako nastavite, prihvaćate uvjete korištenja usluge za platformu HERE: (here.com/terms) i pravila zaštite privatnosti: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Dobro došli"
diff --git a/heremaps-uc/resources/po/hu.po b/heremaps-uc/resources/po/hu.po
new file mode 100644
index 0000000..8ceb359
--- /dev/null
+++ b/heremaps-uc/resources/po/hu.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Elfogad"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Elutasít"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Az eszköze a HERE térképtechnológiáit használja. A HERE összegyűjti a platformunkkal végzett műveleteit, például a helyzetéhez közel végrehajtott, kapcsolódó lekérdezéseket és kereséseket. Ezek az információk az adatvédelmi irányelveinknek megfelelően vannak feldolgozva, és nincsenek felhasználva az Ön személy szerinti azonosítására. A folytatáshoz el kell fogadnia a HERE platform szolgáltatási feltételeit: (here.com/terms) és adatvédelmi irányelvét: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Üdvözöljük!"
diff --git a/heremaps-uc/resources/po/hy.po b/heremaps-uc/resources/po/hy.po
new file mode 100644
index 0000000..ddeb84d
--- /dev/null
+++ b/heremaps-uc/resources/po/hy.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Հմձայն եմ"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Առարկել"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Ձեր սարքն օգտագործում է HERE-ի կողմից տրամադրված քարտեզագրական տեխնոլոգիաներ: HERE-ը տեղեկություններ է հավաքում մեր ծրագրահենքով իրականացրած գործունեության մասին, ինչպիսիք են ձեր գտնվելու տեղի մոտակայքում կատարած համապատասխան հարցումներն ու որոնումները: Այդ տեղեկությունները մշակվում են մեր գաղտնիության քաղաքականության համաձայն և չեն օգտագործվում ձեր անձի ինքնությունը բացահայտելու համար: Շարունակելով՝ Դուք ընդունում եք HERE ծրագրահենքի Ծառայության պայմանները՝ (here.com/terms), և Գաղտնիության քաղաքականությունը՝ (here.com/privacy):"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Բարի գալուստ"
diff --git a/heremaps-uc/resources/po/is.po b/heremaps-uc/resources/po/is.po
new file mode 100644
index 0000000..f9af862
--- /dev/null
+++ b/heremaps-uc/resources/po/is.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Samþykkt"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Hafna"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Tækið þitt notar kortatækni frá HERE. HERE safnar upplýsingum um notkun þína á verkvangi okkar, eins og tengdar fyrirspurnir og leitir nærri þinni staðsetningu. Unnið er með þessar upplýsingar í samræmi við persónuverndarstefnu okkar og þær eru ekki notaðar til að bera kennsl á þig. Með því að halda áfram samþykkirðu þjónustuskilmála HERE: (here.com/terms) og persónuverndarstefnu: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Velkomin(n)"
diff --git a/heremaps-uc/resources/po/it.po b/heremaps-uc/resources/po/it.po
new file mode 100644
index 0000000..60a1acf
--- /dev/null
+++ b/heremaps-uc/resources/po/it.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Accetto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Rifiuto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Il tuo dispositivo utilizza tecnologie di mappe fornite da HERE. HERE raccoglie informazioni sulla modalita con cui interagisci con la nostra piattaforma, come le query e le ricerche eseguite vicino alla tua posizione. Queste informazioni vengono elaborate in conformita con la nostra informativa sulla privacy e non vengono utilizzate per identificarti personalmente. Continuando, accetti le Condizioni di servizio della piattaforma HERE: (here.com/terms) e l'Informativa sulla privacy: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Benvenuto"
diff --git a/heremaps-uc/resources/po/it_IT.po b/heremaps-uc/resources/po/it_IT.po
new file mode 100644
index 0000000..60a1acf
--- /dev/null
+++ b/heremaps-uc/resources/po/it_IT.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Accetto"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Rifiuto"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Il tuo dispositivo utilizza tecnologie di mappe fornite da HERE. HERE raccoglie informazioni sulla modalita con cui interagisci con la nostra piattaforma, come le query e le ricerche eseguite vicino alla tua posizione. Queste informazioni vengono elaborate in conformita con la nostra informativa sulla privacy e non vengono utilizzate per identificarti personalmente. Continuando, accetti le Condizioni di servizio della piattaforma HERE: (here.com/terms) e l'Informativa sulla privacy: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Benvenuto"
diff --git a/heremaps-uc/resources/po/ja.po b/heremaps-uc/resources/po/ja.po
new file mode 100644
index 0000000..0e9d670
--- /dev/null
+++ b/heremaps-uc/resources/po/ja.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "同意しない"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "お客様の電話は、 HERE から提供されたマッピング技術を使用しています。 HEREは、現在位置近辺で行われた関連質問や検索など、お客様のプラットフォームとのインタラクションに関する情報を収集します。情報は、当社プライバシーポリシーに従って処理され、お客様を個人的に特定するために使用されることはありません。 続けることで HERE プラットフォームご利用規約: (here.com/terms) とプライバシーポリシー: (here.com/privacy)に同意とされます。"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "ようこそ"
diff --git a/heremaps-uc/resources/po/ja_JP.po b/heremaps-uc/resources/po/ja_JP.po
new file mode 100644
index 0000000..0e9d670
--- /dev/null
+++ b/heremaps-uc/resources/po/ja_JP.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "同意しない"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "お客様の電話は、 HERE から提供されたマッピング技術を使用しています。 HEREは、現在位置近辺で行われた関連質問や検索など、お客様のプラットフォームとのインタラクションに関する情報を収集します。情報は、当社プライバシーポリシーに従って処理され、お客様を個人的に特定するために使用されることはありません。 続けることで HERE プラットフォームご利用規約: (here.com/terms) とプライバシーポリシー: (here.com/privacy)に同意とされます。"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "ようこそ"
diff --git a/heremaps-uc/resources/po/ka.po b/heremaps-uc/resources/po/ka.po
new file mode 100644
index 0000000..d957990
--- /dev/null
+++ b/heremaps-uc/resources/po/ka.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "თანხმობა"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "არ ვეთანხმები"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "თქვენი მოწყობილობა იყენებს რუკების შედგენის ტექნოლოგიას, რომლის მომწოდებელია HERE. HERE აგროვებს ისეთ ინფორმაციას ჩვენს პლატფორმასთან თქვენი ინტერაქტივის შესახებ, როგორიცაა თქვენ მიერ მოძიებული ინფორმაცია და მოძებნილი ახლომდებარე ადგილები. ამ ინფორმაციის დამუშავება ხდება ჩვენი კონფიდენციალურობის დებულების შესაბამისად და არ გამოიყენება თქვენი პირადობის იდენტიფიცირებისთვის. თუ განაგრძობთ, დაეთანხმებით HERE პლატფორმის მომსახურების პირობებსა (here.com/terms) და კონფიდენციალურობის დებულებას (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "მოგესალმებით"
diff --git a/heremaps-uc/resources/po/kk.po b/heremaps-uc/resources/po/kk.po
new file mode 100644
index 0000000..be94807
--- /dev/null
+++ b/heremaps-uc/resources/po/kk.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Келісемін"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Келіспеу"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Құрылғыңыз HERE ұсынған карта технологияларын пайдаланады. HERE орналасқан жеріңізге жақын орындалған қатысты сұраулар мен іздеулер сияқты платформамызбен өзара әрекеттеріңіз туралы ақпарат жинайды. Бұл ақпарат біздің құпиялық саясатымызға сәйкес өңделеді және жеке басыңызды анықтау үшін пайдаланылмайды. Жалғастыру арқылы HERE платформасының қызмет шарттарымен: (here.com/terms) және құпиялық саясатымен: (here.com/privacy) келісесіз."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Қош келдіңіз"
diff --git a/heremaps-uc/resources/po/ko.po b/heremaps-uc/resources/po/ko.po
new file mode 100644
index 0000000..cffeced
--- /dev/null
+++ b/heremaps-uc/resources/po/ko.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "동의"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "동의 안 함"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "현재 기기는 HERE에서 제공하는 매핑 기술을 사용합니다. HERE는 관련 질의, 현재 위치 근처에서 수행한 검색 등과 같이 플랫폼에서의 사용자 상호 작용에 관한 정보를 수집합니다. 이 정보는 본 사의 개인정보 보호정책에 따라 처리되며 개인 신원 정보를 파악하는 데 사용되지 않습니다. 계속하려면 HERE 플랫폼 서비스 약관: (here.com/terms) 및 개인 정보 보호 정책에 동의해야 합니다: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "환영합니다"
diff --git a/heremaps-uc/resources/po/ko_KR.po b/heremaps-uc/resources/po/ko_KR.po
new file mode 100644
index 0000000..cffeced
--- /dev/null
+++ b/heremaps-uc/resources/po/ko_KR.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "동의"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "동의 안 함"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "현재 기기는 HERE에서 제공하는 매핑 기술을 사용합니다. HERE는 관련 질의, 현재 위치 근처에서 수행한 검색 등과 같이 플랫폼에서의 사용자 상호 작용에 관한 정보를 수집합니다. 이 정보는 본 사의 개인정보 보호정책에 따라 처리되며 개인 신원 정보를 파악하는 데 사용되지 않습니다. 계속하려면 HERE 플랫폼 서비스 약관: (here.com/terms) 및 개인 정보 보호 정책에 동의해야 합니다: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "환영합니다"
diff --git a/heremaps-uc/resources/po/lt.po b/heremaps-uc/resources/po/lt.po
new file mode 100644
index 0000000..bf109fb
--- /dev/null
+++ b/heremaps-uc/resources/po/lt.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Sutikti"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Nesutikti"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Prietaise naudojamos HERE teikiamos žemėlapių technologijos. HERE kaupia informaciją apie platformoje jūsų atliktus veiksmus, pavyzdžiui, susijusias užklausas ir netoli jūsų buvimo vietos atliktas paieškas. Ši informacija apdorojama pagal mūsų privatumo taisykles ir nenaudojama jums identifikuoti. Tęsdami sutinkate su HERE platformos paslaugos sąlygomis: (here.com/terms) ir privatumo taisyklėmis: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Sveiki"
diff --git a/heremaps-uc/resources/po/lv.po b/heremaps-uc/resources/po/lv.po
new file mode 100644
index 0000000..89893ed
--- /dev/null
+++ b/heremaps-uc/resources/po/lv.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Piekrist"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Nepiekrītu"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Jūsu ierīce izmanto HERE nodrošinātās kartēšanas tehnoloģijas. HERE apkopo informāciju par jūsu mijiedarbību ar mūsu platformu, piemēram, jūsu saistītos vaicājumus un meklēšanas gadījumus, kas veikti jūsu atrašanās vietas tuvumā. Šī informācija tiek apstrādāta saskaņā ar mūsu konfidencialitātes politiku, un netiek izmantota, lai jūs identificētu personiski. Turpinot jūs piekrītat HERE platformas pakalpojumu sniegšanas noteikumiem: (here.com/terms) un konfidencialitātes politikai: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Sveicināti!"
diff --git a/heremaps-uc/resources/po/mk.po b/heremaps-uc/resources/po/mk.po
new file mode 100644
index 0000000..5057e76
--- /dev/null
+++ b/heremaps-uc/resources/po/mk.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Добро"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Не се согласувам"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Вашиот уред користи технологии за мапирање што ги овозможува HERE. HERE собира информации за интеракцијата со нашата платформа, како што се поврзаните прашалници и пребарувања изведени во близина на вашата локација. Овие информации ги обработуваме во согласност со правилата за приватност и не ги користиме за ваша лична идентификација. Доколку продолжите, се согласувате со условите за користење на платформата HERE: (here.com/terms) и правилата за приватност: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Добре дојдовте"
diff --git a/heremaps-uc/resources/po/nb.po b/heremaps-uc/resources/po/nb.po
new file mode 100644
index 0000000..870a3df
--- /dev/null
+++ b/heremaps-uc/resources/po/nb.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Godta"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Avslå"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Enheten bruker kartteknologi som leveres av HERE. HERE samler inn informasjon om din samhandling med plattformen, for eksempel beslektede spørsmål og søk som er utført i nærheten av din posisjon. Denne informasjonen behandles i tråd med vår personvernerklæring og brukes ikke til å identifisere deg personlig. Ved å fortsette godtar du HERE-plattformens tjenestevilkår: (here.com/terms) og personvernpolicy: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Velkommen"
diff --git a/heremaps-uc/resources/po/nl.po b/heremaps-uc/resources/po/nl.po
new file mode 100644
index 0000000..def0bd2
--- /dev/null
+++ b/heremaps-uc/resources/po/nl.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Akkoord"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Niet akkoord"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Het apparaat gebruikt kaarttechnologieen geleverd door HERE. HERE verzamelt info over uw interacties met ons platform zoals uw vragen en zoekopdrachten uitgevoerd rond uw locatie. Deze informatie wordt verwerkt overeenkomstig ons privacybeleid en wordt niet gebruikt om u persoonlijk te identificeren. Door verder te gaan, gaat u akkoord met de servicevoorwaarden: (here.com/terms) en het privacybeleid: (here.com/privacy) van het HERE-platform."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welkom"
diff --git a/heremaps-uc/resources/po/pl.po b/heremaps-uc/resources/po/pl.po
new file mode 100644
index 0000000..e8675bb
--- /dev/null
+++ b/heremaps-uc/resources/po/pl.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Akceptuję"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Brak zgody"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Twoje urządzenie wykorzystuje technologie map udostępniane przez usługę HERE. Usługa HERE gromadzi informacje na temat Twoich interakcji z naszą platformą, na przykład powiązane zapytania i wyszukiwania przeprowadzone w pobliżu Twojej lokalizacji. Te informacje są przetwarzane zgodnie z naszymi zasadami ochrony prywatności i nie są używane do zidentyfikowania Ciebie. Kontynuując, wyrażasz zgodę na Warunki korzystania z usługi platformy HERE: (here.com/terms)i Zasady ochrony prywatności: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Witamy"
diff --git a/heremaps-uc/resources/po/pt.po b/heremaps-uc/resources/po/pt.po
new file mode 100644
index 0000000..12d82a5
--- /dev/null
+++ b/heremaps-uc/resources/po/pt.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Concordo"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Discordo"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "O dispositivo utiliza tecnologias de mapeamento fornecidas pelo HERE. O HERE recolhe informacoes sobre as suas interacoes com a nossa plataforma, tais como as suas consultas e procuras relacionadas, realizadas perto da sua localizacao. Estas informacoes sao processadas de acordo com a nossa politica de privacidade e nao sao utilizadas para identifica-lo de forma personalizada. Ao continuar, estara a aceitar os Termos do Servico da plataforma HERE: (here.com/terms) e a Politica de Privacidade: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bem-vindo"
diff --git a/heremaps-uc/resources/po/pt_BR.po b/heremaps-uc/resources/po/pt_BR.po
new file mode 100644
index 0000000..69775b4
--- /dev/null
+++ b/heremaps-uc/resources/po/pt_BR.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Concordo"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Discordo"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Seu dispositivo usa tecnologias de mapas fornecidas pelo HERE. O HERE coleta informacoes sobre suas interacoes com a nossa plataforma, tais como consultas e pesquisas relacionadas feitas proximo a sua localizacao. Essa informacao e processada de acordo com a nossa politica de privacidade e nao e utilizada para identificar voce pessoalmente. Ao continuar voce concorda com os Termos de servico da plataforma HERE: (here.com/terms) e com a Politica de privacidade: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bem-vindo"
diff --git a/heremaps-uc/resources/po/pt_PT.po b/heremaps-uc/resources/po/pt_PT.po
new file mode 100644
index 0000000..12d82a5
--- /dev/null
+++ b/heremaps-uc/resources/po/pt_PT.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Concordo"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Discordo"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "O dispositivo utiliza tecnologias de mapeamento fornecidas pelo HERE. O HERE recolhe informacoes sobre as suas interacoes com a nossa plataforma, tais como as suas consultas e procuras relacionadas, realizadas perto da sua localizacao. Estas informacoes sao processadas de acordo com a nossa politica de privacidade e nao sao utilizadas para identifica-lo de forma personalizada. Ao continuar, estara a aceitar os Termos do Servico da plataforma HERE: (here.com/terms) e a Politica de Privacidade: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bem-vindo"
diff --git a/heremaps-uc/resources/po/ro.po b/heremaps-uc/resources/po/ro.po
new file mode 100644
index 0000000..89b173c
--- /dev/null
+++ b/heremaps-uc/resources/po/ro.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "De acord"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Refuzare"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Dispozitivul folosește tehnologii de cartografiere furnizate de HERE. HERE colectează informații despre interacțiunile dvs. cu platforma noastră, cum ar fi interogările și căutările efectuate în apropierea locației dvs. Aceste informații sunt procesate în conformitate cu politica noastră de confidențialitate și nu sunt utilizate pentru a vă identifica. Continuând, sunteți de acord cu Condițiile de utilizare ale platformei HERE: (here.com/terms) și cu Politica de confidențialitate: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Bun venit"
diff --git a/heremaps-uc/resources/po/ru.po b/heremaps-uc/resources/po/ru.po
new file mode 100644
index 0000000..8d8b133
--- /dev/null
+++ b/heremaps-uc/resources/po/ru.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Принять"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Отказаться"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "На вашем устройстве используются картографические технологии от HERE. HERE собирает информацию о том, как вы взаимодействуете с нашей платформой, например о ваших связанных запросах и о том, что вы искали рядом с текущим местоположением. Эти сведения обрабатываются в соответствии с нашей политикой конфиденциальности и не используются для установления вашей личности. Продолжая, вы принимаете условия обслуживания для платформы HERE: (here.com/terms) а также политику конфиденциальности: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Добро пожаловать"
diff --git a/heremaps-uc/resources/po/ru_RU.po b/heremaps-uc/resources/po/ru_RU.po
new file mode 100644
index 0000000..8d8b133
--- /dev/null
+++ b/heremaps-uc/resources/po/ru_RU.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Принять"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Отказаться"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "На вашем устройстве используются картографические технологии от HERE. HERE собирает информацию о том, как вы взаимодействуете с нашей платформой, например о ваших связанных запросах и о том, что вы искали рядом с текущим местоположением. Эти сведения обрабатываются в соответствии с нашей политикой конфиденциальности и не используются для установления вашей личности. Продолжая, вы принимаете условия обслуживания для платформы HERE: (here.com/terms) а также политику конфиденциальности: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Добро пожаловать"
diff --git a/heremaps-uc/resources/po/sk.po b/heremaps-uc/resources/po/sk.po
new file mode 100644
index 0000000..de21ba5
--- /dev/null
+++ b/heremaps-uc/resources/po/sk.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Súhlasím"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Nesúhlasím"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Vaše zariadenie používa technológie máp platformy HERE. HERE zbiera informácie o tom, ako platformu využívate, napríklad vaše dotazy a hľadania uskutočňované v blízkosti vašej polohy. Tieto informácie sú spracovávané v súlade s našimi pravidlami ochrany súkromia a neslúžia k vašej osobnej identifikácii. Pokračovaním vyjadrujete súhlas s Podmienkami poskytovania služieb platformy HERE: (here.com/terms) a s Pravidlami ochrany súkromia: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Vitajte"
diff --git a/heremaps-uc/resources/po/sl.po b/heremaps-uc/resources/po/sl.po
new file mode 100644
index 0000000..7ffc6a0
--- /dev/null
+++ b/heremaps-uc/resources/po/sl.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Sprejmem"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Se ne strinjam"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Vaša naprava uporablja tehnologije preslikav, ki jih zagotavlja HERE. HERE zbira informacije o tem, kako uporabljate našo platformo. Na primer o povezanih poizvedbah in iskanjih, ki so bili izvedeni blizu vaše lokacije. Informacije so obdelane v skladu s pravilnikom o zasebnosti in se ne uporabljajo za namene prepoznavanja. Če nadaljujete, s tem sprejmete pogoje za uporabo storitev platforme HERE: (here.com/terms) in pravilnik o zasebnosti: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Dobrodošli"
diff --git a/heremaps-uc/resources/po/sr.po b/heremaps-uc/resources/po/sr.po
new file mode 100644
index 0000000..0891c1c
--- /dev/null
+++ b/heremaps-uc/resources/po/sr.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Slažem se"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Ne slažem se"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Uređaj koristi HERE tehnologije mapiranja. HERE skuplja informacije o interakcijama sa platformom, kao što su povezani upiti i pretrage blizu vaše lokacije. Ove informacije se obrađuju u skladu sa našom politikom privatnosti i ne koriste se da vas identifikuju. Ako nastavite, pristajete na uslove korišćenja HERE platforme: (here.com/terms) i politiku privatnosti: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Dobro došli"
diff --git a/heremaps-uc/resources/po/sv.po b/heremaps-uc/resources/po/sv.po
new file mode 100644
index 0000000..5d803e1
--- /dev/null
+++ b/heremaps-uc/resources/po/sv.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Godkänn"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Samtycker inte"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Din enhet använder kartteknik från HERE. HERE samlar in information om hur du använder vår plattform, till exempel om vilka förfrågningar och sökningar du gjort i närheten av din position. Informationen bearbetas i enlighet med vår sekretesspolicy och den används inte för att identifiera dig personligen. Genom att fortsätta accepterar du HERE-plattformens tjänstevillkor: (here.com/terms) och sekretesspolicyn: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Välkommen"
diff --git a/heremaps-uc/resources/po/tr.po b/heremaps-uc/resources/po/tr.po
new file mode 100644
index 0000000..8568653
--- /dev/null
+++ b/heremaps-uc/resources/po/tr.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Onayla"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Onaylama"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Cihazınız HERE tarafından sağlanan harita teknolojisini kullanmaktadır. HERE ilgili sorgularınız veya yakınınızda gerçekleştirilen aramalar gibi platformumuzdaki etkileşimleriniz hakkında bilgi toplar. Bu bilgili gizlilik poliçemiz dahilindedir ve kimliğinizi belirlemek için kullanılmaz. Devam ederek HERE platformu Hizmet Şartları'nı: (here.com/terms) ve Gizlilik İlkesi'ni: (here.com/privacy) kabul etmiş olursunuz."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Hoş geldiniz"
diff --git a/heremaps-uc/resources/po/tr_TR.po b/heremaps-uc/resources/po/tr_TR.po
new file mode 100644
index 0000000..8568653
--- /dev/null
+++ b/heremaps-uc/resources/po/tr_TR.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Onayla"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Onaylama"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Cihazınız HERE tarafından sağlanan harita teknolojisini kullanmaktadır. HERE ilgili sorgularınız veya yakınınızda gerçekleştirilen aramalar gibi platformumuzdaki etkileşimleriniz hakkında bilgi toplar. Bu bilgili gizlilik poliçemiz dahilindedir ve kimliğinizi belirlemek için kullanılmaz. Devam ederek HERE platformu Hizmet Şartları'nı: (here.com/terms) ve Gizlilik İlkesi'ni: (here.com/privacy) kabul etmiş olursunuz."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Hoş geldiniz"
diff --git a/heremaps-uc/resources/po/uk.po b/heremaps-uc/resources/po/uk.po
new file mode 100644
index 0000000..1301916
--- /dev/null
+++ b/heremaps-uc/resources/po/uk.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Згоден(а)"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Не погоджуюсь"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "На вашому пристрої використовуються технології картографії HERE. Карти HERE збирають відомості про вашу взаємодію з нашою платформою, наприклад про пов’язані запити й пошуки, виконані поблизу вашого розташування. Ця інформація обробляється відповідно до нашої політики конфіденційності та не використовується для встановлення вашої особи. Продовжуючи, ви приймаєте Умови використання: (here.com/terms) і політику конфіденційності платформи HERE: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Вітаємо"
diff --git a/heremaps-uc/resources/po/uz.po b/heremaps-uc/resources/po/uz.po
new file mode 100644
index 0000000..ee168a4
--- /dev/null
+++ b/heremaps-uc/resources/po/uz.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Roziman"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Rozi emas"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Qurilmangiz HERE tomonidan taqdim etilgan xaritalash texnologiyalaridan foydalanadi. HERE platformamiz bilan o'zaro aloqalaringiz, jumladan turgan joyingiz yaqinida bajargan so'rovlaringiz va qidirishlaringiz to'g'risidagi ma'lumotlarni to'playdi. Bu ma'lumotlar maxfiylik siyosatimizga muvofiq qayta ishlanadi va ulardan shaxsan sizni tanib olish uchun foydalanilmaydi. Davom ettirish orqali siz HERE platformasi Xizmat ko'rsatish shartlari: (here.com/terms) va Maxfiylik siyosatiga rozilik bildirasiz: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Xush kelibsiz"
diff --git a/heremaps-uc/resources/po/zh_CN.po b/heremaps-uc/resources/po/zh_CN.po
new file mode 100644
index 0000000..49b2f82
--- /dev/null
+++ b/heremaps-uc/resources/po/zh_CN.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "您的设备使用了 HERE 提供的地图技术。 HERE 会收集您与我们平台的交互情况,例如您在位置附近进行的相关查询和搜索。此类信息会根据我们的隐私政策正常处理,不会被用于识别您的个人身份。 继续将表示您同意接受HERE平台服务条款: (here.com/terms) 和隐私政策: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "欢迎"
diff --git a/heremaps-uc/resources/po/zh_HK.po b/heremaps-uc/resources/po/zh_HK.po
new file mode 100644
index 0000000..93da487
--- /dev/null
+++ b/heremaps-uc/resources/po/zh_HK.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "您的裝置使用由HERE提供的地圖繪製技術。 HERE會收集您與我們平台之間互動的資訊,例如您在位置附近進行的相關查詢和搜尋。我們會根據本身的私隱政策處理這些資訊,而且不會用來識別您的個人身份。 繼續即表示您同意HERE平台服務條款:(here.com/terms) 和私隱政策:(here.com/privacy)。"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "歡迎"
diff --git a/heremaps-uc/resources/po/zh_SG.po b/heremaps-uc/resources/po/zh_SG.po
new file mode 100644
index 0000000..819ce46
--- /dev/null
+++ b/heremaps-uc/resources/po/zh_SG.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "Agree"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "Disagree"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "Your device uses mapping technologies provided by HERE. HERE collects info about your interactions with our platform such as your related queries and searches performed near your location. This information is processed in accordance with our privacy policy and is not used to identify you personally. By continuing, you agree to the HERE platform Service Terms: (here.com/terms) and Privacy Policy: (here.com/privacy)."
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "Welcome"
diff --git a/heremaps-uc/resources/po/zh_TW.po b/heremaps-uc/resources/po/zh_TW.po
new file mode 100644
index 0000000..f7cd1d7
--- /dev/null
+++ b/heremaps-uc/resources/po/zh_TW.po
@@ -0,0 +1,11 @@
+msgid "IDS_ST_BUTTON_AGREE"
+msgstr "同意"
+
+msgid "IDS_ST_BUTTON_DISAGREE"
+msgstr "不同意"
+
+msgid "IDS_POSITIONING_CONSENT_BODY"
+msgstr "您的裝置使用 HERE 所提供的地圖技術。HERE 會收集您與我們平台互動的相關資訊,例如您在您的位置附近執行的相關查詢與搜尋。這項資訊會根據我們的隱私權政策進行處理,而且不會用於識別您的個人身分。 如果您選擇繼續,則視為您同意 HERE 平台「服務條款」: (here.com/terms) 和「隱私權政策」: (here.com/privacy)"
+
+msgid "IDS_POSITIONING_CONSENT_TITLE"
+msgstr "歡迎"
diff --git a/heremaps-uc/src/CMakeLists.txt b/heremaps-uc/src/CMakeLists.txt
new file mode 100644
index 0000000..67a34f2
--- /dev/null
+++ b/heremaps-uc/src/CMakeLists.txt
@@ -0,0 +1,45 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+PROJECT(heremaps-uc C)
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+ SET(CMAKE_BUILD_TYPE "Release")
+ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
+
+# Set ready to build
+SET(EXT_LIBS_DIRS "")
+SET(EXT_LIBS_DEFS "")
+SET(EXT_LIBS_LDFLAGS "")
+
+# Set external libraries
+SET(EXT_LIBS HEREMAPS_UC_EXT_LIBS)
+
+FOREACH(flag ${EXT_LIBS})
+ SET(EXT_LIBS_DIRS ${EXT_LIBS_DIRS} ${${flag}_INCLUDE_DIRS})
+ SET(EXT_LIBS_DEFS ${EXT_LIBS_DEFS} ${${flag}_CFLAGS_OTHER})
+ SET(EXT_LIBS_LDFLAGS ${EXT_LIBS_LDFLAGS} ${${flag}_LDFLAGS})
+ENDFOREACH(flag)
+
+# Set ready to build
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+INCLUDE_DIRECTORIES(${EXT_LIBS_DIRS})
+
+ADD_DEFINITIONS(
+ ${EXT_LIBS_DEFS}
+)
+
+SET(SRCS
+ heremaps-uc.c
+)
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} "-Wl,--as-needed -pie" "-ldl" ${EXT_LIBS_LDFLAGS})
+
+message(${EXT_LIBS_LDFLAGS})
+
+#install binary & edj files
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+
+# install manifest file & icon
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/heremaps-uc/${PKG_NAME}.xml DESTINATION /usr/share/packages)
diff --git a/heremaps-uc/src/heremaps-uc-common.h b/heremaps-uc/src/heremaps-uc-common.h
new file mode 100644
index 0000000..ff960c1
--- /dev/null
+++ b/heremaps-uc/src/heremaps-uc-common.h
@@ -0,0 +1,146 @@
+/*
+ * heremaps-uc
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Jongmun Woo <jongmun.woo@samsung.com>, Young-Ae Kang <youngae.kang@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+
+#ifndef HEREMAPS_UC_COMMON_H_
+#define HEREMAPS_UC_COMMON_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <app.h>
+#include <dlog.h>
+#include <glib.h>
+#include <vconf.h>
+#ifndef Eina_Bool
+#include <stdbool.h>
+#endif
+#include <Elementary.h>
+#include <Elementary.h>
+#include <libintl.h>
+#include <stdio.h>
+#include <string.h>
+#include <efl_extension.h>
+#include <system_info.h>
+
+#if !defined(HEREMAPS_UC_PKG)
+#define HEREMAPS_UC_PKG "org.tizen.heremaps-uc"
+#endif
+
+#define DOMAIN_NAME HEREMAPS_UC_PKG
+
+#define TAG_HEREMAPS_UC "HEREMAPS_UC"
+#define HEREMAPS_UC_DLOG_DEBUG
+
+#ifdef HEREMAPS_UC_DLOG_DEBUG /**< if debug mode, show filename & line number */
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#define LOG_TAG TAG_HEREMAPS_UC
+#endif
+
+#define LS_LOGD(fmt,args...) LOGD(fmt, ##args)
+#define LS_LOGW(fmt,args...) LOGW(fmt, ##args)
+#define LS_LOGI(fmt,args...) LOGI(fmt, ##args)
+#define LS_LOGE(fmt,args...) LOGE(fmt, ##args)
+
+#elif HEREMAPS_UC_DLOG_RELEASE /* if release mode */
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#define LOG_TAG TAG_HEREMAPS_UC
+#endif
+
+#define LS_LOGD(fmt,args...) LOGD(fmt, ##args)
+#define LS_LOGW(fmt,args...) LOGW(fmt, ##args)
+#define LS_LOGI(fmt,args...) LOGI(fmt, ##args)
+#define LS_LOGE(fmt,args...) LOGE(fmt, ##args)
+#else /* if do not use dlog */
+#define LS_LOGD(...) g_debug(__VA_ARGS__)
+#define LS_LOGW(...) g_warning(__VA_ARGS__)
+#define LS_LOGI(...) g_message(__VA_ARGS__)
+#define LS_LOGE(...) g_error(__VA_ARGS__)
+#endif
+
+#define P_(s) dgettext(HEREMAPS_UC_PKG, s)
+#define S_(s) dgettext("sys_string", s)
+#define dgettext_noop(s) (s)
+#define N_(s) dgettext_noop(s)
+
+#define KEY_ENABLED 1
+#define KEY_DISABLED 0
+
+#define LS_FUNC_ENTER LS_LOGD("(%s) ENTER", __FUNCTION__);
+#define LS_FUNC_EXIT LS_LOGD("(%s) EXIT", __FUNCTION__);
+
+#define SAFE_STRDUP(src) (src) ? strdup(src) : NULL
+
+#define LS_MEM_FREE(ptr) \
+ do { \
+ if (ptr != NULL) { \
+ free((void *)ptr); \
+ ptr = NULL; \
+ } \
+ } while (0)
+
+
+#define LS_MEM_NEW(ptr, num_elements, type) \
+ do { \
+ if ((int)(num_elements) <= 0) { \
+ ptr = NULL; \
+ } else { \
+ ptr = (type *) calloc(num_elements, sizeof(type)); \
+ } \
+ } while (0)
+
+
+#define LS_RETURN_IF_FAILED(point) do { \
+ if (point == NULL) { \
+ LS_LOGE("critical error : LS_RETURN_IF_FAILED"); \
+ return; \
+ } \
+ } while (0)
+
+#define LS_RETURN_VAL_IF_FAILED(point, val) do { \
+ if (point == NULL) { \
+ LS_LOGE("critical error : NAVI_RETURN_VAL_IS_FAILED"); \
+ return val; \
+ } \
+ } while (0)
+
+typedef struct appdata
+{
+ app_control_h app_control;
+
+ Evas_Object *win_main;
+ Evas_Object *conformant;
+ Evas_Object *layout_main;
+
+ Evas_Object *popup;
+} heremaps_uc_app_data;
+
+#ifdef __cplusplus
+}
+#endif /*__cplusplus */
+
+#endif /* HEREMAPS_UC_COMMON_H_ */
diff --git a/heremaps-uc/src/heremaps-uc.c b/heremaps-uc/src/heremaps-uc.c
new file mode 100644
index 0000000..c40accf
--- /dev/null
+++ b/heremaps-uc/src/heremaps-uc.c
@@ -0,0 +1,341 @@
+/*
+ * heremaps-uc
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Jongmun Woo <jongmun.woo@samsung.com>, Young-Ae Kang <youngae.kang@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "heremaps-uc-common.h"
+
+#define UC_FILE "/opt/usr/apps/org.tizen.heremaps-uc/shared/data/heremaps_uc.xml"
+
+static Evas_Object *create_conformant(Evas_Object * parent)
+{
+ LS_FUNC_ENTER
+ Evas_Object *conformant = NULL;
+
+ conformant = elm_conformant_add(parent);
+ elm_win_conformant_set(parent, EINA_TRUE);
+ elm_win_resize_object_add(parent, conformant);
+ evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(conformant, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(conformant);
+
+ LS_FUNC_EXIT
+ return conformant;
+}
+
+static Evas_Object *create_layout(Evas_Object * parent)
+{
+ LS_FUNC_ENTER
+ Evas_Object *layout = NULL;
+
+ if (parent != NULL) {
+ layout = elm_layout_add(parent);
+ elm_object_content_set(parent, layout);
+ evas_object_show(layout);
+ }
+
+ LS_FUNC_EXIT
+ return layout;
+}
+
+static void win_del(void *data, Evas_Object * obj, void *event)
+{
+ LS_FUNC_ENTER
+ elm_exit();
+}
+
+static void read_file(heremaps_uc_app_data *ad)
+{
+ LS_FUNC_ENTER
+ FILE *fp = fopen(UC_FILE, "r");
+ char buf[15] = {};
+ char *data = NULL, *save_token = NULL;
+ app_control_h reply;
+ int ret = 0;
+
+ if (fp == NULL)
+ LS_LOGE("UC_FILE open fail");
+ else {
+ ret = fread(buf, 15, 1, fp);
+ fclose(fp);
+
+ data = strtok_r(buf, "=", &save_token);
+ data = strtok_r(NULL, "=", &save_token);
+ }
+
+ app_control_create(&reply);
+ if (data == NULL)
+ app_control_add_extra_data(reply, "result", "No");
+ else if ((strcmp(data, "Yes") == 0) || (strcmp(data, "No") == 0))
+ app_control_add_extra_data(reply, "result", data);
+ else
+ app_control_add_extra_data(reply, "result", "No");
+ ret = app_control_reply_to_launch_request(reply, ad->app_control, APP_CONTROL_RESULT_SUCCEEDED);
+ if (ret != APP_CONTROL_ERROR_NONE)
+ LS_LOGE("app_control_reply_to_launch_request fail. err=%d", ret);
+ app_control_destroy(reply);
+}
+
+static void save_file(char *data, heremaps_uc_app_data *ad)
+{
+ FILE *fp = fopen(UC_FILE, "w+");
+ char buf[15] = {};
+ app_control_h reply;
+ int ret = 0;
+
+ app_control_create(&reply);
+
+ if (fp == NULL) {
+ LS_LOGE("UC_FILE open fail");
+ app_control_add_extra_data(reply, "result", "No");
+ } else {
+ snprintf(buf, sizeof(buf)-1, "Agree=%s", data);
+ fwrite(buf, strlen(buf), 1, fp);
+ fclose(fp);
+ LS_LOGE("result of save_file() is %s", data);
+
+ app_control_add_extra_data(reply, "result", strdup(data));
+ }
+
+ ret = app_control_reply_to_launch_request(reply, ad->app_control, APP_CONTROL_RESULT_SUCCEEDED);
+ if (ret != APP_CONTROL_ERROR_NONE)
+ LS_LOGE("app_control_reply_to_launch_request fail. err=%d", ret);
+ app_control_destroy(reply);
+}
+
+static void disagree_btn_cb(void *data, Evas_Object * obj, void *event)
+{
+ LS_FUNC_ENTER
+ heremaps_uc_app_data *ad = (heremaps_uc_app_data *) data;
+
+ save_file("No", ad);
+
+ elm_exit();
+}
+
+static void agree_btn_cb(void *data, Evas_Object * obj, void *event)
+{
+ LS_FUNC_ENTER
+ heremaps_uc_app_data *ad = (heremaps_uc_app_data *) data;
+
+ save_file("Yes", ad);
+
+ elm_exit();
+}
+
+static void back_btn_cb(void *data, Evas_Object * obj, void *event)
+{
+ LS_FUNC_ENTER
+ heremaps_uc_app_data *ad = (heremaps_uc_app_data *) data;
+
+ read_file(ad);
+ elm_exit();
+}
+
+static Evas_Object *create_win(const char *name)
+{
+ LS_FUNC_ENTER
+ Evas_Object *eo;
+
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ if (eo) {
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ evas_object_smart_callback_add(eo, "delete,request", win_del, NULL);
+ elm_win_alpha_set(eo, EINA_TRUE);
+ if (elm_win_wm_rotation_supported_get(eo)) {
+ int rots[4] = { 0, 90, 180, 270 };
+ elm_win_wm_rotation_available_rotations_set(eo, (const int *)(&rots), 4);
+ }
+ }
+ return eo;
+}
+
+static Evas_Object *create_popup(Evas_Object *layout, heremaps_uc_app_data *ad)
+{
+ Evas_Object *popup;
+ Evas_Object *disagree_btn, *agree_btn;
+
+ /* popup */
+ popup = elm_popup_add(layout);
+ elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, back_btn_cb, ad);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ elm_object_part_text_set(popup, "title,text", P_("IDS_POSITIONING_CONSENT_TITLE"));
+ elm_object_text_set(popup, P_("IDS_POSITIONING_CONSENT_BODY"));
+
+ /* Disagree button */
+ disagree_btn = elm_button_add(popup);
+ elm_object_style_set(disagree_btn, "popup");
+ elm_object_text_set(disagree_btn, P_("IDS_ST_BUTTON_DISAGREE"));
+ elm_object_part_content_set(popup, "button1", disagree_btn);
+ evas_object_smart_callback_add(disagree_btn, "clicked", disagree_btn_cb, ad);
+
+ /* Agree button */
+ agree_btn = elm_button_add(popup);
+ elm_object_style_set(agree_btn, "popup");
+ elm_object_text_set(agree_btn, P_("IDS_ST_BUTTON_AGREE"));
+ elm_object_part_content_set(popup, "button2", agree_btn);
+ evas_object_smart_callback_add(agree_btn, "clicked", agree_btn_cb, ad);
+
+ evas_object_show(popup);
+
+ return popup;
+}
+
+static bool _app_create_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+
+ return true;
+}
+
+static void _app_terminate_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+}
+
+/*
+static void _app_pause_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+}
+
+static void _app_resume_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+}
+*/
+
+static void _app_control_cb(app_control_h app_control, void *user_data)
+{
+ LS_FUNC_ENTER
+
+ gboolean ret = FALSE;
+ heremaps_uc_app_data *ad = (heremaps_uc_app_data *) user_data;
+ char *action = NULL;
+ char *data = NULL;
+ LS_RETURN_IF_FAILED(ad);
+
+ ret = app_control_clone(&(ad->app_control), app_control);
+ if (ret == FALSE)
+ LS_LOGE("app_control_clone. err=%d", ret);
+
+ app_control_get_extra_data(app_control, "action", &action);
+ if (action != NULL) {
+ if (strcmp(action, "Get") == 0) {
+ read_file(ad);
+ elm_exit();
+ } else if (strcmp(action, "Set") == 0) {
+ app_control_get_extra_data(app_control, "value", &data);
+ LS_LOGE("DATA = %s", data);
+
+ if (data != NULL) {
+ if ((strcmp(data, "Yes") == 0) || (strcmp(data, "No") == 0)) {
+ save_file(data, ad);
+ elm_exit();
+ }
+ }
+ }
+ }
+
+ if (ad->win_main) {
+ evas_object_del(ad->win_main);
+ ad->win_main = NULL;
+ }
+
+ elm_app_base_scale_set(2.6);
+ elm_config_accel_preference_set("3d");
+
+ bindtextdomain(HEREMAPS_UC_PKG, LOCALE_DIR);
+
+ ad->win_main = create_win(HEREMAPS_UC_PKG);
+ ad->conformant = create_conformant(ad->win_main);
+ ad->layout_main = create_layout(ad->conformant);
+
+ ad->popup = create_popup(ad->layout_main, ad);
+
+ evas_object_show(ad->win_main);
+ LS_FUNC_EXIT
+}
+
+/*
+static void _app_low_memory_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+}
+
+static void _app_low_battery_cb(void *user_data)
+{
+ LS_FUNC_ENTER
+}
+
+static void _app_device_orientation_cb(app_event_info_h event_info, void *user_data)
+{
+ LS_FUNC_ENTER
+ LS_RETURN_IF_FAILED(event_info);
+ LS_RETURN_IF_FAILED(user_data);
+
+ heremaps_uc_app_data *ad = (heremaps_uc_app_data *)user_data;
+ app_device_orientation_e orientation;
+ app_event_get_device_orientation(event_info, &orientation);
+ elm_win_rotation_with_resize_set(ad->win_main, orientation);
+}
+*/
+
+static void _app_language_changed_cb(app_event_info_h event_info, void *user_data)
+{
+ LS_FUNC_ENTER
+
+ char *locale = vconf_get_str(VCONFKEY_LANGSET);
+ if (locale) elm_language_set(locale);
+}
+
+int main(int argc, char *argv[])
+{
+ LS_FUNC_ENTER
+
+ int ret = 0;
+ heremaps_uc_app_data ad = {0,};
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+ app_event_handler_h handlers[5] = {NULL, };
+
+ event_callback.create = _app_create_cb;
+ event_callback.terminate = _app_terminate_cb;
+ event_callback.app_control = _app_control_cb;
+
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, NULL, NULL);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, NULL, NULL);
+ ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL);
+ ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _app_language_changed_cb, NULL);
+ ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, NULL, NULL);
+
+ ret = APP_ERROR_NONE;
+ ret = ui_app_main(argc, argv, &event_callback, &ad);
+
+ if (ret != APP_ERROR_NONE) {
+ LS_LOGE("ui_app_main() is failed. err=%d", ret);
+ }
+
+ return ret;
+
+ LS_FUNC_EXIT
+}
diff --git a/maps-plugin-here.changes b/maps-plugin-here.changes
index f7213bc..3890871 100644
--- a/maps-plugin-here.changes
+++ b/maps-plugin-here.changes
@@ -1,3 +1,13 @@
+[Version] maps-plugin-here_0.1.6
+[Date] 10 Nov 2015
+[Title] Fixed to manage dropped requests of PlaceDetails
+[Developer] Seechan Kim <cbible.kim@samsung.com>
+
+[Version] maps-plugin-here_0.1.5
+[Date] 06 Oct 2015
+[Title] Fixed to return more proper error codes
+[Developer] Seechan Kim <cbible.kim@samsung.com>
+
[Version] maps-plugin-here_0.1.4
[Date] 24 Sep 2015
[Title] Fixed to use reference count of handler
diff --git a/packaging/maps-plugin-here.spec b/packaging/maps-plugin-here.spec
index 45e07fe..3da1b69 100755
--- a/packaging/maps-plugin-here.spec
+++ b/packaging/maps-plugin-here.spec
@@ -1,7 +1,7 @@
Name: maps-plugin-here
Summary: Tizen HERE Maps Plug-in Library
-Version: 0.1.4
-Release: 1
+Version: 0.1.7
+Release: 2
Group: Location/Libraries
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
@@ -9,12 +9,23 @@ Source0: %{name}-%{version}.tar.gz
BuildRequires: cmake
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gmodule-2.0)
+BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(capi-maps-service)
BuildRequires: capi-maps-service-plugin-devel
BuildRequires: pkgconfig(heremaps-engine)
BuildRequires: pkgconfig(capi-network-connection)
BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(efl-extension)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(ecore)
+BuildRequires: pkgconfig(evas)
+BuildRequires: gettext-tools
+
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
@@ -53,3 +64,17 @@ cp LICENSE %{buildroot}/usr/share/license/%{name}
%defattr(-,root,root,-)
%{_libdir}/maps/plugins/libmaps-plugin-here.so*
/usr/share/license/maps-plugin-here
+
+%package -n org.tizen.heremaps-uc
+Summary: HereMaps UC popup
+Requires: %{name} = %{version}-%{release}
+
+%description -n org.tizen.heremaps-uc
+HereMaps UC popup
+
+%files -n org.tizen.heremaps-uc
+%manifest heremaps-uc/org.tizen.heremaps-uc.manifest
+%defattr(-,root,root,-)
+/usr/apps/org.tizen.heremaps-uc/bin/*
+/usr/apps/org.tizen.heremaps-uc/res/locale
+/usr/share/packages/org.tizen.heremaps-uc.xml
diff --git a/src/here/here_api.cpp b/src/here/here_api.cpp
index 94de668..9de2ef9 100755
--- a/src/here/here_api.cpp
+++ b/src/here/here_api.cpp
@@ -22,7 +22,6 @@
#include "here_route.h"
#include <common/HereConfig.h>
-
using namespace HERE_PLUGIN_NAMESPACE_PREFIX;
int HerePluginInit(maps_plugin_h *hPlugin)
@@ -30,6 +29,10 @@ int HerePluginInit(maps_plugin_h *hPlugin)
if (!hPlugin)
return HERE_ERROR_INVALID_PARAMETER;
+ here_error_e error = HereManager::CheckAgreement();
+ if (error != HERE_ERROR_NONE)
+ return error;
+
HereManager::Create();
if (!HereManager::GetHandler())
@@ -46,10 +49,7 @@ int HerePluginShutdown(maps_plugin_h hPlugin)
return HERE_ERROR_INVALID_PARAMETER;
if (HereManager::GetHandler())
- {
- HereManager::GetHandler()->TerminateAllServices();
HereManager::GetHandler()->Close();
- }
return HERE_ERROR_NONE;
}
diff --git a/src/here/here_base.cpp b/src/here/here_base.cpp
index bd8a87e..43a7fbe 100644
--- a/src/here/here_base.cpp
+++ b/src/here/here_base.cpp
@@ -16,6 +16,11 @@
#include "here_base.h"
#include "here_manager.h"
+#include <common/CommunicationError.h>
+#include <common/ParserError.h>
+#include <finder/FinderError.h>
+#include <routes/RouterError.h>
+#include <tilefetcher/TileFetcherError.h>
HERE_PLUGIN_BEGIN_NAMESPACE
@@ -25,6 +30,9 @@ HereBase::HereBase()
m_nRestReqId = 0;
m_bCanceled = 0;
m_nReqId = 0;
+
+ m_pCbFunc = NULL;
+ m_pUserData = NULL;
}
HereBase::~HereBase()
@@ -53,4 +61,73 @@ gint HereBase::GetRestReqId(void)
return m_nRestReqId;
}
+gint HereBase::GetErrorCode(const BaseReply& Reply)
+{
+ ErrorBase *pError = (ErrorBase*)Reply.GetError();
+ maps_error_e error = MAPS_ERROR_UNKNOWN;
+ CommunicationError *commErr;
+ FinderError *finderErr;
+ String errMsg = "";
+
+
+ if (pError)
+ {
+ ErrorBase::ErrorCategory category = pError->GetErrorCategory();
+
+ switch(category)
+ {
+ case ErrorBase::ErrorCategory::EC_CommunicationsError:
+ commErr = (CommunicationError*)pError;
+ errMsg = commErr->ToString();
+
+ if (commErr->GetErrorCode() == CommunicationError::ErrorCode::CE_NetworkError)
+ error = MAPS_ERROR_NETWORK_UNREACHABLE;
+ else if (commErr->GetErrorCode() == CommunicationError::ErrorCode::CE_RestEngineError)
+ error = MAPS_ERROR_INVALID_OPERATION;
+ else
+ error = HereUtils::ConvertHttpCodeToMapsError(commErr->GetHttpStatusCode());
+ break;
+
+ case ErrorBase::ErrorCategory::EC_ParserError:
+ errMsg = ((ParserError*)pError)->ToString();
+ error = MAPS_ERROR_INVALID_OPERATION;
+ break;
+
+ case ErrorBase::ErrorCategory::EC_RouterError:
+ errMsg = ((RouterError*)pError)->ToString();
+ error = MAPS_ERROR_INVALID_OPERATION;
+ break;
+
+ case ErrorBase::ErrorCategory::EC_TileMapError:
+ errMsg = ((TileFetcherError*)pError)->ToString();
+ error = MAPS_ERROR_INVALID_OPERATION;
+ break;
+
+ case ErrorBase::ErrorCategory::EC_FinderError:
+ finderErr = (FinderError*)pError;
+ //errMsg = finderErr->ToString();
+
+ if (finderErr->GetErrorType() == FinderError::ErrorType::ET_InvalidQueryArguments)
+ error = MAPS_ERROR_INVALID_PARAMETER;
+ else if (finderErr->GetErrorType() == FinderError::ErrorType::ET_InvalidCredentials)
+ error = MAPS_ERROR_KEY_NOT_AVAILABLE;
+ else
+ error = MAPS_ERROR_INVALID_OPERATION;
+ break;
+ default:
+ error = MAPS_ERROR_INVALID_OPERATION;
+ break;
+ }
+ }
+
+ if (error != MAPS_ERROR_NONE) {
+ if (errMsg.size() > 0) errMsg += ". ";
+ MAPS_LOGE("ERROR: %s%s (%s, %ld)", errMsg.data(),
+ ConverHereErrorToString(ConvertToHereError(error)),
+ ConvertMapsErrorToChar(error), error);
+ }
+
+ return error;
+}
+
HERE_PLUGIN_END_NAMESPACE
diff --git a/src/here/here_base.h b/src/here/here_base.h
index 8d085e0..6d91848 100644
--- a/src/here/here_base.h
+++ b/src/here/here_base.h
@@ -19,6 +19,7 @@
//plug-in header
#include "here_utils.h"
+#include <common/BaseReply.h>
HERE_PLUGIN_BEGIN_NAMESPACE
@@ -41,6 +42,7 @@ public:
gint GetReqId(void);
gint GetRestReqId(void);
+ gint GetErrorCode(const BaseReply& Reply);
protected:
gint m_nReqId;
diff --git a/src/here/here_geocode.cpp b/src/here/here_geocode.cpp
index b00ef61..22f7c65 100755
--- a/src/here/here_geocode.cpp
+++ b/src/here/here_geocode.cpp
@@ -41,7 +41,7 @@ here_error_e HereGeocode::PrepareQuery()
if (m_pQuery)
return HERE_ERROR_PERMISSION_DENIED;
- m_pQuery = new GeoCoderQuery();
+ m_pQuery = new (std::nothrow) GeoCoderQuery();
if (!m_pQuery)
return HERE_ERROR_OUT_OF_MEMORY;
@@ -232,7 +232,7 @@ void HereGeocode::OnGeoCoderReply(const GeoCoderReply& Reply)
if (nResults == 0)
{
((maps_service_geocode_cb)m_pCbFunc)(MAPS_ERROR_NOT_FOUND, m_nReqId,
- 0, 1, NULL, m_pUserData);
+ 0, 0, NULL, m_pUserData);
delete this;
return;
}
@@ -273,5 +273,12 @@ void HereGeocode::OnGeoCoderReply(const GeoCoderReply& Reply)
delete this;
}
+void HereGeocode::OnGeoCoderFailure(const GeoCoderReply& Reply)
+{
+ if (!m_bCanceled)
+ ((maps_service_geocode_cb)m_pCbFunc)((maps_error_e)GetErrorCode(Reply), m_nReqId, 0, 0, NULL, m_pUserData);
+ delete this;
+}
+
HERE_PLUGIN_END_NAMESPACE
diff --git a/src/here/here_geocode.h b/src/here/here_geocode.h
index 4f37176..33567de 100755
--- a/src/here/here_geocode.h
+++ b/src/here/here_geocode.h
@@ -63,6 +63,7 @@ public:
here_error_e StartGeocodeByStructuredAddress(const maps_address_h hAddr);
virtual void OnGeoCoderReply(const GeoCoderReply& Reply);
+ virtual void OnGeoCoderFailure(const GeoCoderReply& Reply);
private:
GeoCoderQuery* m_pQuery;
diff --git a/src/here/here_manager.cpp b/src/here/here_manager.cpp
index 31dcb1e..28178ce 100755
--- a/src/here/here_manager.cpp
+++ b/src/here/here_manager.cpp
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include <sys/types.h>
#include <unistd.h>
+#include <libxml/xpath.h>
#include "here_manager.h"
#include "here_base.h"
@@ -25,8 +25,13 @@
#include "here_route.h"
#include "here_utils.h"
#include <common/HereConfig.h>
+#include <app.h>
+#include <iostream>
+#include <fstream>
+#include <string>
using namespace HERE_PLUGIN_NAMESPACE_PREFIX;
+using namespace TIZEN_MAPS_NAMESPACE_PREFIX;
HERE_PLUGIN_BEGIN_NAMESPACE
@@ -38,7 +43,9 @@ HereManager::HereManager()
: m_nNextReqId(1),
m_hPref(NULL)
{
+ xmlInitParser();
m_hConnection = NULL;
+ pthread_mutex_init(&m_mtxHereList, NULL);
pthread_mutex_init(&g_mtxRef, NULL);
}
@@ -50,7 +57,10 @@ HereManager::~HereManager()
connection_destroy(m_hConnection);
m_hConnection = NULL;
}
+
+ pthread_mutex_destroy(&m_mtxHereList);
pthread_mutex_destroy(&g_mtxRef);
+ xmlCleanupParser();
}
bool HereManager::Create()
@@ -58,9 +68,7 @@ bool HereManager::Create()
bool result = false;
if (!m_pHereManager)
- {
- m_pHereManager = new HereManager();
- }
+ m_pHereManager = new (std::nothrow) HereManager();
pthread_mutex_lock(&g_mtxRef);
if (m_pHereManager)
@@ -71,20 +79,26 @@ bool HereManager::Create()
}
pthread_mutex_unlock(&g_mtxRef);
- m_pHereManager->SetCredentials();
+ if (m_pHereManager)
+ m_pHereManager->SetCredentials();
return result;
}
void HereManager::Close()
{
pthread_mutex_lock(&g_mtxRef);
- if (--m_nRefCnt == 0 && m_pHereManager)
+ bool terminate = (--m_nRefCnt == 0 && m_pHereManager);
+ pthread_mutex_unlock(&g_mtxRef);
+
+ if (terminate)
{
+ m_pHereManager->TerminateAllServices();
+ HereConfig::Shutdown();
+
delete m_pHereManager;
m_pHereManager = NULL;
}
MAPS_LOGD("Closed a HereManager instance (%d).", m_nRefCnt);
- pthread_mutex_unlock(&g_mtxRef);
}
HereManager* HereManager::GetHandler()
@@ -102,26 +116,30 @@ void* HereManager::CreateInstance(HereSvcType nHereSvc, void* pCbFunc,
switch(nHereSvc)
{
case HERE_SVC_GEOCODE:
- pHere = (HereBase*)new HereGeocode(pCbFunc, pUserData, *nReqId);
+ pHere = (HereBase*)new (std::nothrow) HereGeocode(pCbFunc, pUserData, *nReqId);
break;
case HERE_SVC_REV_GEOCODE:
- pHere = (HereBase*)new HereRevGeocode(pCbFunc, pUserData, *nReqId);
+ pHere = (HereBase*)new (std::nothrow) HereRevGeocode(pCbFunc, pUserData, *nReqId);
break;
case HERE_SVC_PLACE:
- pHere = (HereBase*)new HerePlace(pCbFunc, pUserData, *nReqId);
+ pHere = (HereBase*)new (std::nothrow) HerePlace(pCbFunc, pUserData, *nReqId);
break;
case HERE_SVC_ROUTE:
- pHere = (HereBase*)new HereRoute(pCbFunc, pUserData, *nReqId);
+ pHere = (HereBase*)new (std::nothrow) HereRoute(pCbFunc, pUserData, *nReqId);
break;
default:
return NULL;
}
- m_HereList.push_back(pHere);
+ pthread_mutex_lock(&m_mtxHereList);
+ if (pHere)
+ m_HereList.push_back(pHere);
+ pthread_mutex_unlock(&m_mtxHereList);
+
return pHere;
}
@@ -129,6 +147,7 @@ here_error_e HereManager::CloseInstance(int nReqId)
{
HereSvcList::iterator it;
+ pthread_mutex_lock(&m_mtxHereList);
for (it = m_HereList.begin(); it != m_HereList.end(); it++)
{
if ((*it)->GetReqId() == nReqId)
@@ -137,6 +156,8 @@ here_error_e HereManager::CloseInstance(int nReqId)
break;
}
}
+ pthread_mutex_unlock(&m_mtxHereList);
+
return HERE_ERROR_NONE;
}
@@ -144,6 +165,7 @@ here_error_e HereManager::CancelInstance(int nReqId)
{
HereSvcList::iterator it;
+ pthread_mutex_lock(&m_mtxHereList);
for (it = m_HereList.begin(); it != m_HereList.end(); it++)
{
if ((*it)->GetReqId() == nReqId)
@@ -151,9 +173,12 @@ here_error_e HereManager::CancelInstance(int nReqId)
m_HereList.erase(it);
RestItemHandle::Cancel((*it)->GetRestReqId());
(*it)->TerminateService();
+ pthread_mutex_unlock(&m_mtxHereList);
return HERE_ERROR_NONE;
}
}
+ pthread_mutex_unlock(&m_mtxHereList);
+
return HERE_ERROR_NOT_FOUND;
}
@@ -312,24 +337,25 @@ maps_preference_h HereManager::GetPreference()
void HereManager::TerminateAllServices(void)
{
- if (m_nRefCnt > 0) return;
-
-
HereSvcList::iterator it;
while (1)
{
+ pthread_mutex_lock(&m_mtxHereList);
if (m_HereList.empty())
{
+ pthread_mutex_unlock(&m_mtxHereList);
break;
}
it = m_HereList.begin();
+ pthread_mutex_unlock(&m_mtxHereList);
try {
+ if (*it) (*it)->TerminateService();
m_HereList.erase(it);
- (*it)->TerminateService();
}
catch (std::exception &e) {
+ MAPS_LOGD("Exception caught: %s", e.what());
}
};
@@ -457,5 +483,58 @@ void HereManager::NetworkStateChangedIndCb(connection_type_e type, void *user_da
pManager->SetProxyAddress();
}
+here_error_e HereManager::CheckAgreement()
+{
+ const char UTC_TPK_APP[] = "org.tizen.capi-maps-service-native-utc";
+ const char ITC_TPK_APP[] = "org.tizen.capi-maps-service-native-itc";
+ const char UTC_APP[] = "core.capi-maps-service-tests";
+ const char ITC_APP[] = "native.capi-maps-service-itc";
+
+ char *strAppId = NULL;
+ here_error_e error = HERE_ERROR_NONE;
+
+ pid_t nProcessId = getpid();
+ int nRet = app_manager_get_app_id(nProcessId, &strAppId);
+ if (nRet != APP_MANAGER_ERROR_NONE)
+ {
+ MAPS_LOGI("Get app_id [%ld]. nRet[%d]", nProcessId, nRet);
+ error = HERE_ERROR_SERVICE_NOT_AVAILABLE;
+ }
+ else if (strncmp(strAppId, UTC_APP, strlen(UTC_APP)) &&
+ strncmp(strAppId, ITC_APP, strlen(ITC_APP)) &&
+ strncmp(strAppId, UTC_TPK_APP, strlen(UTC_TPK_APP)) &&
+ strncmp(strAppId, ITC_TPK_APP, strlen(ITC_TPK_APP)) &&
+ !HereManager::GetAgreement())
+ {
+ MAPS_LOGD("Not agreed yet");
+ error = HERE_ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ g_free(strAppId);
+ return error;
+}
+
+bool HereManager::GetAgreement(void)
+{
+ std::ifstream file (UC_FILE);
+ bool isAgree = false;
+ std::string line;
+ std::string value;
+
+ if (file.is_open()) {
+ getline(file, line);
+ value = line.substr(6);
+ if (value.compare("Yes") == 0)
+ isAgree = true;
+ else
+ MAPS_LOGD("UC was set No");
+ file.close();
+ } else {
+ MAPS_LOGD("UC file open fail. %s (%d)", strerror(errno), errno);
+ }
+
+ return isAgree;
+}
+
HERE_PLUGIN_END_NAMESPACE
diff --git a/src/here/here_manager.h b/src/here/here_manager.h
index f68a5ea..c73cdfd 100755
--- a/src/here/here_manager.h
+++ b/src/here/here_manager.h
@@ -39,6 +39,8 @@
#include <common/ApplicationContext.h>
#include <common/HereConfig.h>
+#define UC_FILE "/opt/usr/apps/org.tizen.heremaps-uc/shared/data/heremaps_uc.xml"
+
HERE_PLUGIN_BEGIN_NAMESPACE
class HereManager;
@@ -82,6 +84,8 @@ public:
static bool Create();
static HereManager* GetHandler();
static void Close();
+ static here_error_e CheckAgreement();
+ static bool GetAgreement(void);
private:
here_error_e SetCredentials();
@@ -96,6 +100,7 @@ protected:
HereSvcList m_HereList;
gint m_nNextReqId;
maps_preference_h m_hPref;
+ pthread_mutex_t m_mtxHereList;
};
HERE_PLUGIN_END_NAMESPACE
diff --git a/src/here/here_place.cpp b/src/here/here_place.cpp
index 53432c7..b42cb5f 100755
--- a/src/here/here_place.cpp
+++ b/src/here/here_place.cpp
@@ -29,7 +29,9 @@ HerePlace::HerePlace(void *pCbFunc, void *pUserData, int nReqId)
m_nReplyCnt = 0;
m_nReplyIdx = 0;
+ m_bReplyFlushed = false;
m_szSortBy = NULL;
+ m_bPlaceDetailsInternal = false;
}
HerePlace::~HerePlace()
@@ -58,7 +60,7 @@ here_error_e HerePlace::PrepareDiscoveryQuery()
if (m_pDiscoveryQuery)
return HERE_ERROR_PERMISSION_DENIED;
- m_pDiscoveryQuery = new DiscoveryQuery();
+ m_pDiscoveryQuery = new (std::nothrow) DiscoveryQuery();
if (!m_pDiscoveryQuery)
return HERE_ERROR_OUT_OF_MEMORY;
@@ -239,8 +241,11 @@ here_error_e HerePlace::StartDiscoveryPlaceByAddress(const char *szAddr, maps_ar
m_pDiscoveryQuery->SetType(DiscoveryQuery::QT_SEARCH);
String szSearchText = szAddr;
- if (m_pDiscoveryQuery->GetSearchText().size())
+ if (m_pDiscoveryQuery->GetSearchText().size() > 0 &&
+ szSearchText != m_pDiscoveryQuery->GetSearchText())
+ {
szSearchText += " " + m_pDiscoveryQuery->GetSearchText();
+ }
m_pDiscoveryQuery->SetSearchText(szSearchText);
maps_area_s *pArea = (maps_area_s*)hArea;
@@ -275,7 +280,7 @@ here_error_e HerePlace::PreparePlaceDetailsQuery()
if (m_pPlaceDetailsQuery)
return HERE_ERROR_PERMISSION_DENIED;
- m_pPlaceDetailsQuery = new PlaceDetailsQuery();
+ m_pPlaceDetailsQuery = new (std::nothrow) PlaceDetailsQuery();
if (!m_pPlaceDetailsQuery)
return HERE_ERROR_OUT_OF_MEMORY;
@@ -326,7 +331,7 @@ here_error_e HerePlace::StartPlaceDetailsInternal(const char *szUrl)
std::unique_ptr<PlaceDetailsQuery> pPlaceDetailsQuery (new (std::nothrow)PlaceDetailsQuery());
-
+ m_bPlaceDetailsInternal = true;
bool bExcuted = (int)(pPlaceDetailsQuery->Execute(*this, NULL, szUrl) > 0);
return (bExcuted ? HERE_ERROR_NONE : HERE_ERROR_INVALID_OPERATION);
@@ -334,12 +339,6 @@ here_error_e HerePlace::StartPlaceDetailsInternal(const char *szUrl)
void HerePlace::OnDiscoverReply (const DiscoveryReply &Reply)
{
- if (m_bCanceled) /* ignore call back if it was cancelled. */
- {
- delete this;
- return;
- }
-
maps_place_h mapsPlace;
PlaceItemList herePlaceList = Reply.GetPlaceItems();
PlaceItemList::iterator herePlaceIt;
@@ -358,22 +357,14 @@ void HerePlace::OnDiscoverReply (const DiscoveryReply &Reply)
m_nReplyIdx = 0;
m_nReplyCnt = herePlaceList.size() + hereSearchList.size();
- if (m_nReplyCnt == 0)
- {
- ((maps_service_search_place_cb)m_pCbFunc)(MAPS_ERROR_NOT_FOUND, m_nReqId,
- 0, 1, NULL, m_pUserData);
- delete this;
- return;
- }
-
for (herePlaceIt = herePlaceList.begin();
- herePlaceIt != herePlaceList.end() && !m_bCanceled;
+ herePlaceIt != herePlaceList.end();
herePlaceIt++)
{
- isPending = false;
-
if ((error = maps_place_create(&mapsPlace)) == MAPS_ERROR_NONE)
{
+ isPending = false;
+
/* title, uri, id */
hereLinkObj = herePlaceIt->GetLinkObject();
@@ -462,22 +453,28 @@ void HerePlace::OnDiscoverReply (const DiscoveryReply &Reply)
hereLinkObj = herePlaceIt->GetLinkObject();
if (!hereLinkObj.GetHref().empty() && !hereLinkObj.GetId().empty())
{
- m_PlaceList.push_back(mapsPlace);
- isPending = true;
- StartPlaceDetailsInternal(hereLinkObj.GetHref().c_str());
- MAPS_LOGD("Add maps_place_h to the pending list. id=%s", hereLinkObj.GetId().data());
+ if (StartPlaceDetailsInternal(hereLinkObj.GetHref().c_str()) == HERE_ERROR_NONE)
+ {
+ m_PlaceList.push_back(mapsPlace);
+ isPending = true;
+ MAPS_LOGD("Add maps_place_h to the pending list. id=%s", hereLinkObj.GetId().data());
+ }
}
}
- }
- if (!isPending) {
- m_nReplyIdx++;
- m_PlaceList.push_back(mapsPlace);
+ if (!isPending) {
+ m_nReplyIdx++;
+ m_PlaceList.push_back(mapsPlace);
+ }
+ }
+ else
+ {
+ m_nReplyCnt--;
}
}
for (hereSearchIt = hereSearchList.begin();
- hereSearchIt != hereSearchList.end() && !m_bCanceled;
+ hereSearchIt != hereSearchList.end();
hereSearchIt++)
{
error = maps_place_create(&mapsPlace);
@@ -513,43 +510,48 @@ void HerePlace::OnDiscoverReply (const DiscoveryReply &Reply)
/* type */
if (!is_valid)
+ {
+ m_nReplyCnt--;
error = MAPS_ERROR_NOT_FOUND;
+ maps_place_destroy(mapsPlace);
+ mapsPlace = NULL;
+ }
+ else
+ {
+ m_PlaceList.push_back(mapsPlace);
+ m_nReplyIdx++;
+ }
+ }
+ else
+ {
+ m_nReplyCnt--;
}
-
- m_PlaceList.push_back(mapsPlace);
- m_nReplyIdx++;
}
- if (m_nReplyIdx == m_nReplyCnt - 1)
+ if (!m_bReplyFlushed && (m_nReplyCnt == 0 || m_nReplyIdx == m_nReplyCnt))
{
- __sortList(m_PlaceList);
-
- m_nReplyIdx = 0;
- while (m_nReplyIdx < m_nReplyCnt && !m_bCanceled && !m_PlaceList.empty())
- {
- mapsPlace = m_PlaceList.front();
- m_PlaceList.pop_front();
+ if (m_nReplyCnt == 0)
+ error = MAPS_ERROR_NOT_FOUND;
- /* callback function */
- if (((maps_service_search_place_cb)m_pCbFunc)((maps_error_e)error, m_nReqId,
- m_nReplyIdx++, m_nReplyCnt, mapsPlace, m_pUserData) == FALSE)
- {
- break;
- }
- }
+ __flushReplies(error);
delete this;
}
}
-void HerePlace::OnPlaceDetailsReply (const PlaceDetailsReply &Reply)
+void HerePlace::OnDiscoverFailure(const DiscoveryReply& Reply)
{
- if (m_bCanceled) /* ignore call back if it was cancelled. */
+ if (!m_bReplyFlushed)
{
+ m_nReplyIdx = 0;
+ m_nReplyCnt = 0;
+ __flushReplies((maps_error_e)GetErrorCode(Reply));
delete this;
- return;
}
+}
+void HerePlace::OnPlaceDetailsReply (const PlaceDetailsReply &Reply)
+{
if (m_nReplyCnt == 0)
m_nReplyCnt = 1;
@@ -571,8 +573,8 @@ void HerePlace::OnPlaceDetailsReply (const PlaceDetailsReply &Reply)
{
mapsPlace = *it;
isPending = true;
+ MAPS_LOGD("Found maps_place_h in the pending list. id=%s", placeId);
g_free(placeId);
- MAPS_LOGD("Found maps_place_h (%p) which is pending since DiscoveryReply", mapsPlace);
break;
}
}
@@ -632,37 +634,56 @@ void HerePlace::OnPlaceDetailsReply (const PlaceDetailsReply &Reply)
ProcessPlaceRatings(herePlace, mapsPlace);
ProcessPlaceRated(herePlace, mapsPlace);
+
+ if (!isPending)
+ m_PlaceList.push_back(mapsPlace);
+
+ m_nReplyIdx++;
}
else
{
+ m_nReplyCnt--;
error = MAPS_ERROR_NOT_FOUND;
+ maps_place_destroy(mapsPlace);
+ mapsPlace = NULL;
}
}
+ else
+ {
+ m_nReplyCnt--;
+ }
- if (!isPending)
- m_PlaceList.push_back(mapsPlace);
-
- m_nReplyIdx++;
+ if (!m_bReplyFlushed && (m_nReplyCnt == 0 || m_nReplyIdx == m_nReplyCnt))
+ {
+ if (m_nReplyCnt == 0)
+ error = MAPS_ERROR_NOT_FOUND;
+ __flushReplies(error);
+ delete this;
+ }
+}
- if (m_nReplyIdx == m_nReplyCnt - 1)
+void HerePlace::OnPlaceDetailsFailure(const PlaceDetailsReply& Reply)
+{
+ if (!m_bPlaceDetailsInternal)
{
- __sortList(m_PlaceList);
-
- m_nReplyIdx = 0;
- while (m_nReplyIdx < m_nReplyCnt && !m_bCanceled && !m_PlaceList.empty())
+ if (!m_bReplyFlushed)
{
- mapsPlace = m_PlaceList.front();
- m_PlaceList.pop_front();
-
- /* callback function */
- if (((maps_service_search_place_cb)m_pCbFunc)((maps_error_e)error, m_nReqId,
- m_nReplyIdx++, m_nReplyCnt, mapsPlace, m_pUserData) == FALSE)
- {
- break;
- }
+ m_nReplyIdx = 0;
+ m_nReplyCnt = 0;
+ __flushReplies(GetErrorCode(Reply));
+ delete this;
+ }
+ }
+ else
+ {
+ m_nReplyIdx++;
+ MAPS_LOGD("Internal error during updating detailed information for the place. (%d/%d)", m_nReplyIdx, m_nReplyCnt);
+ if (!m_bReplyFlushed && (m_nReplyIdx == m_nReplyCnt))
+ {
+ __flushReplies(MAPS_ERROR_NONE);
+ delete this;
}
- delete this;
}
}
@@ -1178,6 +1199,41 @@ void HerePlace::ProcessPlaceRated(PlaceDetails herePlace, maps_place_h mapsPlace
maps_place_link_object_destroy(mapsRelated);
}
+void HerePlace::__flushReplies(int error)
+{
+ maps_place_h mapsPlace;
+ bool bCallbackCanceled = false;
+ int nReplyIdx = 0;
+
+ if (m_bReplyFlushed) return;
+ m_bReplyFlushed = true;
+
+ __sortList(m_PlaceList);
+
+ while ((nReplyIdx < m_nReplyCnt) ||
+ (error != MAPS_ERROR_NONE && nReplyIdx == 0 && m_nReplyCnt == 0) /* reply with only error */
+ )
+ {
+ mapsPlace = NULL;
+ if (!m_PlaceList.empty())
+ {
+ mapsPlace = m_PlaceList.front();
+ m_PlaceList.pop_front();
+ }
+
+ if (m_bCanceled || bCallbackCanceled)
+ {
+ maps_place_destroy(mapsPlace);
+ }
+ else if (((maps_service_search_place_cb)m_pCbFunc)((maps_error_e)error, m_nReqId,
+ nReplyIdx, m_nReplyCnt, mapsPlace, m_pUserData) == FALSE)
+ {
+ bCallbackCanceled = true;
+ }
+ nReplyIdx++;
+ }
+}
+
bool HerePlace::__compareWithTitle(const maps_place_h &item1, const maps_place_h &item2)
{
bool result = false;
diff --git a/src/here/here_place.h b/src/here/here_place.h
index febdc24..0cc4338 100755
--- a/src/here/here_place.h
+++ b/src/here/here_place.h
@@ -84,7 +84,10 @@ public:
here_error_e StartPlaceDetailsInternal(const char* szUrl);
virtual void OnDiscoverReply(const DiscoveryReply &Reply);
+ virtual void OnDiscoverFailure(const DiscoveryReply& Reply);
+
virtual void OnPlaceDetailsReply(const PlaceDetailsReply &Reply);
+ virtual void OnPlaceDetailsFailure(const PlaceDetailsReply& Reply);
private:
void ProcessPlaceLocation(PlaceDetails herePlace, maps_place_h mapsPlace);
@@ -97,6 +100,7 @@ private:
void ProcessPlaceRated(PlaceDetails herePlace, maps_place_h mapsPlace);
void __sortList(PlaceList &list);
+ void __flushReplies(int error);
static bool __compareWithTitle(const maps_place_h &item1, const maps_place_h &item2);
static bool __compareWithId(const maps_place_h &item1, const maps_place_h &item2);
static bool __compareWithType(const maps_place_h &item1, const maps_place_h &item2);
@@ -110,9 +114,11 @@ private:
PlaceDetailsQuery* m_pPlaceDetailsQuery;
int m_nReplyCnt;
int m_nReplyIdx;
+ bool m_bReplyFlushed;
char *m_szSortBy;
+ bool m_bPlaceDetailsInternal;
- PlaceList m_PlaceList;;
+ PlaceList m_PlaceList;
static const bool __sending_place_details_query_automatically = TRUE;
};
diff --git a/src/here/here_revgeocode.cpp b/src/here/here_revgeocode.cpp
index 1e7d273..e4f8bce 100755
--- a/src/here/here_revgeocode.cpp
+++ b/src/here/here_revgeocode.cpp
@@ -41,7 +41,7 @@ here_error_e HereRevGeocode::PrepareQuery()
if (m_pQuery)
return HERE_ERROR_PERMISSION_DENIED;
- m_pQuery = new ReverseGeoCoderQuery();
+ m_pQuery = new (std::nothrow) ReverseGeoCoderQuery();
if (!m_pQuery)
return HERE_ERROR_OUT_OF_MEMORY;
@@ -131,7 +131,7 @@ void HereRevGeocode::OnGeoCoderReply(const GeoCoderReply& Reply)
if (nShortestIdx < 0)
{
((maps_service_reverse_geocode_cb)m_pCbFunc)(MAPS_ERROR_NOT_FOUND,
- m_nReqId, 0, 1, NULL, m_pUserData);
+ m_nReqId, 0, 0, NULL, m_pUserData);
delete this;
return;
}
@@ -191,5 +191,12 @@ void HereRevGeocode::OnGeoCoderReply(const GeoCoderReply& Reply)
delete this;
}
+void HereRevGeocode::OnGeoCoderFailure(const GeoCoderReply& Reply)
+{
+ if (!m_bCanceled)
+ ((maps_service_reverse_geocode_cb)m_pCbFunc)((maps_error_e)GetErrorCode(Reply), m_nReqId, 0, 0, NULL, m_pUserData);
+ delete this;
+}
+
HERE_PLUGIN_END_NAMESPACE
diff --git a/src/here/here_revgeocode.h b/src/here/here_revgeocode.h
index 30f827f..7a75b91 100755
--- a/src/here/here_revgeocode.h
+++ b/src/here/here_revgeocode.h
@@ -59,6 +59,7 @@ public:
here_error_e StartRevGeocode(maps_item_hashtable_h hPref);
virtual void OnGeoCoderReply(const GeoCoderReply& Reply);
+ virtual void OnGeoCoderFailure(const GeoCoderReply& Reply);
private:
ReverseGeoCoderQuery* m_pQuery;
diff --git a/src/here/here_route.cpp b/src/here/here_route.cpp
index 58cb5fe..aa1abfb 100755
--- a/src/here/here_route.cpp
+++ b/src/here/here_route.cpp
@@ -42,7 +42,7 @@ here_error_e HereRoute::PrepareQuery()
return HERE_ERROR_PERMISSION_DENIED;
GeoCoordinates origCoord, destCoord;
- m_pQuery = new GeoRouteQuery(origCoord, destCoord);
+ m_pQuery = new (std::nothrow) GeoRouteQuery(origCoord, destCoord);
if (!m_pQuery)
return HERE_ERROR_OUT_OF_MEMORY;
@@ -211,7 +211,7 @@ void HereRoute::OnRouteReply(const GeoRouteReply& Reply)
if (nReplyNum == 0)
{
((maps_service_search_route_cb)m_pCbFunc)(MAPS_ERROR_NOT_FOUND, m_nReqId,
- 0, 1, NULL, m_pUserData);
+ 0, 0, NULL, m_pUserData);
delete this;
return;
}
@@ -305,6 +305,12 @@ void HereRoute::OnRouteReply(const GeoRouteReply& Reply)
delete this;
}
+void HereRoute::OnRouteFailure(const GeoRouteReply& Reply)
+{
+ if (!m_bCanceled)
+ ((maps_service_search_route_cb)m_pCbFunc)((maps_error_e)GetErrorCode(Reply), m_nReqId, 0, 0, NULL, m_pUserData);
+ delete this;
+}
maps_error_e HereRoute::ProcessSegments(maps_route_h mapsRoute, const RouteSegmentList& hereSegmList)
{
diff --git a/src/here/here_route.h b/src/here/here_route.h
index c1ecb96..0aab609 100755
--- a/src/here/here_route.h
+++ b/src/here/here_route.h
@@ -59,6 +59,7 @@ public:
here_error_e StartRoute(void);
virtual void OnRouteReply(const GeoRouteReply& Reply);
+ virtual void OnRouteFailure(const GeoRouteReply& Reply);
private:
maps_error_e ProcessSegments(maps_route_h mapsRoute, const RouteSegmentList& hereSegmList);
diff --git a/src/here/here_utils.cpp b/src/here/here_utils.cpp
index 9cc2c47..60f1fb9 100755
--- a/src/here/here_utils.cpp
+++ b/src/here/here_utils.cpp
@@ -15,6 +15,7 @@
*/
#include "here_utils.h"
+#include <common/CommunicationError.h>
static const double LATITUDE_RANGE = 85.05113;
@@ -66,6 +67,50 @@ int ConvertToHereError(int nErr)
}
return HERE_ERROR_UNKNOWN;
}
+
+const char* ConverHereErrorToString(int nErr)
+{
+ switch (nErr)
+ {
+ case HERE_ERROR_NONE: return "No errors";
+ case HERE_ERROR_PERMISSION_DENIED: return "Permission denied";
+ case HERE_ERROR_OUT_OF_MEMORY: return "Out of memory";
+ case HERE_ERROR_INVALID_PARAMETER: return "Invalid Parameter";
+ case HERE_ERROR_NOT_SUPPORTED: return "Not suppoerted";
+ case HERE_ERROR_CONNECTION_TIME_OUT: return "Connection time out";
+ case HERE_ERROR_NETWORK_UNREACHABLE: return "Network unreachable";
+ case HERE_ERROR_INVALID_OPERATION: return "Invalid operation";
+ case HERE_ERROR_KEY_NOT_AVAILABLE: return "Key not available";
+ case HERE_ERROR_RESOURCE_BUSY: return "Resource busy";
+ case HERE_ERROR_CANCELED: return "Canceled";
+ case HERE_ERROR_UNKNOWN: return "Unknown";
+ case HERE_ERROR_SERVICE_NOT_AVAILABLE: return "Service not available";
+ case HERE_ERROR_NOT_FOUND: return "Not found";
+ }
+ return "Unknown";
+}
+
+const char* ConvertMapsErrorToChar(int nErr)
+{
+ switch (nErr)
+ {
+ case MAPS_ERROR_NONE: return "MAPS_ERROR_NONE";
+ case MAPS_ERROR_PERMISSION_DENIED: return "MAPS_ERROR_PERMISSION_DENIED";
+ case MAPS_ERROR_OUT_OF_MEMORY: return "MAPS_ERROR_OUT_OF_MEMORY";
+ case MAPS_ERROR_INVALID_PARAMETER: return "MAPS_ERROR_INVALID_PARAMETER";
+ case MAPS_ERROR_NOT_SUPPORTED: return "MAPS_ERROR_NOT_SUPPORTED";
+ case MAPS_ERROR_CONNECTION_TIME_OUT: return "MAPS_ERROR_CONNECTION_TIME_OUT";
+ case MAPS_ERROR_NETWORK_UNREACHABLE: return "MAPS_ERROR_NETWORK_UNREACHABLE";
+ case MAPS_ERROR_INVALID_OPERATION: return "MAPS_ERROR_INVALID_OPERATION";
+ case MAPS_ERROR_KEY_NOT_AVAILABLE: return "MAPS_ERROR_KEY_NOT_AVAILABLE";
+ case MAPS_ERROR_RESOURCE_BUSY: return "MAPS_ERROR_RESOURCE_BUSY";
+ case MAPS_ERROR_CANCELED: return "MAPS_ERROR_CANCELED";
+ case MAPS_ERROR_UNKNOWN: return "MAPS_ERROR_UNKNOWN";
+ case MAPS_ERROR_SERVICE_NOT_AVAILABLE: return "MAPS_ERROR_SERVICE_NOT_AVAILABLE";
+ case MAPS_ERROR_NOT_FOUND: return "MAPS_ERROR_NOT_FOUND";
+ }
+ return "MAPS_ERROR_UNKNOWN";
+}
}
@@ -179,6 +224,45 @@ Maneuver::InstructionDirection HereUtils::Convert(maps_route_turn_type_e nVal)
return Maneuver::ID_NoDirection;
}
+maps_error_e HereUtils::ConvertHttpCodeToMapsError(int nVal)
+{
+ switch (nVal)
+ {
+ case 200:/*Ok*/ return MAPS_ERROR_NONE;
+ case 408:/*Request timeout*/
+ case 504:/*Gateway timeout*/
+ case 598:/*Network reading timeout*/
+ case 599:/*Network connection timeout*/ return MAPS_ERROR_CONNECTION_TIME_OUT;
+
+ case 404:/*Not found*/
+ case 407:/*Proxy auth. required*/
+ case 502:/*Bad gateway*/ return MAPS_ERROR_NETWORK_UNREACHABLE;
+
+ case 401:/*Unauthorized*/
+ case 402:/*Payment required*/ return MAPS_ERROR_KEY_NOT_AVAILABLE;
+
+ case 405:/*Method not allowed*/
+ case 413:/*Request entity too larget*/
+ case 414:/*Request uri too large*/ return MAPS_ERROR_INVALID_OPERATION;
+
+ case 403:/*Forbidden*/
+ case 500:/*Server internal error*/
+ case 501:/*Not implemented*/
+ case 503:/*Service unavailable*/ return MAPS_ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ if (nVal > 0 && nVal < 100) // curl error code
+ return MAPS_ERROR_NETWORK_UNREACHABLE;
+
+ if (nVal >= 400 && nVal < 500) // http code 4xx (client-side error)
+ return MAPS_ERROR_INVALID_OPERATION;
+
+ if (nVal >= 500 && nVal < 600) // http code 5xx (server-side error)
+ return MAPS_ERROR_SERVICE_NOT_AVAILABLE;
+
+ return MAPS_ERROR_UNKNOWN;
+}
+
GeoBoundingBox& HereUtils::Convert(maps_area_h hArea, GeoBoundingBox& Box)
{
maps_area_s* area_s = (maps_area_s*)hArea;
diff --git a/src/here/here_utils.h b/src/here/here_utils.h
index bcd1abf..3a54031 100755
--- a/src/here/here_utils.h
+++ b/src/here/here_utils.h
@@ -97,6 +97,8 @@ extern "C"
{
int ConvertToMapsError(int nRet);
int ConvertToHereError(int nRet);
+ const char* ConverHereErrorToString(int nErr);
+ const char* ConvertMapsErrorToChar(int nErr);
}
HERE_PLUGIN_BEGIN_NAMESPACE
@@ -129,6 +131,7 @@ public:
static void Convert(String strUtf8, WString& strUtf16);
static void Convert(WString strUtf16, String& strUtf8);
static GeoBoundingBox& Convert(const char *src, GeoBoundingBox &box);
+ static maps_error_e ConvertHttpCodeToMapsError(int nVal);
static bool IsValid(GeoCoordinates geoCoord);
static bool IsValid(maps_coordinates_s geoCoord);