#include "mmi-api-handler.h"
#include "mmi-manager-dbg.h"
+#include "mmi-manager.h"
#include "mmi-client.h"
#include <stdlib.h>
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