TF-2602 Add detect file charset on mobile

This commit is contained in:
dab246
2024-02-23 11:41:40 +07:00
committed by Dat H. Pham
parent 8f5fee6bdc
commit b5d8776af9
7 changed files with 155 additions and 0 deletions
+32
View File
@@ -333,6 +333,38 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_charset_detector:
dependency: transitive
description:
name: flutter_charset_detector
sha256: "45de8a4b4255c1ea850a30955e7456091899ed4ff8b75593e14ec59f629b4b56"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_charset_detector_android:
dependency: transitive
description:
name: flutter_charset_detector_android
sha256: bee057133d5f134fe211523a27200dd22c782b93777f43359a571bd2c77da2cc
url: "https://pub.dev"
source: hosted
version: "2.1.1"
flutter_charset_detector_ios:
dependency: transitive
description:
name: flutter_charset_detector_ios
sha256: e0e2c7b819cd1f7c9a50da94bf7f0e6d7a095eb64e81196ec758e77793903d43
url: "https://pub.dev"
source: hosted
version: "1.0.2"
flutter_charset_detector_platform_interface:
dependency: transitive
description:
name: flutter_charset_detector_platform_interface
sha256: "1c09ed7b314a5a9dde76057b98b7d35458ba881eed03d5e5b6f7f74b4869d18c"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter_image_compress:
dependency: transitive
description:
+15
View File
@@ -5,9 +5,12 @@ import 'package:core/domain/exceptions/download_file_exception.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/services.dart';
import 'package:flutter_charset_detector/flutter_charset_detector.dart';
import 'package:path_provider/path_provider.dart';
class FileUtils {
static const String DEFAULT_CHARSET = 'UTF-8';
static const String TEXT_PLAIN_MIME_TYPE = 'text/plain';
Future<String> _getInternalStorageDirPath({
required String nameFile,
@@ -135,4 +138,16 @@ class FileUtils {
logError('$runtimeType::deleteCompressedFileOnMobile: error: $e');
}
}
Future<String> getFileCharset(String filePath) async {
try {
final file = File(filePath);
final decodingResult = await CharsetDetector.autoDecode(file.readAsBytesSync());
logError('FileUtils::getFileCharset: FILE_CHARSET = ${decodingResult.charset}');
return decodingResult.charset;
} catch (e) {
logError('FileUtils::getFileCharset: Exception: $e');
return DEFAULT_CHARSET;
}
}
}
+32
View File
@@ -326,6 +326,38 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_charset_detector:
dependency: "direct main"
description:
name: flutter_charset_detector
sha256: "45de8a4b4255c1ea850a30955e7456091899ed4ff8b75593e14ec59f629b4b56"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_charset_detector_android:
dependency: transitive
description:
name: flutter_charset_detector_android
sha256: "43d0c0063242d036b873ade737ebae38716af5cd8b2a4df1754adfd186d58e2c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter_charset_detector_ios:
dependency: transitive
description:
name: flutter_charset_detector_ios
sha256: e0e2c7b819cd1f7c9a50da94bf7f0e6d7a095eb64e81196ec758e77793903d43
url: "https://pub.dev"
source: hosted
version: "1.0.2"
flutter_charset_detector_platform_interface:
dependency: transitive
description:
name: flutter_charset_detector_platform_interface
sha256: fcb61de27285031164c945aca4b42e4d36f9a9e359212f21ab652275c9c723ec
url: "https://pub.dev"
source: hosted
version: "1.0.0"
flutter_image_compress:
dependency: "direct main"
description:
+2
View File
@@ -79,6 +79,8 @@ dependencies:
fk_user_agent: 2.1.0
flutter_charset_detector: 2.0.0
dev_dependencies:
flutter_test:
sdk: flutter
+10
View File
@@ -90,6 +90,9 @@ PODS:
- flutter_appauth (0.0.1):
- AppAuth (= 1.7.4)
- Flutter
- flutter_charset_detector_ios (0.0.1):
- Flutter
- UniversalDetector2 (= 2.0.1)
- flutter_downloader (0.0.1):
- Flutter
- flutter_image_compress_common (1.0.0):
@@ -183,6 +186,7 @@ PODS:
- Flutter
- FlutterMacOS
- SwiftyGif (5.4.4)
- UniversalDetector2 (2.0.1)
- url_launcher_ios (0.0.1):
- Flutter
- workmanager (0.0.1):
@@ -201,6 +205,7 @@ DEPENDENCIES:
- fk_user_agent (from `.symlinks/plugins/fk_user_agent/ios`)
- Flutter (from `Flutter`)
- flutter_appauth (from `.symlinks/plugins/flutter_appauth/ios`)
- flutter_charset_detector_ios (from `.symlinks/plugins/flutter_charset_detector_ios/ios`)
- flutter_downloader (from `.symlinks/plugins/flutter_downloader/ios`)
- flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
@@ -241,6 +246,7 @@ SPEC REPOS:
- SDWebImage
- SDWebImageWebPCoder
- SwiftyGif
- UniversalDetector2
EXTERNAL SOURCES:
app_settings:
@@ -267,6 +273,8 @@ EXTERNAL SOURCES:
:path: Flutter
flutter_appauth:
:path: ".symlinks/plugins/flutter_appauth/ios"
flutter_charset_detector_ios:
:path: ".symlinks/plugins/flutter_charset_detector_ios/ios"
flutter_downloader:
:path: ".symlinks/plugins/flutter_downloader/ios"
flutter_image_compress_common:
@@ -325,6 +333,7 @@ SPEC CHECKSUMS:
fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_appauth: 1ce438877bc111c5d8f42da47729909290624886
flutter_charset_detector_ios: 5157d0104855b9deb78e1395515a287197bc2d55
flutter_downloader: b7301ae057deadd4b1650dc7c05375f10ff12c39
flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e
flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0
@@ -352,6 +361,7 @@ SPEC CHECKSUMS:
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
UniversalDetector2: 7c9ffd935cf050eeb19edf7e90f6febe3743a1af
url_launcher_ios: 68d46cc9766d0c41dbdc884310529557e3cd7a86
workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6
+32
View File
@@ -333,6 +333,38 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_charset_detector:
dependency: transitive
description:
name: flutter_charset_detector
sha256: "45de8a4b4255c1ea850a30955e7456091899ed4ff8b75593e14ec59f629b4b56"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_charset_detector_android:
dependency: transitive
description:
name: flutter_charset_detector_android
sha256: bee057133d5f134fe211523a27200dd22c782b93777f43359a571bd2c77da2cc
url: "https://pub.dev"
source: hosted
version: "2.1.1"
flutter_charset_detector_ios:
dependency: transitive
description:
name: flutter_charset_detector_ios
sha256: e0e2c7b819cd1f7c9a50da94bf7f0e6d7a095eb64e81196ec758e77793903d43
url: "https://pub.dev"
source: hosted
version: "1.0.2"
flutter_charset_detector_platform_interface:
dependency: transitive
description:
name: flutter_charset_detector_platform_interface
sha256: "1c09ed7b314a5a9dde76057b98b7d35458ba881eed03d5e5b6f7f74b4869d18c"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
flutter_image_compress:
dependency: transitive
description:
+32
View File
@@ -655,6 +655,38 @@ packages:
url: "https://github.com/CarlosPacheco/flutter_appauth_web.git"
source: git
version: "0.0.3"
flutter_charset_detector:
dependency: transitive
description:
name: flutter_charset_detector
sha256: "45de8a4b4255c1ea850a30955e7456091899ed4ff8b75593e14ec59f629b4b56"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_charset_detector_android:
dependency: transitive
description:
name: flutter_charset_detector_android
sha256: "43d0c0063242d036b873ade737ebae38716af5cd8b2a4df1754adfd186d58e2c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter_charset_detector_ios:
dependency: transitive
description:
name: flutter_charset_detector_ios
sha256: e0e2c7b819cd1f7c9a50da94bf7f0e6d7a095eb64e81196ec758e77793903d43
url: "https://pub.dev"
source: hosted
version: "1.0.2"
flutter_charset_detector_platform_interface:
dependency: transitive
description:
name: flutter_charset_detector_platform_interface
sha256: fcb61de27285031164c945aca4b42e4d36f9a9e359212f21ab652275c9c723ec
url: "https://pub.dev"
source: hosted
version: "1.0.0"
flutter_colorpicker:
dependency: transitive
description: