Merge branch 'main' into dependabot/pub/unifiedpush-6.2.0

This commit is contained in:
Krille-chan 2025-10-19 08:27:00 +02:00 committed by GitHub
commit fa8963a519
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 76 additions and 72 deletions

View file

@ -45,7 +45,7 @@ jobs:
cache: true cache: true
- uses: moonrepo/setup-rust@v1 - uses: moonrepo/setup-rust@v1
- run: flutter pub get - run: flutter pub get
- run: flutter build apk --debug - run: flutter build apk --debug --target-platform android-arm64
build_debug_web: build_debug_web:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View file

@ -21,6 +21,7 @@ class EncryptionButton extends StatelessWidget {
.stream .stream
.where((s) => s.deviceLists != null), .where((s) => s.deviceLists != null),
builder: (context, snapshot) { builder: (context, snapshot) {
final shouldBeEncrypted = room.joinRules != JoinRules.public;
return FutureBuilder<EncryptionHealthState>( return FutureBuilder<EncryptionHealthState>(
future: room.encrypted future: room.encrypted
? room.calcEncryptionHealthState() ? room.calcEncryptionHealthState()
@ -46,9 +47,13 @@ class EncryptionButton extends StatelessWidget {
), ),
), ),
child: Icon( child: Icon(
room.encrypted ? Icons.lock_outlined : Icons.lock_open_outlined, room.encrypted
? Icons.lock_outlined
: Icons.no_encryption_outlined,
size: 20, size: 20,
color: theme.colorScheme.onSurface, color: (shouldBeEncrypted && !room.encrypted)
? theme.colorScheme.error
: theme.colorScheme.onSurface,
), ),
), ),
onPressed: () => context.go('/rooms/${room.id}/encryption'), onPressed: () => context.go('/rooms/${room.id}/encryption'),

View file

@ -9,6 +9,7 @@ import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat_encryption_settings/chat_encryption_settings.dart'; import 'package:fluffychat/pages/chat_encryption_settings/chat_encryption_settings.dart';
import 'package:fluffychat/utils/beautify_string_extension.dart'; import 'package:fluffychat/utils/beautify_string_extension.dart';
import 'package:fluffychat/widgets/avatar.dart';
import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart';
class ChatEncryptionSettingsView extends StatelessWidget { class ChatEncryptionSettingsView extends StatelessWidget {
@ -58,7 +59,6 @@ class ChatEncryptionSettingsView extends StatelessWidget {
size: 128, size: 128,
color: theme.colorScheme.onInverseSurface, color: theme.colorScheme.onInverseSurface,
), ),
const Divider(),
if (room.isDirectChat) if (room.isDirectChat)
Padding( Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
@ -107,72 +107,73 @@ class ChatEncryptionSettingsView extends StatelessWidget {
shrinkWrap: true, shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
itemCount: deviceKeys.length, itemCount: deviceKeys.length,
itemBuilder: (BuildContext context, int i) => itemBuilder: (BuildContext context, int i) => Column(
SwitchListTile( mainAxisSize: MainAxisSize.min,
value: !deviceKeys[i].blocked, children: [
activeThumbColor: deviceKeys[i].verified if (i == 0 ||
? Colors.green deviceKeys[i].userId !=
: Colors.orange, deviceKeys[i - 1].userId) ...[
onChanged: (_) => const Divider(),
controller.toggleDeviceKey(deviceKeys[i]), FutureBuilder(
title: Row( future: room.client
children: [ .getUserProfile(deviceKeys[i].userId),
Icon( builder: (context, snapshot) {
deviceKeys[i].verified final displayname =
? Icons.verified_outlined snapshot.data?.displayname ??
: deviceKeys[i].blocked deviceKeys[i].userId.localpart ??
? Icons.block_outlined deviceKeys[i].userId;
: Icons.info_outlined, return ListTile(
color: deviceKeys[i].verified leading: Avatar(
? Colors.green name: displayname,
: deviceKeys[i].blocked mxContent: snapshot.data?.avatarUrl,
? Colors.red
: Colors.orange,
size: 20,
),
const SizedBox(width: 4),
Text(
deviceKeys[i].deviceId ??
L10n.of(context).unknownDevice,
),
const SizedBox(width: 4),
Flexible(
fit: FlexFit.loose,
child: Material(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(
AppConfig.borderRadius,
), ),
side: BorderSide( title: Text(displayname),
color: theme.colorScheme.primary, subtitle: Text(deviceKeys[i].userId),
), );
), },
color: theme.colorScheme.primaryContainer,
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Text(
deviceKeys[i].userId,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: theme.colorScheme.primary,
fontSize: 12,
fontStyle: FontStyle.italic,
),
),
),
),
), ),
], ],
), SwitchListTile(
subtitle: Text( value: !deviceKeys[i].blocked,
deviceKeys[i].ed25519Key?.beautified ?? activeThumbColor: deviceKeys[i].verified
L10n.of(context).unknownEncryptionAlgorithm, ? Colors.green
style: TextStyle( : Colors.orange,
fontFamily: 'RobotoMono', onChanged: (_) =>
color: theme.colorScheme.secondary, controller.toggleDeviceKey(deviceKeys[i]),
title: Row(
children: [
Text(
deviceKeys[i].verified
? L10n.of(context).verified
: deviceKeys[i].blocked
? L10n.of(context).blocked
: L10n.of(context).unverified,
style: TextStyle(
color: deviceKeys[i].verified
? Colors.green
: deviceKeys[i].blocked
? Colors.red
: Colors.orange,
),
),
const Text(' | ID: '),
Text(
deviceKeys[i].deviceId ??
L10n.of(context).unknownDevice,
),
],
),
subtitle: Text(
deviceKeys[i].ed25519Key?.beautified ??
L10n.of(context).unknownEncryptionAlgorithm,
style: TextStyle(
fontFamily: 'RobotoMono',
color: theme.colorScheme.secondary,
fontSize: 11,
),
),
), ),
), ],
), ),
); );
}, },

View file

@ -222,7 +222,7 @@ class ChatListItem extends StatelessWidget {
children: <Widget>[ children: <Widget>[
if (typingText.isEmpty && if (typingText.isEmpty &&
ownMessage && ownMessage &&
room.lastEvent!.status.isSending) ...[ room.lastEvent?.status.isSending == true) ...[
const SizedBox( const SizedBox(
width: 16, width: 16,
height: 16, height: 16,

View file

@ -1113,12 +1113,11 @@ packages:
matrix: matrix:
dependency: "direct main" dependency: "direct main"
description: description:
path: "." name: matrix
ref: HEAD sha256: "84354dd61f47b297631a3fe5eeebb5c1e0725f872b8fae75851a49cd5689c4f1"
resolved-ref: e772d4db6887ce853b0d685b45fb502ba0a4caca url: "https://pub.dev"
url: "https://github.com/famedly/matrix-dart-sdk.git" source: hosted
source: git version: "3.0.1"
version: "3.0.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:

View file

@ -52,8 +52,7 @@ dependencies:
just_audio: ^0.10.5 just_audio: ^0.10.5
latlong2: ^0.9.1 latlong2: ^0.9.1
linkify: ^5.0.0 linkify: ^5.0.0
matrix: matrix: ^3.0.1
git: https://github.com/famedly/matrix-dart-sdk.git
mime: ^2.0.0 mime: ^2.0.0
native_imaging: ^0.2.0 native_imaging: ^0.2.0
opus_caf_converter_dart: ^1.0.1 opus_caf_converter_dart: ^1.0.1