Terminate HereView when closing HereManager 69/161569/1 accepted/tizen/unified/20171128.050041 submit/tizen/20171127.095915
authorchanywa <cbible.kim@samsung.com>
Fri, 24 Nov 2017 07:10:38 +0000 (16:10 +0900)
committerchanywa <cbible.kim@samsung.com>
Fri, 24 Nov 2017 07:10:38 +0000 (16:10 +0900)
Change-Id: I31a470fd2274282b42c9de731854dc83cf0c7b4c

12 files changed:
inc/here_view.h
lib/aarch64/libheremaps-engine.so.1
lib/aarch64/libheremaps-engine.so.1.0.6_36 [moved from lib/aarch64/libheremaps-engine.so.1.0.6_35 with 71% similarity]
lib/armv7l/libheremaps-engine.so.1
lib/armv7l/libheremaps-engine.so.1.0.6_36 [moved from lib/armv7l/libheremaps-engine.so.1.0.6_35 with 69% similarity]
lib/i586/libheremaps-engine.so.1
lib/i586/libheremaps-engine.so.1.0.6_36 [moved from lib/i586/libheremaps-engine.so.1.0.6_35 with 70% similarity]
lib/x86_64/libheremaps-engine.so.1
lib/x86_64/libheremaps-engine.so.1.0.6_36 [moved from lib/x86_64/libheremaps-engine.so.1.0.6_35 with 72% similarity]
maps-plugin-here.changes
packaging/maps-plugin-here.spec
src/here_view.cpp

index cb6dc91..82e6a60 100644 (file)
@@ -68,6 +68,7 @@ public:
                                                                maps_view_object_operation_e operation);
        here_error_e getViewScale(maps_view_h view, double *scale);
        here_error_e setViewScale(maps_view_h view, double scale);
+       void TerminateService();
 
 private:
        here_error_e initOpenGL();
@@ -92,6 +93,7 @@ private:
        Evas_GL_API     *__api;
 
        bool __isInitialized;
+       bool __isShutdown;
 
        int __x, __y, __w, __h;
 
index a9e2ae1..837604d 120000 (symlink)
@@ -1 +1 @@
-libheremaps-engine.so.1.0.6_35
\ No newline at end of file
+libheremaps-engine.so.1.0.6_36
\ No newline at end of file
similarity index 71%
rename from lib/aarch64/libheremaps-engine.so.1.0.6_35
rename to lib/aarch64/libheremaps-engine.so.1.0.6_36
index 5bf425b..1e5cbb7 100755 (executable)
Binary files a/lib/aarch64/libheremaps-engine.so.1.0.6_35 and b/lib/aarch64/libheremaps-engine.so.1.0.6_36 differ
index a9e2ae1..837604d 120000 (symlink)
@@ -1 +1 @@
-libheremaps-engine.so.1.0.6_35
\ No newline at end of file
+libheremaps-engine.so.1.0.6_36
\ No newline at end of file
similarity index 69%
rename from lib/armv7l/libheremaps-engine.so.1.0.6_35
rename to lib/armv7l/libheremaps-engine.so.1.0.6_36
index b55291d..0f7ce59 100755 (executable)
Binary files a/lib/armv7l/libheremaps-engine.so.1.0.6_35 and b/lib/armv7l/libheremaps-engine.so.1.0.6_36 differ
index a9e2ae1..837604d 120000 (symlink)
@@ -1 +1 @@
-libheremaps-engine.so.1.0.6_35
\ No newline at end of file
+libheremaps-engine.so.1.0.6_36
\ No newline at end of file
similarity index 70%
rename from lib/i586/libheremaps-engine.so.1.0.6_35
rename to lib/i586/libheremaps-engine.so.1.0.6_36
index e8e81db..d726384 100755 (executable)
Binary files a/lib/i586/libheremaps-engine.so.1.0.6_35 and b/lib/i586/libheremaps-engine.so.1.0.6_36 differ
index a9e2ae1..837604d 120000 (symlink)
@@ -1 +1 @@
-libheremaps-engine.so.1.0.6_35
\ No newline at end of file
+libheremaps-engine.so.1.0.6_36
\ No newline at end of file
similarity index 72%
rename from lib/x86_64/libheremaps-engine.so.1.0.6_35
rename to lib/x86_64/libheremaps-engine.so.1.0.6_36
index e54b8c2..84be725 100755 (executable)
Binary files a/lib/x86_64/libheremaps-engine.so.1.0.6_35 and b/lib/x86_64/libheremaps-engine.so.1.0.6_36 differ
index 30c0f80..b8a43cf 100644 (file)
@@ -1,3 +1,8 @@
+[Version]   maps-plugin-here_0.3.31
+[Date]      24 Nov 2017
+[Title]     Terminate HereView when destroying HereManager
+[Developer] Seechan Kim <cbible.kim@samsung.com>
+
 [Version]   maps-plugin-here_0.3.30
 [Date]      02 Nov 2017
 [Title]     Revice the capability of pending requests
