From 20f65b810f78dd6a74ddef1aaf8e6cb5c69be9d8 Mon Sep 17 00:00:00 2001 From: Vishal Bhoj Date: Fri, 9 Sep 2011 06:38:26 +0400 Subject: Aded Android.mk and modified uim.c to build and work on Android --- Android.mk | 18 ++++++++++++++++++ uim.c | 12 ++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 Android.mk diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..f2cc98d --- /dev/null +++ b/Android.mk @@ -0,0 +1,18 @@ +#Android makefile for uim +ifeq ($(TARGET_BOARD_PLATFORM),omap4) + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES:= uim.c + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/ + +LOCAL_MODULE_TAGS := eng + +LOCAL_MODULE := uim + +include $(BUILD_EXECUTABLE) + +endif diff --git a/uim.c b/uim.c index 3775dda..ba3b3c8 100644 --- a/uim.c +++ b/uim.c @@ -458,12 +458,13 @@ bdaddr_t *strtoba(const char *str) /*****************************************************************************/ int main(int argc, char *argv[]) { - int st_fd, err; + int st_fd, err,trials; unsigned char install; struct pollfd p; UIM_START_FUNC(); err = 0; + trials = 5; /* Parse the user input */ if ((argc > 2)) { @@ -483,7 +484,14 @@ int main(int argc, char *argv[]) line_discipline = N_TI_WL; - st_fd = open(INSTALL_SYSFS_ENTRY, O_RDONLY); + /* sysfs entry may get populated after service is started so we retry if it fails*/ + while (trials > 0) { + st_fd = open(INSTALL_SYSFS_ENTRY, O_RDONLY); + if(st_fd > 0) + break; + usleep(500000); + --trials; + } if (st_fd < 0) { UIM_DBG("unable to open %s(%s)", INSTALL_SYSFS_ENTRY, strerror(errno)); return -1; -- cgit v1.2.3