Merge branch 'main' into fix/time-format

pull/2212/head
just.Tobi 1 month ago committed by GitHub
commit d5eecd8137
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -35,7 +35,7 @@ configurations.all {
android {
namespace = "chat.fluffy.fluffychat"
compileSdk = flutter.compileSdkVersion
ndkVersion = "27.0.12077973"
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
@ -70,7 +70,7 @@ android {
defaultConfig {
applicationId = "chat.fluffy.fluffychat"
minSdk = 21
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -3351,7 +3351,7 @@
"@pleaseWaitUntilInvited": {},
"youHaveKnocked": "Petaches á porta",
"@youHaveKnocked": {},
"sentVoiceMessage": "🎙️ {duration} - Mensaxe de voz de {sender}",
"sentVoiceMessage": "🎙️ {duration} - Mensaxe de voz de {sender}",
"@sentVoiceMessage": {
"type": "String",
"placeholders": {
@ -3381,5 +3381,7 @@
"customReaction": "Reacción personalizada",
"@customReaction": {},
"declineInvitation": "Rexeitar o convite",
"@declineInvitation": {}
"@declineInvitation": {},
"noMessagesYet": "Aínda non hai mensaxes",
"@noMessagesYet": {}
}

@ -3384,5 +3384,7 @@
"customReaction": "Aangepaste reactie",
"@customReaction": {},
"declineInvitation": "Uitnodiging afwijzen",
"@declineInvitation": {}
"@declineInvitation": {},
"noMessagesYet": "Nog geen berichten",
"@noMessagesYet": {}
}

File diff suppressed because it is too large Load Diff

@ -1,11 +1,28 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:fluffychat/config/app_config.dart';
class AdaptiveDialogAction extends StatelessWidget {
final VoidCallback? onPressed;
final bool autofocus;
final Widget child;
final bool bigButtons;
final BorderRadius? borderRadius;
static const BorderRadius topRadius = BorderRadius.only(
topLeft: Radius.circular(AppConfig.borderRadius),
topRight: Radius.circular(AppConfig.borderRadius),
bottomLeft: Radius.circular(2),
bottomRight: Radius.circular(2),
);
static const BorderRadius centerRadius = BorderRadius.all(Radius.circular(2));
static const BorderRadius bottomRadius = BorderRadius.only(
bottomLeft: Radius.circular(AppConfig.borderRadius),
bottomRight: Radius.circular(AppConfig.borderRadius),
topLeft: Radius.circular(2),
topRight: Radius.circular(2),
);
const AdaptiveDialogAction({
super.key,
@ -13,6 +30,7 @@ class AdaptiveDialogAction extends StatelessWidget {
required this.child,
this.autofocus = false,
this.bigButtons = false,
this.borderRadius,
});
@override
@ -25,11 +43,15 @@ class AdaptiveDialogAction extends StatelessWidget {
case TargetPlatform.windows:
if (bigButtons) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
padding: const EdgeInsets.symmetric(vertical: 2.0),
child: SizedBox(
width: double.infinity,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: borderRadius ??
BorderRadius.circular(AppConfig.borderRadius),
),
backgroundColor: autofocus
? theme.colorScheme.primary
: theme.colorScheme.surfaceBright,

@ -210,6 +210,7 @@ class PublicRoomDialog extends StatelessWidget {
actions: [
AdaptiveDialogAction(
bigButtons: true,
borderRadius: AdaptiveDialogAction.topRadius,
onPressed: () => _joinRoom(context),
child: Text(
chunk?.joinRule == 'knock' &&
@ -222,6 +223,7 @@ class PublicRoomDialog extends StatelessWidget {
),
AdaptiveDialogAction(
bigButtons: true,
borderRadius: AdaptiveDialogAction.bottomRadius,
onPressed: Navigator.of(context).pop,
child: Text(L10n.of(context).close),
),

@ -74,6 +74,19 @@ class UserDialog extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Center(
child: Avatar(
mxContent: avatar,
name: displayname,
size: Avatar.defaultSize * 2,
onTap: avatar != null
? () => showDialog(
context: context,
builder: (_) => MxcImageViewer(avatar),
)
: null,
),
),
HoverBuilder(
builder: (context, hovered) => StatefulBuilder(
builder: (context, setState) => MouseRegion(
@ -122,19 +135,6 @@ class UserDialog extends StatelessWidget {
),
),
),
Center(
child: Avatar(
mxContent: avatar,
name: displayname,
size: Avatar.defaultSize * 2,
onTap: avatar != null
? () => showDialog(
context: context,
builder: (_) => MxcImageViewer(avatar),
)
: null,
),
),
if (presenceText != null)
Text(
presenceText,
@ -165,6 +165,7 @@ class UserDialog extends StatelessWidget {
actions: [
if (client.userID != profile.userId) ...[
AdaptiveDialogAction(
borderRadius: AdaptiveDialogAction.topRadius,
bigButtons: true,
onPressed: () async {
final router = GoRouter.of(context);
@ -185,6 +186,7 @@ class UserDialog extends StatelessWidget {
),
AdaptiveDialogAction(
bigButtons: true,
borderRadius: AdaptiveDialogAction.centerRadius,
onPressed: () {
final router = GoRouter.of(context);
Navigator.of(context).pop();
@ -201,6 +203,7 @@ class UserDialog extends StatelessWidget {
],
AdaptiveDialogAction(
bigButtons: true,
borderRadius: AdaptiveDialogAction.bottomRadius,
onPressed: Navigator.of(context).pop,
child: Text(L10n.of(context).close),
),

@ -14,7 +14,7 @@ Future<int?> showPermissionChooser(
return await showAdaptiveDialog<int>(
context: context,
builder: (context) => AlertDialog.adaptive(
title: Text(L10n.of(context).chatPermissions),
title: Center(child: Text(L10n.of(context).chatPermissions)),
content: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 256, maxHeight: 256),
child: Column(
@ -39,6 +39,7 @@ Future<int?> showPermissionChooser(
actions: [
AdaptiveDialogAction(
bigButtons: true,
borderRadius: AdaptiveDialogAction.topRadius,
onPressed: () {
final level = int.tryParse(controller.text.trim());
if (level == null) {
@ -55,18 +56,23 @@ Future<int?> showPermissionChooser(
),
if (maxLevel >= 100 && currentLevel != 100)
AdaptiveDialogAction(
borderRadius: AdaptiveDialogAction.centerRadius,
bigButtons: true,
onPressed: () => Navigator.of(context).pop<int>(100),
child: Text(L10n.of(context).admin),
),
if (maxLevel >= 50 && currentLevel != 50)
AdaptiveDialogAction(
borderRadius: maxLevel != 0
? AdaptiveDialogAction.centerRadius
: AdaptiveDialogAction.bottomRadius,
bigButtons: true,
onPressed: () => Navigator.of(context).pop<int>(50),
child: Text(L10n.of(context).moderator),
),
if (currentLevel != 0)
AdaptiveDialogAction(
borderRadius: AdaptiveDialogAction.bottomRadius,
bigButtons: true,
onPressed: () => Navigator.of(context).pop<int>(0),
child: Text(L10n.of(context).normalUser),

@ -1442,10 +1442,10 @@ packages:
dependency: "direct main"
description:
name: qr_code_scanner_plus
sha256: "39696b50d277097ee4d90d4292de36f38c66213a4f5216a06b2bdd2b63117859"
sha256: a0f1ac8e13299b3db2646635f252fe2ec67222b848b24ed34d11052faf080bfa
url: "https://pub.dev"
source: hosted
version: "2.0.10+1"
version: "2.0.12"
qr_image:
dependency: "direct main"
description:

@ -64,7 +64,7 @@ dependencies:
pretty_qr_code: ^3.5.0
provider: ^6.0.2
punycode: ^1.0.0
qr_code_scanner_plus: ^2.0.10+1
qr_code_scanner_plus: ^2.0.12
qr_image: ^1.0.0
receive_sharing_intent: ^1.8.1
record: ^6.1.1

Loading…
Cancel
Save