summaryrefslogtreecommitdiff
path: root/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc')
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc39
1 files changed, 26 insertions, 13 deletions
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc
index 9fb6d63273..311ba5d4aa 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/extensions/system_capability_app_extension.cc
@@ -1,9 +1,12 @@
#include "sdl_rpc_plugin/extensions/system_capability_app_extension.h"
+#include "application_manager/smart_object_keys.h"
namespace sdl_rpc_plugin {
SDL_CREATE_LOG_VARIABLE("GetSystemCapabilitiesAppExtension")
namespace app_mngr_ = application_manager;
+namespace strings = app_mngr::strings;
+
const app_mngr_::AppExtensionUID
SystemCapabilityAppExtension::SystemCapabilityAppExtensionUID = 200;
@@ -51,36 +54,46 @@ SystemCapabilitySubscriptions SystemCapabilityAppExtension::Subscriptions() {
}
void SystemCapabilityAppExtension::SaveResumptionData(
- ns_smart_device_link::ns_smart_objects::SmartObject& resumption_data) {
+ smart_objects::SmartObject& resumption_data) {
SDL_LOG_AUTO_TRACE();
- const char* application_system_capability = "systemCapability";
- resumption_data[application_system_capability] =
+ resumption_data[strings::system_capability] =
smart_objects::SmartObject(smart_objects::SmartType_Array);
int i = 0;
for (const auto& subscription : subscribed_data_) {
- resumption_data[application_system_capability][i] = subscription;
+ resumption_data[strings::system_capability][i] = subscription;
i++;
}
}
void SystemCapabilityAppExtension::ProcessResumption(
- const smart_objects::SmartObject& resumption_data) {
+ const smart_objects::SmartObject& saved_app) {
SDL_LOG_AUTO_TRACE();
- const char* application_system_capability = "systemCapability";
- if (resumption_data.keyExists(application_system_capability)) {
- const smart_objects::SmartObject& subscriptions =
- resumption_data[application_system_capability];
- for (size_t i = 0; i < subscriptions.length(); ++i) {
- SystemCapabilityType capability_type =
- static_cast<SystemCapabilityType>((resumption_data[i]).asInt());
+ const smart_objects::SmartObject& subscriptions =
+ saved_app[strings::application_subscriptions];
+
+ if (saved_app.keyExists(strings::system_capability)) {
+ const auto& system_capability_subscriptions =
+ subscriptions[strings::system_capability];
+ for (size_t i = 0; i < system_capability_subscriptions.length(); ++i) {
+ SystemCapabilityType capability_type = static_cast<SystemCapabilityType>(
+ (system_capability_subscriptions[i]).asInt());
SubscribeTo(capability_type);
}
}
}
+void SystemCapabilityAppExtension::RevertResumption(
+ const smart_objects::SmartObject& subscriptions) {
+ SDL_LOG_AUTO_TRACE();
+
+ // No need to revert subscriptions here when an app gets RESUME_FAILED
+ // System capability subscriptions should still be active
+ UNUSED(subscriptions);
+}
+
SystemCapabilityAppExtension& SystemCapabilityAppExtension::ExtractExtension(
app_mngr_::Application& app) {
SDL_LOG_AUTO_TRACE();
@@ -93,4 +106,4 @@ SystemCapabilityAppExtension& SystemCapabilityAppExtension::ExtractExtension(
DCHECK(app_extension);
return *app_extension;
}
-} // namespace sdl_rpc_plugin \ No newline at end of file
+} // namespace sdl_rpc_plugin