mmi-api-handler: add implementation of _get_focus_cb and _set_state_cb 29/264029/1
authorSung-Jin Park <sj76.park@samsung.com>
Mon, 19 Jul 2021 11:55:40 +0000 (20:55 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 13 Sep 2021 11:24:14 +0000 (20:24 +0900)
Change-Id: I09c2f91c311375faf2d4baea6a9d4551abb0ddcd
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/mmi-api-handler.c

index 3a18c0d..75918f0 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "mmi-api-handler.h"
 #include "mmi-manager-dbg.h"
+#include "mmi-manager.h"
 #include "mmi-client.h"
 
 #include <stdlib.h>
@@ -240,12 +241,78 @@ err:
 
 static void _get_focus_cb(rpc_port_stub_mmifw_context_h context, void *user_data)
 {
-       LOGI("...");
+       int r;
+       char *sender = NULL;
+       mmi_client *mc = NULL;
+
+       r = rpc_port_stub_mmifw_context_get_sender(context, &sender);
+       if (r || !sender)
+       {
+               LOGE("Failed to get sender from context ! (error:%d)\n", r);
+               goto err;
+       }
+
+       LOGI("Get focus request came from a client(%s) !\n", sender);
+
+       mc = client_manager_get_client(sender);
+       if (!mc)
+       {
+               LOGE("Failed to get client info from sender(=%s)]n", sender);
+               goto err;
+       }
+
+       r = mmi_manager_get_focus(mc);
+       if (r)
+       {
+               LOGE("Failed returned mmi_manager_get_focus ! (error:%d)\n", r);
+               goto err;
+       }
+
+       free(sender);
+       return;
+err:
+       if (sender)
+               free(sender);
+       if (mc)
+               free(mc);
 }
 
 static void _set_state_cb(rpc_port_stub_mmifw_context_h context, int state, void *user_data)
 {
-       LOGI("...");
+       int r;
+       char *sender = NULL;
+       mmi_client *mc = NULL;
+
+       r = rpc_port_stub_mmifw_context_get_sender(context, &sender);
+       if (r || !sender)
+       {
+               LOGE("Failed to get sender from context ! (error:%d)\n", r);
+               goto err;
+       }
+
+       LOGI("Get focus request came from a client(%s) !\n", sender);
+
+       mc = client_manager_get_client(sender);
+       if (!mc)
+       {
+               LOGE("Failed to get client info from sender(=%s)]n", sender);
+               goto err;
+       }
+
+       r = mmi_manager_set_state(mc, state);
+       if (r)
+       {
+               LOGE("Failed returned mmi_manager_set_state(=%d) ! (error:%d)\n", state, r);
+               goto err;
+       }
+
+       free(sender);
+       return;
+err:
+       if (sender)
+               free(sender);
+       if (mc)
+               free(mc);
 }
 
 void