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