summaryrefslogtreecommitdiffstats
path: root/drivers/hfpmodem
diff options
context:
space:
mode:
authorFrédéric Danis <frederic.danis@linux.intel.com>2011-07-26 16:56:53 +0200
committerDenis Kenzior <denkenz@gmail.com>2011-07-25 23:07:54 -0500
commitc6c7fc3b16371c3a5a8453e7d7332518d8311f80 (patch)
tree5d5b3cf8de527cc07403975e3e4bc711b61d57d4 /drivers/hfpmodem
parent3b00f5aad75688ec2ad34e88f797da9cd85ae94b (diff)
downloadofono-c6c7fc3b16371c3a5a8453e7d7332518d8311f80.tar.bz2
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.
Diffstat (limited to 'drivers/hfpmodem')
-rw-r--r--drivers/hfpmodem/network-registration.c10
1 files changed, 7 insertions, 3 deletions
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);