apply widget_instance API changes 33/77333/3 accepted/tizen/common/20160630.153953 accepted/tizen/ivi/20160701.033830 accepted/tizen/mobile/20160701.033946 accepted/tizen/tv/20160701.033741 accepted/tizen/wearable/20160701.033854 submit/tizen/20160630.104402
authorDaehyeon Jung <darrenh.jung@samsung.com>
Wed, 29 Jun 2016 10:53:27 +0000 (19:53 +0900)
committerDaehyeon Jung <darrenh.jung@samsung.com>
Thu, 30 Jun 2016 01:10:21 +0000 (10:10 +0900)
Change-Id: I433fdbc2bc058826f7a5578a70614b2feaff7a81
Signed-off-by: Daehyeon Jung <darrenh.jung@samsung.com>
widget_viewer_dali/internal/widget_view/widget_view_impl.cpp
widget_viewer_evas/src/widget_viewer_evas.c

index 5c7159b..448e8d9 100644 (file)
@@ -100,11 +100,11 @@ WidgetView::~WidgetView()
 {
   if( !mWidgetId.empty() && !mInstanceId.empty() )
   {
-    widget_instance_terminate( mWidgetId.c_str(), mInstanceId.c_str() );
+    widget_instance_terminate( mInstanceId.c_str() );
 
     if( mPermanentDelete )
     {
-      widget_instance_destroy( mWidgetId.c_str(), mInstanceId.c_str() );
+      widget_instance_destroy( mInstanceId.c_str() );
     }
   }
 
@@ -116,7 +116,7 @@ WidgetView::~WidgetView()
 
 bool WidgetView::PauseWidget()
 {
-  int ret = widget_instance_pause( mWidgetId.c_str(), mInstanceId.c_str() );
+  int ret = widget_instance_pause( mInstanceId.c_str() );
   if( ret < 0 )
   {
     DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::PauseWidget: Fail to pause widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
@@ -130,7 +130,7 @@ bool WidgetView::PauseWidget()
 
 bool WidgetView::ResumeWidget()
 {
-  int ret = widget_instance_resume( mWidgetId.c_str(), mInstanceId.c_str() );
+  int ret = widget_instance_resume( mInstanceId.c_str() );
   if( ret < 0 )
   {
     DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ResumeWidget: Fail to resume widget(%s, %s) [%d]\n", mWidgetId.c_str(), mInstanceId.c_str(), ret );
@@ -155,9 +155,7 @@ const std::string& WidgetView::GetInstanceId() const
 const std::string& WidgetView::GetContentInfo()
 {
   widget_instance_h instance;
-  bundle* bundle = NULL;
-  bundle_raw* contentInfo = NULL;
-  int contentLength = 0;
+  char* contentInfo = NULL;
 
   mContentInfo.clear();
 
@@ -174,24 +172,12 @@ const std::string& WidgetView::GetContentInfo()
     return mContentInfo;
   }
 
-  if( widget_instance_get_content( instance, &bundle ) < 0 )
+  if( widget_instance_get_content( instance, &contentInfo ) < 0 )
   {
     DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Failed to get content of widget. [%s]\n", mInstanceId.c_str() );
     return mContentInfo;
   }
 
-  if( !bundle )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: Cotent of widget [%s] is invalid.\n", mInstanceId.c_str() );
-    return mContentInfo;
-  }
-
-  if( bundle_encode( bundle, &contentInfo, &contentLength ) < 0 )
-  {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::GetContentInfo: bundle_encode is failed. [%s]\n", mInstanceId.c_str() );
-    return mContentInfo;
-  }
-
   mContentInfo = reinterpret_cast< char* >( contentInfo );
 
   return mContentInfo;
@@ -290,7 +276,7 @@ void WidgetView::ActivateFaultedWidget()
     }
 
     // launch widget again
-    mPid = widget_instance_launch( mWidgetId.c_str(), mInstanceId.c_str(), mBundle, mWidth, mHeight );
+    mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
     if( mPid < 0)
     {
       DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
@@ -453,32 +439,15 @@ void WidgetView::OnInitialize()
   std::string previewImage;
   widget_size_type_e sizeType;
 
-  if( !mContentInfo.empty() )
+  int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
+  if( ret < 0 || !instanceId )
   {
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: decode bundle\n" );
-
-    mBundle = bundle_decode( reinterpret_cast< const bundle_raw* >( mContentInfo.c_str() ), mContentInfo.length() );
-    if( !mBundle )
-    {
-      DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: Invalid bundle data.\n" );
-      return;
-    }
-
-    bundle_get_str( mBundle, WIDGET_K_INSTANCE, &instanceId );
+    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
+    return;
   }
 
-  if( !instanceId )
-  {
-    int ret = widget_instance_create( mWidgetId.c_str(), &instanceId );
-    if( ret < 0 || !instanceId )
-    {
-      DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is failed [%s].\n", mWidgetId.c_str() );
-      return;
-    }
-
-    DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
-                   mWidgetId.c_str(), instanceId );
-  }
+  DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_create is called. [widget id = %s, instance id = %s]\n",
+                 mWidgetId.c_str(), instanceId );
 
   mInstanceId = instanceId;
 
@@ -524,7 +493,7 @@ void WidgetView::OnInitialize()
   mPreviewImage.Add( mStateText );
 
   // launch widget
-  mPid = widget_instance_launch( mWidgetId.c_str(), instanceId, mBundle, mWidth, mHeight );
+  mPid = widget_instance_launch( instanceId, (char *)mContentInfo.c_str(), mWidth, mHeight );
   if( mPid < 0)
   {
     DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
index ff295d6..cd9d640 100644 (file)
@@ -149,7 +149,7 @@ struct widget_info {
        char *widget_id;
        char *instance_id;
        const char *title;
-       bundle *content_info_bundle;
+       char *content_info;
        int pid;
        double period;
 
@@ -342,6 +342,8 @@ static int instance_event_cb(const char *widget_id, const char *instance_id, int
        struct widget_info *info;
        struct widget_evas_event_info event_info;
        const char *smart_signal;
+       char *content_info;
+       widget_instance_h handle;
 
        info = g_hash_table_lookup(s_info.widget_table, instance_id);
        if (!info) {
@@ -379,6 +381,23 @@ static int instance_event_cb(const char *widget_id, const char *instance_id, int
        case WIDGET_INSTANCE_EVENT_EXTRA_UPDATED:
                event_info.event = WIDGET_EVENT_EXTRA_INFO_UPDATED;
                smart_signal = WIDGET_SMART_SIGNAL_EXTRA_INFO_UPDATED;
+               handle = widget_instance_get_instance(info->widget_id, info->instance_id);
+               if (!handle) {
+                       ErrPrint("instance handle of widget(%s) is invalid data", info->instance_id);
+                       break;
+               }
+
+               if (widget_instance_get_content(handle, &content_info) < 0) {
+                       ErrPrint("Failed to get content of widget(%s)", info->instance_id);
+                       break;
+               }
+
+               if (content_info) {
+                       if (info->content_info)
+                               free(info->content_info);
+
+                       info->content_info = strdup(content_info);
+               }
                break;
        case WIDGET_INSTANCE_EVENT_FAULT:
                event_info.event = WIDGET_FAULT_DEACTIVATED;
@@ -537,14 +556,13 @@ static void del_cb(void *data, Evas *e, Evas_Object *layout, void *event_info)
 
        smart_callback_call(info->layout, WIDGET_SMART_SIGNAL_WIDGET_DELETED, &evas_info);
 
-       if (info->widget_id && info->instance_id) {
-               widget_instance_terminate(info->widget_id, info->instance_id);
-               info->pid = 0;
+       if (info->instance_id) {
+               if (info->permanent_delete)
+                       widget_instance_destroy(info->instance_id);
+               else
+                       widget_instance_terminate(info->instance_id);
        }
 
-       if (info->permanent_delete)
-               widget_instance_destroy(info->widget_id, info->instance_id);
-
        evas_object_data_del(layout, WIDGET_INFO_TAG);
        g_hash_table_remove(s_info.widget_table, info->instance_id);
 
@@ -556,7 +574,7 @@ static void del_cb(void *data, Evas *e, Evas_Object *layout, void *event_info)
 
        free(info->widget_id);
        free(info->instance_id);
-       bundle_free(info->content_info_bundle);
+       free(info->content_info);
        free(info);
 }
 
@@ -600,7 +618,7 @@ static void resize_cb(void *data, Evas *e, Evas_Object *layout, void *event_info
                }
 
                _compositor_set_handler(info->instance_id, widget_object_cb, NULL);
-               info->pid = widget_instance_launch(info->widget_id, info->instance_id, info->content_info_bundle, w, h);
+               info->pid = widget_instance_launch(info->instance_id, info->content_info, w, h);
                if (info->pid < 0) {
                        struct widget_evas_event_info event_info;
                        ErrPrint("Failed to launch an widget");
@@ -697,9 +715,7 @@ out:
 EAPI Evas_Object *widget_viewer_evas_add_widget(Evas_Object *parent, const char *widget_id, const char *content_info, double period)
 {
        char *instance_id = NULL;
-       bundle *content_info_bundle = NULL;
        struct widget_info *widget_instance_info = NULL;
-       const bundle_raw *bundle_info = NULL;
 
        if (!is_widget_feature_enabled()) {
                set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
@@ -725,67 +741,32 @@ EAPI Evas_Object *widget_viewer_evas_add_widget(Evas_Object *parent, const char
                return NULL;
        }
 
-       if (content_info) {
-               bundle_info = (bundle_raw *) content_info;
-               content_info_bundle = bundle_decode(bundle_info, strlen(content_info));
-               if (content_info_bundle == NULL) {
-                       set_last_result(WIDGET_ERROR_FAULT);
-                       ErrPrint("Invalid content format: [%s]", content_info);
-               }
+       if (widget_instance_create(widget_id, &instance_id) < 0) {
+               set_last_result(WIDGET_ERROR_FAULT);
+               return NULL;
        }
 
-       if (content_info_bundle)
-               bundle_get_str(content_info_bundle, WIDGET_K_INSTANCE, &instance_id);
-
        if (!instance_id) {
-               if (widget_instance_create(widget_id, &instance_id) < 0) {
-                       set_last_result(WIDGET_ERROR_FAULT);
-                       if (content_info_bundle)
-                               bundle_free(content_info_bundle);
-                       return NULL;
-               }
-
-               if (!instance_id) {
-                       set_last_result(WIDGET_ERROR_FAULT);
-                       ErrPrint("Failed to get instance_id: %s", widget_id);
-                       if (content_info_bundle)
-                               bundle_free(content_info_bundle);
-                       return NULL;
-               }
+               set_last_result(WIDGET_ERROR_FAULT);
+               ErrPrint("Failed to get instance_id: %s", widget_id);
+               return NULL;
+       }
 
-               widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
-               if (!widget_instance_info) {
-                       set_last_result(WIDGET_ERROR_FAULT);
-                       ErrPrint("Unable to create an information object");
-                       widget_instance_destroy(widget_id, instance_id);
-                       if (content_info_bundle)
-                               bundle_free(content_info_bundle);
-                       return NULL;
-               }
+       widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
+       if (!widget_instance_info) {
+               set_last_result(WIDGET_ERROR_FAULT);
+               ErrPrint("Unable to create an information object");
+               widget_instance_destroy(instance_id);
+               return NULL;
+       }
 
-               widget_instance_info->content_info_bundle = content_info_bundle;
-               widget_instance_info->pid = 0;
-               widget_instance_info->period = period;
+       if (content_info)
+               widget_instance_info->content_info = strdup(content_info);
 
-               g_hash_table_insert(s_info.widget_table, instance_id, widget_instance_info);
-       } else {
-               widget_instance_info = g_hash_table_lookup(s_info.widget_table, instance_id);
-               if (!widget_instance_info) {
-                       widget_instance_info = create_info(parent, widget_id, instance_id, content_info);
-                       if (!widget_instance_info) {
-                               set_last_result(WIDGET_ERROR_FAULT);
-                               if (content_info_bundle)
-                                       bundle_free(content_info_bundle);
-                               return NULL;
-                       }
+       widget_instance_info->pid = 0;
+       widget_instance_info->period = period;
 
-                       widget_instance_info->content_info_bundle = content_info_bundle;
-                       widget_instance_info->pid = 0;
-                       widget_instance_info->period = period;
-
-                       g_hash_table_insert(s_info.widget_table, instance_id, widget_instance_info);
-               }
-       }
+       g_hash_table_insert(s_info.widget_table, widget_instance_info->instance_id, widget_instance_info);
 
        /**
         * @note
@@ -845,7 +826,7 @@ EAPI int widget_viewer_evas_pause_widget(Evas_Object *widget)
                return WIDGET_ERROR_DISABLED;
        }
 
-       ret = widget_instance_pause(info->widget_id, info->instance_id);
+       ret = widget_instance_pause(info->instance_id);
        if (ret < 0) {
                ErrPrint("Fail to pause the widget(%p):(%d)", widget, ret);
                return ret;
@@ -883,7 +864,7 @@ EAPI int widget_viewer_evas_resume_widget(Evas_Object *widget)
                return WIDGET_ERROR_DISABLED;
        }
 
-       ret = widget_instance_resume(info->widget_id, info->instance_id);
+       ret = widget_instance_resume(info->instance_id);
        if (ret < 0) {
                ErrPrint("Fail to resume the widget(%p):(%d)", widget, ret);
                return ret;
@@ -895,11 +876,6 @@ EAPI int widget_viewer_evas_resume_widget(Evas_Object *widget)
 EAPI const char *widget_viewer_evas_get_content_info(Evas_Object *widget)
 {
        struct widget_info *info;
-       widget_instance_h handle = NULL;
-       bundle_raw *content_info = NULL;
-       int content_len = 0;
-       bundle *content_info_bundle = NULL;
-
 
        if (!is_widget_feature_enabled()) {
                set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
@@ -926,39 +902,7 @@ EAPI const char *widget_viewer_evas_get_content_info(Evas_Object *widget)
                return NULL;
        }
 
-       if (!info->widget_id && !info->instance_id) {
-               set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
-               ErrPrint("widget id(%s) or instance id(%s) is invalid data", info->widget_id, info->instance_id);
-               return NULL;
-       }
-
-       handle = widget_instance_get_instance(info->widget_id, info->instance_id);
-
-       if (!handle) {
-               set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
-               ErrPrint("instance handle of widget(%s) is invalid data", info->instance_id);
-               return NULL;
-       }
-
-       if (widget_instance_get_content(handle, &content_info_bundle) < 0) {
-               set_last_result(WIDGET_ERROR_FAULT);
-               ErrPrint("Failed to get content of widget(%s)", info->instance_id);
-               return NULL;
-       }
-
-       if (content_info_bundle == NULL) {
-               set_last_result(WIDGET_ERROR_FAULT);
-               ErrPrint("content of widget(%s) is invalid data", info->instance_id);
-               return NULL;
-       }
-
-       if (bundle_encode(content_info_bundle, &content_info, &content_len) < 0) {
-               set_last_result(WIDGET_ERROR_FAULT);
-               ErrPrint("Failed to encode (%s)", info->instance_id);
-               return NULL;
-       }
-
-       return (const char*)content_info;
+       return (const char*)info->content_info;
 }
 
 EAPI const char *widget_viewer_evas_get_title_string(Evas_Object *widget)
@@ -1297,7 +1241,7 @@ EAPI void widget_viewer_evas_activate_faulted_widget(Evas_Object *widget)
                        elm_object_signal_emit(info->layout, "enable", "text");
                }
 
-               info->pid = widget_instance_launch(info->widget_id, info->instance_id, info->content_info_bundle, w, h);
+               info->pid = widget_instance_launch(info->instance_id, info->content_info, w, h);
                if (info->pid < 0) {
                        ErrPrint("Failed to launch an widget");
                        event_info.error = info->pid;