Post-processing infrastructure * remove interfaces with one implementation * fix download resources with unknow length * marquee style for ProgressDrawable * "view details" option in mission context menu * notification for finished downloads * postprocessing infrastructure: sub-missions, circular file, layers for layers of abstractions for Java IO streams * Mp4 muxing (only DASH brand) * WebM muxing * Captions downloading * alert dialog for overwrite existing downloads finished or not. Misc changes * delete SQLiteDownloadDataSource.java * delete DownloadMissionSQLiteHelper.java * implement Localization from #114 Misc fixes (this branch) * restore old mission listeners variables. Prevents registered listeners get de-referenced on low-end devices * DownloadManagerService.checkForRunningMission() now return false if the mission has a error. * use Intent.FLAG_ACTIVITY_NEW_TASK when launching an activity from gigaget threads (apparently it is required in old versions of android) More changes * proper error handling "infrastructure" * queue instead of multiple downloads * move serialized pending downloads (.giga files) to app data * stop downloads when swicthing to mobile network (never works, see 2nd point) * save the thread count for next downloads * a lot of incoherences fixed * delete DownloadManagerTest.java (too many changes to keep this file updated)
66 lines
1.4 KiB
Java
66 lines
1.4 KiB
Java
package us.shandian.giga.get;
|
|
|
|
import java.io.File;
|
|
import java.io.Serializable;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
|
|
public abstract class Mission implements Serializable {
|
|
private static final long serialVersionUID = 0L;// last bump: 5 october 2018
|
|
|
|
/**
|
|
* Source url of the resource
|
|
*/
|
|
public String source;
|
|
|
|
/**
|
|
* Length of the current resource
|
|
*/
|
|
public long length;
|
|
|
|
/**
|
|
* creation timestamp (and maybe unique identifier)
|
|
*/
|
|
public long timestamp;
|
|
|
|
/**
|
|
* The filename
|
|
*/
|
|
public String name;
|
|
|
|
/**
|
|
* The directory to store the download
|
|
*/
|
|
public String location;
|
|
|
|
/**
|
|
* pre-defined content type
|
|
*/
|
|
public char kind;
|
|
|
|
/**
|
|
* get the target file on the storage
|
|
*
|
|
* @return File object
|
|
*/
|
|
public File getDownloadedFile() {
|
|
return new File(location, name);
|
|
}
|
|
|
|
public boolean delete() {
|
|
deleted = true;
|
|
return getDownloadedFile().delete();
|
|
}
|
|
|
|
/**
|
|
* Indicate if this mission is deleted whatever is stored
|
|
*/
|
|
public transient boolean deleted = false;
|
|
|
|
@Override
|
|
public String toString() {
|
|
Calendar calendar = Calendar.getInstance();
|
|
calendar.setTimeInMillis(timestamp);
|
|
return "[" + calendar.getTime().toString() + "] " + location + File.separator + name;
|
|
}
|
|
}
|