mirror of git://git.sysmocom.de/ofono
network: Use strings instead of ints in settings
This commit is contained in:
parent
240a01260f
commit
441456503e
|
@ -199,8 +199,15 @@ static void set_registration_mode(struct ofono_netreg *netreg, int mode)
|
||||||
netreg->mode = mode;
|
netreg->mode = mode;
|
||||||
|
|
||||||
if (netreg->settings) {
|
if (netreg->settings) {
|
||||||
g_key_file_set_integer(netreg->settings, SETTINGS_GROUP,
|
const char *mode;
|
||||||
"Mode", netreg->mode);
|
|
||||||
|
if (netreg->mode == NETWORK_REGISTRATION_MODE_MANUAL)
|
||||||
|
mode = "manual";
|
||||||
|
else
|
||||||
|
mode = "auto";
|
||||||
|
|
||||||
|
g_key_file_set_string(netreg->settings, SETTINGS_GROUP,
|
||||||
|
"Mode", mode);
|
||||||
storage_sync(netreg->imsi, SETTINGS_STORE, netreg->settings);
|
storage_sync(netreg->imsi, SETTINGS_STORE, netreg->settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1894,7 +1901,9 @@ struct ofono_netreg *ofono_netreg_create(struct ofono_modem *modem,
|
||||||
static void netreg_load_settings(struct ofono_netreg *netreg)
|
static void netreg_load_settings(struct ofono_netreg *netreg)
|
||||||
{
|
{
|
||||||
const char *imsi;
|
const char *imsi;
|
||||||
int mode;
|
char *strmode;
|
||||||
|
gboolean upgrade = FALSE;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
imsi = ofono_sim_get_imsi(netreg->sim);
|
imsi = ofono_sim_get_imsi(netreg->sim);
|
||||||
if (imsi == NULL)
|
if (imsi == NULL)
|
||||||
|
@ -1907,15 +1916,47 @@ static void netreg_load_settings(struct ofono_netreg *netreg)
|
||||||
|
|
||||||
netreg->imsi = g_strdup(imsi);
|
netreg->imsi = g_strdup(imsi);
|
||||||
|
|
||||||
mode = g_key_file_get_integer(netreg->settings, SETTINGS_GROUP,
|
/*
|
||||||
"Mode", NULL);
|
* Try legacy (integer) value first. We do this because g_key_file
|
||||||
|
* does not really distinguish between integers and strings
|
||||||
|
*/
|
||||||
|
strmode = g_key_file_get_string(netreg->settings, SETTINGS_GROUP,
|
||||||
|
"Mode", &error);
|
||||||
|
|
||||||
if (mode == NETWORK_REGISTRATION_MODE_AUTO ||
|
if (strmode == NULL)
|
||||||
mode == NETWORK_REGISTRATION_MODE_MANUAL)
|
upgrade = TRUE;
|
||||||
netreg->mode = mode;
|
else if (g_str_equal(strmode, "auto"))
|
||||||
|
netreg->mode = NETWORK_REGISTRATION_MODE_AUTO;
|
||||||
|
else if (g_str_equal(strmode, "manual"))
|
||||||
|
netreg->mode = NETWORK_REGISTRATION_MODE_MANUAL;
|
||||||
|
else {
|
||||||
|
int mode;
|
||||||
|
|
||||||
g_key_file_set_integer(netreg->settings, SETTINGS_GROUP,
|
mode = g_key_file_get_integer(netreg->settings, SETTINGS_GROUP,
|
||||||
"Mode", netreg->mode);
|
"Mode", NULL);
|
||||||
|
|
||||||
|
switch (mode) {
|
||||||
|
case NETWORK_REGISTRATION_MODE_AUTO:
|
||||||
|
case NETWORK_REGISTRATION_MODE_MANUAL:
|
||||||
|
netreg->mode = mode;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
upgrade = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(strmode);
|
||||||
|
|
||||||
|
if (upgrade == FALSE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (netreg->mode == NETWORK_REGISTRATION_MODE_MANUAL)
|
||||||
|
strmode = "manual";
|
||||||
|
else
|
||||||
|
strmode = "auto";
|
||||||
|
|
||||||
|
g_key_file_set_string(netreg->settings, SETTINGS_GROUP,
|
||||||
|
"Mode", strmode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sim_pnn_opl_changed(int id, void *userdata)
|
static void sim_pnn_opl_changed(int id, void *userdata)
|
||||||
|
|
Loading…
Reference in New Issue