diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 8d14b8f..6513b40 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -1349,6 +1349,6 @@ "channels_scanQrCodeComingSoon": "Bientôt disponible", "channels_enterHashtag": "Entrez le hashtag", "channels_hashtagHint": "ex. #équipe", - "contacts_manageRoom": "Gérer le serveur de la pièce {name}", + "contacts_manageRoom": "Gérer le serveur de salle", "room_management": "Gestion du serveur de pièce" } diff --git a/lib/l10n/app_localizations_bg.dart b/lib/l10n/app_localizations_bg.dart index 0c666fa..dcabe32 100644 --- a/lib/l10n/app_localizations_bg.dart +++ b/lib/l10n/app_localizations_bg.dart @@ -651,7 +651,7 @@ class AppLocalizationsBg extends AppLocalizations { String get contacts_manageRepeater => 'Управление на Повтарящ се Елемент'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Управление на сървър за стая'; @override String get contacts_roomLogin => 'Вход в стаята'; @@ -1591,7 +1591,7 @@ class AppLocalizationsBg extends AppLocalizations { String get repeater_management => 'Управление на повторители'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Управление на сървъра за стая'; @override String get repeater_managementTools => 'Инструменти за управление'; diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index d3edf4e..c42ed40 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -648,7 +648,7 @@ class AppLocalizationsDe extends AppLocalizations { String get contacts_manageRepeater => 'Wiederholungen verwalten'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Verwalten Sie den Raumserver'; @override String get contacts_roomLogin => 'Raum-Login'; @@ -1590,7 +1590,7 @@ class AppLocalizationsDe extends AppLocalizations { String get repeater_management => 'Repeater-Verwaltung'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Raumserververwaltung'; @override String get repeater_managementTools => 'Verwaltungs-Tools'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 9f92ba7..a88cccf 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -649,7 +649,7 @@ class AppLocalizationsEs extends AppLocalizations { String get contacts_manageRepeater => 'Gestionar Repetidor'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Gestionar Servidor de Habitación'; @override String get contacts_roomLogin => 'Inicio de Sala'; @@ -1589,7 +1589,7 @@ class AppLocalizationsEs extends AppLocalizations { String get repeater_management => 'Gestión de Repetidores'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Administración del Servidor de Habitación'; @override String get repeater_managementTools => 'Herramientas de Gestión'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index ced92dc..ceb2be5 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -650,7 +650,7 @@ class AppLocalizationsFr extends AppLocalizations { String get contacts_manageRepeater => 'Gérer le répétiteur'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Gérer le serveur de salle'; @override String get contacts_roomLogin => 'Connexion Salle'; @@ -1595,7 +1595,7 @@ class AppLocalizationsFr extends AppLocalizations { String get repeater_management => 'Gestion des répétiteurs'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Gestion du serveur de pièce'; @override String get repeater_managementTools => 'Outils de Gestion'; diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 1351305..50e50de 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -647,7 +647,7 @@ class AppLocalizationsIt extends AppLocalizations { String get contacts_manageRepeater => 'Gestisci Ripetitore'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Gestisci Server Camera'; @override String get contacts_roomLogin => 'Login Camera'; @@ -1587,7 +1587,7 @@ class AppLocalizationsIt extends AppLocalizations { String get repeater_management => 'Gestione Ripetitori'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Gestione del Server di Camera'; @override String get repeater_managementTools => 'Strumenti di Gestione'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index baf4668..d928365 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -645,7 +645,7 @@ class AppLocalizationsNl extends AppLocalizations { String get contacts_manageRepeater => 'Beheer Repeater'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Beheer Ruimte Server'; @override String get contacts_roomLogin => 'Ruimte Inloggen'; @@ -1582,7 +1582,7 @@ class AppLocalizationsNl extends AppLocalizations { String get repeater_management => 'Beheer Repeaters'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Beheer Server Kamer'; @override String get repeater_managementTools => 'Beheerinstrumenten'; diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index 5051b83..435a589 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -650,7 +650,7 @@ class AppLocalizationsPl extends AppLocalizations { String get contacts_manageRepeater => 'Zarządzaj Powtórzami'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Zarządzaj Serwerem Pokoju'; @override String get contacts_roomLogin => 'Logowanie do pokoju'; @@ -1591,7 +1591,7 @@ class AppLocalizationsPl extends AppLocalizations { String get repeater_management => 'Zarządzanie Powtórzami'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Zarządzanie Serwerem Pokoju'; @override String get repeater_managementTools => 'Narzędzia Zarządzania'; diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 96cb130..2cdd2f3 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -650,7 +650,7 @@ class AppLocalizationsPt extends AppLocalizations { String get contacts_manageRepeater => 'Gerenciar Repetidor'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Gerenciar Servidor de Sala'; @override String get contacts_roomLogin => 'Login no Quarto'; @@ -1589,7 +1589,7 @@ class AppLocalizationsPt extends AppLocalizations { String get repeater_management => 'Gerenciamento de Repetidor'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Gerenciamento de Servidor de Sala'; @override String get repeater_managementTools => 'Ferramentas de Gerenciamento'; diff --git a/lib/l10n/app_localizations_sk.dart b/lib/l10n/app_localizations_sk.dart index cdb39c7..2dda317 100644 --- a/lib/l10n/app_localizations_sk.dart +++ b/lib/l10n/app_localizations_sk.dart @@ -643,7 +643,7 @@ class AppLocalizationsSk extends AppLocalizations { String get contacts_manageRepeater => 'Spravovať opakované zoznamy'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Spravovať server miestnosti'; @override String get contacts_roomLogin => 'Prihlásenie do miestnosti'; @@ -1584,7 +1584,7 @@ class AppLocalizationsSk extends AppLocalizations { String get repeater_management => 'Správa opakérov'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Správa servera miestnosti'; @override String get repeater_managementTools => 'Nástroje na správu'; diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index a54282c..122741c 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -645,7 +645,7 @@ class AppLocalizationsSl extends AppLocalizations { String get contacts_manageRepeater => 'Upravljajte Ponovitve'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Upravljajte strežnik sobe'; @override String get contacts_roomLogin => 'Vnos v sobo'; @@ -1584,7 +1584,7 @@ class AppLocalizationsSl extends AppLocalizations { String get repeater_management => 'Upravljanje ponovitve'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Upravljanje stremlišča'; @override String get repeater_managementTools => 'Upravne orodje'; diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index 2b595a8..a1d8bd8 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -639,7 +639,7 @@ class AppLocalizationsSv extends AppLocalizations { String get contacts_manageRepeater => 'Hantera Upprepare'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => 'Hantera Rumserver'; @override String get contacts_roomLogin => 'Rum Inloggning'; @@ -1573,7 +1573,7 @@ class AppLocalizationsSv extends AppLocalizations { String get repeater_management => 'Återuppspelarens Hantering'; @override - String get room_management => 'Room Server Management'; + String get room_management => 'Rumserverhantering'; @override String get repeater_managementTools => 'Administrationsverktyg'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 2c0cddb..57b1a96 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -612,7 +612,7 @@ class AppLocalizationsZh extends AppLocalizations { String get contacts_manageRepeater => '管理重复项'; @override - String get contacts_manageRoom => 'Manage Room Server'; + String get contacts_manageRoom => '管理房间服务器'; @override String get contacts_roomLogin => '房间登录'; @@ -1517,7 +1517,7 @@ class AppLocalizationsZh extends AppLocalizations { String get repeater_management => '重复器管理'; @override - String get room_management => 'Room Server Management'; + String get room_management => '房间服务器管理'; @override String get repeater_managementTools => '管理工具'; diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 041b479..e05297d 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -1349,6 +1349,6 @@ "channels_scanQrCodeComingSoon": "Em breve", "channels_enterHashtag": "Insira hashtag", "channels_hashtagHint": "ex. #equipe", - "contacts_manageRoom": "Gerenciar Servidor de Sala {name} ({count})", + "contacts_manageRoom": "Gerenciar Servidor de Sala", "room_management": "Gerenciamento de Servidor de Sala" } diff --git a/lib/screens/contacts_screen.dart b/lib/screens/contacts_screen.dart index 8d15cc3..e91cd94 100644 --- a/lib/screens/contacts_screen.dart +++ b/lib/screens/contacts_screen.dart @@ -27,6 +27,11 @@ import 'map_screen.dart'; import 'repeater_hub_screen.dart'; import 'settings_screen.dart'; +enum RoomLoginDestination { + chat, + management, +} + class ContactsScreen extends StatefulWidget { final bool hideBackButton; @@ -277,8 +282,9 @@ class _ContactsScreenState extends State if (group.name.toLowerCase().contains(query)) return true; for (final key in group.memberKeys) { final contact = contactsByKey[key]; - if (contact != null && matchesContactQuery(contact, query)) + if (contact != null && matchesContactQuery(contact, query)) { return true; + } } return false; }) @@ -422,7 +428,7 @@ class _ContactsScreenState extends State if (contact.type == advTypeRepeater) { _showRepeaterLogin(context, contact); } else if (contact.type == advTypeRoom) { - _showRoomLogin(context, contact, false); + _showRoomLogin(context, contact, RoomLoginDestination.chat); } else { context.read().markContactRead(contact.publicKeyHex); Navigator.push( @@ -469,18 +475,21 @@ class _ContactsScreenState extends State ); } - void _showRoomLogin(BuildContext context, Contact room, bool settings) { + void _showRoomLogin( + BuildContext context, + Contact room, + RoomLoginDestination destination, + ) { showDialog( context: context, builder: (context) => RoomLoginDialog( room: room, onLogin: (password) { - // Navigate to chat screen after successful login context.read().markContactRead(room.publicKeyHex); Navigator.push( context, MaterialPageRoute( - builder: (context) => settings + builder: (context) => destination == RoomLoginDestination.management ? RepeaterHubScreen(repeater: room, password: password) : ChatScreen(contact: room), ), @@ -745,7 +754,7 @@ class _ContactsScreenState extends State children: [ if (isRepeater) ListTile( - leading: const Icon(Icons.settings, color: Colors.orange), + leading: const Icon(Icons.cell_tower, color: Colors.orange), title: Text(context.l10n.contacts_manageRepeater), onTap: () { Navigator.pop(sheetContext); @@ -758,15 +767,15 @@ class _ContactsScreenState extends State title: Text(context.l10n.contacts_roomLogin), onTap: () { Navigator.pop(sheetContext); - _showRoomLogin(context, contact, false); + _showRoomLogin(context, contact, RoomLoginDestination.chat); }, ), ListTile( - leading: const Icon(Icons.settings, color: Colors.orange), + leading: const Icon(Icons.room_preferences, color: Colors.orange), title: Text(context.l10n.room_management), onTap: () { Navigator.pop(sheetContext); - _showRoomLogin(context, contact, true); + _showRoomLogin(context, contact, RoomLoginDestination.management); }, ), ] else @@ -917,10 +926,12 @@ class _ContactTile extends StatelessWidget { final now = DateTime.now(); final diff = now.difference(lastSeen); - if (diff.isNegative || diff.inMinutes < 5) + if (diff.isNegative || diff.inMinutes < 5) { return context.l10n.contacts_lastSeenNow; - if (diff.inMinutes < 60) + } + if (diff.inMinutes < 60) { return context.l10n.contacts_lastSeenMinsAgo(diff.inMinutes); + } if (diff.inHours < 24) { final hours = diff.inHours; return hours == 1