From dc9dc7393fc9c761722162f52d87d54ca5ad26ee Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 17 Jun 2026 15:19:30 +0900 Subject: [PATCH] [tizen_package_manager] Remove Ecore API Replace ecore_thread_run in GetAllPackagesInfo with a GLib worker thread created via g_thread_try_new. --- packages/tizen_package_manager/CHANGELOG.md | 4 +++ packages/tizen_package_manager/README.md | 2 +- packages/tizen_package_manager/pubspec.yaml | 2 +- .../tizen/src/tizen_package_manager_plugin.cc | 31 +++++++++++++------ 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/tizen_package_manager/CHANGELOG.md b/packages/tizen_package_manager/CHANGELOG.md index 39727e075..54bcbbbc9 100644 --- a/packages/tizen_package_manager/CHANGELOG.md +++ b/packages/tizen_package_manager/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.2 + +* Remove Ecore API. + ## 0.4.1 * Fix error handling in `getPackageSizeInfo`. diff --git a/packages/tizen_package_manager/README.md b/packages/tizen_package_manager/README.md index 62135e8c8..72d7e2d08 100644 --- a/packages/tizen_package_manager/README.md +++ b/packages/tizen_package_manager/README.md @@ -10,7 +10,7 @@ To use this package, add `tizen_package_manager` as a dependency in your `pubspe ```yaml dependencies: - tizen_package_manager: ^0.4.1 + tizen_package_manager: ^0.4.2 ``` ### Retrieving specific package info diff --git a/packages/tizen_package_manager/pubspec.yaml b/packages/tizen_package_manager/pubspec.yaml index c55a983b6..260d1a2a6 100644 --- a/packages/tizen_package_manager/pubspec.yaml +++ b/packages/tizen_package_manager/pubspec.yaml @@ -2,7 +2,7 @@ name: tizen_package_manager description: Tizen package manager APIs. Used to get information about packages installed on a Tizen device. homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/tizen_package_manager -version: 0.4.1 +version: 0.4.2 environment: sdk: ">=3.1.0 <4.0.0" diff --git a/packages/tizen_package_manager/tizen/src/tizen_package_manager_plugin.cc b/packages/tizen_package_manager/tizen/src/tizen_package_manager_plugin.cc index e0767a1f9..7af7174f1 100644 --- a/packages/tizen_package_manager/tizen/src/tizen_package_manager_plugin.cc +++ b/packages/tizen_package_manager/tizen/src/tizen_package_manager_plugin.cc @@ -4,7 +4,6 @@ #include "tizen_package_manager_plugin.h" -#include #include #include #include @@ -12,12 +11,14 @@ #include #include #include +#include #include #include #include #include +#include "log.h" #include "tizen_package_manager.h" namespace { @@ -244,8 +245,10 @@ class TizenPackageManagerPlugin : public flutter::Plugin { // TizenPackageManager::GetAllPackagesInfo() is an expensive operation and // might cause unresponsiveness on low-end devices if run on the platform // thread. - ecore_thread_run( - [](void *data, Ecore_Thread *thread) { + GError *error = nullptr; + GThread *thread = g_thread_try_new( + "flutter_tizen_plugins_tizen_package_manager_all_packages", + [](gpointer data) -> gpointer { auto *result = static_cast(data); TizenPackageManager &package_manager = @@ -264,14 +267,22 @@ class TizenPackageManagerPlugin : public flutter::Plugin { package_manager.GetLastErrorString()); } delete result; + return nullptr; }, - nullptr, - [](void *data, Ecore_Thread *thread) { - auto *result = static_cast(data); - result->Error("Operation failed", "Failed to start a thread."); - delete result; - }, - result.release()); + result.get(), &error); + + if (thread == nullptr) { + LOG_ERROR("Failed to create a thread: %s", + error ? error->message : "unknown error"); + if (error) { + g_error_free(error); + } + result->Error("Operation failed", "Failed to start a thread."); + return; + } + + result.release(); + g_thread_unref(thread); } void GetPackageSizeInfo(const flutter::EncodableMap *arguments,