diff --git a/core/lib/presentation/utils/html_transformer/dom/sanitize_hyper_link_tag_in_html_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/sanitize_hyper_link_tag_in_html_transformers.dart index ac66d9a792..bb84bbf885 100644 --- a/core/lib/presentation/utils/html_transformer/dom/sanitize_hyper_link_tag_in_html_transformers.dart +++ b/core/lib/presentation/utils/html_transformer/dom/sanitize_hyper_link_tag_in_html_transformers.dart @@ -18,6 +18,7 @@ class SanitizeHyperLinkTagInHtmlTransformer extends DomTransformer { }) async { final elements = document.querySelectorAll('a'); await Future.wait(elements.map((element) async { + _sanitizeUrlResource(element); if (useTooltip) { _addToolTipWhenHoverLink(element); } @@ -26,7 +27,7 @@ class SanitizeHyperLinkTagInHtmlTransformer extends DomTransformer { })); } - void _addToolTipWhenHoverLink(Element element) { + void _sanitizeUrlResource(Element element) { final url = element.attributes['href'] ?? ''; final urlSanitized = _sanitizeUrl.process(url); @@ -35,7 +36,10 @@ class SanitizeHyperLinkTagInHtmlTransformer extends DomTransformer { } element.attributes['href'] = urlSanitized; + } + void _addToolTipWhenHoverLink(Element element) { + final url = element.attributes['href'] ?? ''; final text = element.text; final children = element.children; if (children.isEmpty && text.isNotEmpty) { diff --git a/lib/features/base/upgradeable/upgrade_hive_database_steps_v12.dart b/lib/features/base/upgradeable/upgrade_hive_database_steps_v12.dart new file mode 100644 index 0000000000..603eec6329 --- /dev/null +++ b/lib/features/base/upgradeable/upgrade_hive_database_steps_v12.dart @@ -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 onUpgrade(int oldVersion, int newVersion) async { + if (oldVersion > 0 && oldVersion < newVersion && newVersion == 12) { + await _cachingManager.clearEmailCacheAndAllStateCache(); + } + } +} \ No newline at end of file diff --git a/lib/features/caching/caching_manager.dart b/lib/features/caching/caching_manager.dart index 0fb76098c3..bc657a5b01 100644 --- a/lib/features/caching/caching_manager.dart +++ b/lib/features/caching/caching_manager.dart @@ -106,6 +106,8 @@ class CachingManager { return Future.wait([ _stateCacheClient.deleteItem(StateType.email.getTupleKeyStored(accountId, session.username)), _emailCacheClient.clearAllData(), + if (PlatformInfo.isMobile) + clearAllFileInStorage(), ], eagerError: true); } @@ -113,6 +115,8 @@ class CachingManager { return Future.wait([ _stateCacheClient.clearAllData(), _emailCacheClient.clearAllData(), + if (PlatformInfo.isMobile) + clearAllFileInStorage(), ], eagerError: true); } diff --git a/lib/features/caching/config/cache_version.dart b/lib/features/caching/config/cache_version.dart index 304bfea834..7b70a1be9f 100644 --- a/lib/features/caching/config/cache_version.dart +++ b/lib/features/caching/config/cache_version.dart @@ -1,4 +1,4 @@ class CacheVersion { - static const int hiveDBVersion = 11; + static const int hiveDBVersion = 12; } \ No newline at end of file diff --git a/lib/features/caching/config/hive_cache_config.dart b/lib/features/caching/config/hive_cache_config.dart index 40f2333b0f..7d4d2e56fb 100644 --- a/lib/features/caching/config/hive_cache_config.dart +++ b/lib/features/caching/config/hive_cache_config.dart @@ -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);