some small UI fixes

This commit is contained in:
otsmr 2026-04-26 11:31:25 +02:00
parent c9aa680243
commit 922a5f0f26
8 changed files with 53 additions and 23 deletions

View file

@ -976,6 +976,12 @@ abstract class AppLocalizations {
/// **'User verified'** /// **'User verified'**
String get userVerifiedTitle; String get userVerifiedTitle;
/// No description provided for @contactVerifiedBy.
///
/// In en, this message translates to:
/// **'Verified by {username}'**
String contactVerifiedBy(Object username);
/// No description provided for @verificationTypeQrScanned. /// No description provided for @verificationTypeQrScanned.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
@ -3067,25 +3073,25 @@ abstract class AppLocalizations {
/// No description provided for @verificationBadgeGeneralDesc. /// No description provided for @verificationBadgeGeneralDesc.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'The green checkmark gives you the certainty that you are messaging the right person.'** /// **'The checkmark gives you the certainty that you are messaging the right person. Scan the contact\'s QR code to verify it.'**
String get verificationBadgeGeneralDesc; String get verificationBadgeGeneralDesc;
/// No description provided for @verificationBadgeGreenDesc. /// No description provided for @verificationBadgeGreenDesc.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Contact that you have personally verified via QR code. This also verified their public key.'** /// **'A contact you have personally verified.'**
String get verificationBadgeGreenDesc; String get verificationBadgeGreenDesc;
/// No description provided for @verificationBadgeYellowDesc. /// No description provided for @verificationBadgeYellowDesc.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'(Coming soon) Contact whose QR code was scanned by one of your personally verified contacts.'** /// **'A contact who has been verified by at least one of your contacts.'**
String get verificationBadgeYellowDesc; String get verificationBadgeYellowDesc;
/// No description provided for @verificationBadgeRedDesc. /// No description provided for @verificationBadgeRedDesc.
/// ///
/// In en, this message translates to: /// In en, this message translates to:
/// **'Unknown contact whose identity has not yet been verified.'** /// **'A contact whose identity has not yet been verified.'**
String get verificationBadgeRedDesc; String get verificationBadgeRedDesc;
/// No description provided for @chatEntryFlameRestored. /// No description provided for @chatEntryFlameRestored.

View file

@ -485,6 +485,11 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get userVerifiedTitle => 'Benutzer verifiziert'; String get userVerifiedTitle => 'Benutzer verifiziert';
@override
String contactVerifiedBy(Object username) {
return 'Verifiziert von $username';
}
@override @override
String get verificationTypeQrScanned => 'Du hast den QR-Code gescannt.'; String get verificationTypeQrScanned => 'Du hast den QR-Code gescannt.';
@ -1712,19 +1717,19 @@ class AppLocalizationsDe extends AppLocalizations {
@override @override
String get verificationBadgeGeneralDesc => String get verificationBadgeGeneralDesc =>
'Der grüne Haken gibt dir die Sicherheit, dass du mit der richtigen Person schreibst.'; 'Der Haken gibt dir die Sicherheit, dass du mit der richtigen Person schreibst. Scanne einen Kontakt, um diesen zu verifizieren.';
@override @override
String get verificationBadgeGreenDesc => String get verificationBadgeGreenDesc =>
'Kontakt, den du durch den QR-Code persönlich verifiziert hast. Dadurch wurde auch deren öffentlicher Schlüssel überprüft.'; 'Ein Kontakt, den du persönlich verifiziert hast.';
@override @override
String get verificationBadgeYellowDesc => String get verificationBadgeYellowDesc =>
'(Coming soon) Kontakt, dessen QR-Code von einem deiner persönlich verifizierten Kontakte gescannt wurde.'; 'Ein Kontakt, der von mind. einem deiner Kontakte verifiziert wurde.';
@override @override
String get verificationBadgeRedDesc => String get verificationBadgeRedDesc =>
'Unbekannter Kontakt, dessen Identität bisher nicht verifiziert wurde.'; 'Ein Kontakt, dessen Identität noch nicht überprüft wurde.';
@override @override
String chatEntryFlameRestored(Object count) { String chatEntryFlameRestored(Object count) {

View file

@ -480,6 +480,11 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get userVerifiedTitle => 'User verified'; String get userVerifiedTitle => 'User verified';
@override
String contactVerifiedBy(Object username) {
return 'Verified by $username';
}
@override @override
String get verificationTypeQrScanned => 'You scanned their QR code.'; String get verificationTypeQrScanned => 'You scanned their QR code.';
@ -1700,19 +1705,19 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get verificationBadgeGeneralDesc => String get verificationBadgeGeneralDesc =>
'The green checkmark gives you the certainty that you are messaging the right person.'; 'The checkmark gives you the certainty that you are messaging the right person. Scan the contact\'s QR code to verify it.';
@override @override
String get verificationBadgeGreenDesc => String get verificationBadgeGreenDesc =>
'Contact that you have personally verified via QR code. This also verified their public key.'; 'A contact you have personally verified.';
@override @override
String get verificationBadgeYellowDesc => String get verificationBadgeYellowDesc =>
'(Coming soon) Contact whose QR code was scanned by one of your personally verified contacts.'; 'A contact who has been verified by at least one of your contacts.';
@override @override
String get verificationBadgeRedDesc => String get verificationBadgeRedDesc =>
'Unknown contact whose identity has not yet been verified.'; 'A contact whose identity has not yet been verified.';
@override @override
String chatEntryFlameRestored(Object count) { String chatEntryFlameRestored(Object count) {

View file

@ -480,6 +480,11 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String get userVerifiedTitle => 'User verified'; String get userVerifiedTitle => 'User verified';
@override
String contactVerifiedBy(Object username) {
return 'Verified by $username';
}
@override @override
String get verificationTypeQrScanned => 'You scanned their QR code.'; String get verificationTypeQrScanned => 'You scanned their QR code.';
@ -1700,19 +1705,19 @@ class AppLocalizationsSv extends AppLocalizations {
@override @override
String get verificationBadgeGeneralDesc => String get verificationBadgeGeneralDesc =>
'The green checkmark gives you the certainty that you are messaging the right person.'; 'The checkmark gives you the certainty that you are messaging the right person. Scan the contact\'s QR code to verify it.';
@override @override
String get verificationBadgeGreenDesc => String get verificationBadgeGreenDesc =>
'Contact that you have personally verified via QR code. This also verified their public key.'; 'A contact you have personally verified.';
@override @override
String get verificationBadgeYellowDesc => String get verificationBadgeYellowDesc =>
'(Coming soon) Contact whose QR code was scanned by one of your personally verified contacts.'; 'A contact who has been verified by at least one of your contacts.';
@override @override
String get verificationBadgeRedDesc => String get verificationBadgeRedDesc =>
'Unknown contact whose identity has not yet been verified.'; 'A contact whose identity has not yet been verified.';
@override @override
String chatEntryFlameRestored(Object count) { String chatEntryFlameRestored(Object count) {

View file

@ -89,7 +89,11 @@ class _VerificationBadgeCompState extends State<VerificationBadgeComp> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (!_isVerified && widget.showOnlyIfVerified) return Container(); if (!_isVerified &&
!_isVerifiedByTransferredTrust &&
widget.showOnlyIfVerified) {
return Container();
}
return GestureDetector( return GestureDetector(
onTap: (!widget.clickable) onTap: (!widget.clickable)
? null ? null

View file

@ -288,7 +288,9 @@ class _ContactViewState extends State<ContactView> {
(tt) => ListTile( (tt) => ListTile(
dense: true, dense: true,
title: Text( title: Text(
'Verifiziert von ${getContactDisplayName(tt.$1)}', context.lang.contactVerifiedBy(
getContactDisplayName(tt.$1),
),
), ),
trailing: Text( trailing: Text(
DateFormat.yMd( DateFormat.yMd(

View file

@ -19,7 +19,6 @@ class FaqView extends StatefulWidget {
class _FaqViewState extends State<FaqView> { class _FaqViewState extends State<FaqView> {
Map<String, dynamic>? _faqData; Map<String, dynamic>? _faqData;
String? _locale;
late String domain; late String domain;
bool _noInternet = false; bool _noInternet = false;
@ -84,7 +83,12 @@ class _FaqViewState extends State<FaqView> {
); );
} }
final faq = _faqData![_locale ?? 'en'] as Map; final locale = Localizations.localeOf(context).languageCode;
var faq = _faqData!['en'] as Map;
if (_faqData!.containsKey(locale)) {
faq = _faqData![locale] as Map;
}
final sortedCategories = faq.entries.toList() final sortedCategories = faq.entries.toList()
..sort((a, b) { ..sort((a, b) {
final aPriority = (a.value['meta']['priority'] as num? ?? 0).toInt(); final aPriority = (a.value['meta']['priority'] as num? ?? 0).toInt();

View file

@ -6,7 +6,7 @@ import 'package:twonly/src/utils/misc.dart';
import 'package:twonly/src/visual/elements/better_list_title.element.dart'; import 'package:twonly/src/visual/elements/better_list_title.element.dart';
import 'package:twonly/src/visual/elements/svg_icon.element.dart'; import 'package:twonly/src/visual/elements/svg_icon.element.dart';
const colorVerificationBadgeYellow = Color(0xffffa500); const colorVerificationBadgeYellow = Color.fromARGB(255, 0, 182, 238);
class VerificationBadeFaqView extends StatefulWidget { class VerificationBadeFaqView extends StatefulWidget {
const VerificationBadeFaqView({super.key}); const VerificationBadeFaqView({super.key});
@ -48,7 +48,6 @@ class _VerificationBadeFaqViewState extends State<VerificationBadeFaqView> {
description: context.lang.verificationBadgeRedDesc, description: context.lang.verificationBadgeRedDesc,
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
const SizedBox(height: 20),
BetterListTile( BetterListTile(
leading: const FaIcon(FontAwesomeIcons.camera), leading: const FaIcon(FontAwesomeIcons.camera),
text: context.lang.scanOtherProfile, text: context.lang.scanOtherProfile,
@ -66,7 +65,7 @@ class _VerificationBadeFaqViewState extends State<VerificationBadeFaqView> {
Widget _buildItem({required Widget icon, required String description}) { Widget _buildItem({required Widget icon, required String description}) {
return Padding( return Padding(
padding: const EdgeInsets.symmetric(vertical: 40), padding: const EdgeInsets.symmetric(vertical: 25),
child: Row( child: Row(
children: [ children: [
icon, icon,