You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.5 KiB
97 lines
2.5 KiB
package acr.browser.lightning.database.downloads; |
|
|
|
import android.support.annotation.NonNull; |
|
import android.support.annotation.WorkerThread; |
|
|
|
import com.anthonycr.bonsai.Completable; |
|
import com.anthonycr.bonsai.Single; |
|
|
|
import java.util.List; |
|
|
|
/** |
|
* The interface that should be used to |
|
* communicate with the download database. |
|
* <p> |
|
* Created by anthonycr on 5/6/17. |
|
*/ |
|
public interface DownloadsModel { |
|
|
|
/** |
|
* Determines if a URL is associated with a download. |
|
* |
|
* @param url the URL to check. |
|
* @return an observable that will emit true if |
|
* the URL is a download, false otherwise. |
|
*/ |
|
@NonNull |
|
Single<Boolean> isDownload(@NonNull String url); |
|
|
|
/** |
|
* Gets the download associated with the URL. |
|
* |
|
* @param url the URL to look for. |
|
* @return an observable that will emit either |
|
* the download associated with the URL or null. |
|
*/ |
|
@NonNull |
|
Single<DownloadItem> findDownloadForUrl(@NonNull String url); |
|
|
|
/** |
|
* Adds a download if one does not already exist with |
|
* the same URL. |
|
* |
|
* @param item the download to add. |
|
* @return an observable that emits true if the download |
|
* was added, false otherwise. |
|
*/ |
|
@NonNull |
|
Single<Boolean> addDownloadIfNotExists(@NonNull DownloadItem item); |
|
|
|
/** |
|
* Adds a list of downloads to the database. |
|
* |
|
* @param downloadItems the downloads to add. |
|
* @return an observable that emits a complete event |
|
* when all the downloads have been added. |
|
*/ |
|
@NonNull |
|
Completable addDownloadsList(@NonNull List<DownloadItem> downloadItems); |
|
|
|
/** |
|
* Deletes a download from the database. |
|
* |
|
* @param url the download url to delete. |
|
* @return an observable that emits true when |
|
* the download is deleted, false otherwise. |
|
*/ |
|
@NonNull |
|
Single<Boolean> deleteDownload(@NonNull String url); |
|
|
|
/** |
|
* Deletes all downloads in the database. |
|
* |
|
* @return an observable that emits a completion |
|
* event when all downloads have been deleted. |
|
*/ |
|
@NonNull |
|
Completable deleteAllDownloads(); |
|
|
|
/** |
|
* Emits a list of all downloads |
|
* |
|
* @return an observable that emits a list |
|
* of all downloads. |
|
*/ |
|
@NonNull |
|
Single<List<DownloadItem>> getAllDownloads(); |
|
|
|
/** |
|
* A synchronous call to the model |
|
* that returns the number of downloads. |
|
* Should be called from a background thread. |
|
* |
|
* @return the number of downloads in the database. |
|
*/ |
|
@WorkerThread |
|
long count(); |
|
}
|
|
|