Add an internal API
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 18 Apr 2023 00:11:49 +0000 (00:11 +0000)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 18 Apr 2023 01:07:51 +0000 (01:07 +0000)
The added function is to disable the auto restart setting.
It's related to the app_control_set_auto_restart() function.

Adds:
 - app_control_unset_auto_restart()

Change-Id: I4d14c6934bc50f9e27a168e950d4fd334436a79d
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
include/app_control_internal.h
src/app-control/stub.cc

index 629174066a7d04e73ffc52104be8dd458ffe1ec7..b2a6efb8d31cd9223799c9003dbe00b63e71a21c 100644 (file)
@@ -326,7 +326,7 @@ int app_control_send_resume_request(app_control_h app_control, app_control_resul
 int app_control_prepare_app_defined_loader(app_control_h app_control, const char *loader_id);
 
 /**
- * @brief Sets the auto restart.
+ * @brief Enables the auto restart setting.
  * @details The functionality of this function only applies to the caller application.
  *          The auto restart cannot be applied to other applications.
  *          The application ID set in the app_control handle is ignored.
@@ -342,9 +342,28 @@ int app_control_prepare_app_defined_loader(app_control_h app_control, const char
  * @retval      #APP_CONTROL_ERROR_IO_ERROR             I/O error
  *
  * @remarks This function is only available for platform level signed applications.
+ * @see app_control_unset_auto_restart()
  */
 int app_control_set_auto_restart(app_control_h app_control);
 
+/**
+ * @brief Disables the auto restart setting.
+ * @details The functionality of this function only applies to the caller application.
+ *
+ * @since_tizen 7.0
+ * @return      @c 0 on success,
+ *              otherwise a negative error value
+ * @retval      #APP_CONTROL_ERROR_NONE                 Successful
+ * @retval      #APP_CONTROL_ERROR_PERMISSION_DENIED    Permission denied
+ * @retval      #APP_CONTROL_ERROR_INVALID_PARAMETER    Invalid parameter
+ * @retval      #APP_CONTROL_ERROR_OUT_OF_MEMORY        Out of memory
+ * @retval      #APP_CONTROL_ERROR_IO_ERROR             I/O error
+ *
+ * @remarks This function is only available for platform level signed applications.
+ * @see app_control_set_auto_restart()
+ */
+int app_control_unset_auto_restart(void);
+
 /**
  * @brief Sets the window position of application.
  * @since_tizen 7.0
index 921a648292be5dc5e455be077d5ae331c1793455..031746fa4dae6cf2e70b3acc327a475f69b8bbfa 100644 (file)
@@ -57,11 +57,8 @@ namespace {
 class ActionExt : public AppControlAction,
                   public AppControlAction::IEvent {
  public:
-  ActionExt(std::string action) : AppControlAction(action, this) {
-  }
-
-  virtual ~ActionExt() {
-  }
+  explicit ActionExt(std::string action) : AppControlAction(action, this) {}
+  virtual ~ActionExt() {}
 
   void SetActionCb(app_control_action_cb cb, void* user_data) {
     cb_ = cb;
@@ -86,6 +83,27 @@ class ActionExt : public AppControlAction,
   void* user_data_ = nullptr;
 };
 
+int ConvertAulError(int error) {
+  int ret;
+
+  switch (error) {
+    case AUL_R_ENOMEM:
+      ret = APP_CONTROL_ERROR_OUT_OF_MEMORY;
+      break;
+    case AUL_R_EILLACC:
+      ret = APP_CONTROL_ERROR_PERMISSION_DENIED;
+      break;
+    case AUL_R_EINVAL:
+      ret = APP_CONTROL_ERROR_INVALID_PARAMETER;
+      break;
+    default:
+      ret = APP_CONTROL_ERROR_IO_ERROR;
+      break;
+  }
+
+  return ret;
+}
+
 }  // namespace
 
 EXPORT int app_control_create_request(bundle* data,
@@ -1230,22 +1248,17 @@ EXPORT int app_control_set_auto_restart(app_control_h app_control) {
   int ret = aul_set_auto_restart(handle->ToBundle());
   if (ret != AUL_R_OK) {
     _E("aul_set_auto_restart() is failed. error(%d)", ret);
-    switch (ret) {
-      case AUL_R_ENOMEM:
-        ret = APP_CONTROL_ERROR_OUT_OF_MEMORY;
-        break;
-      case AUL_R_EILLACC:
-        ret = APP_CONTROL_ERROR_PERMISSION_DENIED;
-        break;
-      case AUL_R_EINVAL:
-        ret = APP_CONTROL_ERROR_INVALID_PARAMETER;
-        break;
-      default:
-        ret = APP_CONTROL_ERROR_IO_ERROR;
-        break;
-    }
+    return ConvertAulError(ret);
+  }
 
-    return ret;
+  return APP_CONTROL_ERROR_NONE;
+}
+
+EXPORT int app_control_unset_auto_restart(void) {
+  int ret = aul_unset_auto_restart();
+  if (ret != AUL_R_OK) {
+    _E("aul_unset_auto_restart() is failed. error(%d)", ret);
+    return ConvertAulError(ret);
   }
 
   return APP_CONTROL_ERROR_NONE;