@Override public void done(AVException e) { file.put(FILE_META, metaData); if (callback != null) { callback.internalDone(e); } } });
@Override public void done(AVException e) { if (e != null) { callback.internalDone(e); } else { fulFillFileInfo(callback); } } }));
protected void upload(final SaveCallback callback) { if (actualFile != null) { actualFile.saveInBackground().subscribe(ObserverBuilder.buildSingleObserver(new SaveCallback() { @Override public void done(AVException e) { if (e != null) { callback.internalDone(e); } else { fulFillFileInfo(callback); } } })); } else { callback.internalDone(new AVException(new RuntimeException("cannot find the file!"))); } }
protected void getAdditionalMetaData(Map<String, Object> meta, SaveCallback callback) { if (!this.hasAdditionalMetaAttr) { callback.internalDone(null); } else if (!StringUtil.isEmpty(actualFile.getUrl()) && localFile == null && !isExternalAVFile(actualFile)) { OkHttpClient client = PaasClient.getGlobalOkHttpClient(); Request.Builder builder = new Request.Builder(); try { Response rawResponse = client.newCall(builder.url(actualFile.getUrl() + getQueryName()).get().build()).execute(); String content = rawResponse.body().string(); com.alibaba.fastjson.JSONObject response = JSON.parseObject(content); com.alibaba.fastjson.JSONObject formatInfo = response.getJSONObject(FORMAT); parseAdditionalMetaData(meta, formatInfo); callback.internalDone(null); } catch (IOException ex) { callback.internalDone(new AVException(ex)); } catch (Exception e1) { callback.internalDone(new AVException(e1)); } } else { callback.internalDone(null); } }
protected void fulFillFileInfo(final SaveCallback callback) { // fulfill the file info map with AVFile if (actualFile != null) { file = getFile() == null ? new HashMap<String, Object>() : getFile(); file.put(OBJECT_ID, actualFile.getObjectId()); file.put(FILE_URL, actualFile.getUrl()); file.remove(LOCAL_PATH); final Map<String, Object> metaData = getFileMetaData() == null ? new HashMap<String, Object>() : getFileMetaData(); if (!metaData.containsKey(FILE_SIZE)) { metaData.put(FILE_SIZE, actualFile.getSize()); } getAdditionalMetaData(metaData, new SaveCallback() { @Override public void done(AVException e) { file.put(FILE_META, metaData); if (callback != null) { callback.internalDone(e); } } }); } else { callback.internalDone(new AVException(new RuntimeException("cannot find the file!"))); } }