From dc7abf9a3d621b7a744e0eaeb6d9819ffff869a5 Mon Sep 17 00:00:00 2001 From: Dante Russo Date: Wed, 26 Sep 2012 09:20:41 -0700 Subject: [PATCH] gps: report session begin/end on gps start/stop Since modem does not consistently send SESSON_END/ENGINE_OFF event, always report SESSION_END on stop gps and SESSION_BEGIN on start gps so that the icon is turned on/off correctly. CRs-fixed: 401664 Change-Id: Ib3954529056a653d7057aedb489be1ccee9eaf1d --- loc_api/libloc_api_50001/loc_eng.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/loc_api/libloc_api_50001/loc_eng.cpp b/loc_api/libloc_api_50001/loc_eng.cpp index 5075311e..947e0814 100755 --- a/loc_api/libloc_api_50001/loc_eng.cpp +++ b/loc_api/libloc_api_50001/loc_eng.cpp @@ -536,6 +536,7 @@ static int loc_eng_start_handler(loc_eng_data_s_type &loc_eng_data) ret_val == LOC_API_ADAPTER_ERR_ENGINE_DOWN) { loc_eng_data.client_handle->setInSession(TRUE); + loc_inform_gps_status(loc_eng_data, GPS_STATUS_SESSION_BEGIN); } } @@ -589,8 +590,7 @@ static int loc_eng_stop_handler(loc_eng_data_s_type &loc_eng_data) if (loc_eng_data.client_handle->isInSession()) { ret_val = loc_eng_data.client_handle->stopFix(); - if (ret_val == LOC_API_ADAPTER_ERR_SUCCESS && - loc_eng_data.fix_session_status != GPS_STATUS_SESSION_BEGIN) + if (ret_val == LOC_API_ADAPTER_ERR_SUCCESS) { loc_inform_gps_status(loc_eng_data, GPS_STATUS_SESSION_END); } @@ -787,14 +787,6 @@ static void loc_inform_gps_status(loc_eng_data_s_type &loc_eng_data, GpsStatusVa { CALLBACK_LOG_CALLFLOW("status_cb", %s, loc_get_gps_status_name(gs.status)); loc_eng_data.status_cb(&gs); - - // Restore session begin if needed - if (status == GPS_STATUS_ENGINE_ON && last_status == GPS_STATUS_SESSION_BEGIN) - { - GpsStatus gs_sess_begin = { sizeof(gs_sess_begin),GPS_STATUS_SESSION_BEGIN }; - CALLBACK_LOG_CALLFLOW("status_cb", %s, loc_get_gps_status_name(gs_sess_begin.status)); - loc_eng_data.status_cb(&gs_sess_begin); - } } last_status = status;