TF-32 Add domain layer of download attachment for android platform

This commit is contained in:
dab246
2021-09-16 09:07:11 +07:00
committed by Dat H. Pham
parent 9b43417ac8
commit ddf8a32e66
16 changed files with 214 additions and 13 deletions
+4
View File
@@ -8,12 +8,16 @@ export 'presentation/extensions/list_extensions.dart';
export 'domain/extensions/datetime_extension.dart';
export 'presentation/extensions/html_extension.dart';
// Exceptions
export 'domain/exceptions/download_file_exception.dart';
// Utils
export 'presentation/utils/theme_utils.dart';
export 'presentation/utils/responsive_utils.dart';
export 'presentation/utils/keyboard_utils.dart';
export 'presentation/utils/style_utils.dart';
export 'presentation/utils/app_toast.dart';
export 'data/utils/device_manager.dart';
// Views
export 'presentation/views/text/slogan_builder.dart';
+2
View File
@@ -1,6 +1,8 @@
import 'package:dio/dio.dart';
class DioClient {
static const jmapHeader = 'application/json;jmapVersion=rfc-8621';
final Dio _dio;
DioClient(this._dio);
+15
View File
@@ -0,0 +1,15 @@
import 'dart:async';
import 'dart:core';
import 'package:device_info/device_info.dart';
class DeviceManager {
final DeviceInfoPlugin _deviceInfoPlugin;
DeviceManager(this._deviceInfoPlugin);
Future<bool> isNeedRequestStoragePermissionOnAndroid() async {
final androidInfo = await _deviceInfoPlugin.androidInfo;
return androidInfo.version.sdkInt <= 28;
}
}
@@ -0,0 +1,31 @@
import 'package:equatable/equatable.dart';
abstract class DownloadFileException with EquatableMixin implements Exception {
final String message;
DownloadFileException(this.message);
@override
String toString() => message;
@override
List<Object> get props => [message];
}
class CommonDownloadFileException extends DownloadFileException {
CommonDownloadFileException(message) : super(message);
@override
List<Object> get props => [message];
}
class CancelDownloadFileException extends DownloadFileException {
CancelDownloadFileException(cancelMessage) : super(cancelMessage);
@override
List<Object> get props => [message];
}
class DeviceNotSupportedException extends DownloadFileException {
DeviceNotSupportedException() : super('This device is not supported, please try on Android or iOS');
}
+3
View File
@@ -53,6 +53,9 @@ dependencies:
# GetX
get: 4.1.4
# device_info
device_info: 2.0.2
dev_dependencies:
flutter_test:
sdk: flutter