From a445ec4b43a185c85dc6fc8f23dcdc11e451c660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Fri, 14 Nov 2025 16:37:09 +0100 Subject: [PATCH] refactor: Remove unused feature tor browser detector --- lib/pages/chat_list/chat_list.dart | 14 ----------- lib/pages/chat_list/chat_list_body.dart | 17 ------------- .../homeserver_picker/homeserver_picker.dart | 18 ------------- .../homeserver_picker_view.dart | 25 ------------------- lib/utils/tor_stub.dart | 7 ------ pubspec.lock | 8 ------ pubspec.yaml | 1 - 7 files changed, 90 deletions(-) delete mode 100644 lib/utils/tor_stub.dart diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 07c71db4d..4f96aff6d 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,6 +1,5 @@ import 'dart:async'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -31,9 +30,6 @@ import '../../utils/url_launcher.dart'; import '../../widgets/matrix.dart'; import '../bootstrap/bootstrap_dialog.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - enum PopupMenuAction { settings, invite, @@ -301,8 +297,6 @@ class ChatListController extends State if (unfocus) searchFocusNode.unfocus(); } - bool isTorBrowser = false; - BoxConstraints? snappingSheetContainerSize; final ScrollController scrollController = ScrollController(); @@ -421,8 +415,6 @@ class ChatListController extends State ); }); - _checkTorBrowser(); - super.initState(); } @@ -910,12 +902,6 @@ class ChatListController extends State ChatList.contextForVoip = context; } - Future _checkTorBrowser() async { - if (!kIsWeb) return; - final isTor = await TorBrowserDetector.isTorBrowser; - isTorBrowser = isTor; - } - Future dehydrate() => Matrix.of(context).dehydrateAction(context); } diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index fe696b036..20c85b39f 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -128,23 +128,6 @@ class ChatListViewBody extends StatelessWidget { onStatusEdit: controller.setStatus, ), ), - AnimatedContainer( - height: controller.isTorBrowser ? 64 : 0, - duration: FluffyThemes.animationDuration, - curve: FluffyThemes.animationCurve, - clipBehavior: Clip.hardEdge, - decoration: const BoxDecoration(), - child: Material( - color: theme.colorScheme.surface, - child: ListTile( - leading: const Icon(Icons.vpn_key), - title: Text(L10n.of(context).dehydrateTor), - subtitle: Text(L10n.of(context).dehydrateTorLong), - trailing: const Icon(Icons.chevron_right_outlined), - onTap: controller.dehydrate, - ), - ), - ), if (client.rooms.isNotEmpty && !controller.isSearchMode) SizedBox( height: 64, diff --git a/lib/pages/homeserver_picker/homeserver_picker.dart b/lib/pages/homeserver_picker/homeserver_picker.dart index dd050612a..e57243851 100644 --- a/lib/pages/homeserver_picker/homeserver_picker.dart +++ b/lib/pages/homeserver_picker/homeserver_picker.dart @@ -20,9 +20,6 @@ import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog. import 'package:fluffychat/widgets/matrix.dart'; import '../../utils/localized_exception_extension.dart'; -import 'package:fluffychat/utils/tor_stub.dart' - if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - class HomeserverPicker extends StatefulWidget { final bool addMultiAccount; const HomeserverPicker({required this.addMultiAccount, super.key}); @@ -40,15 +37,6 @@ class HomeserverPickerController extends State { String? error; - bool isTorBrowser = false; - - Future _checkTorBrowser() async { - if (!kIsWeb) return; - - final isTor = await TorBrowserDetector.isTorBrowser; - isTorBrowser = isTor; - } - /// Starts an analysis of the given homeserver. It uses the current domain and /// makes sure that it is prefixed with https. Then it searches for the /// well-known information and forwards to the login page depending on the @@ -173,12 +161,6 @@ class HomeserverPickerController extends State { } } - @override - void initState() { - _checkTorBrowser(); - super.initState(); - } - @override Widget build(BuildContext context) => HomeserverPickerView(this); diff --git a/lib/pages/homeserver_picker/homeserver_picker_view.dart b/lib/pages/homeserver_picker/homeserver_picker_view.dart index 6beedc47d..c49ac1606 100644 --- a/lib/pages/homeserver_picker/homeserver_picker_view.dart +++ b/lib/pages/homeserver_picker/homeserver_picker_view.dart @@ -10,7 +10,6 @@ import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; import 'package:fluffychat/widgets/layouts/login_scaffold.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import '../../config/themes.dart'; import 'homeserver_picker.dart'; class HomeserverPickerView extends StatelessWidget { @@ -85,30 +84,6 @@ class HomeserverPickerView extends StatelessWidget { child: IntrinsicHeight( child: Column( children: [ - // display a prominent banner to import session for TOR browser - // users. This feature is just some UX sugar as TOR users are - // usually forced to logout as TOR browser is non-persistent - AnimatedContainer( - height: controller.isTorBrowser ? 64 : 0, - duration: FluffyThemes.animationDuration, - curve: FluffyThemes.animationCurve, - clipBehavior: Clip.hardEdge, - decoration: const BoxDecoration(), - child: Material( - clipBehavior: Clip.hardEdge, - borderRadius: const BorderRadius.vertical( - bottom: Radius.circular(8), - ), - color: theme.colorScheme.surface, - child: ListTile( - leading: const Icon(Icons.vpn_key), - title: Text(L10n.of(context).hydrateTor), - subtitle: Text(L10n.of(context).hydrateTorLong), - trailing: const Icon(Icons.chevron_right_outlined), - onTap: controller.restoreBackup, - ), - ), - ), Container( alignment: Alignment.center, padding: const EdgeInsets.symmetric(horizontal: 8.0), diff --git a/lib/utils/tor_stub.dart b/lib/utils/tor_stub.dart deleted file mode 100644 index 3223d087f..000000000 --- a/lib/utils/tor_stub.dart +++ /dev/null @@ -1,7 +0,0 @@ -/// Stub class for [TorBrowserDetector] -/// -/// statically returns false as Tor **browser** can only be detected in a -/// **browser**. -abstract class TorBrowserDetector { - static Future get isTorBrowser => Future.value(false); -} diff --git a/pubspec.lock b/pubspec.lock index 2807f22b4..8fd8a67c1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1897,14 +1897,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" - tor_detector_web: - dependency: "direct main" - description: - name: tor_detector_web - sha256: c4acbd6c0fecd2cd0e8fe00b1a37332422e041021a42488dfddcb3e7ec809b3f - url: "https://pub.dev" - source: hosted - version: "1.1.0" translations_cleaner: dependency: "direct dev" description: diff --git a/pubspec.yaml b/pubspec.yaml index dfe931294..3bde24273 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,7 +76,6 @@ dependencies: sqflite_common_ffi: ^2.3.6 sqlcipher_flutter_libs: ^0.6.8 swipe_to_action: ^0.3.0 - tor_detector_web: ^1.1.0 unifiedpush: ^6.2.0 unifiedpush_ui: ^0.2.0 universal_html: ^2.2.4