diff --git a/lib/main.dart b/lib/main.dart index 552f746..842c7f7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,6 +14,7 @@ import 'package:contacts_plus_plus/widgets/update_notifier.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:flutter_phoenix/flutter_phoenix.dart'; import 'package:hive_flutter/hive_flutter.dart'; @@ -132,12 +133,14 @@ class _ContactsPlusPlusState extends State { theme: ThemeData( useMaterial3: true, textTheme: _typography.black, + canvasColor: lightDynamic?.surfaceVariant, colorScheme: lightDynamic ?? ColorScheme.fromSeed(seedColor: Colors.purple, brightness: Brightness.light), ), darkTheme: ThemeData( useMaterial3: true, textTheme: _typography.white, + canvasColor: darkDynamic?.surfaceVariant, colorScheme: darkDynamic ?? ColorScheme.fromSeed(seedColor: Colors.purple, brightness: Brightness.dark), ), themeMode: ThemeMode.values[widget.settingsClient.currentSettings.themeMode.valueOrDefault], diff --git a/lib/models/users/friend.dart b/lib/models/users/friend.dart index fe20a00..dcc8e9d 100644 --- a/lib/models/users/friend.dart +++ b/lib/models/users/friend.dart @@ -20,7 +20,7 @@ class Friend implements Comparable { required this.contactStatus, required this.latestMessageTime, }); - bool get isHeadless => userStatus.activeSessions.any((session) => session.headlessHost == true && session.hostUserId == id); + bool get isHeadless => userStatus.outputDevice == "Headless"; factory Friend.fromMap(Map map) { var userStatus = map["userStatus"] == null ? UserStatus.empty() : UserStatus.fromMap(map["userStatus"]); diff --git a/lib/widgets/friends/friends_list_app_bar.dart b/lib/widgets/friends/friends_list_app_bar.dart index e76c922..a5bb246 100644 --- a/lib/widgets/friends/friends_list_app_bar.dart +++ b/lib/widgets/friends/friends_list_app_bar.dart @@ -6,6 +6,7 @@ import 'package:contacts_plus_plus/models/users/user_status.dart'; import 'package:contacts_plus_plus/widgets/friends/user_search.dart'; import 'package:contacts_plus_plus/widgets/my_profile_dialog.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; @@ -49,6 +50,9 @@ class _FriendsListAppBarState extends State with AutomaticKee super.build(context); return AppBar( title: const Text("Contacts++"), + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Theme.of(context).colorScheme.surfaceVariant, + ), actions: [ FutureBuilder( future: _userStatusFuture, diff --git a/lib/widgets/homepage.dart b/lib/widgets/homepage.dart index d402d8c..f919807 100644 --- a/lib/widgets/homepage.dart +++ b/lib/widgets/homepage.dart @@ -29,6 +29,7 @@ class _HomeState extends State { @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: Theme.of(context).colorScheme.surface, appBar: PreferredSize( preferredSize: const Size.fromHeight(kToolbarHeight), child: AnimatedSwitcher( @@ -46,46 +47,40 @@ class _HomeState extends State { SettingsPage(), ], ), - bottomNavigationBar: Container( - decoration: BoxDecoration( - border: const Border(top: BorderSide(width: 1, color: Colors.black)), - color: Theme.of(context).colorScheme.background, - ), - child: BottomNavigationBar( - backgroundColor: Theme.of(context).colorScheme.surface, - type: BottomNavigationBarType.fixed, - unselectedItemColor: Theme.of(context).colorScheme.onBackground, - selectedItemColor: Theme.of(context).colorScheme.primary, - currentIndex: _selectedPage, - onTap: (index) { - _pageController.animateToPage( - index, - duration: const Duration(milliseconds: 200), - curve: Curves.easeOut, - ); - setState(() { - _selectedPage = index; - }); - }, - items: const [ - BottomNavigationBarItem( - icon: Icon(Icons.message), - label: "Chat", - ), - BottomNavigationBarItem( - icon: Icon(Icons.public), - label: "Sessions", - ), - BottomNavigationBarItem( - icon: Icon(Icons.inventory), - label: "Inventory", - ), - BottomNavigationBarItem( - icon: Icon(Icons.settings), - label: "Settings", - ), - ], - ), + bottomNavigationBar: BottomNavigationBar( + backgroundColor: Theme.of(context).colorScheme.surfaceVariant, + type: BottomNavigationBarType.fixed, + unselectedItemColor: Theme.of(context).colorScheme.onBackground, + selectedItemColor: Theme.of(context).colorScheme.primary, + currentIndex: _selectedPage, + onTap: (index) { + _pageController.animateToPage( + index, + duration: const Duration(milliseconds: 200), + curve: Curves.easeOut, + ); + setState(() { + _selectedPage = index; + }); + }, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.message), + label: "Chat", + ), + BottomNavigationBarItem( + icon: Icon(Icons.public), + label: "Sessions", + ), + BottomNavigationBarItem( + icon: Icon(Icons.inventory), + label: "Inventory", + ), + BottomNavigationBarItem( + icon: Icon(Icons.settings), + label: "Settings", + ), + ], ), ); } diff --git a/lib/widgets/inventory/inventory_browser_app_bar.dart b/lib/widgets/inventory/inventory_browser_app_bar.dart index 2342ed8..bc051d4 100644 --- a/lib/widgets/inventory/inventory_browser_app_bar.dart +++ b/lib/widgets/inventory/inventory_browser_app_bar.dart @@ -5,6 +5,7 @@ import 'package:contacts_plus_plus/auxiliary.dart'; import 'package:contacts_plus_plus/clients/inventory_client.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:path/path.dart'; import 'package:provider/provider.dart'; @@ -60,10 +61,16 @@ class _InventoryBrowserAppBarState extends State { ? AppBar( key: const ValueKey("default-appbar"), title: const Text("Inventory"), + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Theme.of(context).colorScheme.surfaceVariant, + ), ) : AppBar( key: const ValueKey("selection-appbar"), title: Text("${iClient.selectedRecordCount} Selected"), + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Theme.of(context).colorScheme.surfaceVariant, + ), leading: IconButton( onPressed: () { iClient.clearSelectedRecords(); diff --git a/lib/widgets/sessions/session_list_app_bar.dart b/lib/widgets/sessions/session_list_app_bar.dart index 0743988..ecd636c 100644 --- a/lib/widgets/sessions/session_list_app_bar.dart +++ b/lib/widgets/sessions/session_list_app_bar.dart @@ -3,6 +3,7 @@ import 'package:contacts_plus_plus/clients/session_client.dart'; import 'package:contacts_plus_plus/clients/settings_client.dart'; import 'package:contacts_plus_plus/widgets/sessions/session_filter_dialog.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; class SessionListAppBar extends StatefulWidget { @@ -17,6 +18,9 @@ class _SessionListAppBarState extends State { Widget build(BuildContext context) { return AppBar( title: const Text("Sessions"), + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Theme.of(context).colorScheme.surfaceVariant, + ), actions: [ Padding( padding: const EdgeInsets.only(right: 4.0), diff --git a/lib/widgets/settings_app_bar.dart b/lib/widgets/settings_app_bar.dart index 5433939..b810071 100644 --- a/lib/widgets/settings_app_bar.dart +++ b/lib/widgets/settings_app_bar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; class SettingsAppBar extends StatelessWidget { const SettingsAppBar({super.key}); @@ -7,7 +8,9 @@ class SettingsAppBar extends StatelessWidget { Widget build(BuildContext context) { return AppBar( title: const Text("Settings"), + systemOverlayStyle: SystemUiOverlayStyle( + systemNavigationBarColor: Theme.of(context).colorScheme.surfaceVariant, + ), ); } - -} \ No newline at end of file +} diff --git a/pubspec.lock b/pubspec.lock index 0052337..86fa7b6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -153,14 +153,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.17.2" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be - url: "https://pub.dev" - source: hosted - version: "1.0.5" dbus: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c4a7d2f..1cc6646 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,7 +31,6 @@ dependencies: flutter: sdk: flutter - cupertino_icons: ^1.0.2 http: ^0.13.5 http_parser: ^4.0.2 uuid: ^3.0.7