Standardize HTML sanitizing when preview email (#3223)
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
|
||||
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_database_steps.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
|
||||
class UpgradeHiveDatabaseStepsV12 extends UpgradeDatabaseSteps {
|
||||
|
||||
final CachingManager _cachingManager;
|
||||
|
||||
UpgradeHiveDatabaseStepsV12(this._cachingManager);
|
||||
|
||||
@override
|
||||
Future<void> onUpgrade(int oldVersion, int newVersion) async {
|
||||
if (oldVersion > 0 && oldVersion < newVersion && newVersion == 12) {
|
||||
await _cachingManager.clearEmailCacheAndAllStateCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,6 +106,7 @@ class CachingManager {
|
||||
return Future.wait([
|
||||
_stateCacheClient.deleteItem(StateType.email.getTupleKeyStored(accountId, session.username)),
|
||||
_emailCacheClient.clearAllData(),
|
||||
if (PlatformInfo.isMobile) clearAllFileInStorage(),
|
||||
], eagerError: true);
|
||||
}
|
||||
|
||||
@@ -113,11 +114,12 @@ class CachingManager {
|
||||
return Future.wait([
|
||||
_stateCacheClient.clearAllData(),
|
||||
_emailCacheClient.clearAllData(),
|
||||
if (PlatformInfo.isMobile) clearAllFileInStorage(),
|
||||
], eagerError: true);
|
||||
}
|
||||
|
||||
Future<bool> storeCacheVersion(int newVersion) async {
|
||||
log('CachingManager::storeCacheVersion()');
|
||||
log('CachingManager::storeCacheVersion():newVersion = $newVersion');
|
||||
return _hiveCacheVersionClient.storeVersion(newVersion);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
class CacheVersion {
|
||||
static const int hiveDBVersion = 11;
|
||||
static const int hiveDBVersion = 12;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import 'package:hive/hive.dart';
|
||||
import 'package:path_provider/path_provider.dart' as path_provider;
|
||||
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v10.dart';
|
||||
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v11.dart';
|
||||
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v12.dart';
|
||||
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v7.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/caching/config/cache_version.dart';
|
||||
@@ -67,6 +68,7 @@ class HiveCacheConfig {
|
||||
await UpgradeHiveDatabaseStepsV7(cachingManager).onUpgrade(oldVersion, newVersion);
|
||||
await UpgradeHiveDatabaseStepsV10(cachingManager).onUpgrade(oldVersion, newVersion);
|
||||
await UpgradeHiveDatabaseStepsV11(cachingManager).onUpgrade(oldVersion, newVersion);
|
||||
await UpgradeHiveDatabaseStepsV12(cachingManager).onUpgrade(oldVersion, newVersion);
|
||||
|
||||
if (oldVersion != newVersion) {
|
||||
await cachingManager.storeCacheVersion(newVersion);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:core/data/constants/constant.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/html_transform.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/text/sanitize_autolink_html_transformers.dart';
|
||||
import 'package:core/presentation/utils/html_transformer/transform_configuration.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
@@ -35,7 +36,9 @@ class HtmlAnalyzer {
|
||||
case EmailContentType.textPlain:
|
||||
final message = _htmlTransform.transformToTextPlain(
|
||||
content: emailContent.content,
|
||||
transformConfiguration: transformConfiguration
|
||||
transformConfiguration: TransformConfiguration.fromTextTransformers([
|
||||
const SanitizeAutolinkHtmlTransformers()
|
||||
]),
|
||||
);
|
||||
return EmailContent(emailContent.type, message);
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user