voicecall: Watch for changes to relevant SIM files

This commit is contained in:
Andrzej Zaborowski 2011-02-15 08:58:54 +01:00 committed by Denis Kenzior
parent ad181b690b
commit 85644e913b
1 changed files with 17 additions and 7 deletions

View File

@ -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 */