diff --git a/lib/screens/map_screen.dart b/lib/screens/map_screen.dart index 11fe4e26..93c89881 100644 --- a/lib/screens/map_screen.dart +++ b/lib/screens/map_screen.dart @@ -17,6 +17,8 @@ import '../widgets/quick_switch_bar.dart'; import 'channels_screen.dart'; import 'chat_screen.dart'; import 'contacts_screen.dart'; +import '../widgets/repeater_login_dialog.dart'; +import 'repeater_hub_screen.dart'; import 'settings_screen.dart'; class MapScreen extends StatefulWidget { @@ -549,6 +551,27 @@ class _MapScreenState extends State { ); } + void _showRepeaterLogin(BuildContext context, Contact repeater) { + showDialog( + context: context, + builder: (context) => RepeaterLoginDialog( + repeater: repeater, + onLogin: (password) { + // Navigate to repeater hub screen after successful login + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => RepeaterHubScreen( + repeater: repeater, + password: password, + ), + ), + ); + }, + ), + ); + } + void _showNodeInfo(BuildContext context, Contact contact) { showDialog( context: context, @@ -593,6 +616,14 @@ class _MapScreenState extends State { }, child: const Text('Open Chat'), ), + if (contact.type == advTypeRepeater) + TextButton( + onPressed: () { + Navigator.pop(context); + _showRepeaterLogin(context, contact); + }, + child: const Text('Manage Repeater'), + ), ], ), ); diff --git a/lib/screens/repeater_settings_screen.dart b/lib/screens/repeater_settings_screen.dart index deaa2451..a7c1885e 100644 --- a/lib/screens/repeater_settings_screen.dart +++ b/lib/screens/repeater_settings_screen.dart @@ -547,7 +547,7 @@ class _RepeaterSettingsScreenState extends State { }) { return Row( children: [ - Icon(icon, color: Theme.of(context).primaryColor), + Icon(icon, color: Theme.of(context).textTheme.headlineSmall?.color), const SizedBox(width: 8), Text( title, diff --git a/lib/screens/repeater_status_screen.dart b/lib/screens/repeater_status_screen.dart index c9a592ff..ddb17844 100644 --- a/lib/screens/repeater_status_screen.dart +++ b/lib/screens/repeater_status_screen.dart @@ -417,7 +417,7 @@ class _RepeaterStatusScreenState extends State { children: [ Row( children: [ - Icon(Icons.info_outline, color: Theme.of(context).primaryColor), + Icon(Icons.info_outline, color: Theme.of(context).textTheme.headlineSmall?.color), const SizedBox(width: 8), const Text( 'System Information', @@ -446,7 +446,7 @@ class _RepeaterStatusScreenState extends State { children: [ Row( children: [ - Icon(Icons.radio, color: Theme.of(context).primaryColor), + Icon(Icons.radio, color: Theme.of(context).textTheme.headlineSmall?.color), const SizedBox(width: 8), const Text( 'Radio Statistics', @@ -475,7 +475,7 @@ class _RepeaterStatusScreenState extends State { children: [ Row( children: [ - Icon(Icons.analytics, color: Theme.of(context).primaryColor), + Icon(Icons.analytics, color: Theme.of(context).textTheme.headlineSmall?.color), const SizedBox(width: 8), const Text( 'Packet Statistics',