Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 0 additions & 33 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,39 +42,6 @@
android:name="flutterEmbedding"
android:value="2" />

<!--flutter_downloader-->
<provider
android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
android:authorities="${applicationId}.flutter_downloader.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
<!-- Begin FlutterDownloader customization -->
<!-- disable default Initializer -->
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>
<!-- declare customized Initializer -->
<provider
android:name="vn.hunghd.flutterdownloader.FlutterDownloaderInitializer"
android:authorities="${applicationId}.flutter-downloader-init"
android:exported="false">
<!-- changes this number to configure the maximum number of concurrent tasks -->
<meta-data
android:name="vn.hunghd.flutterdownloader.MAX_CONCURRENT_TASKS"
android:value="5" />
</provider>
<!-- End FlutterDownloader customization -->

</application>
</manifest>
6 changes: 0 additions & 6 deletions ios/Runner/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import UIKit
import Flutter
import flutter_downloader

@main
@objc class AppDelegate: FlutterAppDelegate {
Expand All @@ -9,11 +8,6 @@ import flutter_downloader
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
FlutterDownloaderPlugin.setPluginRegistrantCallback({ registry in
if (!registry.hasPlugin("FlutterDownloaderPlugin")) {
FlutterDownloaderPlugin.register(with: registry.registrar(forPlugin: "FlutterDownloaderPlugin")!)
}
})
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
30 changes: 21 additions & 9 deletions lib/entity/download/download_entity.dart
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
import 'package:equatable/equatable.dart';
import 'package:netshare/entity/download/download_manner.dart';
import 'package:netshare/entity/download/download_state.dart';

class DownloadEntity extends Equatable {
final String id;
final String fileName;
final String url;
final String savedDir;
final DownloadManner manner;
final DownloadState state;
final double progress;

const DownloadEntity(
this.id,
this.fileName,
this.url,
this.savedDir,
this.manner,
this.state,
);
this.state, {
this.progress = 0.0,
});

DownloadEntity copyWith({
String? fileName,
String? url,
String? savedDir,
DownloadState? state,
double? progress,
}) =>
DownloadEntity(
fileName ?? this.fileName,
url ?? this.url,
savedDir ?? this.savedDir,
state ?? this.state,
progress: progress ?? this.progress,
);

@override
List<Object> get props => [id, fileName, url, savedDir, manner, state];
}
List<Object> get props => [fileName, url, savedDir, state, progress];
}
4 changes: 0 additions & 4 deletions lib/entity/download/download_manner.dart

This file was deleted.

7 changes: 1 addition & 6 deletions lib/plugin_management/plugins.dart
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
import 'dart:ui';

import 'package:flutter/foundation.dart';
import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:netshare/data/hivedb/hive_storage.dart';
import 'package:netshare/util/utility_functions.dart';
import 'package:window_size/window_size.dart';

Future <void> initPlugins() async {
if(UtilityFunctions.isMobile) {
await FlutterDownloader.initialize(debug: kDebugMode, ignoreSsl: true);
}
Future<void> initPlugins() async {
await HiveStorage().init();

// window_size configuration
Expand Down
11 changes: 11 additions & 0 deletions lib/provider/file_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ class FileProvider extends ChangeNotifier {
final List<SharedFile> _files = [];
List<SharedFile> get files => _files;

final Map<String, double> _progressMap = {};

double getProgress(String fileName) => _progressMap[fileName] ?? 0.0;

void addSharedFile({required SharedFile sharedFile}) {
_files.add(sharedFile);
notifyListeners();
Expand All @@ -21,19 +25,26 @@ class FileProvider extends ChangeNotifier {

void clearAllFiles() {
_files.clear();
_progressMap.clear();
notifyListeners();
}

void updateFile({
required String fileName,
required SharedFileState newFileState,
required String savedDir,
double? progress,
}) {
if(_files.isEmpty) return;
final oldFile = _files.firstWhere((file) => fileName.trim() == file.name?.trim());
final oldIndex = _files.indexOf(oldFile);
final updatedFile = oldFile.copyWith(state: newFileState, savedDir: savedDir);
_files[oldIndex] = updatedFile;
if (progress != null) {
_progressMap[fileName] = progress;
} else {
_progressMap.remove(fileName);
}
notifyListeners();
}
}
8 changes: 2 additions & 6 deletions lib/repository/file_repository.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import 'dart:io';

import 'package:dartz/dartz.dart';
import 'package:netshare/data/api_service.dart';
import 'package:netshare/data/global_scope_data.dart';
import 'package:netshare/data/hivedb/clients/shared_file_client.dart';
import 'package:netshare/di/di.dart';
import 'package:netshare/entity/api_error.dart';
import 'package:netshare/entity/shared_file_entity.dart';
import 'package:netshare/util/utility_functions.dart';

class FileRepository {
final ApiService apiService;
Expand All @@ -33,10 +32,7 @@ class FileRepository {
return file.copyWith(url: '$connectedAddress/${file.name}');
}

// check exist in device storage
final savedFile = File('${savedAvailableFile.savedDir}/${savedAvailableFile.name!}');
final isFileExisting = await savedFile.exists();
return isFileExisting
return await UtilityFunctions.isFileExists(savedAvailableFile.savedDir)
? savedAvailableFile.copyWith(url: '$connectedAddress/${file.name}')
: file.copyWith(url: '$connectedAddress/${file.name}');
}));
Expand Down
Loading