/** * build DownloadStatusConfiguration * * @return the DownloadStatusConfiguration */ public DownloadStatusConfiguration build() { return new DownloadStatusConfiguration(this); } }
/** * remove a OnFileDownloadStatusListener * * @param onFileDownloadStatusListener added OnFileDownloadStatusListener impl */ public void removeOnFileDownloadStatusListener(OnFileDownloadStatusListener onFileDownloadStatusListener) { if (onFileDownloadStatusListener == null) { return; } // find and remove for (DownloadStatusListenerInfo listenerInfo : mDownloadStatusListenerInfos) { if (listenerInfo == null) { // not need to remove, may has been removed continue; } if (listenerInfo.mListener == onFileDownloadStatusListener) { // find, remove mDownloadStatusListenerInfos.remove(listenerInfo); String urls = (listenerInfo.mDownloadStatusConfiguration != null && !CollectionUtil.isEmpty (listenerInfo.mDownloadStatusConfiguration.getListenUrls())) ? listenerInfo .mDownloadStatusConfiguration.getListenUrls().toString() : "all"; Log.i(TAG, "file-downloader-listener 移除【文件下载状态监听器】成功,该listener监听的urls:" + urls); break; } } }
.mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; if (listenerInfo.mDownloadStatusConfiguration.isAutoRelease()) { mDownloadStatusListenerInfos.remove(listenerInfo);
.mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; if (listenerInfo.mDownloadStatusConfiguration.isAutoRelease()) { mDownloadStatusListenerInfos.remove(listenerInfo);
.mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; if (listenerInfo.mDownloadStatusConfiguration.isAutoRelease()) { mDownloadStatusListenerInfos.remove(listenerInfo);
/** * add a OnFileDownloadStatusListener * * @param onFileDownloadStatusListener OnFileDownloadStatusListener * @param downloadStatusConfiguration Configuration for the OnFileDownloadStatusListener impl */ public void addOnFileDownloadStatusListener(OnFileDownloadStatusListener onFileDownloadStatusListener, DownloadStatusConfiguration downloadStatusConfiguration) { if (onFileDownloadStatusListener == null) { return; } // find whether is added for (DownloadStatusListenerInfo listenerInfo : mDownloadStatusListenerInfos) { if (listenerInfo == null) { return; } if (listenerInfo.mListener == onFileDownloadStatusListener) { return;// has been added } } // need add DownloadStatusListenerInfo listenerInfo = new DownloadStatusListenerInfo(downloadStatusConfiguration, onFileDownloadStatusListener); mDownloadStatusListenerInfos.add(listenerInfo); String urls = (downloadStatusConfiguration != null && !CollectionUtil.isEmpty(downloadStatusConfiguration .getListenUrls())) ? downloadStatusConfiguration.getListenUrls().toString() : "all"; Log.i(TAG, "file-downloader-listener 添加【文件下载状态监听器】成功,该listener监听的urls:" + urls); }
@Override public void onFileDownloadStatusPreparing(DownloadFileInfo downloadFileInfo) { if (!DownloadFileUtil.isLegal(downloadFileInfo)) { return; } String url = downloadFileInfo.getUrl(); for (DownloadStatusListenerInfo listenerInfo : mDownloadStatusListenerInfos) { if (listenerInfo == null || listenerInfo.mListener == null || listenerInfo.mListener == this) { continue; } // notify match url listeners if (listenerInfo.mDownloadStatusConfiguration != null && !CollectionUtil.isEmpty(listenerInfo .mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; } if (url.equals(listenUrl) || url.trim().equals(listenUrl.trim())) { // find match url, notify caller notifyStatusPreparing(downloadFileInfo, listenerInfo.mListener); } } } // Configuration or ListenUrls is null or empty, notify all else { // global register listener, notify all callers notifyStatusPreparing(downloadFileInfo, listenerInfo.mListener); } } }
@Override public void onFileDownloadStatusPrepared(DownloadFileInfo downloadFileInfo) { if (!DownloadFileUtil.isLegal(downloadFileInfo)) { return; } String url = downloadFileInfo.getUrl(); for (DownloadStatusListenerInfo listenerInfo : mDownloadStatusListenerInfos) { if (listenerInfo == null || listenerInfo.mListener == null || listenerInfo.mListener == this) { continue; } // notify match url listeners if (listenerInfo.mDownloadStatusConfiguration != null && !CollectionUtil.isEmpty(listenerInfo .mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; } if (url.equals(listenUrl) || url.trim().equals(listenUrl.trim())) { // find match url, notify caller notifyStatusPrepared(downloadFileInfo, listenerInfo.mListener); } } } // Configuration or ListenUrls is null or empty, notify all else { // global register listener, notify all callers notifyStatusPrepared(downloadFileInfo, listenerInfo.mListener); } } }
.mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue;
.mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue;
@Override public void onFileDownloadStatusWaiting(DownloadFileInfo downloadFileInfo) { if (!DownloadFileUtil.isLegal(downloadFileInfo)) { return; } String url = downloadFileInfo.getUrl(); for (DownloadStatusListenerInfo listenerInfo : mDownloadStatusListenerInfos) { if (listenerInfo == null || listenerInfo.mListener == null || listenerInfo.mListener == this) { continue; } // notify match url listeners if (listenerInfo.mDownloadStatusConfiguration != null && !CollectionUtil.isEmpty(listenerInfo .mDownloadStatusConfiguration.getListenUrls())) { for (String listenUrl : listenerInfo.mDownloadStatusConfiguration.getListenUrls()) { if (!UrlUtil.isUrl(listenUrl)) { continue; } if (url.equals(listenUrl) || url.trim().equals(listenUrl.trim())) { // find match url, notify caller notifyStatusWaiting(downloadFileInfo, listenerInfo.mListener); } } } // Configuration or ListenUrls is null or empty, notify all else { // global register listener, notify all callers notifyStatusWaiting(downloadFileInfo, listenerInfo.mListener); } } }