@Override public void onSuccess(ResponseInfo<File> responseInfo) { if (downloadInfo.getFileLength() != downloadInfo.getProgress()) { // 不一致 返回 return; } if (downloadInfo.getAutoRenameTmp()) { // 成功后改名 File tarFile = new File(downloadInfo.getFileTmpPath()); if (tarFile.exists()) { File newFile = new File(downloadInfo.getFileSavePath()); tarFile.renameTo(newFile); } } LogUtils.d(downloadInfo.getPkg() + " onSuccess"); HttpHandler<File> handler = downloadInfo.getHandler(); if (handler != null) { downloadInfo.setState(handler.getState()); } try { db.saveOrUpdate(downloadInfo); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } if (baseCallBack != null) { baseCallBack.onSuccess(responseInfo); } }
@Override public void onFailure(HttpException error, String msg) { LogUtils.d(downloadInfo.getPkg() + " onFailure"); HttpHandler<File> handler = downloadInfo.getHandler(); if (handler != null) { downloadInfo.setState(handler.getState()); } try { db.saveOrUpdate(downloadInfo); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } if (baseCallBack != null) { baseCallBack.onFailure(error, msg); } }
/* package */ public DownloadManager(Context appContext) { LogUtils.allowD = true; ColumnConverterFactory.registerColumnConverter( HttpHandler.State.class, new HttpHandlerStateConverter()); mContext = appContext; db = DbUtils.create(mContext); try { downloadInfoList = db.findAll(Selector.from(DownloadInfo.class)); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } if (downloadInfoList == null) { downloadInfoList = new ArrayList<DownloadInfo>(); } }
@Override public void onCancelled() { HttpHandler<File> handler = downloadInfo.getHandler(); if (handler != null) { downloadInfo.setState(handler.getState()); } try { db.saveOrUpdate(downloadInfo); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } if (baseCallBack != null) { baseCallBack.onCancelled(); } }
@Override public void onLoading(long total, long current, boolean isUploading) { HttpHandler<File> handler = downloadInfo.getHandler(); if (handler != null) { downloadInfo.setState(handler.getState()); } downloadInfo.setFileLength(total); downloadInfo.setProgress(current); try { db.saveOrUpdate(downloadInfo); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } if (baseCallBack != null) { baseCallBack.onLoading(total, current, isUploading); } }
private static void addColumns2Map( Class<?> entityType, String primaryKeyFieldName, HashMap<String, Column> columnMap) { if (Object.class.equals(entityType)) return; try { Field[] fields = entityType.getDeclaredFields(); for (Field field : fields) { if (ColumnUtils.isTransient(field) || Modifier.isStatic(field.getModifiers())) { continue; } if (ColumnConverterFactory.isSupportColumnConverter(field.getType())) { if (!field.getName().equals(primaryKeyFieldName)) { Column column = new Column(entityType, field); if (!columnMap.containsKey(column.getColumnName())) { columnMap.put(column.getColumnName(), column); } } } else if (ColumnUtils.isForeign(field)) { Foreign column = new Foreign(entityType, field); if (!columnMap.containsKey(column.getColumnName())) { columnMap.put(column.getColumnName(), column); } } else if (ColumnUtils.isFinder(field)) { Finder column = new Finder(entityType, field); if (!columnMap.containsKey(column.getColumnName())) { columnMap.put(column.getColumnName(), column); } } } if (!Object.class.equals(entityType.getSuperclass())) { addColumns2Map(entityType.getSuperclass(), primaryKeyFieldName, columnMap); } } catch (Throwable e) { LogUtils.e(e.getMessage(), e); } }