From da9e167e7b87d1e118f8f1bf12d61267334b8cf1 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Tue, 16 Jun 2026 16:56:49 +0900 Subject: [PATCH] [tizen_app_manager] Remove Ecore API Replace ecore_thread_run in GetInstalledApps with a GLib worker thread created via g_thread_try_new. --- packages/tizen_app_manager/CHANGELOG.md | 3 +- packages/tizen_app_manager/README.md | 2 +- packages/tizen_app_manager/pubspec.yaml | 2 +- .../tizen/src/tizen_app_manager_plugin.cc | 30 ++++++++++++------- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/packages/tizen_app_manager/CHANGELOG.md b/packages/tizen_app_manager/CHANGELOG.md index 12f96dc44..53fecbd00 100644 --- a/packages/tizen_app_manager/CHANGELOG.md +++ b/packages/tizen_app_manager/CHANGELOG.md @@ -1,8 +1,9 @@ -## NEXT +## 0.2.4 * Update code format. * Remove a testcase for `AppRunningContext.appState` API because the tizen test farm does not support the 'foreground' state. +* Remove Ecore API. ## 0.2.3 diff --git a/packages/tizen_app_manager/README.md b/packages/tizen_app_manager/README.md index fb5871acb..3a099410e 100644 --- a/packages/tizen_app_manager/README.md +++ b/packages/tizen_app_manager/README.md @@ -10,7 +10,7 @@ To use this package, add `tizen_app_manager` as a dependency in your `pubspec.ya ```yaml dependencies: - tizen_app_manager: ^0.2.3 + tizen_app_manager: ^0.2.4 ``` ### Retrieving current app info diff --git a/packages/tizen_app_manager/pubspec.yaml b/packages/tizen_app_manager/pubspec.yaml index 828f2b353..a16434cc3 100644 --- a/packages/tizen_app_manager/pubspec.yaml +++ b/packages/tizen_app_manager/pubspec.yaml @@ -2,7 +2,7 @@ name: tizen_app_manager description: Tizen application manager APIs. Used to get app info and app running context on a Tizen device. homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/tizen_app_manager -version: 0.2.3 +version: 0.2.4 environment: sdk: ">=3.1.0 <4.0.0" diff --git a/packages/tizen_app_manager/tizen/src/tizen_app_manager_plugin.cc b/packages/tizen_app_manager/tizen/src/tizen_app_manager_plugin.cc index 834b59152..606046a25 100644 --- a/packages/tizen_app_manager/tizen/src/tizen_app_manager_plugin.cc +++ b/packages/tizen_app_manager/tizen/src/tizen_app_manager_plugin.cc @@ -4,7 +4,6 @@ #include "tizen_app_manager_plugin.h" -#include #include #include #include @@ -12,6 +11,7 @@ #include #include #include +#include #include #include @@ -256,8 +256,10 @@ class TizenAppManagerPlugin : public flutter::Plugin { void GetInstalledApps(std::unique_ptr result) { // TizenAppManager::GetAllAppsInfo() 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_app_manager_installed_appss", + [](gpointer data) -> gpointer { auto *result = static_cast(data); flutter::EncodableList list; @@ -278,14 +280,22 @@ class TizenAppManagerPlugin : public flutter::Plugin { } result->Success(flutter::EncodableValue(list)); 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 IsAppRunning(const flutter::EncodableMap *arguments,