From 7363d88a506cd0ae64367b290a525de332dc4aae Mon Sep 17 00:00:00 2001 From: Karim0x1 Date: Sun, 23 Oct 2022 13:18:06 +0200 Subject: [PATCH 1/5] Dart side --- lib/src/downloader.dart | 16 ++++++++++++++++ lib/src/models.dart | 6 +++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/src/downloader.dart b/lib/src/downloader.dart index de24a910..efa120ca 100644 --- a/lib/src/downloader.dart +++ b/lib/src/downloader.dart @@ -94,6 +94,7 @@ class FlutterDownloader { required String url, required String savedDir, String? fileName, + Map? extras, Map headers = const {}, bool showNotification = true, bool openFileFromNotification = true, @@ -108,6 +109,7 @@ class FlutterDownloader { 'url': url, 'saved_dir': savedDir, 'file_name': fileName, + 'extras': jsonEncode(extras), 'headers': jsonEncode(headers), 'show_notification': showNotification, 'open_file_from_notification': openFileFromNotification, @@ -148,12 +150,19 @@ class FlutterDownloader { (dynamic item) { // item as Map; // throws + Map? extras; + + if ((item['extras'] as String?) != null) { + extras = Map.castFrom(jsonDecode(item['extras'] as String)); + } + return DownloadTask( taskId: item['task_id'] as String, status: DownloadTaskStatus(item['status'] as int), progress: item['progress'] as int, url: item['url'] as String, filename: item['file_name'] as String?, + extras: extras, savedDir: item['saved_dir'] as String, timeCreated: item['time_created'] as int, ); @@ -205,12 +214,19 @@ class FlutterDownloader { (dynamic item) { // item as Map; // throws + Map? extras; + + if ((item['extras'] as String?) != null) { + extras = Map.castFrom(jsonDecode(item['extras'] as String)); + } + return DownloadTask( taskId: item['task_id'] as String, status: DownloadTaskStatus(item['status'] as int), progress: item['progress'] as int, url: item['url'] as String, filename: item['file_name'] as String?, + extras: extras, savedDir: item['saved_dir'] as String, timeCreated: item['time_created'] as int, ); diff --git a/lib/src/models.dart b/lib/src/models.dart index fed19f3b..0584b64a 100644 --- a/lib/src/models.dart +++ b/lib/src/models.dart @@ -57,6 +57,7 @@ class DownloadTask { required this.progress, required this.url, required this.filename, + required this.extras, required this.savedDir, required this.timeCreated, }); @@ -76,6 +77,9 @@ class DownloadTask { /// Local file name of the downloaded file. final String? filename; + /// Optional, extra string associated with this task + final Map? extras; + /// Absolute path to the directory where the downloaded file will saved. final String savedDir; @@ -84,5 +88,5 @@ class DownloadTask { @override String toString() => - 'DownloadTask(taskId: $taskId, status: $status, progress: $progress, url: $url, filename: $filename, savedDir: $savedDir, timeCreated: $timeCreated)'; + 'DownloadTask(taskId: $taskId, status: $status, progress: $progress, url: $url, filename: $filename, extra: $extras, savedDir: $savedDir, timeCreated: $timeCreated)'; } From 36efdfb94c24149a3ce0a92336fd8320a16f336b Mon Sep 17 00:00:00 2001 From: Karim0x1 Date: Sun, 23 Oct 2022 13:18:25 +0200 Subject: [PATCH 2/5] Android side --- .../vn/hunghd/flutterdownloader/DownloadTask.kt | 1 + .../vn/hunghd/flutterdownloader/DownloadWorker.kt | 5 ++++- .../flutterdownloader/FlutterDownloaderPlugin.kt | 13 +++++++++---- .../kotlin/vn/hunghd/flutterdownloader/TaskDao.kt | 5 +++++ .../vn/hunghd/flutterdownloader/TaskDbHelper.kt | 1 + .../kotlin/vn/hunghd/flutterdownloader/TaskEntry.kt | 1 + 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt index 30ffe9d4..cfc31f00 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadTask.kt @@ -7,6 +7,7 @@ data class DownloadTask( var progress: Int, var url: String, var filename: String?, + var extras: String?, var savedDir: String, var headers: String, var mimeType: String, diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt index 2ebc5ed6..e91e02db 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt @@ -153,6 +153,8 @@ class DownloadWorker(context: Context, params: WorkerParameters) : inputData.getString(ARG_URL) ?: throw IllegalArgumentException("Argument '$ARG_URL' should not be null") val filename: String? = inputData.getString(ARG_FILE_NAME) // ?: throw IllegalArgumentException("Argument '$ARG_FILE_NAME' should not be null") + val extras: String? = + inputData.getString(ARG_EXTRAS) val savedDir: String = inputData.getString(ARG_SAVED_DIR) ?: throw IllegalArgumentException("Argument '$ARG_SAVED_DIR' should not be null") val headers: String = inputData.getString(ARG_HEADERS) @@ -170,7 +172,7 @@ class DownloadWorker(context: Context, params: WorkerParameters) : msgComplete = res.getString(R.string.flutter_downloader_notification_complete) val task = taskDao?.loadTask(id.toString()) log( - "DownloadWorker{url=$url,filename=$filename,savedDir=$savedDir,header=$headers,isResume=$isResume,status=" + ( + "DownloadWorker{url=$url,filename=$filename,extras=$extras,savedDir=$savedDir,header=$headers,isResume=$isResume,status=" + ( task?.status ?: "GONE" ) @@ -822,6 +824,7 @@ class DownloadWorker(context: Context, params: WorkerParameters) : companion object { const val ARG_URL = "url" const val ARG_FILE_NAME = "file_name" + const val ARG_EXTRAS = "extras" const val ARG_SAVED_DIR = "saved_file" const val ARG_HEADERS = "headers" const val ARG_IS_RESUME = "is_resume" diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/FlutterDownloaderPlugin.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/FlutterDownloaderPlugin.kt index 580df98f..d4a24fdb 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/FlutterDownloaderPlugin.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/FlutterDownloaderPlugin.kt @@ -82,6 +82,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { url: String?, savedDir: String?, filename: String?, + extras: String?, headers: String?, showNotification: Boolean, openFileFromNotification: Boolean, @@ -103,6 +104,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { .putString(DownloadWorker.ARG_URL, url) .putString(DownloadWorker.ARG_SAVED_DIR, savedDir) .putString(DownloadWorker.ARG_FILE_NAME, filename) + .putString(DownloadWorker.ARG_EXTRAS, extras) .putString(DownloadWorker.ARG_HEADERS, headers) .putBoolean(DownloadWorker.ARG_SHOW_NOTIFICATION, showNotification) .putBoolean( @@ -157,13 +159,14 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { val url: String = call.requireArgument("url") val savedDir: String = call.requireArgument("saved_dir") val filename: String? = call.argument("file_name") + val extras: String? = call.argument("extras") val headers: String = call.requireArgument("headers") val showNotification: Boolean = call.requireArgument("show_notification") val openFileFromNotification: Boolean = call.requireArgument("open_file_from_notification") val requiresStorageNotLow: Boolean = call.requireArgument("requires_storage_not_low") val saveInPublicStorage: Boolean = call.requireArgument("save_in_public_storage") val request: WorkRequest = buildRequest( - url, savedDir, filename, headers, showNotification, + url, savedDir, filename, extras, headers, showNotification, openFileFromNotification, false, requiresStorageNotLow, saveInPublicStorage ) WorkManager.getInstance(requireContext()).enqueue(request) @@ -171,7 +174,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { result.success(taskId) sendUpdateProgress(taskId, DownloadStatus.ENQUEUED, 0) taskDao!!.insertOrUpdateNewTask( - taskId, url, DownloadStatus.ENQUEUED, 0, filename, + taskId, url, DownloadStatus.ENQUEUED, 0, filename, extras, savedDir, headers, showNotification, openFileFromNotification, saveInPublicStorage ) } @@ -186,6 +189,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { item["progress"] = task.progress item["url"] = task.url item["file_name"] = task.filename + item["extras"] = task.extras item["saved_dir"] = task.savedDir item["time_created"] = task.timeCreated array.add(item) @@ -204,6 +208,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { item["progress"] = task.progress item["url"] = task.url item["file_name"] = task.filename + item["extras"] = task.extras item["saved_dir"] = task.savedDir item["time_created"] = task.timeCreated array.add(item) @@ -246,7 +251,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { val partialFile = File(partialFilePath) if (partialFile.exists()) { val request: WorkRequest = buildRequest( - task.url, task.savedDir, task.filename, + task.url, task.savedDir, task.filename, task.extras, task.headers, task.showNotification, task.openFileFromNotification, true, requiresStorageNotLow, task.saveInPublicStorage ) @@ -284,7 +289,7 @@ class FlutterDownloaderPlugin : MethodChannel.MethodCallHandler, FlutterPlugin { if (task != null) { if (task.status == DownloadStatus.FAILED || task.status == DownloadStatus.CANCELED) { val request: WorkRequest = buildRequest( - task.url, task.savedDir, task.filename, + task.url, task.savedDir, task.filename, task.extras, task.headers, task.showNotification, task.openFileFromNotification, false, requiresStorageNotLow, task.saveInPublicStorage ) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt index 79dd2f67..3fc9f502 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDao.kt @@ -13,6 +13,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { TaskEntry.COLUMN_NAME_STATUS, TaskEntry.COLUMN_NAME_URL, TaskEntry.COLUMN_NAME_FILE_NAME, + TaskEntry.COLUMN_NAME_EXTRAS, TaskEntry.COLUMN_NAME_SAVED_DIR, TaskEntry.COLUMN_NAME_HEADERS, TaskEntry.COLUMN_NAME_MIME_TYPE, @@ -29,6 +30,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { status: DownloadStatus, progress: Int, fileName: String?, + extras: String?, savedDir: String?, headers: String?, showNotification: Boolean, @@ -42,6 +44,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { values.put(TaskEntry.COLUMN_NAME_STATUS, status.ordinal) values.put(TaskEntry.COLUMN_NAME_PROGRESS, progress) values.put(TaskEntry.COLUMN_NAME_FILE_NAME, fileName) + values.put(TaskEntry.COLUMN_NAME_EXTRAS, extras) values.put(TaskEntry.COLUMN_NAME_SAVED_DIR, savedDir) values.put(TaskEntry.COLUMN_NAME_HEADERS, headers) values.put(TaskEntry.COLUMN_NAME_MIME_TYPE, "unknown") @@ -235,6 +238,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { val progress = cursor.getInt(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_PROGRESS)) val url = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_URL)) val filename = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_FILE_NAME)) + val extras = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_EXTRAS)) val savedDir = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_SAVED_DIR)) val headers = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_HEADERS)) val mimeType = cursor.getString(cursor.getColumnIndexOrThrow(TaskEntry.COLUMN_NAME_MIME_TYPE)) @@ -250,6 +254,7 @@ class TaskDao(private val dbHelper: TaskDbHelper) { progress, url, filename, + extras, savedDir, headers, mimeType, diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt index 15b3746d..f2ef4852 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt @@ -36,6 +36,7 @@ class TaskDbHelper private constructor(context: Context) : TaskEntry.COLUMN_NAME_STATUS + " INTEGER DEFAULT 0, " + TaskEntry.COLUMN_NAME_PROGRESS + " INTEGER DEFAULT 0, " + TaskEntry.COLUMN_NAME_FILE_NAME + " TEXT, " + + TaskEntry.COLUMN_NAME_EXTRAS + " TEXT, " + TaskEntry.COLUMN_NAME_SAVED_DIR + " TEXT, " + TaskEntry.COLUMN_NAME_HEADERS + " TEXT, " + TaskEntry.COLUMN_NAME_MIME_TYPE + " VARCHAR(128), " + diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskEntry.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskEntry.kt index 10bfcd67..b813b7b2 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskEntry.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskEntry.kt @@ -10,6 +10,7 @@ object TaskEntry : BaseColumns { const val COLUMN_NAME_URL = "url" const val COLUMN_NAME_SAVED_DIR = "saved_dir" const val COLUMN_NAME_FILE_NAME = "file_name" + const val COLUMN_NAME_EXTRAS = "extras" const val COLUMN_NAME_MIME_TYPE = "mime_type" const val COLUMN_NAME_RESUMABLE = "resumable" const val COLUMN_NAME_HEADERS = "headers" From 15991056aaa99371eff95bf3e68d73ebe684f21c Mon Sep 17 00:00:00 2001 From: Karim0x1 Date: Sun, 23 Oct 2022 13:29:29 +0200 Subject: [PATCH 3/5] IOS side --- ios/Classes/FlutterDownloaderPlugin.m | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/ios/Classes/FlutterDownloaderPlugin.m b/ios/Classes/FlutterDownloaderPlugin.m index 3e4974c3..aecfc5a3 100644 --- a/ios/Classes/FlutterDownloaderPlugin.m +++ b/ios/Classes/FlutterDownloaderPlugin.m @@ -12,6 +12,7 @@ #define KEY_URL @"url" #define KEY_SAVED_DIR @"saved_dir" #define KEY_FILE_NAME @"file_name" +#define KEY_EXTRAS @"extras" #define KEY_PROGRESS @"progress" #define KEY_ID @"id" #define KEY_IDS @"ids" @@ -159,7 +160,7 @@ - (NSURLSession*)currentSession { return _session; } -- (NSURLSessionDownloadTask*)downloadTaskWithURL: (NSURL*) url fileName: (NSString*) fileName andSavedDir: (NSString*) savedDir andHeaders: (NSString*) headers +- (NSURLSessionDownloadTask*)downloadTaskWithURL: (NSURL*) url fileName: (NSString*) fileName andExtras: (NSString*) extras andSavedDir: (NSString*) savedDir andHeaders: (NSString*) headers { NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; if (headers != nil && [headers length] > 0) { @@ -412,7 +413,7 @@ - (NSString*) escape:(NSString*) origin revert:(BOOL)revert : [origin stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet]; } -- (void) addNewTask: (NSString*) taskId url: (NSString*) url status: (int) status progress: (int) progress filename: (NSString*) filename savedDir: (NSString*) savedDir headers: (NSString*) headers resumable: (BOOL) resumable showNotification: (BOOL) showNotification openFileFromNotification: (BOOL) openFileFromNotification +- (void) addNewTask: (NSString*) taskId url: (NSString*) url status: (int) status progress: (int) progress filename: (NSString*) filename extras: (NSString*) extras savedDir: (NSString*) savedDir headers: (NSString*) headers resumable: (BOOL) resumable showNotification: (BOOL) showNotification openFileFromNotification: (BOOL) openFileFromNotification { headers = [self escape:headers revert:false]; NSString *query = [NSString stringWithFormat:@"INSERT INTO task (task_id,url,status,progress,file_name,saved_dir,headers,resumable,show_notification,open_file_from_notification,time_created) VALUES (\"%@\",\"%@\",%d,%d,\"%@\",\"%@\",\"%@\",%d,%d,%d,%lld)", taskId, url, status, progress, filename, savedDir, headers, resumable ? 1 : 0, showNotification ? 1 : 0, openFileFromNotification ? 1 : 0, [self currentTimeInMilliseconds]]; @@ -567,6 +568,7 @@ - (NSDictionary*) taskDictFromRecordArray:(NSArray*)record int progress = [[record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"progress"]] intValue]; NSString *url = [record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"url"]]; NSString *filename = [record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"file_name"]]; + NSString *extras = [record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"extras"]]; NSString *savedDir = [self absoluteSavedDirPath:[record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"saved_dir"]]]; NSString *headers = @""; // in certain cases, headers column might not be available and will cause NSRangeException @@ -580,7 +582,7 @@ - (NSDictionary*) taskDictFromRecordArray:(NSArray*)record int showNotification = [[record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"show_notification"]] intValue]; int openFileFromNotification = [[record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"open_file_from_notification"]] intValue]; long long timeCreated = [[record objectAtIndex:[_dbManager.arrColumnNames indexOfObject:@"time_created"]] longLongValue]; - return [NSDictionary dictionaryWithObjectsAndKeys:taskId, KEY_TASK_ID, @(status), KEY_STATUS, @(progress), KEY_PROGRESS, url, KEY_URL, filename, KEY_FILE_NAME, headers, KEY_HEADERS, savedDir, KEY_SAVED_DIR, [NSNumber numberWithBool:(resumable == 1)], KEY_RESUMABLE, [NSNumber numberWithBool:(showNotification == 1)], KEY_SHOW_NOTIFICATION, [NSNumber numberWithBool:(openFileFromNotification == 1)], KEY_OPEN_FILE_FROM_NOTIFICATION, @(timeCreated), KEY_TIME_CREATED, nil]; + return [NSDictionary dictionaryWithObjectsAndKeys:taskId, KEY_TASK_ID, @(status), KEY_STATUS, @(progress), KEY_PROGRESS, url, KEY_URL, filename, KEY_FILE_NAME, extras, KEY_EXTRAS, headers, KEY_HEADERS, savedDir, KEY_SAVED_DIR, [NSNumber numberWithBool:(resumable == 1)], KEY_RESUMABLE, [NSNumber numberWithBool:(showNotification == 1)], KEY_SHOW_NOTIFICATION, [NSNumber numberWithBool:(openFileFromNotification == 1)], KEY_OPEN_FILE_FROM_NOTIFICATION, @(timeCreated), KEY_TIME_CREATED, nil]; } @catch(NSException *exception) { NSLog(@"invalid task data: %@", exception); return [NSDictionary dictionary]; @@ -629,17 +631,19 @@ - (void)enqueueMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result NSString *savedDir = call.arguments[KEY_SAVED_DIR]; NSString *shortSavedDir = [self shortenSavedDirPath:savedDir]; NSString *fileName = call.arguments[KEY_FILE_NAME]; + NSString *extras = call.arguments[KEY_EXTRAS]; NSString *headers = call.arguments[KEY_HEADERS]; NSNumber *showNotification = call.arguments[KEY_SHOW_NOTIFICATION]; NSNumber *openFileFromNotification = call.arguments[KEY_OPEN_FILE_FROM_NOTIFICATION]; - NSURLSessionDownloadTask *task = [self downloadTaskWithURL:[NSURL URLWithString:urlString] fileName:fileName andSavedDir:savedDir andHeaders:headers]; + NSURLSessionDownloadTask *task = [self downloadTaskWithURL:[NSURL URLWithString:urlString] fileName:fileName andExtras:extras andSavedDir:savedDir andHeaders:headers]; NSString *taskId = [self identifierForTask:task]; [_runningTaskById setObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: urlString, KEY_URL, fileName, KEY_FILE_NAME, + extras, KEY_EXTRAS, savedDir, KEY_SAVED_DIR, headers, KEY_HEADERS, showNotification, KEY_SHOW_NOTIFICATION, @@ -652,7 +656,7 @@ - (void)enqueueMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result __typeof__(self) __weak weakSelf = self; [self executeInDatabaseQueueForTask:^{ - [weakSelf addNewTask:taskId url:urlString status:STATUS_ENQUEUED progress:0 filename:fileName savedDir:shortSavedDir headers:headers resumable:NO showNotification: [showNotification boolValue] openFileFromNotification: [openFileFromNotification boolValue]]; + [weakSelf addNewTask:taskId url:urlString status:STATUS_ENQUEUED progress:0 filename:fileName extras:extras savedDir:shortSavedDir headers:headers resumable:NO showNotification: [showNotification boolValue] openFileFromNotification: [openFileFromNotification boolValue]]; }]; result(taskId); [self sendUpdateProgressForTaskId:taskId inStatus:@(STATUS_ENQUEUED) andProgress:@0]; From 46f49d9499bd261dad6f54adb60869cc1914c91b Mon Sep 17 00:00:00 2001 From: Karim0x1 Date: Sun, 23 Oct 2022 14:35:04 +0200 Subject: [PATCH 4/5] Increment database version --- .../src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt index f2ef4852..9da1c7e3 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/TaskDbHelper.kt @@ -25,7 +25,7 @@ class TaskDbHelper private constructor(context: Context) : } companion object { - const val DATABASE_VERSION = 3 + const val DATABASE_VERSION = 4 const val DATABASE_NAME = "download_tasks.db" private var instance: TaskDbHelper? = null private const val SQL_CREATE_ENTRIES = ( From 3a49489d55efc710d53e3fcd0d46dcaa09d638c2 Mon Sep 17 00:00:00 2001 From: Karim0x1 Date: Sun, 23 Oct 2022 15:57:27 +0200 Subject: [PATCH 5/5] Lint check --- .../kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt index e91e02db..2f32243e 100644 --- a/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt +++ b/android/src/main/kotlin/vn/hunghd/flutterdownloader/DownloadWorker.kt @@ -41,6 +41,7 @@ import java.net.URL import java.net.URLDecoder import java.security.SecureRandom import java.security.cert.X509Certificate +import java.util.ArrayDeque import java.util.Locale import java.util.concurrent.atomic.AtomicBoolean import java.util.regex.Pattern @@ -49,7 +50,6 @@ import javax.net.ssl.HttpsURLConnection import javax.net.ssl.SSLContext import javax.net.ssl.TrustManager import javax.net.ssl.X509TrustManager -import java.util.ArrayDeque import kotlin.collections.ArrayList import kotlin.collections.HashMap @@ -173,9 +173,9 @@ class DownloadWorker(context: Context, params: WorkerParameters) : val task = taskDao?.loadTask(id.toString()) log( "DownloadWorker{url=$url,filename=$filename,extras=$extras,savedDir=$savedDir,header=$headers,isResume=$isResume,status=" + ( - task?.status - ?: "GONE" - ) + task?.status + ?: "GONE" + ) ) // Task has been deleted or cancelled