TF-32 Add domain layer of download attachment for android platform
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
@@ -53,6 +53,9 @@ dependencies:
|
||||
# GetX
|
||||
get: 4.1.4
|
||||
|
||||
# device_info
|
||||
device_info: 2.0.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
Reference in New Issue
Block a user