#include "fido-stub.h"
#include "fido_internal_types.h"
-#define _UI_LAUNCH_RETRY_COUNT 5
+#define OWNER_UID 5001
+
+#define _UI_LAUNCH_RETRY_COUNT 10
#define _UI_SVC_TERMINATE_TIMEOUT 2000
#define _FREEDESKTOP_SERVICE "org.freedesktop.DBus"
#define _FREEDESKTOP_PATH "/org/freedesktop/DBus"
#define _FREEDESKTOP_INTERFACE "org.freedesktop.DBus"
+GMainLoop *__mainLoop;
static GQueue *_ui_q = NULL;
static int __ui_svc_pid = -1;
_INFO("Killing inactive UI Service [%d]", __ui_svc_pid);
if (__ui_svc_pid > 0)
- aul_terminate_pid(__ui_svc_pid);
+ aul_terminate_pid_for_uid(__ui_svc_pid, OWNER_UID);
__ui_svc_pid = -1;
}
__launch_svc_ui(bundle *ui_req)
{
int i = 0;
- for (; i < _UI_LAUNCH_RETRY_COUNT; i++) {
- if (__ui_svc_pid < 0)
- __ui_svc_pid = aul_launch_app(_UI_SVC_PACKAGE, ui_req);
- else {
- aul_terminate_pid(__ui_svc_pid);
- __ui_svc_pid = -1;
-
- __ui_svc_pid = aul_launch_app(_UI_SVC_PACKAGE, ui_req);
- }
- _INFO("fido svc pid = [%d]", __ui_svc_pid);
+ int ui_pid = -1;
- if (__ui_svc_pid > 0)
- return FIDO_ERROR_NONE;
+ for(; i < _UI_LAUNCH_RETRY_COUNT; i++) {
+ ui_pid = aul_launch_app_for_uid(_UI_SVC_PACKAGE, ui_req, OWNER_UID);
+ if(ui_pid > 0)
+ break;
}
- return FIDO_ERROR_UNKNOWN;
+
+ if(ui_pid < 0)
+ return FIDO_ERROR_UNKNOWN;
+
+ __mainLoop = NULL;
+
+ __mainLoop = g_main_loop_new(NULL, FALSE);
+
+ g_main_loop_run(__mainLoop);
+
+ _INFO("");
+
+ aul_terminate_pid_for_uid(ui_pid, OWNER_UID);
+
+ return FIDO_ERROR_NONE;
}
static int
__start_ui_svc_term_timer();
}
+ g_main_loop_quit(__mainLoop);
return true;
}