da_result_t check_enough_storage(stage_info *stage) { da_result_t ret = DA_RESULT_OK; unsigned long cont_size = 0; da_storage_size_t avail_memory = {0, }; da_storage_type_t type = DA_STORAGE_PHONE; DA_LOG_FUNC_START(Default); /* check enough storage here because of multiple download */ ret = get_storage_type(&type); if (DA_RESULT_OK != ret) return ret; cont_size = GET_CONTENT_STORE_CURRENT_FILE_SIZE(GET_STAGE_CONTENT_STORE_INFO(stage)); DA_LOG(Default,"cont_size [%d]", cont_size); if (cont_size) { ret = get_available_memory(DA_STORAGE_PHONE, &avail_memory); if (DA_RESULT_OK == ret && (avail_memory.b_available < ((cont_size + SAVE_FILE_BUFFERING_SIZE_5MB) / avail_memory.b_size))) /* 5MB buffering */ { DA_LOG_ERR(Default,"There is no space for content in Phone memory"); return DA_ERR_DISK_FULL; } else if (DA_RESULT_OK != ret) { return ret; } /* If default memeory type is mmc, * it need to check phone memroy for temproary folder * and mmc memory for actual install folder */ if (type == DA_STORAGE_MMC) { DA_LOG(Default,"Storage type == DA_STORAGE_MMC\n"); ret = get_available_memory(type, &avail_memory); if (DA_RESULT_OK == ret && (avail_memory.b_available < ((cont_size + SAVE_FILE_BUFFERING_SIZE_50KB) / avail_memory.b_size))) /* 50KB buffering */ { DA_LOG_ERR(Default,"There is no space for content in MMC memory"); return DA_ERR_DISK_FULL; } else if (DA_RESULT_OK != ret) { return ret; } } } return ret; }
da_result_t handle_after_download(stage_info *stage) { da_result_t ret = DA_RESULT_OK; da_mime_type_id_t mime_type = DA_MIME_TYPE_NONE; DA_LOG_FUNC_START(Default); mime_type = get_mime_type_id( GET_CONTENT_STORE_CONTENT_TYPE(GET_STAGE_CONTENT_STORE_INFO(stage))); switch (mime_type) { case DA_MIME_TYPE_NONE: DA_LOG(Default, "DA_MIME_TYPE_NONE"); ret = DA_ERR_MISMATCH_CONTENT_TYPE; break; default: CHANGE_DOWNLOAD_STATE(DOWNLOAD_STATE_FINISH, stage); break; } /* end of switch */ return ret; }