From 49e9c673b15f8c3b50b58be9e9a7743f55cecfdc Mon Sep 17 00:00:00 2001 From: stopflock Date: Sat, 15 Nov 2025 15:41:07 -0600 Subject: [PATCH] Bottom offsets for android --- assets/changelog.json | 2 +- lib/screens/about_screen.dart | 7 ++++++- lib/screens/advanced_settings_screen.dart | 7 ++++++- lib/screens/language_settings_screen.dart | 11 ++++++++--- lib/screens/navigation_settings_screen.dart | 7 ++++++- lib/screens/offline_settings_screen.dart | 7 ++++++- lib/screens/operator_profile_editor.dart | 7 ++++++- lib/screens/profile_editor.dart | 7 ++++++- lib/screens/profiles_settings_screen.dart | 7 ++++++- lib/screens/release_notes_screen.dart | 7 ++++++- lib/screens/settings_screen.dart | 7 ++++++- lib/screens/tile_provider_editor_screen.dart | 7 ++++++- 12 files changed, 69 insertions(+), 14 deletions(-) diff --git a/assets/changelog.json b/assets/changelog.json index 7a1fbc2..c15498a 100644 --- a/assets/changelog.json +++ b/assets/changelog.json @@ -1,6 +1,6 @@ { "1.3.2": { - "content": "• HOTFIX: Temporarily disabled node editing to prevent OSM database issues while a bug is resolved\n• TECH: Added kEnableNodeEdits feature flag for controlling edit functionality" + "content": "• HOTFIX: Temporarily disabled node editing to prevent OSM database issues while a bug is resolved\n• UX: Fixed Android navigation bar covering settings page content" }, "1.3.1": { "content": "• UX: Network status indicator always enabled\n• UX: Direction slider wider on small screens\n• UX: Fixed iOS keyboard missing 'Done' in settings\n• UX: Fixed multi-direction nodes in upload queue\n• UX: Improved suspected locations loading indicator; removed popup, fixed stuck spinner" diff --git a/lib/screens/about_screen.dart b/lib/screens/about_screen.dart index 04baffd..32c88b9 100644 --- a/lib/screens/about_screen.dart +++ b/lib/screens/about_screen.dart @@ -31,7 +31,12 @@ class AboutScreen extends StatelessWidget { title: Text(locService.t('settings.aboutThisApp')), ), body: SingleChildScrollView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ diff --git a/lib/screens/advanced_settings_screen.dart b/lib/screens/advanced_settings_screen.dart index 8ac7b3c..17bf570 100644 --- a/lib/screens/advanced_settings_screen.dart +++ b/lib/screens/advanced_settings_screen.dart @@ -20,7 +20,12 @@ class AdvancedSettingsScreen extends StatelessWidget { title: Text(locService.t('settings.advancedSettings')), ), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: const [ MaxNodesSection(), Divider(), diff --git a/lib/screens/language_settings_screen.dart b/lib/screens/language_settings_screen.dart index 8d8bf41..7356452 100644 --- a/lib/screens/language_settings_screen.dart +++ b/lib/screens/language_settings_screen.dart @@ -15,9 +15,14 @@ class LanguageSettingsScreen extends StatelessWidget { appBar: AppBar( title: Text(locService.t('settings.language')), ), - body: const Padding( - padding: EdgeInsets.all(16), - child: LanguageSection(), + body: Padding( + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), + child: const LanguageSection(), ), ), ); diff --git a/lib/screens/navigation_settings_screen.dart b/lib/screens/navigation_settings_screen.dart index 27ac209..9bc8ab3 100644 --- a/lib/screens/navigation_settings_screen.dart +++ b/lib/screens/navigation_settings_screen.dart @@ -17,7 +17,12 @@ class NavigationSettingsScreen extends StatelessWidget { title: Text(locService.t('navigation.navigationSettings')), ), body: Padding( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/screens/offline_settings_screen.dart b/lib/screens/offline_settings_screen.dart index 833ffac..3238318 100644 --- a/lib/screens/offline_settings_screen.dart +++ b/lib/screens/offline_settings_screen.dart @@ -17,7 +17,12 @@ class OfflineSettingsScreen extends StatelessWidget { title: Text(locService.t('settings.offlineSettings')), ), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: const [ OfflineModeSection(), Divider(), diff --git a/lib/screens/operator_profile_editor.dart b/lib/screens/operator_profile_editor.dart index 45e1fab..85dd39d 100644 --- a/lib/screens/operator_profile_editor.dart +++ b/lib/screens/operator_profile_editor.dart @@ -56,7 +56,12 @@ class _OperatorProfileEditorState extends State { title: Text(widget.profile.name.isEmpty ? locService.t('operatorProfileEditor.newOperatorProfile') : locService.t('operatorProfileEditor.editOperatorProfile')), ), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: [ TextField( controller: _nameCtrl, diff --git a/lib/screens/profile_editor.dart b/lib/screens/profile_editor.dart index ffdb4b6..0731a6d 100644 --- a/lib/screens/profile_editor.dart +++ b/lib/screens/profile_editor.dart @@ -67,7 +67,12 @@ class _ProfileEditorState extends State { : (widget.profile.name.isEmpty ? locService.t('profileEditor.newProfile') : locService.t('profileEditor.editProfile'))), ), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: [ TextField( controller: _nameCtrl, diff --git a/lib/screens/profiles_settings_screen.dart b/lib/screens/profiles_settings_screen.dart index 333d8e0..ba2d9d2 100644 --- a/lib/screens/profiles_settings_screen.dart +++ b/lib/screens/profiles_settings_screen.dart @@ -17,7 +17,12 @@ class ProfilesSettingsScreen extends StatelessWidget { title: Text(locService.t('settings.profiles')), ), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: const [ NodeProfilesSection(), Divider(), diff --git a/lib/screens/release_notes_screen.dart b/lib/screens/release_notes_screen.dart index ee47a55..28bfcc6 100644 --- a/lib/screens/release_notes_screen.dart +++ b/lib/screens/release_notes_screen.dart @@ -84,7 +84,12 @@ class _ReleaseNotesScreenState extends State { ), ) : ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: [ // Current version indicator Container( diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index e2a0301..17f5666 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -18,7 +18,12 @@ class SettingsScreen extends StatelessWidget { builder: (context, child) => Scaffold( appBar: AppBar(title: Text(locService.t('settings.title'))), body: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: [ // Only show upload mode section in development builds if (kEnableDevelopmentModes) ...[ diff --git a/lib/screens/tile_provider_editor_screen.dart b/lib/screens/tile_provider_editor_screen.dart index 2cb9ea7..6ca2013 100644 --- a/lib/screens/tile_provider_editor_screen.dart +++ b/lib/screens/tile_provider_editor_screen.dart @@ -64,7 +64,12 @@ class _TileProviderEditorScreenState extends State { body: Form( key: _formKey, child: ListView( - padding: const EdgeInsets.all(16), + padding: EdgeInsets.fromLTRB( + 16, + 16, + 16, + 16 + MediaQuery.of(context).padding.bottom, + ), children: [ TextFormField( controller: _nameController,