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();
Evas_GL_API *__api;
bool __isInitialized;
+ bool __isShutdown;
int __x, __y, __w, __h;
+[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
__api = NULL;
__isInitialized = false;
+ __isShutdown = false;
__x = 0;
__y = 0;
{
}
+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)
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);
{
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();
__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)