fix #350
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run

This commit is contained in:
otsmr 2025-12-26 22:08:39 +01:00
parent 11aa4c4202
commit 6dc9aa10bc
8 changed files with 41 additions and 5 deletions

View file

@ -94,6 +94,7 @@ class _AppState extends State<App> with WidgetsBindingObserver {
listenable: context.watch<SettingsChangeProvider>(),
builder: (BuildContext context, Widget? child) {
return MaterialApp(
scaffoldMessengerKey: globalRootScaffoldMessengerKey,
restorationScopeId: 'app',
localizationsDelegates: const [
AppLocalizations.delegate,

View file

@ -1,6 +1,5 @@
import 'dart:ui';
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:twonly/src/database/twonly.db.dart';
import 'package:twonly/src/model/json/userdata.dart';
import 'package:twonly/src/services/api.service.dart';
@ -37,3 +36,6 @@ bool globalAllowErrorTrackingViaSentry = false;
late String globalApplicationCacheDirectory;
late String globalApplicationSupportDirectory;
final GlobalKey<ScaffoldMessengerState> globalRootScaffoldMessengerKey =
GlobalKey<ScaffoldMessengerState>();

View file

@ -458,5 +458,6 @@
"couldNotVerifyUsername": "{username} konnte nicht verifiziert werden",
"linkPubkeyDoesNotMatch": "Der öffentliche Schlüssel im Link stimmt nicht mit dem für diesen Kontakt gespeicherten öffentlichen Schlüssel überein. Triff die Person persönlich und scanne den QR-Code direkt!",
"startWithCameraOpen": "Mit geöffneter Kamera starten",
"showImagePreviewWhenSending": "Bildvorschau bei der Auswahl von Empfängern anzeigen"
"showImagePreviewWhenSending": "Bildvorschau bei der Auswahl von Empfängern anzeigen",
"verifiedPublicKey": "Der öffentliche Schlüssel von {username} wurde überprüft und ist gültig."
}

View file

@ -488,5 +488,6 @@
"couldNotVerifyUsername": "Could not verify {username}",
"linkPubkeyDoesNotMatch": "The public key in the link does not match the public key stored for this contact. Try to meet your friend in person and scan the QR code directly!",
"startWithCameraOpen": "Start with camera open",
"showImagePreviewWhenSending": "Display image preview when selecting recipients"
"showImagePreviewWhenSending": "Display image preview when selecting recipients",
"verifiedPublicKey": "The public key of {username} has been verified and is valid."
}

View file

@ -2851,6 +2851,12 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Display image preview when selecting recipients'**
String get showImagePreviewWhenSending;
/// No description provided for @verifiedPublicKey.
///
/// In en, this message translates to:
/// **'The public key of {username} has been verified and is valid.'**
String verifiedPublicKey(Object username);
}
class _AppLocalizationsDelegate

View file

@ -1577,4 +1577,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get showImagePreviewWhenSending =>
'Bildvorschau bei der Auswahl von Empfängern anzeigen';
@override
String verifiedPublicKey(Object username) {
return 'Der öffentliche Schlüssel von $username wurde überprüft und ist gültig.';
}
}

View file

@ -1567,4 +1567,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get showImagePreviewWhenSending =>
'Display image preview when selecting recipients';
@override
String verifiedPublicKey(Object username) {
return 'The public key of $username has been verified and is valid.';
}
}

View file

@ -2,14 +2,16 @@ import 'dart:io';
import 'package:camera/camera.dart';
import 'package:collection/collection.dart';
import 'package:drift/drift.dart' show Value;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:google_mlkit_barcode_scanning/google_mlkit_barcode_scanning.dart';
import 'package:twonly/globals.dart';
import 'package:twonly/src/database/daos/contacts.dao.dart';
import 'package:twonly/src/database/twonly.db.dart';
import 'package:twonly/src/model/protobuf/client/generated/qr.pb.dart';
import 'package:twonly/src/services/signal/session.signal.dart';
import 'package:twonly/src/utils/log.dart';
import 'package:twonly/src/utils/misc.dart';
import 'package:twonly/src/utils/qr.dart';
import 'package:twonly/src/utils/screenshot.dart';
import 'package:twonly/src/views/camera/camera_preview_components/camera_preview_controller_view.dart';
@ -219,6 +221,19 @@ class MainCameraController {
);
}
await HapticFeedback.heavyImpact();
if (verificationOk) {
globalRootScaffoldMessengerKey.currentState?.showSnackBar(
SnackBar(
content: Text(
globalRootScaffoldMessengerKey.currentContext?.lang
.verifiedPublicKey(
getContactDisplayName(contact)) ??
'',
),
duration: const Duration(seconds: 6),
),
);
}
}
}
} else {