index cdf788d..a2328b3 100644 (file)
@@ -1,6 +1,6 @@
 Name:       maps-plugin-here
 Summary:    Tizen HERE Maps Plug-in Library
-Version:    0.3.30
+Version:    0.3.31
 Release:    1
 Group:      Location/Libraries
 License:    Apache-2.0 and HERE
index f5e1f5c..423b1f7 100644 (file)
@@ -36,6 +36,7 @@ HereView::HereView()
        __api = NULL;
 
        __isInitialized = false;
+       __isShutdown = false;
 
        __x = 0;
        __y = 0;
@@ -51,6 +52,15 @@ HereView::~HereView()
 {
 }
 
+void HereView::TerminateService(void)
+{
+       if (!__isShutdown) {
+               MAPS_LOGD("close HereView");
+               close(NULL);
+       }
+       delete this;
+}
+
 here_error_e HereView::init(maps_view_h view, maps_plugin_map_view_ready_cb callback)
 {
        if (!view)
@@ -178,18 +188,20 @@ here_error_e HereView::initMap(maps_view_h view,  maps_plugin_map_view_ready_cb
 
 here_error_e HereView::close(maps_view_h view)
 {
-       if (!view)
-               return HERE_ERROR_INVALID_PARAMETER;
+       MAPS_LOGD("close");
 
        __isInitialized = false;
+       __isShutdown = true;
 
        __visualObjects.set(NULL, NULL);
 
        if (__img)
                evas_object_image_pixels_get_callback_set(__img, NULL, NULL);
 
-       if (__idler)
+       if (__idler) {
                ecore_idler_del(__idler);
+               __idler = NULL;
+       }
 
        if (__map) {
                __map->SetUpdateMapSignal(NULL);
@@ -478,8 +490,9 @@ Eina_Bool HereView::__idlerCb(void *data)
 {
        HereView *hv = NULL;
        int maps_error = maps_view_get_maps_plugin_view_handle(data, (void**)&hv);
-       if (maps_error != MAPS_ERROR_NONE || !hv) return true;
-       if (!hv->__map || !hv->__map->GetRootPixmap()) return true;
+       if (maps_error != MAPS_ERROR_NONE || !hv) return ECORE_CALLBACK_CANCEL;
+       if (hv->__isShutdown) return ECORE_CALLBACK_CANCEL;
+       if (!hv->__map || !hv->__map->GetRootPixmap()) return ECORE_CALLBACK_RENEW;
 
        while (hv->__pendingObjects.size()) {
                PendingObject pending = hv->__pendingObjects.front();
@@ -489,7 +502,7 @@ Eina_Bool HereView::__idlerCb(void *data)
 
                __processViewObject(data, object, operation);
        }
-       return true;
+       return ECORE_CALLBACK_RENEW;
 }
 
 void HereView::__processViewObject(maps_view_h view, const maps_view_object_h object, maps_view_object_operation_e operation)