summaryrefslogtreecommitdiff
path: root/wearable/app
diff options
context:
space:
mode:
Diffstat (limited to 'wearable/app')
-rwxr-xr-xwearable/app/include/nsa-main.h7
-rwxr-xr-xwearable/app/src/nsa-main.c56
2 files changed, 60 insertions, 3 deletions
diff --git a/wearable/app/include/nsa-main.h b/wearable/app/include/nsa-main.h
index e13f5cb..8b2c1ef 100755
--- a/wearable/app/include/nsa-main.h
+++ b/wearable/app/include/nsa-main.h
@@ -53,6 +53,11 @@ typedef struct {
int aid_count;
} wallet_info_t;
+typedef enum {
+ NSA_OP_NFC = 1,
+ NSA_OP_TAP_N_PAY = 2
+} nsa_operation_type;
+
typedef struct {
Evas_Object *main_win;
Evas_Object *main_layout;
@@ -73,6 +78,8 @@ typedef struct {
int payment_wallet_cnt;
GArray *payment_wallet_list;
Evas_Object *radio_main;
+
+ nsa_operation_type op_type;
} appdata;
#ifdef __cplusplus
diff --git a/wearable/app/src/nsa-main.c b/wearable/app/src/nsa-main.c
index 88a3081..a92fc61 100755
--- a/wearable/app/src/nsa-main.c
+++ b/wearable/app/src/nsa-main.c
@@ -34,7 +34,7 @@ static void __back_clicked_cb(void *data, Evas_Object *obj, void *event_info)
elm_naviframe_item_pop(ad->navi_frame);
- if (ad->current_view == V_TAP_N_PAY) {
+ if (ad->current_view == V_TAP_N_PAY && ad->op_type != NSA_OP_TAP_N_PAY) {
Evas_Object *circle_obj;
/* release Tap & Pay view */
@@ -58,7 +58,7 @@ static void __back_clicked_cb(void *data, Evas_Object *obj, void *event_info)
ad->current_view = V_MAIN;
eext_rotary_object_event_activated_set(ad->main_circle_obj, EINA_TRUE);
- } else if (ad->current_view == V_MAIN) {
+ } else {
/* release Main view and exit application */
NSA_MEM_FREE(ad->payment_handler);
@@ -99,6 +99,47 @@ void _nsa_main_app_terminate(void *user_data)
NSA_DEBUG("_nsa_main_app_terminate end");
}
+static void __parse_service(app_control_h service, void *user_data)
+{
+ appdata *ad = user_data;
+ char *operation = NULL;
+ char *app_id = NULL;
+ char *ex_data = NULL;
+
+ ret_if(ad == NULL);
+
+ app_control_get_operation(service, &operation);
+ app_control_get_app_id(service, &app_id);
+ app_control_get_extra_data(service, "type", &ex_data);
+
+ NSA_DEBUG("operation [%s] >>>>> ", GET_SAFE_STRING(operation));
+ NSA_DEBUG("app_id [%s] >>>>> ", GET_SAFE_STRING(app_id));
+ NSA_DEBUG("extra data [%s] >>>>> ", GET_SAFE_STRING(ex_data));
+
+ ad->op_type = NSA_OP_NFC;
+ if (!ex_data) {
+ NSA_DEBUG_ERR("extra data is NULL");
+ goto end;
+ }
+
+ if (strncmp(operation, APP_CONTROL_OPERATION_SETTING_NFC,
+ strlen(APP_CONTROL_OPERATION_SETTING_NFC)) == 0) {
+ /* launched by app-control */
+ if (strncmp(ex_data, "nfc", strlen("nfc")) == 0) {
+ ad->op_type = NSA_OP_NFC;
+ } else if (strncmp(ex_data, "tap_n_pay", strlen("tap_n_pay")) == 0) {
+ ad->op_type = NSA_OP_TAP_N_PAY;
+ }
+ }
+
+end:
+ NSA_MEM_FREE(operation);
+ NSA_MEM_FREE(app_id);
+ NSA_MEM_FREE(ex_data);
+
+ return;
+}
+
void _nsa_main_app_service(app_control_h service, void *user_data)
{
appdata *ad = user_data;
@@ -134,7 +175,16 @@ void _nsa_main_app_service(app_control_h service, void *user_data)
elm_object_part_content_set(ad->main_layout, "elm.swallow.content", ad->navi_frame);
eext_object_event_callback_add(ad->navi_frame, EEXT_CALLBACK_BACK, __back_clicked_cb, ad);
- _nsa_view_main_create(ad);
+ /* parse service data */
+ __parse_service(service, ad);
+
+ /* launch nss */
+ if (ad->op_type == NSA_OP_TAP_N_PAY){
+ _nsa_view_tap_n_pay_create(ad);
+ } else {
+ _nsa_view_main_create(ad);
+ }
+
elm_win_activate(ad->main_win);
NSA_DEBUG("_nsa_main_app_service end");