9e34fee58c
Main changes: * correctly check the available space (CircularFile.java) * misc cleanup (CircularFile.java) * use the "Error Reporter" for non-http errors * rewrite network state checking and add better support for API 21 (Lollipop) or higher * implement "metered networks" * add buttons in "Downloads" activity to start/pause all pending downloads, ignoring the queue flag or if the network is "metered" * add workaround for VPN connections and/or network switching. Example: switching WiFi to 3G * rewrite DataReader ¡Webm muxer is now 57% more faster! * rewrite CircularFile, use file buffers instead of memory buffers. Less troubles in low-end devices * fix missing offset for KaxCluster (WebMWriter.java), manifested as no thumbnails on file explorers Download queue: * remember queue status, unless the user pause the download (un-queue) * semi-automatic downloads, between networks. Effective if the user create a new download or the downloads activity is starts * allow enqueue failed downloads * new option, queue limit, enabled by default. Used to allow one or multiple downloads at same time Miscellaneous: * fix crash while selecting details/error menu (mistake on MissionFragment.java) * misc serialize changes (DownloadMission.java) * minor UI tweaks * allow overwrite paused downloads * fix wrong icons for grid/list button in downloads * add share option * implement #2006 * correct misspelled word in strings.xml (es) (cmn) * fix MissionAdapter crash during device shutdown New Mp4Muxer + required changes: * new mp4 muxer (from dash only) with this, muxing on Android 7 is possible now!!! * re-work in SharpStream * drop mp4 dash muxer * misc changes: add warning in SecondaryStreamHelper.java, * strip m4a DASH files to normal m4a format (youtube only) Fix storage issues: * warn to the user if is choosing a "read only" download directory (for external SD Cards), useless is rooted :) * "write proof" allow post-processing resuming only if the device ran out of space * implement "insufficient storage" error for downloads
71 lines
1.6 KiB
Java
71 lines
1.6 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);
|
|
}
|
|
|
|
/**
|
|
* Delete the downloaded file
|
|
*
|
|
* @return {@code true] if and only if the file is successfully deleted, otherwise, {@code false}
|
|
*/
|
|
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;
|
|
}
|
|
}
|