From 1a477adcb101c568474d342e713073fdcad18009 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Wed, 21 Apr 2021 14:19:54 +0200 Subject: [PATCH] refactor: Null safe dependencies --- .gitlab-ci.yml | 89 +++-- .../chat/fluffy/fluffychat/Application.kt | 14 - .../res/drawable-v21/launch_background.xml | 12 + android/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- lib/main.dart | 2 +- lib/utils/background_push.dart | 13 +- lib/utils/database/web.dart | 2 +- lib/utils/event_extension.dart | 6 +- lib/utils/filtered_timeline_extension.dart | 2 +- lib/utils/matrix_file_extension.dart | 2 +- lib/utils/sentry_controller.dart | 4 +- lib/views/chat.dart | 8 +- lib/views/chat_list.dart | 2 +- lib/views/homeserver_picker.dart | 2 +- lib/views/ui/chat_details_ui.dart | 8 +- lib/views/ui/chat_ui.dart | 2 +- lib/views/ui/settings_emotes_ui.dart | 2 +- lib/views/ui/settings_ui.dart | 7 +- lib/views/widgets/audio_player.dart | 5 +- lib/views/widgets/avatar.dart | 2 +- .../widgets/chat_settings_popup_menu.dart | 2 +- lib/views/widgets/content_banner.dart | 2 +- lib/views/widgets/html_message.dart | 16 +- lib/views/widgets/image_bubble.dart | 20 +- lib/views/widgets/input_bar.dart | 2 +- lib/views/widgets/list_items/message.dart | 6 +- lib/views/widgets/lock_screen.dart | 7 +- lib/views/widgets/matrix.dart | 6 +- lib/views/widgets/message_reactions.dart | 4 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + pubspec.lock | 344 ++++++++---------- pubspec.yaml | 97 +++-- 34 files changed, 320 insertions(+), 381 deletions(-) create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 871c1bd0..b4c49c1c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,30 +32,30 @@ build_web: paths: - build/web/ -build_windows: - extends: - - .shared_windows_runners - stage: coverage - script: - # Install chocolately - - Set-ExecutionPolicy Bypass -Scope Process - - Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - - choco install git -y - - choco install visualstudio2019community -y --package-parameters "--add Microsoft.VisualStudio.Product.BuildTools --includeRecommended --includeOptional --passive --locale en-US" - - cd ..; git clone https://github.com/flutter/flutter.git -b dev; $env:path += ";C:\GitLab-Runner\builds\famedly\flutter\bin"; cd fluffychat - - flutter doctor - - flutter config --enable-windows-desktop - - '$package_override = "`r`ndependency_overrides:`r`n intl: 0.17.0-nullsafety.2"' - - '[System.IO.File]::AppendAllText("$CI_PROJECT_DIR/pubspec.yaml", $package_override, [System.Text.Encoding]::UTF8)' - - flutter clean - - flutter pub get - - flutter build windows - needs: [] - artifacts: - paths: - - build/windows/runner/Release/ - name: "Binaries" - allow_failure: true +#build_windows: +# extends: +# - .shared_windows_runners +# stage: coverage +# script: +# # Install chocolately +# - Set-ExecutionPolicy Bypass -Scope Process +# - Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) +# - choco install git -y +# - choco install visualstudio2019community -y --package-parameters "--add Microsoft.VisualStudio.Product.BuildTools --includeRecommended --includeOptional --passive --locale en-US" +# - cd ..; git clone https://github.com/flutter/flutter.git -b dev; $env:path += ";C:\GitLab-Runner\builds\famedly\flutter\bin"; cd fluffychat +# - flutter doctor +# - flutter config --enable-windows-desktop +# - '$package_override = "`r`ndependency_overrides:`r`n intl: 0.17.0-nullsafety.2"' +# - '[System.IO.File]::AppendAllText("$CI_PROJECT_DIR/pubspec.yaml", $package_override, [System.Text.Encoding]::UTF8)' +# - flutter clean +# - flutter pub get +# - flutter build windows +# needs: [] +# artifacts: +# paths: +# - build/windows/runner/Release/ +# name: "Binaries" +# allow_failure: true build_android_debug: stage: coverage @@ -159,34 +159,32 @@ build_linux: stage: coverage before_script: [ - sudo apt update && sudo apt install curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev -y, + sudo apt update && sudo apt install curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libjsoncpp1 libsecret-1-dev libsecret-1-0 librhash0 -y, ] script: [./scripts/build-linux.sh] artifacts: when: on_success paths: - build/linux/release/bundle/ - allow_failure: true -snap:edge: - stage: release - image: "snapcore/snapcraft" - before_script: - - apt update && apt install git curl unzip clang cmake build-essential ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev -y - - git clone https://github.com/flutter/flutter.git - - export PATH="$PATH:`pwd`/flutter/bin" - variables: - SNAPCRAFT_LOGIN_FILE: ${SNAPCRAFT_LOGIN_FILE} - only: - - main - script: [./scripts/publish-snap-edge.sh] - needs: ["build_linux"] - dependencies: ["build_linux"] - artifacts: - paths: - - "./*.snap" - when: on_success - allow_failure: true +#snap:edge: +# stage: release +# image: "snapcore/snapcraft" +# before_script: +# - apt update && apt install git curl unzip clang cmake build-essential ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev -y +# - git clone https://github.com/flutter/flutter.git +# - export PATH="$PATH:`pwd`/flutter/bin" +# variables: +# SNAPCRAFT_LOGIN_FILE: ${SNAPCRAFT_LOGIN_FILE} +# only: +# - main +# script: [./scripts/publish-snap-edge.sh] +# needs: ["build_linux"] +# dependencies: ["build_linux"] +# artifacts: +# paths: +# - "./*.snap" +# when: on_success #snap:publish: # stage: release @@ -202,7 +200,6 @@ snap:edge: # - "./*.snap" # when: on_success # expire_in: 1 week -# allow_failure: true update-dependencies: stage: coverage diff --git a/android/app/src/main/kotlin/chat/fluffy/fluffychat/Application.kt b/android/app/src/main/kotlin/chat/fluffy/fluffychat/Application.kt index 249803ab..4d68bf97 100644 --- a/android/app/src/main/kotlin/chat/fluffy/fluffychat/Application.kt +++ b/android/app/src/main/kotlin/chat/fluffy/fluffychat/Application.kt @@ -3,29 +3,15 @@ package chat.fluffy.fluffychat import io.flutter.app.FlutterApplication import io.flutter.plugin.common.PluginRegistry import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback -import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin import io.flutter.view.FlutterMain -import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService -import com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin -import com.tekartik.sqflite.SqflitePlugin -import com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin -import io.flutter.plugins.pathprovider.PathProviderPlugin class Application : FlutterApplication(), PluginRegistrantCallback { override fun onCreate() { super.onCreate() - FlutterFirebaseMessagingService.setPluginRegistrant(this); FlutterMain.startInitialization(this) } override fun registerWith(registry: PluginRegistry?) { - if (!registry!!.hasPlugin("io.flutter.plugins.firebasemessaging")) { - FirebaseMessagingPlugin.registerWith(registry!!.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")); - FlutterLocalNotificationsPlugin.registerWith(registry.registrarFor("com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")); - SqflitePlugin.registerWith(registry.registrarFor("com.tekartik.sqflite.SqflitePlugin")); - PathProviderPlugin.registerWith(registry.registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin")); - FlutterSecureStoragePlugin.registerWith(registry.registrarFor("com.it_nomads.fluttersecurestorage")); - } } } diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/build.gradle b/android/build.gradle index a9bfc1e4..371ac211 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,9 +6,9 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.4' + classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.gms:google-services:4.3.2' + classpath 'com.google.gms:google-services:4.3.3' } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 01a286e9..3c9d0852 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/lib/main.dart b/lib/main.dart index 53219fe5..1dcd3c1f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,7 +14,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_app_lock/flutter_app_lock.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:universal_html/html.dart' as html; import 'views/widgets/matrix.dart'; import 'config/themes.dart'; diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index b47672c2..2f56b7a7 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -34,7 +34,6 @@ import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n_en.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:firebase_messaging/firebase_messaging.dart'; import 'platform_infos.dart'; import '../config/app_config.dart'; import '../config/setting_keys.dart'; @@ -130,12 +129,7 @@ class BackgroundPush { bool useDeviceSpecificAppId = false, }) async { if (PlatformInfos.isIOS) { - FirebaseMessaging() - .requestNotificationPermissions(IosNotificationSettings( - sound: true, - alert: true, - badge: true, - )); + await _fcmSharedIsolate.requestPermission(); } final clientName = PlatformInfos.clientName; oldTokens ??= {}; @@ -355,7 +349,8 @@ class BackgroundPush { .toString() .split('?') .first; - final res = json.decode(utf8.decode((await http.get(url)).bodyBytes)); + final res = + json.decode(utf8.decode((await http.get(Uri.parse(url))).bodyBytes)); if (res['gateway'] == 'matrix') { endpoint = url; } @@ -699,7 +694,7 @@ class BackgroundPush { final url = thumbnail ? content.getThumbnail(client, width: width, height: height) : content.getDownloadLink(client); - final request = await HttpClient().getUrl(Uri.parse(url)); + final request = await HttpClient().getUrl(url); final response = await request.close(); if (response.statusCode >= 300) { // we are not in the 2xx range diff --git a/lib/utils/database/web.dart b/lib/utils/database/web.dart index 74387572..05c8035b 100644 --- a/lib/utils/database/web.dart +++ b/lib/utils/database/web.dart @@ -8,7 +8,7 @@ Future constructDb( String password = ''}) async { Logs().v('[Moor] Using moor web'); return Database(WebDatabase.withStorage( - MoorWebStorage.indexedDbIfSupported(filename), + await MoorWebStorage.indexedDbIfSupported(filename), logStatements: logStatements)); } diff --git a/lib/utils/event_extension.dart b/lib/utils/event_extension.dart index ce887dcb..f68f4963 100644 --- a/lib/utils/event_extension.dart +++ b/lib/utils/event_extension.dart @@ -87,7 +87,7 @@ extension LocalizedBody on Event { } // check if the url is cached final url = Uri.parse(mxcUrl).getDownloadLink(room.client); - final file = await DefaultCacheManager().getFileFromCache(url); + final file = await DefaultCacheManager().getFileFromCache(url.toString()); return file != null; } @@ -96,8 +96,8 @@ extension LocalizedBody on Event { final mxcUrl = attachmentOrThumbnailMxcUrl(getThumbnail: getThumbnail); _downloadAndDecryptFutures[mxcUrl] ??= downloadAndDecryptAttachment( getThumbnail: getThumbnail, - downloadCallback: (String url) async { - final file = await DefaultCacheManager().getSingleFile(url); + downloadCallback: (Uri url) async { + final file = await DefaultCacheManager().getSingleFile(url.toString()); return await file.readAsBytes(); }, ); diff --git a/lib/utils/filtered_timeline_extension.dart b/lib/utils/filtered_timeline_extension.dart index ab0edfda..8dfc46ef 100644 --- a/lib/utils/filtered_timeline_extension.dart +++ b/lib/utils/filtered_timeline_extension.dart @@ -7,7 +7,7 @@ extension FilteredTimelineExtension on Timeline { final filteredEvents = events .where((e) => // always filter out edit and reaction relationships - !{RelationshipTypes.Edit, RelationshipTypes.Reaction} + !{RelationshipTypes.edit, RelationshipTypes.reaction} .contains(e.relationshipType) && // always filter out m.key.* events !e.type.startsWith('m.key.verification.') && diff --git a/lib/utils/matrix_file_extension.dart b/lib/utils/matrix_file_extension.dart index b34bc4ae..c2084319 100644 --- a/lib/utils/matrix_file_extension.dart +++ b/lib/utils/matrix_file_extension.dart @@ -6,7 +6,7 @@ import 'package:fluffychat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; import 'package:open_file/open_file.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:universal_html/html.dart' as html; import 'package:mime_type/mime_type.dart'; import 'package:permission_handler/permission_handler.dart'; diff --git a/lib/utils/sentry_controller.dart b/lib/utils/sentry_controller.dart index 09e38371..cb44b528 100644 --- a/lib/utils/sentry_controller.dart +++ b/lib/utils/sentry_controller.dart @@ -22,13 +22,13 @@ abstract class SentryController { return await storage.getItemBool(SettingKeys.sentry); } - static final sentry = SentryClient(dsn: AppConfig.sentryDns); + static final sentry = SentryClient(SentryOptions(dsn: AppConfig.sentryDns)); static void captureException(error, stackTrace) async { Logs().e('Capture exception', error, stackTrace); if (!kDebugMode && await getSentryStatus()) { await sentry.captureException( - exception: error, + error, stackTrace: stackTrace, ); } diff --git a/lib/views/chat.dart b/lib/views/chat.dart index 25dfbf39..7c112c83 100644 --- a/lib/views/chat.dart +++ b/lib/views/chat.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:adaptive_dialog/adaptive_dialog.dart'; import 'package:adaptive_page_layout/adaptive_page_layout.dart'; -import 'package:emoji_picker/emoji_picker.dart'; +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; import 'package:famedlysdk/famedlysdk.dart'; import 'package:file_picker_cross/file_picker_cross.dart'; import 'package:fluffychat/config/app_config.dart'; @@ -395,7 +395,7 @@ class ChatController extends State { event.sendAgain(); } final allEditEvents = event - .aggregatedEvents(timeline, RelationshipTypes.Edit) + .aggregatedEvents(timeline, RelationshipTypes.edit) .where((e) => e.status == -1); for (final e in allEditEvents) { e.sendAgain(); @@ -473,7 +473,7 @@ class ChatController extends State { children: [ Spacer(), EmojiPicker( - onEmojiSelected: (emoji, category) { + onEmojiSelected: (category, emoji) { // recent emojis don't work, so we sadly have to re-implement them // https://github.com/JeffG05/emoji_picker/issues/31 SharedPreferences.getInstance().then((prefs) { @@ -482,7 +482,7 @@ class ChatController extends State { // make sure we remove duplicates prefs.setStringList('recents', recents.toSet().toList()); }); - Navigator.of(context, rootNavigator: false).pop(emoji); + Navigator.of(context, rootNavigator: false).pop(emoji); }, ), ], diff --git a/lib/views/chat_list.dart b/lib/views/chat_list.dart index fbbc9122..21919603 100644 --- a/lib/views/chat_list.dart +++ b/lib/views/chat_list.dart @@ -125,7 +125,7 @@ class ChatListController extends State { context: context, future: () => room.setPushRuleState( room.pushRuleState == PushRuleState.notify - ? PushRuleState.mentions_only + ? PushRuleState.mentionsOnly : PushRuleState.notify), ); } diff --git a/lib/views/homeserver_picker.dart b/lib/views/homeserver_picker.dart index c582fbb6..2d0d136d 100644 --- a/lib/views/homeserver_picker.dart +++ b/lib/views/homeserver_picker.dart @@ -15,7 +15,7 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:receive_sharing_intent/receive_sharing_intent.dart'; import 'package:url_launcher/url_launcher.dart'; import '../utils/localized_exception_extension.dart'; -import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:universal_html/html.dart' as html; class HomeserverPicker extends StatefulWidget { @override diff --git a/lib/views/ui/chat_details_ui.dart b/lib/views/ui/chat_details_ui.dart index 2baf5cf4..364f4e76 100644 --- a/lib/views/ui/chat_details_ui.dart +++ b/lib/views/ui/chat_details_ui.dart @@ -241,8 +241,8 @@ class ChatDetailsUI extends StatelessWidget { ), if (room.canChangeHistoryVisibility) PopupMenuItem( - value: HistoryVisibility.world_readable, - child: Text(HistoryVisibility.world_readable + value: HistoryVisibility.worldReadable, + child: Text(HistoryVisibility.worldReadable .getLocalizedString( MatrixLocals(L10n.of(context)))), ), @@ -269,9 +269,9 @@ class ChatDetailsUI extends StatelessWidget { >[ if (room.canChangeGuestAccess) PopupMenuItem( - value: GuestAccess.can_join, + value: GuestAccess.canJoin, child: Text( - GuestAccess.can_join.getLocalizedString( + GuestAccess.canJoin.getLocalizedString( MatrixLocals(L10n.of(context))), ), ), diff --git a/lib/views/ui/chat_ui.dart b/lib/views/ui/chat_ui.dart index aa7e8cb0..c630617c 100644 --- a/lib/views/ui/chat_ui.dart +++ b/lib/views/ui/chat_ui.dart @@ -431,7 +431,7 @@ class ChatUI extends StatelessWidget { final emojis = List.from(AppEmojis.emojis); final allReactionEvents = controller.selectedEvents.first .aggregatedEvents( - controller.timeline, RelationshipTypes.Reaction) + controller.timeline, RelationshipTypes.reaction) ?.where((event) => event.senderId == event.room.client.userID && event.type == 'm.reaction'); diff --git a/lib/views/ui/settings_emotes_ui.dart b/lib/views/ui/settings_emotes_ui.dart index 22bef217..1e5fe1e6 100644 --- a/lib/views/ui/settings_emotes_ui.dart +++ b/lib/views/ui/settings_emotes_ui.dart @@ -425,7 +425,7 @@ class _EmoteImage extends StatelessWidget { method: ThumbnailMethod.scale, ); return CachedNetworkImage( - imageUrl: url, + imageUrl: url.toString(), fit: BoxFit.contain, width: size, height: size, diff --git a/lib/views/ui/settings_ui.dart b/lib/views/ui/settings_ui.dart index c7384962..23b43583 100644 --- a/lib/views/ui/settings_ui.dart +++ b/lib/views/ui/settings_ui.dart @@ -16,7 +16,7 @@ import 'package:fluffychat/utils/sentry_controller.dart'; import 'package:flutter/material.dart'; import 'package:flutter_app_lock/flutter_app_lock.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_screen_lock/lock_screen.dart'; +import 'package:flutter_screen_lock/functions.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:image_picker/image_picker.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -296,11 +296,10 @@ class _SettingsState extends State { await FlutterSecureStorage().read(key: SettingKeys.appLockKey); if (currentLock?.isNotEmpty ?? false) { var unlocked = false; - await showLockScreen( + await screenLock( context: context, correctString: currentLock, - onUnlocked: () => unlocked = true, - canBiometric: true, + didConfirmed: (_) => unlocked = true, ); if (unlocked != true) return; } diff --git a/lib/views/widgets/audio_player.dart b/lib/views/widgets/audio_player.dart index 40b14561..204f2284 100644 --- a/lib/views/widgets/audio_player.dart +++ b/lib/views/widgets/audio_player.dart @@ -8,7 +8,7 @@ import 'package:fluffychat/views/widgets/message_download_content.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_sound_lite/flutter_sound.dart'; -import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:universal_html/html.dart' as html; import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../utils/ui_fake.dart' if (dart.library.html) 'dart:ui' as ui; import 'matrix.dart'; @@ -144,7 +144,8 @@ class _AudioPlayerState extends State { if (kIsWeb) { if (widget.event.content['url'] is String) { webSrcUrl = Uri.parse(widget.event.content['url']) - .getDownloadLink(Matrix.of(context).client); + .getDownloadLink(Matrix.of(context).client) + .toString(); return Container( height: 50, width: 300, diff --git a/lib/views/widgets/avatar.dart b/lib/views/widgets/avatar.dart index 96bdd477..6d981ca9 100644 --- a/lib/views/widgets/avatar.dart +++ b/lib/views/widgets/avatar.dart @@ -66,7 +66,7 @@ class Avatar extends StatelessWidget { child: noPic ? textWidget : CachedNetworkImage( - imageUrl: src, + imageUrl: src.toString(), fit: BoxFit.cover, width: size, height: size, diff --git a/lib/views/widgets/chat_settings_popup_menu.dart b/lib/views/widgets/chat_settings_popup_menu.dart index 54c03f5e..134cec10 100644 --- a/lib/views/widgets/chat_settings_popup_menu.dart +++ b/lib/views/widgets/chat_settings_popup_menu.dart @@ -86,7 +86,7 @@ class _ChatSettingsPopupMenuState extends State { await showFutureLoadingDialog( context: context, future: () => - widget.room.setPushRuleState(PushRuleState.mentions_only)); + widget.room.setPushRuleState(PushRuleState.mentionsOnly)); break; case 'unmute': await showFutureLoadingDialog( diff --git a/lib/views/widgets/content_banner.dart b/lib/views/widgets/content_banner.dart index f281ed43..d6c79575 100644 --- a/lib/views/widgets/content_banner.dart +++ b/lib/views/widgets/content_banner.dart @@ -53,7 +53,7 @@ class ContentBanner extends StatelessWidget { opacity: opacity, child: (!loading && mxContent != null) ? CachedNetworkImage( - imageUrl: src, + imageUrl: src.toString(), height: 300, fit: BoxFit.cover, ) diff --git a/lib/views/widgets/html_message.dart b/lib/views/widgets/html_message.dart index c259e1d4..736c30d9 100644 --- a/lib/views/widgets/html_message.dart +++ b/lib/views/widgets/html_message.dart @@ -56,13 +56,15 @@ class HtmlMessage extends StatelessWidget { getMxcUrl: (String mxc, double width, double height, {bool animated = false}) { final ratio = MediaQuery.of(context).devicePixelRatio; - return Uri.parse(mxc)?.getThumbnail( - matrix.client, - width: (width ?? 800) * ratio, - height: (height ?? 800) * ratio, - method: ThumbnailMethod.scale, - animated: animated, - ); + return Uri.parse(mxc) + ?.getThumbnail( + matrix.client, + width: (width ?? 800) * ratio, + height: (height ?? 800) * ratio, + method: ThumbnailMethod.scale, + animated: animated, + ) + .toString(); }, setCodeLanguage: (String key, String value) async { await matrix.store.setItem('${SettingKeys.codeLanguage}.$key', value); diff --git a/lib/views/widgets/image_bubble.dart b/lib/views/widgets/image_bubble.dart index 6d1ae3d5..1bd06204 100644 --- a/lib/views/widgets/image_bubble.dart +++ b/lib/views/widgets/image_bubble.dart @@ -80,9 +80,10 @@ class _ImageBubbleState extends State { @override void initState() { - thumbnailUrl = - widget.event.getAttachmentUrl(getThumbnail: true, animated: true); - attachmentUrl = widget.event.getAttachmentUrl(animated: true); + thumbnailUrl = widget.event + .getAttachmentUrl(getThumbnail: true, animated: true) + .toString(); + attachmentUrl = widget.event.getAttachmentUrl(animated: true).toString(); if (thumbnailUrl == null) { _requestFile(getThumbnail: true); } @@ -195,12 +196,15 @@ class _ImageBubbleState extends State { _requestedThumbnailOnFailure = true; WidgetsBinding.instance.addPostFrameCallback((_) { setState(() { - thumbnailUrl = widget.event.getAttachmentUrl( - getThumbnail: true, - useThumbnailMxcUrl: true, - animated: true); + thumbnailUrl = widget.event + .getAttachmentUrl( + getThumbnail: true, + useThumbnailMxcUrl: true, + animated: true) + .toString(); attachmentUrl = widget.event - .getAttachmentUrl(useThumbnailMxcUrl: true, animated: true); + .getAttachmentUrl(useThumbnailMxcUrl: true, animated: true) + .toString(); }); }); } diff --git a/lib/views/widgets/input_bar.dart b/lib/views/widgets/input_bar.dart index 746b06a4..ce435b95 100644 --- a/lib/views/widgets/input_bar.dart +++ b/lib/views/widgets/input_bar.dart @@ -160,7 +160,7 @@ class InputBar extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ CachedNetworkImage( - imageUrl: url, + imageUrl: url.toString(), width: size, height: size, ), diff --git a/lib/views/widgets/list_items/message.dart b/lib/views/widgets/list_items/message.dart index f329bdd3..09ad116d 100644 --- a/lib/views/widgets/list_items/message.dart +++ b/lib/views/widgets/list_items/message.dart @@ -92,7 +92,7 @@ class Message extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (event.relationshipType == RelationshipTypes.Reply) + if (event.relationshipType == RelationshipTypes.reply) FutureBuilder( future: event.getReplyEvent(timeline), builder: (BuildContext context, snapshot) { @@ -177,7 +177,7 @@ class Message extends StatelessWidget { children: rowChildren, ); Widget container; - if (event.hasAggregatedEvents(timeline, RelationshipTypes.Reaction)) { + if (event.hasAggregatedEvents(timeline, RelationshipTypes.reaction)) { container = Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: @@ -253,7 +253,7 @@ class _MetaRow extends StatelessWidget { fontSize: 11 * AppConfig.fontSizeFactor, ), ), - if (event.hasAggregatedEvents(timeline, RelationshipTypes.Edit)) + if (event.hasAggregatedEvents(timeline, RelationshipTypes.edit)) Padding( padding: const EdgeInsets.only(left: 2.0), child: Icon( diff --git a/lib/views/widgets/lock_screen.dart b/lib/views/widgets/lock_screen.dart index 006a6660..0f2a3963 100644 --- a/lib/views/widgets/lock_screen.dart +++ b/lib/views/widgets/lock_screen.dart @@ -1,7 +1,7 @@ import 'package:fluffychat/config/setting_keys.dart'; import 'package:flutter/material.dart'; import 'package:flutter_app_lock/flutter_app_lock.dart'; -import 'package:flutter_screen_lock/lock_screen.dart'; +import 'package:flutter_screen_lock/functions.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; class LockScreen extends StatelessWidget { @@ -17,11 +17,10 @@ class LockScreen extends StatelessWidget { if (snapshot.connectionState == ConnectionState.done) { WidgetsBinding.instance.addPostFrameCallback((_) { if (snapshot.data?.isNotEmpty ?? false) { - showLockScreen( + screenLock( context: context, correctString: snapshot.data, - onUnlocked: () => AppLock.of(context).didUnlock(), - canBiometric: true, + didConfirmed: (_) => AppLock.of(context).didUnlock(), canCancel: false, ); } else { diff --git a/lib/views/widgets/matrix.dart b/lib/views/widgets/matrix.dart index d52cfab2..fa0f1917 100644 --- a/lib/views/widgets/matrix.dart +++ b/lib/views/widgets/matrix.dart @@ -16,7 +16,7 @@ import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:provider/provider.dart'; -import 'package:universal_html/prefer_universal/html.dart' as html; +import 'package:universal_html/html.dart' as html; import 'package:http/http.dart' as http; import 'package:url_launcher/url_launcher.dart'; /*import 'package:fluffychat/views/chat_ui.dart'; @@ -201,7 +201,7 @@ class MatrixState extends State with WidgetsBindingObserver { html.Notification( room.getLocalizedDisplayname(MatrixLocals(L10n.of(context))), body: body, - icon: icon, + icon: icon.toString(), ); } else if (Platform.isLinux) { /*var sessionBus = DBusClient.session(); @@ -239,7 +239,7 @@ class MatrixState extends State with WidgetsBindingObserver { Future initConfig() async { try { final configJsonString = - utf8.decode((await http.get('config.json')).bodyBytes); + utf8.decode((await http.get(Uri.parse('config.json'))).bodyBytes); final configJson = json.decode(configJsonString); AppConfig.loadFromJson(configJson); } catch (e, s) { diff --git a/lib/views/widgets/message_reactions.dart b/lib/views/widgets/message_reactions.dart index 26fa4ab2..9de55d95 100644 --- a/lib/views/widgets/message_reactions.dart +++ b/lib/views/widgets/message_reactions.dart @@ -14,7 +14,7 @@ class MessageReactions extends StatelessWidget { @override Widget build(BuildContext context) { final allReactionEvents = - event.aggregatedEvents(timeline, RelationshipTypes.Reaction); + event.aggregatedEvents(timeline, RelationshipTypes.reaction); final reactionMap = {}; for (final e in allReactionEvents) { if (e.content['m.relates_to'].containsKey('key')) { @@ -97,7 +97,7 @@ class _Reaction extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ CachedNetworkImage( - imageUrl: src, + imageUrl: src.toString(), height: fontSize, ), Container(width: 4), diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index b044cbd5..0835fba7 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -5,12 +5,16 @@ #include "generated_plugin_registrant.h" #include +#include #include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) file_chooser_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileChooserPlugin"); file_chooser_plugin_register_with_registrar(file_chooser_registrar); + g_autoptr(FlPluginRegistrar) flutter_secure_storage_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStoragePlugin"); + flutter_secure_storage_plugin_register_with_registrar(flutter_secure_storage_registrar); g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 6a174de9..fc6678ab 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST file_chooser + flutter_secure_storage url_launcher_linux ) diff --git a/pubspec.lock b/pubspec.lock index 885e78cc..43cfb308 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "7.0.0" + version: "14.0.0" adaptive_dialog: dependency: "direct main" description: name: adaptive_dialog url: "https://pub.dartlang.org" source: hosted - version: "0.9.3" + version: "0.10.0+5" adaptive_page_layout: dependency: "direct main" description: @@ -28,49 +28,42 @@ packages: name: adaptive_theme url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "2.2.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "0.39.17" + version: "0.41.2" android_path_provider: dependency: "direct main" description: name: android_path_provider url: "https://pub.dartlang.org" source: hosted - version: "0.1.1" + version: "0.2.1" animations: dependency: transitive description: name: animations url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "2.0.0" archive: dependency: transitive description: name: archive url: "https://pub.dartlang.org" source: hosted - version: "2.0.13" + version: "3.1.2" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "1.6.0" - asn1lib: - dependency: transitive - description: - name: asn1lib - url: "https://pub.dartlang.org" - source: hosted - version: "0.8.1" + version: "2.0.0" async: dependency: transitive description: @@ -84,7 +77,7 @@ packages: name: base58check url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "2.0.0" boolean_selector: dependency: transitive description: @@ -98,7 +91,7 @@ packages: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "3.0.0" canonical_json: dependency: transitive description: @@ -154,28 +147,28 @@ packages: name: convert url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "3.0.0" coverage: dependency: transitive description: name: coverage url: "https://pub.dartlang.org" source: hosted - version: "0.14.1" + version: "0.15.2" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.5" + version: "3.0.1" csslib: dependency: transitive description: name: csslib url: "https://pub.dartlang.org" source: hosted - version: "0.16.2" + version: "0.17.0" cupertino_icons: dependency: "direct main" description: @@ -189,35 +182,28 @@ packages: name: dapackages url: "https://pub.dartlang.org" source: hosted - version: "1.4.0" - disk_space: + version: "1.6.0" + disk_space_ns: dependency: transitive description: - name: disk_space + name: disk_space_ns url: "https://pub.dartlang.org" source: hosted - version: "0.0.3" + version: "0.1.0" email_validator: dependency: "direct main" description: name: email_validator url: "https://pub.dartlang.org" source: hosted - version: "1.0.6" - emoji_picker: + version: "2.0.1" + emoji_picker_flutter: dependency: "direct main" description: - name: emoji_picker + name: emoji_picker_flutter url: "https://pub.dartlang.org" source: hosted - version: "0.1.0" - encrypt: - dependency: transitive - description: - name: encrypt - url: "https://pub.dartlang.org" - source: hosted - version: "4.1.0" + version: "1.0.3" fake_async: dependency: transitive description: @@ -230,7 +216,7 @@ packages: description: path: "." ref: main - resolved-ref: fb0de1ce5993299b4f12d5a2adaa0324fe5d4f01 + resolved-ref: "71fdd28a8a644a9ca17c5e2546d51ebb135d31bc" url: "https://gitlab.com/famedly/famedlysdk.git" source: git version: "0.0.1" @@ -238,8 +224,8 @@ packages: dependency: "direct main" description: path: "." - ref: ios - resolved-ref: "86519130e5e122a20fdd31de34013d62a88f106d" + ref: main + resolved-ref: "3596b18643435c72f08b22632810f6ab9aa05e39" url: "https://gitlab.com/famedly/libraries/fcm_shared_isolate.git" source: git version: "0.0.1" @@ -249,7 +235,7 @@ packages: name: ffi url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "1.0.0" file: dependency: transitive description: @@ -270,42 +256,35 @@ packages: name: file_picker url: "https://pub.dartlang.org" source: hosted - version: "2.1.7" + version: "3.0.1" file_picker_cross: dependency: "direct main" description: name: file_picker_cross url: "https://pub.dartlang.org" source: hosted - version: "4.2.8" + version: "4.3.2" firebase_core: dependency: transitive description: name: firebase_core url: "https://pub.dartlang.org" source: hosted - version: "0.5.3" + version: "1.0.4" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "4.0.0" firebase_core_web: dependency: transitive description: name: firebase_core_web url: "https://pub.dartlang.org" source: hosted - version: "0.2.1+1" - firebase_messaging: - dependency: "direct main" - description: - name: firebase_messaging - url: "https://pub.dartlang.org" - source: hosted - version: "7.0.3" + version: "1.0.2" flutter: dependency: "direct main" description: flutter @@ -317,86 +296,82 @@ packages: name: flutter_app_lock url: "https://pub.dartlang.org" source: hosted - version: "1.4.0+1" + version: "1.5.0" flutter_blurhash: dependency: "direct main" description: name: flutter_blurhash url: "https://pub.dartlang.org" source: hosted - version: "0.5.0" + version: "0.6.0" flutter_cache_manager: dependency: "direct main" description: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "3.0.1" flutter_highlight: dependency: transitive description: name: flutter_highlight url: "https://pub.dartlang.org" source: hosted - version: "0.6.0" + version: "0.7.0" flutter_keyboard_visibility: dependency: transitive description: name: flutter_keyboard_visibility url: "https://pub.dartlang.org" source: hosted - version: "4.0.2" + version: "5.0.1" flutter_keyboard_visibility_platform_interface: dependency: transitive description: name: flutter_keyboard_visibility_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "2.0.0" flutter_keyboard_visibility_web: dependency: transitive description: name: flutter_keyboard_visibility_web url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "2.0.0" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications url: "https://pub.dartlang.org" source: hosted - version: "3.0.3" + version: "5.0.0+1" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0+1" + version: "3.0.0" flutter_localizations: dependency: "direct main" description: flutter source: sdk version: "0.0.0" - flutter_math: + flutter_math_fork: dependency: transitive description: - path: "." - ref: "6c3284faaedfe1dcb08f23d2c519bc95cbf0dbaf" - resolved-ref: "6c3284faaedfe1dcb08f23d2c519bc95cbf0dbaf" - url: "https://github.com/walsha2/flutter_math.git" - source: git - version: "0.3.0-nullsafety.1" + name: flutter_math_fork + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0+2" flutter_matrix_html: dependency: "direct main" description: - path: "." - ref: "6b6a850fcfc3b0a3e88a3dd6beb79eda3acac853" - resolved-ref: "6b6a850fcfc3b0a3e88a3dd6beb79eda3acac853" - url: "https://github.com/Sorunome/flutter_matrix_html.git" - source: git - version: "0.2.0" + name: flutter_matrix_html + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" flutter_olm: dependency: "direct main" description: @@ -404,69 +379,76 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + flutter_openssl_crypto: + dependency: "direct main" + description: + name: flutter_openssl_crypto + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted - version: "1.0.11" + version: "2.0.1" flutter_screen_lock: dependency: "direct main" description: name: flutter_screen_lock url: "https://pub.dartlang.org" source: hosted - version: "1.2.6" + version: "4.0.3" flutter_secure_storage: dependency: "direct main" description: name: flutter_secure_storage url: "https://pub.dartlang.org" source: hosted - version: "3.3.5" + version: "4.1.0" flutter_slidable: dependency: "direct main" description: name: flutter_slidable url: "https://pub.dartlang.org" source: hosted - version: "0.5.7" + version: "0.6.0" flutter_sound_lite: dependency: "direct main" description: name: flutter_sound_lite url: "https://pub.dartlang.org" source: hosted - version: "7.5.3+1" + version: "8.1.1" flutter_sound_platform_interface: dependency: transitive description: name: flutter_sound_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "7.5.3+1" + version: "8.1.1" flutter_sound_web: dependency: transitive description: name: flutter_sound_web url: "https://pub.dartlang.org" source: hosted - version: "7.5.3+1" + version: "8.1.1" flutter_spinkit: dependency: transitive description: name: flutter_spinkit url: "https://pub.dartlang.org" source: hosted - version: "4.1.2+1" + version: "5.0.0" flutter_svg: dependency: "direct main" description: name: flutter_svg url: "https://pub.dartlang.org" source: hosted - version: "0.19.3" + version: "0.21.0+1" flutter_test: dependency: "direct dev" description: flutter @@ -478,7 +460,7 @@ packages: name: flutter_typeahead url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "3.1.1" flutter_web_plugins: dependency: transitive description: flutter @@ -504,28 +486,28 @@ packages: name: highlight url: "https://pub.dartlang.org" source: hosted - version: "0.6.0" + version: "0.7.0" html: dependency: transitive description: name: html url: "https://pub.dartlang.org" source: hosted - version: "0.14.0+3" + version: "0.15.0" html_unescape: dependency: transitive description: name: html_unescape url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "2.0.0" http: dependency: transitive description: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.12.2" + version: "0.13.1" http_multi_server: dependency: transitive description: @@ -539,28 +521,35 @@ packages: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "3.1.4" + version: "4.0.0" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "2.1.19" + version: "3.0.2" image_picker: dependency: "direct main" description: name: image_picker url: "https://pub.dartlang.org" source: hosted - version: "0.6.7+21" + version: "0.7.4" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.1.1" + version: "2.1.0" intl: dependency: "direct main" description: @@ -595,14 +584,14 @@ packages: name: localstorage url: "https://pub.dartlang.org" source: hosted - version: "3.0.6+9" + version: "4.0.0+1" logger: dependency: transitive description: name: logger url: "https://pub.dartlang.org" source: hosted - version: "0.9.4" + version: "1.0.0" logging: dependency: transitive description: @@ -616,7 +605,7 @@ packages: name: markdown url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "4.0.0" matcher: dependency: transitive description: @@ -630,21 +619,14 @@ packages: name: matrix_api_lite url: "https://pub.dartlang.org" source: hosted - version: "0.2.0" - matrix_file_e2ee: - dependency: transitive - description: - name: matrix_file_e2ee - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.5" + version: "0.2.4" matrix_link_text: - dependency: "direct main" + dependency: transitive description: name: matrix_link_text url: "https://pub.dartlang.org" source: hosted - version: "0.3.2" + version: "0.4.0" meta: dependency: transitive description: @@ -658,27 +640,27 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "0.9.7" + version: "1.0.0" mime_type: dependency: "direct main" description: name: mime_type url: "https://pub.dartlang.org" source: hosted - version: "0.3.2" + version: "1.0.0" moor: dependency: "direct main" description: name: moor url: "https://pub.dartlang.org" source: hosted - version: "3.4.0" + version: "4.2.1" native_imaging: dependency: "direct main" description: path: "." ref: master - resolved-ref: c8eb59c25c4e3a568bd64e4722108ec45259e157 + resolved-ref: b3239a12a61a31efb8d02d3d665f2041be6651d6 url: "https://gitlab.com/famedly/libraries/native_imaging.git" source: git version: "0.0.1" @@ -688,7 +670,7 @@ packages: name: nested url: "https://pub.dartlang.org" source: hosted - version: "0.0.4" + version: "1.0.0" node_interop: dependency: transitive description: @@ -716,28 +698,28 @@ packages: name: octo_image url: "https://pub.dartlang.org" source: hosted - version: "0.3.0" + version: "1.0.0+1" olm: dependency: transitive description: name: olm url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "2.0.0" open_file: dependency: "direct main" description: name: open_file url: "https://pub.dartlang.org" source: hosted - version: "3.0.3" + version: "3.2.0" open_noti_settings: dependency: "direct main" description: name: open_noti_settings url: "https://pub.dartlang.org" source: hosted - version: "0.0.4" + version: "0.1.0" package_config: dependency: transitive description: @@ -751,13 +733,6 @@ packages: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.3+2" - password_hash: - dependency: transitive - description: - name: password_hash - url: "https://pub.dartlang.org" - source: hosted version: "2.0.0" path: dependency: transitive @@ -772,49 +747,49 @@ packages: name: path_drawing url: "https://pub.dartlang.org" source: hosted - version: "0.4.1+1" + version: "0.5.0" path_parsing: dependency: transitive description: name: path_parsing url: "https://pub.dartlang.org" source: hosted - version: "0.1.4" + version: "0.2.0" path_provider: dependency: "direct main" description: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "1.6.27" + version: "2.0.1" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+2" + version: "2.0.0" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.4+4" + version: "2.0.0" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.0.1" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.4+1" + version: "2.0.0" pedantic: dependency: "direct dev" description: @@ -828,21 +803,21 @@ packages: name: permission_handler url: "https://pub.dartlang.org" source: hosted - version: "5.1.0+2" + version: "6.1.3" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "3.2.0" petitparser: dependency: transitive description: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "3.0.4" + version: "4.1.0" platform: dependency: transitive description: @@ -856,13 +831,6 @@ packages: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" - pointycastle: - dependency: transitive - description: - name: pointycastle - url: "https://pub.dartlang.org" - source: hosted version: "2.0.0" pool: dependency: transitive @@ -884,7 +852,7 @@ packages: name: provider url: "https://pub.dartlang.org" source: hosted - version: "4.3.3" + version: "5.0.0" pub_semver: dependency: transitive description: @@ -893,12 +861,12 @@ packages: source: hosted version: "1.4.4" quiver: - dependency: "direct overridden" + dependency: transitive description: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "3.0.1" random_string: dependency: transitive description: @@ -912,112 +880,112 @@ packages: name: recase url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "4.0.0" receive_sharing_intent: dependency: "direct main" description: name: receive_sharing_intent url: "https://pub.dartlang.org" source: hosted - version: "1.4.3" + version: "1.4.5" rxdart: dependency: transitive description: name: rxdart url: "https://pub.dartlang.org" source: hosted - version: "0.24.1" + version: "0.26.0" scroll_to_index: dependency: "direct main" description: name: scroll_to_index url: "https://pub.dartlang.org" source: hosted - version: "1.0.6" + version: "2.0.0" sentry: dependency: "direct main" description: name: sentry url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "5.0.0" share: dependency: "direct main" description: name: share url: "https://pub.dartlang.org" source: hosted - version: "0.6.5+4" + version: "2.0.1" shared_preferences: dependency: transitive description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.12+4" + version: "2.0.5" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.2+4" + version: "2.0.0" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+11" + version: "2.0.0" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.2+7" + version: "2.0.0" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+3" + version: "2.0.0" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "0.7.9" + version: "1.1.0" shelf_packages_handler: dependency: transitive description: name: shelf_packages_handler url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "3.0.0" shelf_static: dependency: transitive description: name: shelf_static url: "https://pub.dartlang.org" source: hosted - version: "0.2.8" + version: "1.0.0" shelf_web_socket: dependency: transitive description: name: shelf_web_socket url: "https://pub.dartlang.org" source: hosted - version: "0.2.3" + version: "1.0.1" sky_engine: dependency: transitive description: flutter @@ -1050,21 +1018,21 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "1.3.2+2" + version: "2.0.0+3" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "2.0.0+2" sqlite3: dependency: "direct main" description: name: sqlite3 url: "https://pub.dartlang.org" source: hosted - version: "0.1.8" + version: "1.0.0" stack_trace: dependency: transitive description: @@ -1099,7 +1067,7 @@ packages: name: synchronized url: "https://pub.dartlang.org" source: hosted - version: "2.2.0+2" + version: "3.0.0" term_glyph: dependency: transitive description: @@ -1134,7 +1102,7 @@ packages: name: timezone url: "https://pub.dartlang.org" source: hosted - version: "0.5.9" + version: "0.7.0" tuple: dependency: transitive description: @@ -1153,25 +1121,25 @@ packages: dependency: "direct main" description: path: "." - ref: "8edc09a87d726d912926ac612e209573452c1273" - resolved-ref: "8edc09a87d726d912926ac612e209573452c1273" + ref: main + resolved-ref: a75da94b9b6687abd24951579a13644ed2a62a28 url: "https://github.com/UnifiedPush/flutter-connector.git" source: git - version: "0.0.1" + version: "1.0.1" universal_html: dependency: "direct main" description: name: universal_html url: "https://pub.dartlang.org" source: hosted - version: "1.2.4" + version: "2.0.8" universal_io: dependency: transitive description: name: universal_io url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "2.0.4" unorm_dart: dependency: transitive description: @@ -1185,56 +1153,49 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.7.10" + version: "6.0.3" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+1" + version: "2.0.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+8" + version: "2.0.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.9" + version: "2.0.2" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.5" + version: "2.0.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+1" - usage: - dependency: transitive - description: - name: usage - url: "https://pub.dartlang.org" - source: hosted - version: "3.4.2" + version: "2.0.0" uuid: dependency: transitive description: name: uuid url: "https://pub.dartlang.org" source: hosted - version: "2.2.2" + version: "3.0.4" vector_math: dependency: transitive description: @@ -1262,7 +1223,7 @@ packages: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "2.0.0" webkit_inspection_protocol: dependency: transitive description: @@ -1276,35 +1237,28 @@ packages: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "1.7.3" + version: "2.0.5" xdg_directories: dependency: transitive description: name: xdg_directories url: "https://pub.dartlang.org" source: hosted - version: "0.1.2" + version: "0.2.0" xml: dependency: transitive description: name: xml url: "https://pub.dartlang.org" source: hosted - version: "4.5.1" + version: "5.1.0" yaml: dependency: transitive description: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" - zone_local: - dependency: transitive - description: - name: zone_local - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.2" + version: "3.1.0" sdks: - dart: ">=2.12.0-0.0 <3.0.0" - flutter: ">=1.24.0-6.0.pre" + dart: ">=2.12.0 <3.0.0" + flutter: ">=2.0.1" diff --git a/pubspec.yaml b/pubspec.yaml index 14ae1e95..34dd43f7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,51 +14,44 @@ dependencies: git: url: https://gitlab.com/famedly/famedlysdk.git ref: main - unifiedpush: git: url: https://github.com/UnifiedPush/flutter-connector.git - ref: 8edc09a87d726d912926ac612e209573452c1273 - - # Firebase Notifications + ref: main fcm_shared_isolate: git: url: https://gitlab.com/famedly/libraries/fcm_shared_isolate.git - ref: ios - firebase_messaging: any + ref: main cupertino_icons: any - localstorage: ^3.0.6+9 - file_picker_cross: ^4.2.8 - image_picker: ^0.6.7+21 - url_launcher: ^5.7.10 - cached_network_image: ^2.5.0 - flutter_local_notifications: ^3.0.3 + localstorage: ^4.0.0+1 + file_picker_cross: ^4.3.2 + image_picker: ^0.7.4 + url_launcher: ^6.0.3 + cached_network_image: ^3.0.0 + flutter_local_notifications: ^5.0.0+1 adaptive_page_layout: ^0.2.3 - provider: ^4.3.3 - adaptive_theme: ^1.1.0 + provider: ^5.0.0 + adaptive_theme: ^2.2.0 # desktop_notifications: ^0.0.0-dev.4 // Currently blocked by: https://github.com/canonical/desktop_notifications.dart/issues/5 - matrix_link_text: ^0.3.2 - path_provider: ^1.6.27 - android_path_provider: ^0.1.1 - permission_handler: ^5.0.1+1 - share: ^0.6.5+4 - flutter_secure_storage: ^3.3.5 - universal_html: ^1.2.4 - receive_sharing_intent: ^1.4.3 - flutter_slidable: ^0.5.7 - flutter_sound_lite: ^7.5.3+1 - open_file: ^3.0.3 - mime_type: ^0.3.2 - adaptive_dialog: ^0.9.3 - flutter_matrix_html: - git: - url: https://github.com/Sorunome/flutter_matrix_html.git - ref: 6b6a850fcfc3b0a3e88a3dd6beb79eda3acac853 - moor: ^3.4.0 - sqlite3: ^0.1.8 - sqflite: ^1.3.2+2 # Still used to obtain the database location - flutter_typeahead: ^2.0.0 + path_provider: ^2.0.1 + android_path_provider: ^0.2.1 + permission_handler: ^6.1.3 + share: ^2.0.1 + flutter_secure_storage: ^4.1.0 + universal_html: ^2.0.8 + receive_sharing_intent: ^1.4.5 + flutter_slidable: ^0.6.0 + flutter_sound_lite: ^8.1.1 + open_file: ^3.2.0 + mime_type: ^1.0.0 + adaptive_dialog: ^0.10.0+5 + flutter_matrix_html: ^0.3.0 + moor: ^4.2.1 + sqlite3: ^1.0.0 + sqflite: ^2.0.0+3 # Still used to obtain the database location + flutter_typeahead: ^3.1.1 flutter_olm: ^1.1.1 + flutter_openssl_crypto: ^0.0.1 intl: any circular_check_box: ^1.0.4 flutter_localizations: @@ -67,34 +60,26 @@ dependencies: git: url: https://gitlab.com/famedly/libraries/native_imaging.git ref: master - flutter_blurhash: ^0.5.0 - sentry: ">=3.0.0 <4.0.0" - scroll_to_index: ^1.0.6 + flutter_blurhash: ^0.6.0 + sentry: ^5.0.0 + scroll_to_index: ^2.0.0 swipe_to_action: ^0.1.0 - flutter_svg: ^0.19.3 - flutter_cache_manager: ^2.1.1 - open_noti_settings: ^0.0.4 - emoji_picker: ^0.1.0 + flutter_svg: ^0.21.0+1 + flutter_cache_manager: ^3.0.1 + open_noti_settings: ^0.1.0 + emoji_picker_flutter: ^1.0.3 future_loading_dialog: ^0.1.2 - package_info: ^0.4.3+2 - flutter_app_lock: ^1.4.0+1 - flutter_screen_lock: ^1.2.6 - email_validator: ^1.0.6 + package_info: ^2.0.0 + flutter_app_lock: ^1.5.0 + flutter_screen_lock: ^4.0.3 + email_validator: ^2.0.1 dev_dependencies: flutter_test: sdk: flutter - pedantic: ^1.9.2 - dapackages: ^1.4.0 - -# The flutter_maths version of flutter_matrix_html is weird and conflicts with a few of our packages. -# So, we have to force-override the dependencies to work out. -dependency_overrides: - provider: ^4.3.3 - flutter_svg: ^0.19.3 - # Was actually brought in via fcm packages and flutter_matrix_html - quiver: ^2.0.0 + pedantic: ^1.11.0 + dapackages: ^1.6.0 flutter: generate: true