From ba7b3964ec65407ec515d75d500f1cea9ca06c3a Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Thu, 30 Oct 2025 16:02:07 +0900 Subject: [PATCH] [tizen_package_manager] Fix error handling in getPackageSizeInfo --- 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.cc | 38 ++++++++++++------- .../tizen/src/tizen_package_manager.h | 3 +- .../tizen/src/tizen_package_manager_plugin.cc | 6 +-- 6 files changed, 35 insertions(+), 20 deletions(-) diff --git a/packages/tizen_package_manager/CHANGELOG.md b/packages/tizen_package_manager/CHANGELOG.md index e5a23a09f..39727e075 100644 --- a/packages/tizen_package_manager/CHANGELOG.md +++ b/packages/tizen_package_manager/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.1 + +* Fix error handling in `getPackageSizeInfo`. + ## 0.4.0 * Add retrieve package size information using `PackageManager.getPackageSizeInfo`. diff --git a/packages/tizen_package_manager/README.md b/packages/tizen_package_manager/README.md index f03b1e632..62135e8c8 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.0 + tizen_package_manager: ^0.4.1 ``` ### Retrieving specific package info diff --git a/packages/tizen_package_manager/pubspec.yaml b/packages/tizen_package_manager/pubspec.yaml index 0f3467ebc..c55a983b6 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.0 +version: 0.4.1 environment: sdk: ">=3.1.0 <4.0.0" diff --git a/packages/tizen_package_manager/tizen/src/tizen_package_manager.cc b/packages/tizen_package_manager/tizen/src/tizen_package_manager.cc index ed4d62490..b976141dc 100644 --- a/packages/tizen_package_manager/tizen/src/tizen_package_manager.cc +++ b/packages/tizen_package_manager/tizen/src/tizen_package_manager.cc @@ -235,16 +235,28 @@ void TizenPackageManager::GetPackageSizeInfo( long long external_data_size = 0; long long external_cache_size = 0; long long external_app_size = 0; - - package_size_info_get_data_size(size_info, &data_size); - package_size_info_get_cache_size(size_info, &cache_size); - package_size_info_get_app_size(size_info, &app_size); - package_size_info_get_external_data_size(size_info, - &external_data_size); - package_size_info_get_external_cache_size(size_info, - &external_cache_size); - package_size_info_get_external_app_size(size_info, - &external_app_size); + int ret = PACKAGE_MANAGER_ERROR_NONE; + + if ((ret = package_size_info_get_data_size(size_info, &data_size)) != + PACKAGE_MANAGER_ERROR_NONE || + (ret = package_size_info_get_cache_size( + size_info, &cache_size)) != PACKAGE_MANAGER_ERROR_NONE || + (ret = package_size_info_get_app_size(size_info, &app_size)) != + PACKAGE_MANAGER_ERROR_NONE || + (ret = package_size_info_get_external_data_size( + size_info, &external_data_size)) != + PACKAGE_MANAGER_ERROR_NONE || + (ret = package_size_info_get_external_cache_size( + size_info, &external_cache_size)) != + PACKAGE_MANAGER_ERROR_NONE || + (ret = package_size_info_get_external_app_size( + size_info, &external_app_size)) != + PACKAGE_MANAGER_ERROR_NONE) { + self->last_error_ = ret; + (*self->package_size_callbacks_[package_id])(package_size_info, + false); + return; + } package_size_info.data_size = data_size; package_size_info.cache_size = cache_size; @@ -253,7 +265,7 @@ void TizenPackageManager::GetPackageSizeInfo( package_size_info.external_cache_size = external_cache_size; package_size_info.external_app_size = external_app_size; - (*self->package_size_callbacks_[package_id])(package_size_info); + (*self->package_size_callbacks_[package_id])(package_size_info, true); } }, this); @@ -262,9 +274,7 @@ void TizenPackageManager::GetPackageSizeInfo( LOG_ERROR("package_manager_get_package_size_info failed: %s", get_error_message(ret)); last_error_ = ret; - PackageSizeInfo package_size_info; - package_size_info.app_size = 0; - (*package_size_callbacks_[package_id])(package_size_info); + (*package_size_callbacks_[package_id])(PackageSizeInfo(), false); } } diff --git a/packages/tizen_package_manager/tizen/src/tizen_package_manager.h b/packages/tizen_package_manager/tizen/src/tizen_package_manager.h index cf66d73b0..b9cd358a1 100644 --- a/packages/tizen_package_manager/tizen/src/tizen_package_manager.h +++ b/packages/tizen_package_manager/tizen/src/tizen_package_manager.h @@ -43,7 +43,8 @@ using OnPackageEvent = std::function; -using OnPackageSizeEvent = std::function; +using OnPackageSizeEvent = + std::function; class TizenPackageManager { public: 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 6569b7e14..e0767a1f9 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 @@ -285,9 +285,9 @@ class TizenPackageManagerPlugin : public flutter::Plugin { TizenPackageManager &package_manager = TizenPackageManager::GetInstance(); auto shared_result = std::shared_ptr(std::move(result)); package_manager.GetPackageSizeInfo( - package_id, - [shared_result, &package_manager](PackageSizeInfo size_info) { - if (size_info.app_size == 0) { + package_id, [shared_result, &package_manager](PackageSizeInfo size_info, + bool success) { + if (!success) { shared_result->Error(std::to_string(package_manager.GetLastError()), package_manager.GetLastErrorString()); return;