STATUS wipe_menu_show(menuUnit *p) { return_val_if_fail(p != NULL, RET_FAIL); int n = p->get_child_count(p); int selindex = 0; return_val_if_fail(n >= 1, RET_FAIL); return_val_if_fail(n < ITEM_COUNT, RET_FAIL); struct _menuUnit *temp = p->child; return_val_if_fail(temp != NULL, RET_FAIL); char **menu_item = malloc(n * sizeof(char *)); assert_if_fail(menu_item != NULL); int i = 0; for (i = 0; i < n; i++) { menu_item[i] = temp->name; temp = temp->nextSilbing; } selindex = miui_mainmenu(p->name, menu_item, NULL, NULL, n); p->result = selindex; if (menu_item != NULL) free(menu_item); return p->result; }
static STATUS mount_menu_show(menuUnit *p) { //traverse all mount files //ensure cache miuiIntent_send(INTENT_ISMOUNT, 1, "/cache"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_cache_node, ICON_ENABLE); menuUnit_set_desc(mount_cache_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_cache_node, ICON_DISABLE); menuUnit_set_desc(mount_cache_node, MOUNT_DESC_UNMOUNT); } //ensure data miuiIntent_send(INTENT_ISMOUNT, 1, "/data"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_data_node, ICON_ENABLE); menuUnit_set_desc(mount_data_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_data_node, ICON_DISABLE); menuUnit_set_desc(mount_data_node, MOUNT_DESC_UNMOUNT); } //ensure system miuiIntent_send(INTENT_ISMOUNT, 1, "/system"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_system_node, ICON_ENABLE); menuUnit_set_desc(mount_system_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_system_node, ICON_DISABLE); menuUnit_set_desc(mount_system_node, MOUNT_DESC_UNMOUNT); } //ensure sdcard miuiIntent_send(INTENT_ISMOUNT, 1, "/sdcard"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_sd_node, ICON_ENABLE); menuUnit_set_desc(mount_sd_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_sd_node, ICON_DISABLE); menuUnit_set_desc(mount_sd_node, MOUNT_DESC_UNMOUNT); } if (acfg()->sd_ext == 1) { //ensure sd-ext miuiIntent_send(INTENT_ISMOUNT, 1, "/internal_sd"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_sd_ext_node, ICON_ENABLE); menuUnit_set_desc(mount_sd_ext_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_sd_ext_node, ICON_DISABLE); menuUnit_set_desc(mount_sd_ext_node, MOUNT_DESC_UNMOUNT); } } //show menu return_val_if_fail(p != NULL, RET_FAIL); int n = p->get_child_count(p); return_val_if_fail(n > 0, RET_FAIL); int selindex = 0; return_val_if_fail(n >= 1, RET_FAIL); return_val_if_fail(n < ITEM_COUNT, RET_FAIL); struct _menuUnit *temp = p->child; return_val_if_fail(temp != NULL, RET_FAIL); char **menu_item = malloc(n * sizeof(char *)); assert_if_fail(menu_item != NULL); char **icon_item=malloc(n * sizeof(char *)); assert_if_fail(icon_item != NULL); char **title_item= malloc(n * sizeof(char *)); assert_if_fail(title_item != NULL); int i = 0; for (i = 0; i < n; i++) { menu_item[i] = temp->name; title_item[i] = temp->title_name; icon_item[i] = temp->icon; temp = temp->nextSilbing; } selindex = miui_mainmenu(p->name, menu_item, NULL, icon_item, n); p->result = selindex; if (menu_item != NULL) free(menu_item); if (title_item != NULL) free(title_item); if (icon_item != NULL) free(icon_item); return p->result; }