Java tutorial
/* * Created by Angel Leon (@gubatron), Alden Torres (aldenml) * Copyright (c) 2011-2016, FrostWire(R). All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.frostwire.android.gui.transfers; import com.frostwire.android.gui.services.Engine; import com.frostwire.frostclick.Slide; import com.frostwire.search.HttpSearchResult; import com.frostwire.transfers.HttpDownload; import org.apache.commons.io.FilenameUtils; /** * @author aldenml * @author gubatron */ public class UIHttpDownload extends HttpDownload { private final TransferManager manager; public UIHttpDownload(TransferManager manager, HttpSearchResult sr) { super(convert(sr)); this.manager = manager; } public UIHttpDownload(TransferManager manager, Slide slide) { super(convert(slide)); this.manager = manager; } @Override public void remove(boolean deleteData) { super.remove(deleteData); manager.remove(this); } @Override protected void onComplete() { manager.incrementDownloadsToReview(); Engine.instance().notifyDownloadFinished(getDisplayName(), savePath); } private static Info convert(HttpSearchResult sr) { return new Info(sr.getDownloadUrl(), sr.getFilename(), sr.getDisplayName(), sr.getSize()); } private static Info convert(Slide slide) { return new Info(slide.httpDownloadURL == null ? slide.torrent : slide.httpDownloadURL, FilenameUtils.getName(slide.httpDownloadURL == null ? slide.torrent : slide.httpDownloadURL), slide.title, slide.size); } }