diff --git a/README.md b/README.md index 5a2287fe..2f8a4375 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,6 @@ FluffyChat is an open source, nonprofit and cute matrix messenger app. The app i - Custom themes - Hides complexity of Matrix IDs behind simple QR codes - Custom emotes and stickers -- Video calls via sharing links to Jitsi - Spaces - Compatible with Element, Nheko, NeoChat and all other Matrix apps - End to end encryption diff --git a/config.sample.json b/config.sample.json index 3bdace02..ff37ec23 100644 --- a/config.sample.json +++ b/config.sample.json @@ -2,7 +2,6 @@ "application_name": "FluffyChat", "application_welcome_message": null, "default_homeserver": "matrix.org", - "jitsi_instance": "https://meet.jit.si/", "web_base_url": "https://fluffychat.im/web", "privacy_url": "https://fluffychat.im/en/privacy.html", "render_html": false, diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index dc8df452..1786dc14 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -9,7 +9,6 @@ abstract class AppConfig { static String? get applicationWelcomeMessage => _applicationWelcomeMessage; static String _defaultHomeserver = 'matrix.org'; static String get defaultHomeserver => _defaultHomeserver; - static String jitsiInstance = 'https://meet.jit.si/'; static double bubbleSizeFactor = 1; static double fontSizeFactor = 1; static Color chatColor = primaryColor; @@ -77,9 +76,6 @@ abstract class AppConfig { if (json['default_homeserver'] is String) { _defaultHomeserver = json['default_homeserver']; } - if (json['jitsi_instance'] is String) { - jitsiInstance = json['jitsi_instance']; - } if (json['privacy_url'] is String) { _webBaseUrl = json['privacy_url']; } diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index e003ed8d..f4d86533 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -1,5 +1,4 @@ abstract class SettingKeys { - static const String jitsiInstance = 'chat.fluffy.jitsi_instance'; static const String wallpaper = 'chat.fluffy.wallpaper'; static const String renderHtml = 'chat.fluffy.renderHtml'; static const String hideRedactedEvents = 'chat.fluffy.hideRedactedEvents'; diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 81f18d93..4a8083a1 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -16,10 +16,8 @@ import 'package:image_picker/image_picker.dart'; import 'package:matrix/matrix.dart'; import 'package:record/record.dart'; import 'package:scroll_to_index/scroll_to_index.dart'; -import 'package:url_launcher/url_launcher.dart'; import 'package:vrouter/vrouter.dart'; -import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/chat_view.dart'; import 'package:fluffychat/pages/chat/cupertino_widgets_bottom_sheet.dart'; import 'package:fluffychat/pages/chat/event_info_dialog.dart'; @@ -128,20 +126,6 @@ class ChatController extends State { EmojiPickerType emojiPickerType = EmojiPickerType.keyboard; - void startCallAction() async { - final url = - '${AppConfig.jitsiInstance}${Uri.encodeComponent(Matrix.of(context).client.generateUniqueTransactionId())}'; - - final success = await showFutureLoadingDialog( - context: context, - future: () => room!.sendEvent({ - 'msgtype': Matrix.callNamespace, - 'body': url, - })); - if (success.error != null) return; - await launch(url); - } - void requestHistory() async { if (canLoadMore) { try { @@ -878,9 +862,6 @@ class ChatController extends State { if (choice == 'location') { sendLocationAction(); } - if (choice == 'videocall') { - startCallAction(); - } } unpinEvent(String eventId) async { diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index a66ace67..386572f3 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -84,18 +84,6 @@ class ChatInputRow extends StatelessWidget { onSelected: controller.onAddPopupMenuButtonSelected, itemBuilder: (BuildContext context) => >[ - PopupMenuItem( - value: 'videocall', - child: ListTile( - leading: const CircleAvatar( - backgroundColor: Colors.blueGrey, - foregroundColor: Colors.white, - child: Icon(Icons.video_call_outlined), - ), - title: Text(L10n.of(context)!.videoCall), - contentPadding: const EdgeInsets.all(0), - ), - ), PopupMenuItem( value: 'file', child: ListTile( diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index fcb911a5..ddcbb9e4 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -4,7 +4,6 @@ import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; import 'package:matrix_link_text/link_text.dart'; -import 'package:url_launcher/url_launcher.dart'; import 'package:fluffychat/pages/chat/events/video_player.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions.dart/matrix_locals.dart'; @@ -172,14 +171,6 @@ class MessageContent extends StatelessWidget { case MessageTypes.None: textmessage: default: - if (event.content['msgtype'] == Matrix.callNamespace) { - return _ButtonContent( - onPressed: () => launch(event.body), - icon: const Icon(Icons.phone_outlined, color: Colors.green), - label: L10n.of(context)!.videoCall, - textColor: buttonTextColor, - ); - } if (event.redacted) { return _ButtonContent( label: L10n.of(context)! diff --git a/lib/pages/homeserver_picker/homeserver_picker.dart b/lib/pages/homeserver_picker/homeserver_picker.dart index ff7cf3e0..254bc889 100644 --- a/lib/pages/homeserver_picker/homeserver_picker.dart +++ b/lib/pages/homeserver_picker/homeserver_picker.dart @@ -11,7 +11,6 @@ import 'package:universal_html/html.dart' as html; import 'package:vrouter/vrouter.dart'; import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/pages/homeserver_picker/homeserver_picker_view.dart'; import 'package:fluffychat/utils/famedlysdk_store.dart'; import 'package:fluffychat/utils/platform_infos.dart'; @@ -98,22 +97,7 @@ class HomeserverPickerController extends State { }); try { - final summary = - await Matrix.of(context).getLoginClient().checkHomeserver(homeserver); - - var jitsi = summary.discoveryInformation?.additionalProperties - .tryGet>('im.vector.riot.jitsi') - ?.tryGet('preferredDomain'); - if (jitsi != null) { - if (!jitsi.endsWith('/')) { - jitsi += '/'; - } - Logs().v('Found custom jitsi instance $jitsi'); - await Matrix.of(context) - .store - .setItem(SettingKeys.jitsiInstance, jitsi); - AppConfig.jitsiInstance = jitsi; - } + await Matrix.of(context).getLoginClient().checkHomeserver(homeserver); _rawLoginTypes = await Matrix.of(context).getLoginClient().request( RequestType.GET, diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 385eb70b..7d00e6d0 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -9,8 +9,6 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; import 'package:fluffychat/widgets/matrix.dart'; -import '../../config/app_config.dart'; -import '../../config/setting_keys.dart'; import '../../utils/platform_infos.dart'; import 'login_view.dart'; @@ -141,19 +139,6 @@ class LoginController extends State { return; } } - var jitsi = wellKnownInformation?.additionalProperties - .tryGet>('im.vector.riot.jitsi') - ?.tryGet('preferredDomain'); - if (jitsi != null) { - if (!jitsi.endsWith('/')) { - jitsi += '/'; - } - Logs().v('Found custom jitsi instance $jitsi'); - await Matrix.of(context) - .store - .setItem(SettingKeys.jitsiInstance, jitsi); - AppConfig.jitsiInstance = jitsi; - } setState(() => usernameError = null); } else { setState(() => diff --git a/lib/pages/settings_chat/settings_chat.dart b/lib/pages/settings_chat/settings_chat.dart index 7e412d3c..b2594166 100644 --- a/lib/pages/settings_chat/settings_chat.dart +++ b/lib/pages/settings_chat/settings_chat.dart @@ -1,11 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:adaptive_dialog/adaptive_dialog.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; - -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/config/setting_keys.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'settings_chat_view.dart'; class SettingsChat extends StatefulWidget { @@ -16,31 +10,6 @@ class SettingsChat extends StatefulWidget { } class SettingsChatController extends State { - void setJitsiInstanceAction() async { - const prefix = 'https://'; - final input = await showTextInputDialog( - useRootNavigator: false, - context: context, - title: L10n.of(context)!.editJitsiInstance, - okLabel: L10n.of(context)!.ok, - cancelLabel: L10n.of(context)!.cancel, - textFields: [ - DialogTextField( - initialText: AppConfig.jitsiInstance.replaceFirst(prefix, ''), - prefixText: prefix, - ), - ], - ); - if (input == null) return; - var jitsi = prefix + input.single; - if (!jitsi.endsWith('/')) { - jitsi += '/'; - } - final matrix = Matrix.of(context); - await matrix.store.setItem(SettingKeys.jitsiInstance, jitsi); - AppConfig.jitsiInstance = jitsi; - } - @override Widget build(BuildContext context) => SettingsChatView(this); } diff --git a/lib/pages/settings_chat/settings_chat_view.dart b/lib/pages/settings_chat/settings_chat_view.dart index b406e8b8..cc6b4167 100644 --- a/lib/pages/settings_chat/settings_chat_view.dart +++ b/lib/pages/settings_chat/settings_chat_view.dart @@ -64,15 +64,6 @@ class SettingsChatView extends StatelessWidget { child: Icon(Icons.insert_emoticon_outlined), ), ), - ListTile( - trailing: const Padding( - padding: EdgeInsets.all(16.0), - child: Icon(Icons.phone_outlined), - ), - title: Text(L10n.of(context)!.editJitsiInstance), - subtitle: Text(AppConfig.jitsiInstance), - onTap: controller.setJitsiInstanceAction, - ), ], ), ), diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 2bed15eb..0790306e 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -37,8 +37,6 @@ import 'local_notifications_extension.dart'; // import 'package:flutter_secure_storage/flutter_secure_storage.dart'; class Matrix extends StatefulWidget { - static const String callNamespace = 'chat.fluffy.jitsi_call'; - final Widget? child; final GlobalKey? router; @@ -203,7 +201,6 @@ class MatrixState extends State with WidgetsBindingObserver { final onRoomKeyRequestSub = {}; final onKeyVerificationRequestSub = {}; - final onJitsiCallSub = {}; final onNotification = {}; final onLoginStateChanged = >{}; final onUiaRequest = >{}; @@ -436,8 +433,6 @@ class MatrixState extends State with WidgetsBindingObserver { } void initSettings() { - store.getItem(SettingKeys.jitsiInstance).then((final instance) => - AppConfig.jitsiInstance = instance ?? AppConfig.jitsiInstance); store.getItem(SettingKeys.wallpaper).then((final path) async { if (path == null) return; final file = File(path); diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index f4b94444..acf95a15 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -9,9 +9,6 @@ list(APPEND FLUTTER_PLUGIN_LIST url_launcher_windows ) -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - set(PLUGIN_BUNDLED_LIBRARIES) foreach(plugin ${FLUTTER_PLUGIN_LIST}) @@ -20,8 +17,3 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST}) list(APPEND PLUGIN_BUNDLED_LIBRARIES $) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin)