Handle the privilege permission error for agent methods
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-audio.c
index 949f977..dd7eef7 100644 (file)
@@ -698,12 +698,7 @@ BT_EXPORT_API int bluetooth_hf_answer_call()
                if (err) {
                        BT_ERR("Error = %s", err->message);
                        g_dbus_error_strip_remote_error(err);
-                       if (strcmp(err->message, "Operation not supported") == 0)
-                               ret = BLUETOOTH_ERROR_NOT_IN_OPERATION;
-                       else if (strcmp(err->message, "Operation not allowed") == 0)
-                               ret = BLUETOOTH_ERROR_PERMISSION_DEINED;
-                       else
-                               ret = BLUETOOTH_ERROR_INTERNAL;
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
                return ret;
@@ -718,6 +713,7 @@ BT_EXPORT_API int bluetooth_hf_terminate_call()
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -727,9 +723,11 @@ BT_EXPORT_API int bluetooth_hf_terminate_call()
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -756,12 +754,7 @@ BT_EXPORT_API int bluetooth_hf_initiate_call(char *number)
                if (err) {
                        BT_ERR("Error = %s", err->message);
                        g_dbus_error_strip_remote_error(err);
-                       if (strcmp(err->message, "NotConnected") == 0)
-                               ret = BLUETOOTH_ERROR_NOT_CONNECTED;
-                       else if (strcmp(err->message, "Operation not allowed") == 0)
-                               ret = BLUETOOTH_ERROR_IN_PROGRESS;
-                       else
-                               ret = BLUETOOTH_ERROR_INTERNAL;
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
                return ret;
@@ -776,6 +769,7 @@ BT_EXPORT_API int bluetooth_hf_voice_recognition(unsigned int status)
        GVariant *reply = NULL;
        GError *err = NULL;
        GVariant *param = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -786,9 +780,11 @@ BT_EXPORT_API int bluetooth_hf_voice_recognition(unsigned int status)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -799,6 +795,7 @@ BT_EXPORT_API int bluetooth_hf_audio_disconnect(void)
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -808,9 +805,11 @@ BT_EXPORT_API int bluetooth_hf_audio_disconnect(void)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -822,6 +821,7 @@ BT_EXPORT_API int bluetooth_hf_set_speaker_gain(unsigned int speaker_gain)
        GVariant *reply = NULL;
        GError *err = NULL;
        GVariant *param = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -832,9 +832,11 @@ BT_EXPORT_API int bluetooth_hf_set_speaker_gain(unsigned int speaker_gain)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -846,6 +848,7 @@ BT_EXPORT_API int bluetooth_hf_send_dtmf(char *dtmf)
        GVariant *reply = NULL;
        GError *err = NULL;
        GVariant *param = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -856,9 +859,11 @@ BT_EXPORT_API int bluetooth_hf_send_dtmf(char *dtmf)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -872,6 +877,7 @@ BT_EXPORT_API int bluetooth_hf_send_xsat_cmd(int app_id, char *xsat_cmd)
        GVariant *param = NULL;
        char buffer[200] = {0,};
        char *ptr = buffer;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -889,9 +895,11 @@ BT_EXPORT_API int bluetooth_hf_send_xsat_cmd(int app_id, char *xsat_cmd)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -902,6 +910,7 @@ BT_EXPORT_API int bluetooth_hf_release_and_accept(void)
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -911,9 +920,11 @@ BT_EXPORT_API int bluetooth_hf_release_and_accept(void)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -924,6 +935,7 @@ BT_EXPORT_API int bluetooth_hf_swap_call(void)
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -933,9 +945,11 @@ BT_EXPORT_API int bluetooth_hf_swap_call(void)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -946,6 +960,7 @@ BT_EXPORT_API int bluetooth_hf_release_all_call(void)
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -955,9 +970,11 @@ BT_EXPORT_API int bluetooth_hf_release_all_call(void)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);
@@ -968,6 +985,7 @@ BT_EXPORT_API int bluetooth_hf_join_call(void)
 {
        GVariant *reply = NULL;
        GError *err = NULL;
+       int ret = BLUETOOTH_ERROR_INTERNAL;
 
        BT_CHECK_ENABLED(return);
 
@@ -977,9 +995,11 @@ BT_EXPORT_API int bluetooth_hf_join_call(void)
                BT_ERR("Error returned in method call\n");
                if (err) {
                        BT_ERR("Error = %s", err->message);
+                       g_dbus_error_strip_remote_error(err);
+                       ret = _bt_get_error_value_from_message(err->message);
                        g_clear_error(&err);
                }
-               return BLUETOOTH_ERROR_INTERNAL;
+               return ret;
        }
 
        g_variant_unref(reply);