/*
* Created by Angel Leon (@gubatron), Alden Torres (aldenml)
* Copyright (c) 2011, 2012, 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.bt.download.android.gui.transfers;
import java.io.File;
import com.bt.download.android.core.SystemPaths;
import com.bt.download.android.gui.Librarian;
import com.frostwire.search.SearchResult;
/**
* @author gubatron
* @author aldenml
*
*/
public abstract class TemporaryDownloadTransfer<T extends SearchResult> implements DownloadTransfer {
protected File savePath;
protected HttpDownload delegate;
protected T sr;
@Override
public File getSavePath() {
File path = savePath;
if (savePath == null && delegate != null) {
path = delegate.getSavePath();
}
return path;
}
@Override
public String getDetailsUrl() {
return sr.getDetailsUrl();
}
protected void moveFile(File savePath, byte fileType) {
File finalFile = getFinalFile(savePath, fileType);
if (savePath.renameTo(finalFile)) {
this.savePath = finalFile;
} else {
this.savePath = savePath;
}
}
protected void scanFinalFile() {
if (getSavePath() != null && getSavePath().exists()) {
Librarian.instance().scan(getSavePath().getAbsoluteFile());
}
}
protected File getFinalFile(File savePath, byte fileType) {
File path = SystemPaths.getSaveDirectory(fileType);
File finalFile = new File(path, savePath.getName());
return finalFile;
}
public T getTag() {
return sr;
}
}