mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-09-01 06:24:07 +00:00
update flutter version
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
This commit is contained in:
parent
463ae81a51
commit
b3f0324066
14 changed files with 60 additions and 51 deletions
|
|
@ -26,6 +26,13 @@ analyzer:
|
||||||
- "**.arb"
|
- "**.arb"
|
||||||
- "test/drift/**"
|
- "test/drift/**"
|
||||||
- "**.g.dart"
|
- "**.g.dart"
|
||||||
|
- build/**
|
||||||
|
- android/**
|
||||||
|
- ios/**
|
||||||
|
- web/**
|
||||||
|
- windows/**
|
||||||
|
- macos/**
|
||||||
|
- linux/**
|
||||||
|
|
||||||
linter:
|
linter:
|
||||||
rules:
|
rules:
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ EXTERNAL SOURCES:
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
audio_waveforms: a6dde7fe7c0ea05f06ffbdb0f7c1b2b2ba6cedcf
|
audio_waveforms: a6dde7fe7c0ea05f06ffbdb0f7c1b2b2ba6cedcf
|
||||||
cryptography_flutter_plus: 44f4e9e4079395fcbb3e7809c0ac2c6ae2d9576f
|
cryptography_flutter_plus: 44f4e9e4079395fcbb3e7809c0ac2c6ae2d9576f
|
||||||
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
|
Flutter: 71a624a5bc0c04062bf19101d501e466baf2fb47
|
||||||
flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1
|
flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1
|
||||||
flutter_sharing_intent: 0c1e53949f09fa8df8ac2268505687bde8ff264c
|
flutter_sharing_intent: 0c1e53949f09fa8df8ac2268505687bde8ff264c
|
||||||
flutter_volume_controller: c2be490cb0487e8b88d0d9fc2b7e1c139a4ebccb
|
flutter_volume_controller: c2be490cb0487e8b88d0d9fc2b7e1c139a4ebccb
|
||||||
|
|
|
||||||
|
|
@ -742,7 +742,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
|
@ -886,7 +886,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
|
@ -939,7 +939,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
|
|
||||||
|
|
@ -275,7 +275,7 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)..where(groups.isDirectChat.equals(false)));
|
)..where(groups.isDirectChat.equals(false)));
|
||||||
return query.map((row) => row.readTable(groupMembers)).get();
|
return await query.map((row) => row.readTable(groupMembers)).get();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Log.error(e);
|
Log.error(e);
|
||||||
return [];
|
return [];
|
||||||
|
|
@ -346,8 +346,9 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
|
||||||
DateTime newLastMessage,
|
DateTime newLastMessage,
|
||||||
) async {
|
) async {
|
||||||
final now = clock.now();
|
final now = clock.now();
|
||||||
final clampedLastMessage =
|
final clampedLastMessage = newLastMessage.isAfter(now)
|
||||||
newLastMessage.isAfter(now) ? now : newLastMessage;
|
? now
|
||||||
|
: newLastMessage;
|
||||||
await (update(groupMembers)..where(
|
await (update(groupMembers)..where(
|
||||||
(t) =>
|
(t) =>
|
||||||
t.groupId.equals(groupId) &
|
t.groupId.equals(groupId) &
|
||||||
|
|
|
||||||
|
|
@ -154,13 +154,13 @@ Future<void> _handleClient2ClientMessage(
|
||||||
contactWillSendsReceipt: const Value(false),
|
contactWillSendsReceipt: const Value(false),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await tryToSendCompleteMessage(
|
|
||||||
receiptId: receiptId,
|
|
||||||
blocking: false,
|
|
||||||
);
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Log.warn('[$receiptId] Error handling duplicate receipt ACK: $e');
|
Log.warn('[$receiptId] Error handling duplicate receipt ACK: $e');
|
||||||
}
|
}
|
||||||
|
await tryToSendCompleteMessage(
|
||||||
|
receiptId: receiptId,
|
||||||
|
blocking: false,
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,12 +289,13 @@ Future<void> _handleClient2ClientMessage(
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Log.warn('[$receiptId] Error inserting receipt: $e');
|
Log.warn('[$receiptId] Error inserting receipt: $e');
|
||||||
}
|
}
|
||||||
if (targetReceiptId != null) {
|
|
||||||
await tryToSendCompleteMessage(
|
targetReceiptId ??= receiptIdDB?.value ?? receiptId;
|
||||||
receiptId: targetReceiptId,
|
|
||||||
blocking: false,
|
await tryToSendCompleteMessage(
|
||||||
);
|
receiptId: targetReceiptId,
|
||||||
}
|
blocking: false,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
case Message_Type.TEST_NOTIFICATION:
|
case Message_Type.TEST_NOTIFICATION:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -347,7 +347,7 @@ Future<(int, EncryptedGroupState)?> fetchGroupState(Group group) async {
|
||||||
}
|
}
|
||||||
// the state is now updated and the appended_group_state should be removed on the server, so just call this
|
// the state is now updated and the appended_group_state should be removed on the server, so just call this
|
||||||
// function again, to sync the local database
|
// function again, to sync the local database
|
||||||
return fetchGroupState(group);
|
return await fetchGroupState(group);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Log.error(e);
|
Log.error(e);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -202,11 +202,11 @@ class PasswordlessRecoveryService {
|
||||||
case SecondFactorType.pin:
|
case SecondFactorType.pin:
|
||||||
|
|
||||||
// The pin seed - never shared with the server - ensures that the server is unable to brute-force real user's pin
|
// The pin seed - never shared with the server - ensures that the server is unable to brute-force real user's pin
|
||||||
config.serverKeyProtection = getRandomUint8List(32);
|
config
|
||||||
|
..serverKeyProtection = getRandomUint8List(32)
|
||||||
// As the pin is heavily protected against brute-forcing e.g. will be deleted by the server after 10 tries, the
|
// As the pin is heavily protected against brute-forcing e.g. will be deleted by the server after 10 tries, the
|
||||||
// unlock token is required to prevent a malicious user (except the trusted friends) to trigger this deletion.
|
// unlock token is required to prevent a malicious user (except the trusted friends) to trigger this deletion.
|
||||||
config.pinUnlockToken = getRandomUint8List(32);
|
..pinUnlockToken = getRandomUint8List(32);
|
||||||
|
|
||||||
// Brute-force protection for the user's pin:
|
// Brute-force protection for the user's pin:
|
||||||
// - Server: Does not know the seed.
|
// - Server: Does not know the seed.
|
||||||
|
|
|
||||||
|
|
@ -91,10 +91,10 @@ class SaveToGalleryButtonState extends State<SaveToGalleryButton> {
|
||||||
valueColor: AlwaysStoppedAnimation(Colors.white),
|
valueColor: AlwaysStoppedAnimation(Colors.white),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
else if (_imageSaved)
|
||||||
|
const Icon(Icons.check, size: 14)
|
||||||
else
|
else
|
||||||
_imageSaved
|
const FaIcon(FontAwesomeIcons.floppyDisk, size: 14),
|
||||||
? const Icon(Icons.check, size: 14)
|
|
||||||
: const FaIcon(FontAwesomeIcons.floppyDisk, size: 14),
|
|
||||||
if (widget.displayButtonLabel) const SizedBox(width: 10),
|
if (widget.displayButtonLabel) const SizedBox(width: 10),
|
||||||
if (widget.displayButtonLabel)
|
if (widget.displayButtonLabel)
|
||||||
Text(
|
Text(
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ class _ShareImageEditorView extends State<ShareImageEditorView> {
|
||||||
await videoController!.play();
|
await videoController!.play();
|
||||||
setState(() {});
|
setState(() {});
|
||||||
})
|
})
|
||||||
// ignore: argument_type_not_assignable_to_error_handler, invalid_return_type_for_catch_error
|
// ignore: argument_type_not_assignable_to_error_handler
|
||||||
.catchError(Log.error);
|
.catchError(Log.error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -272,17 +272,18 @@ class _ChatListEntryState extends State<ChatListEntry> {
|
||||||
: MainAxisAlignment.start,
|
: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
if (!right && !widget.group.isDirectChat)
|
if (!right && !widget.group.isDirectChat)
|
||||||
hideContactAvatar
|
if (hideContactAvatar)
|
||||||
? const SizedBox(width: 24)
|
const SizedBox(width: 24)
|
||||||
: GestureDetector(
|
else
|
||||||
onTap: () => context.push(
|
GestureDetector(
|
||||||
Routes.profileContact(widget.message.senderId!),
|
onTap: () => context.push(
|
||||||
),
|
Routes.profileContact(widget.message.senderId!),
|
||||||
child: AvatarIcon(
|
),
|
||||||
contactId: widget.message.senderId,
|
child: AvatarIcon(
|
||||||
fontSize: 12,
|
contactId: widget.message.senderId,
|
||||||
),
|
fontSize: 12,
|
||||||
),
|
),
|
||||||
|
),
|
||||||
child,
|
child,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ class _RegisterViewState extends State<RegisterView> {
|
||||||
if (res.error == ErrorCode.UserIdAlreadyTaken) {
|
if (res.error == ErrorCode.UserIdAlreadyTaken) {
|
||||||
Log.error('User ID already token. Tying again.');
|
Log.error('User ID already token. Tying again.');
|
||||||
await deleteLocalUserData();
|
await deleteLocalUserData();
|
||||||
return createNewUser();
|
return await createNewUser();
|
||||||
}
|
}
|
||||||
if (res.error == ErrorCode.UsernameAlreadyTaken ||
|
if (res.error == ErrorCode.UsernameAlreadyTaken ||
|
||||||
res.error == ErrorCode.UsernameNotValid) {
|
res.error == ErrorCode.UsernameNotValid) {
|
||||||
|
|
|
||||||
20
pubspec.lock
20
pubspec.lock
|
|
@ -1107,10 +1107,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: intl
|
name: intl
|
||||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.20.2"
|
version: "0.20.3"
|
||||||
introduction_screen:
|
introduction_screen:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1256,10 +1256,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
|
sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.19"
|
version: "0.12.20"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1280,10 +1280,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
|
sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.18.0"
|
version: "1.19.0"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1858,10 +1858,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
|
sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.11"
|
version: "0.7.12"
|
||||||
timezone:
|
timezone:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1978,10 +1978,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.0"
|
version: "2.4.2"
|
||||||
very_good_analysis:
|
very_good_analysis:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.5.1+170
|
version: 0.5.1+171
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.11.0
|
sdk: ^3.11.0
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,6 @@ class UserEnvironment {
|
||||||
appVersion: 100,
|
appVersion: 100,
|
||||||
);
|
);
|
||||||
|
|
||||||
// ignore: cascade_invocations
|
|
||||||
us.isUserCreated = true;
|
us.isUserCreated = true;
|
||||||
|
|
||||||
final identityKeyPair = generateIdentityKeyPair();
|
final identityKeyPair = generateIdentityKeyPair();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue