From: Andrzej Zaborowski Date: Tue, 15 Feb 2011 07:58:54 +0000 (+0100) Subject: voicecall: Watch for changes to relevant SIM files X-Git-Tag: 0.44~94 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=85644e913b9d774ec0e0976bd6c72f553cbf21de;p=platform%2Fupstream%2Fofono.git voicecall: Watch for changes to relevant SIM files --- diff --git a/src/voicecall.c b/src/voicecall.c index 4606668..d6e8539 100644 --- a/src/voicecall.c +++ b/src/voicecall.c @@ -2279,6 +2279,19 @@ struct ofono_voicecall *ofono_voicecall_create(struct ofono_modem *modem, return vc; } +static void read_ecc_numbers(int id, void *userdata) +{ + struct ofono_voicecall *vc = userdata; + + /* Try both formats, only one or none will work */ + ofono_sim_read(vc->sim_context, SIM_EFECC_FILEID, + OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, + ecc_g2_read_cb, vc); + ofono_sim_read(vc->sim_context, SIM_EFECC_FILEID, + OFONO_SIM_FILE_STRUCTURE_FIXED, + ecc_g3_read_cb, vc); +} + static void sim_state_watch(enum ofono_sim_state new_state, void *user) { struct ofono_voicecall *vc = user; @@ -2288,13 +2301,10 @@ static void sim_state_watch(enum ofono_sim_state new_state, void *user) if (vc->sim_context == NULL) vc->sim_context = ofono_sim_context_create(vc->sim); - /* Try both formats, only one or none will work */ - ofono_sim_read(vc->sim_context, SIM_EFECC_FILEID, - OFONO_SIM_FILE_STRUCTURE_TRANSPARENT, - ecc_g2_read_cb, vc); - ofono_sim_read(vc->sim_context, SIM_EFECC_FILEID, - OFONO_SIM_FILE_STRUCTURE_FIXED, - ecc_g3_read_cb, vc); + read_ecc_numbers(SIM_EFECC_FILEID, vc); + + ofono_sim_add_file_watch(vc->sim_context, SIM_EFECC_FILEID, + read_ecc_numbers, vc, NULL); break; case OFONO_SIM_STATE_NOT_PRESENT: /* TODO: Must release all non-emergency calls */