From c6c7fc3b16371c3a5a8453e7d7332518d8311f80 Mon Sep 17 00:00:00 2001 From: Frédéric Danis Date: Tue, 26 Jul 2011 16:56:53 +0200 Subject: hfpmodem: fix network status When receiving roaming indicator update to 0 (no roaming) network registration status should be updated with latest value of service indicator. --- drivers/hfpmodem/network-registration.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/hfpmodem/network-registration.c b/drivers/hfpmodem/network-registration.c index 4cb2b149..7d26424e 100644 --- a/drivers/hfpmodem/network-registration.c +++ b/drivers/hfpmodem/network-registration.c @@ -130,10 +130,14 @@ static void ciev_notify(GAtResult *result, gpointer user_data) } else if (index == nd->cind_pos[HFP_INDICATOR_ROAM]) { nd->cind_val[HFP_INDICATOR_ROAM] = value; - if (value) { + if (value) status = NETWORK_REGISTRATION_STATUS_ROAMING; - ofono_netreg_status_notify(netreg, status, -1, -1, -1); - } + else if (nd->cind_val[HFP_INDICATOR_SERVICE]) + status = NETWORK_REGISTRATION_STATUS_REGISTERED; + else + status = NETWORK_REGISTRATION_STATUS_NOT_REGISTERED; + + ofono_netreg_status_notify(netreg, status, -1, -1, -1); } else if (index == nd->cind_pos[HFP_INDICATOR_SIGNAL]) { nd->cind_val[HFP_INDICATOR_SIGNAL] = value; ofono_netreg_strength_notify(netreg, value * 20); -- cgit v1.2.3