mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Start to fix null safety migration errors
This commit is contained in:
		@@ -12,7 +12,7 @@ import 'package:flutter/material.dart';
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
typedef OnSelectMenuAction = void Function(BarCallbackActions);
 | 
			
		||||
typedef OnSelectMenuAction = void Function(BarCallbackActions?);
 | 
			
		||||
 | 
			
		||||
/// Callback actions
 | 
			
		||||
enum BarCallbackActions {
 | 
			
		||||
@@ -35,15 +35,15 @@ Color _secondaryColor() => darkTheme() ? darkAccentColor : Colors.white;
 | 
			
		||||
class _MenuItem {
 | 
			
		||||
  final String label;
 | 
			
		||||
  final Widget icon;
 | 
			
		||||
  final BarCallbackActions action;
 | 
			
		||||
  final BarCallbackActions? action;
 | 
			
		||||
  final bool isMenu;
 | 
			
		||||
  final PageType pageType;
 | 
			
		||||
  final PageType? pageType;
 | 
			
		||||
 | 
			
		||||
  const _MenuItem({
 | 
			
		||||
    @required this.label,
 | 
			
		||||
    @required this.icon,
 | 
			
		||||
    @required this.action,
 | 
			
		||||
    @required this.pageType,
 | 
			
		||||
    required this.label,
 | 
			
		||||
    required this.icon,
 | 
			
		||||
    required this.action,
 | 
			
		||||
    required this.pageType,
 | 
			
		||||
    this.isMenu = false,
 | 
			
		||||
  })  : assert(label != null),
 | 
			
		||||
        assert(isMenu != null),
 | 
			
		||||
@@ -57,7 +57,7 @@ class _ActionMenuItem {
 | 
			
		||||
  final String label;
 | 
			
		||||
  final BarCallbackActions action;
 | 
			
		||||
 | 
			
		||||
  const _ActionMenuItem({@required this.label, @required this.action})
 | 
			
		||||
  const _ActionMenuItem({required this.label, required this.action})
 | 
			
		||||
      : assert(label != null),
 | 
			
		||||
        assert(action != null);
 | 
			
		||||
}
 | 
			
		||||
@@ -65,27 +65,27 @@ class _ActionMenuItem {
 | 
			
		||||
/// List of menu items to show
 | 
			
		||||
final _menuItems = <_MenuItem>[
 | 
			
		||||
  _MenuItem(
 | 
			
		||||
      label: tr("Notifications"),
 | 
			
		||||
      label: tr("Notifications")!,
 | 
			
		||||
      icon: Icon(Icons.notifications),
 | 
			
		||||
      action: BarCallbackActions.OPEN_NOTIFICATIONS,
 | 
			
		||||
      pageType: PageType.NOTIFICATIONS_PAGE),
 | 
			
		||||
  _MenuItem(
 | 
			
		||||
      label: tr("Conversations"),
 | 
			
		||||
      label: tr("Conversations")!,
 | 
			
		||||
      icon: Icon(Icons.comment),
 | 
			
		||||
      action: BarCallbackActions.OPEN_CONVERSATIONS,
 | 
			
		||||
      pageType: PageType.CONVERSATIONS_LIST_PAGE),
 | 
			
		||||
  _MenuItem(
 | 
			
		||||
      label: tr("Newest"),
 | 
			
		||||
      label: tr("Newest")!,
 | 
			
		||||
      icon: Icon(Icons.refresh),
 | 
			
		||||
      action: BarCallbackActions.OPEN_NEWEST_POSTS,
 | 
			
		||||
      pageType: PageType.LATEST_POSTS_PAGE),
 | 
			
		||||
  _MenuItem(
 | 
			
		||||
      label: tr("Friends"),
 | 
			
		||||
      label: tr("Friends")!,
 | 
			
		||||
      icon: Icon(Icons.group),
 | 
			
		||||
      action: BarCallbackActions.OPEN_FRIENDS,
 | 
			
		||||
      pageType: PageType.FRIENDS_LIST_PAGE),
 | 
			
		||||
  _MenuItem(
 | 
			
		||||
      label: tr("Menu"),
 | 
			
		||||
      label: tr("Menu")!,
 | 
			
		||||
      icon: Icon(Icons.more_vert),
 | 
			
		||||
      isMenu: true,
 | 
			
		||||
      action: null,
 | 
			
		||||
@@ -95,14 +95,14 @@ final _menuItems = <_MenuItem>[
 | 
			
		||||
/// List of menu actions items
 | 
			
		||||
final _menuActionsItem = <_ActionMenuItem>[
 | 
			
		||||
  _ActionMenuItem(
 | 
			
		||||
      label: tr("My Page"), action: BarCallbackActions.OPEN_MY_PAGE),
 | 
			
		||||
  _ActionMenuItem(label: tr("Groups"), action: BarCallbackActions.OPEN_GROUPS),
 | 
			
		||||
      label: tr("My Page")!, action: BarCallbackActions.OPEN_MY_PAGE),
 | 
			
		||||
  _ActionMenuItem(label: tr("Groups")!, action: BarCallbackActions.OPEN_GROUPS),
 | 
			
		||||
  _ActionMenuItem(
 | 
			
		||||
      label: tr("Search"), action: BarCallbackActions.OPEN_SEARCH_PAGE),
 | 
			
		||||
      label: tr("Search")!, action: BarCallbackActions.OPEN_SEARCH_PAGE),
 | 
			
		||||
  _ActionMenuItem(
 | 
			
		||||
      label: tr("Settings"), action: BarCallbackActions.OPEN_SETTINGS),
 | 
			
		||||
      label: tr("Settings")!, action: BarCallbackActions.OPEN_SETTINGS),
 | 
			
		||||
  _ActionMenuItem(
 | 
			
		||||
      label: tr("Sign out"), action: BarCallbackActions.ACTION_LOGOUT),
 | 
			
		||||
      label: tr("Sign out")!, action: BarCallbackActions.ACTION_LOGOUT),
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
/// Public widget
 | 
			
		||||
@@ -111,8 +111,8 @@ class ComunicMobileAppBar extends StatefulWidget
 | 
			
		||||
  final PageInfo currentPage;
 | 
			
		||||
 | 
			
		||||
  const ComunicMobileAppBar({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.currentPage,
 | 
			
		||||
    Key? key,
 | 
			
		||||
    required this.currentPage,
 | 
			
		||||
  })  : assert(currentPage != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
@@ -153,7 +153,7 @@ class _ComunicMobileAppBarState extends SafeState<ComunicMobileAppBar> {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Get the number of unread notifications for the selected notice
 | 
			
		||||
  int getNumberUnread(BarCallbackActions action) {
 | 
			
		||||
  int? getNumberUnread(BarCallbackActions? action) {
 | 
			
		||||
    if (_unreadNotifications == null) return 0;
 | 
			
		||||
 | 
			
		||||
    switch (action) {
 | 
			
		||||
@@ -187,35 +187,35 @@ class _ComunicMobileAppBarState extends SafeState<ComunicMobileAppBar> {
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _handleAction(BarCallbackActions action) {
 | 
			
		||||
  void _handleAction(BarCallbackActions? action) {
 | 
			
		||||
    final controller = MainController.of(context);
 | 
			
		||||
    switch (action) {
 | 
			
		||||
      case BarCallbackActions.OPEN_NOTIFICATIONS:
 | 
			
		||||
        controller.openNotificationsPage();
 | 
			
		||||
        controller!.openNotificationsPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_CONVERSATIONS:
 | 
			
		||||
        controller.openConversationsPage();
 | 
			
		||||
        controller!.openConversationsPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_NEWEST_POSTS:
 | 
			
		||||
        controller.openLatestPostsPage();
 | 
			
		||||
        controller!.openLatestPostsPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_FRIENDS:
 | 
			
		||||
        controller.openFriendsList();
 | 
			
		||||
        controller!.openFriendsList();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_MY_PAGE:
 | 
			
		||||
        controller.openCurrentUserPage();
 | 
			
		||||
        controller!.openCurrentUserPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_SEARCH_PAGE:
 | 
			
		||||
        controller.openSearchPage();
 | 
			
		||||
        controller!.openSearchPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_GROUPS:
 | 
			
		||||
        controller.openGroupsListPage();
 | 
			
		||||
        controller!.openGroupsListPage();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.OPEN_SETTINGS:
 | 
			
		||||
        controller.openSettings();
 | 
			
		||||
        controller!.openSettings();
 | 
			
		||||
        break;
 | 
			
		||||
      case BarCallbackActions.ACTION_LOGOUT:
 | 
			
		||||
        controller.requestLogout();
 | 
			
		||||
        controller!.requestLogout();
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@@ -228,18 +228,15 @@ class _MenuItemWidget extends StatelessWidget {
 | 
			
		||||
  final bool isSelected;
 | 
			
		||||
 | 
			
		||||
  /// Notifications notice
 | 
			
		||||
  final int newNotice;
 | 
			
		||||
  final int? newNotice;
 | 
			
		||||
 | 
			
		||||
  const _MenuItemWidget({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.item,
 | 
			
		||||
    @required this.onTap,
 | 
			
		||||
    @required this.isSelected,
 | 
			
		||||
    Key? key,
 | 
			
		||||
    required this.item,
 | 
			
		||||
    required this.onTap,
 | 
			
		||||
    required this.isSelected,
 | 
			
		||||
    this.newNotice = 0,
 | 
			
		||||
  })  : assert(item != null),
 | 
			
		||||
        assert(onTap != null),
 | 
			
		||||
        assert(isSelected != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
  }) : super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
@@ -269,7 +266,7 @@ class _MenuItemWidget extends StatelessWidget {
 | 
			
		||||
              color: isSelected ? _primaryColor() : _secondaryColor()),
 | 
			
		||||
          child: item.icon,
 | 
			
		||||
        ),
 | 
			
		||||
        newNotice > 0 ? Spacer() : Container(),
 | 
			
		||||
        newNotice! > 0 ? Spacer() : Container(),
 | 
			
		||||
        newNotice == 0
 | 
			
		||||
            ? Container()
 | 
			
		||||
            : Material(
 | 
			
		||||
 
 | 
			
		||||
@@ -16,9 +16,9 @@ class UserMobilePage extends StatefulWidget {
 | 
			
		||||
  final void Function() onNeedRefresh;
 | 
			
		||||
 | 
			
		||||
  const UserMobilePage({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.userInfo,
 | 
			
		||||
    @required this.onNeedRefresh,
 | 
			
		||||
    Key? key,
 | 
			
		||||
    required this.userInfo,
 | 
			
		||||
    required this.onNeedRefresh,
 | 
			
		||||
  })  : assert(userInfo != null),
 | 
			
		||||
        assert(onNeedRefresh != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
@@ -29,12 +29,12 @@ class UserMobilePage extends StatefulWidget {
 | 
			
		||||
 | 
			
		||||
class _UserMobilePageState extends State<UserMobilePage>
 | 
			
		||||
    with SingleTickerProviderStateMixin {
 | 
			
		||||
  TabController _tabController;
 | 
			
		||||
  TabController? _tabController;
 | 
			
		||||
 | 
			
		||||
  List<UserPageTab> get _tabs => [
 | 
			
		||||
        // User posts
 | 
			
		||||
        UserPageTab(
 | 
			
		||||
          label: tr("Posts"),
 | 
			
		||||
          label: tr("Posts")!,
 | 
			
		||||
          onBuild: (c) => UserPostsSection(
 | 
			
		||||
            user: widget.userInfo,
 | 
			
		||||
          ),
 | 
			
		||||
@@ -42,13 +42,13 @@ class _UserMobilePageState extends State<UserMobilePage>
 | 
			
		||||
 | 
			
		||||
        // About user
 | 
			
		||||
        UserPageTab(
 | 
			
		||||
          label: tr("About"),
 | 
			
		||||
          label: tr("About")!,
 | 
			
		||||
          onBuild: (c) => AboutUserSection(user: widget.userInfo),
 | 
			
		||||
        ),
 | 
			
		||||
 | 
			
		||||
        // User friends
 | 
			
		||||
        UserPageTab(
 | 
			
		||||
            label: tr("Friends"),
 | 
			
		||||
            label: tr("Friends")!,
 | 
			
		||||
            onBuild: (c) => widget.userInfo.isCurrentUser
 | 
			
		||||
                ? FriendsListScreen(
 | 
			
		||||
                    showAppBar: false,
 | 
			
		||||
@@ -70,7 +70,7 @@ class _UserMobilePageState extends State<UserMobilePage>
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void dispose() {
 | 
			
		||||
    _tabController.dispose();
 | 
			
		||||
    _tabController!.dispose();
 | 
			
		||||
    super.dispose();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -111,8 +111,8 @@ class UserPageTab {
 | 
			
		||||
  final bool visible;
 | 
			
		||||
 | 
			
		||||
  UserPageTab({
 | 
			
		||||
    @required this.label,
 | 
			
		||||
    @required this.onBuild,
 | 
			
		||||
    required this.label,
 | 
			
		||||
    required this.onBuild,
 | 
			
		||||
    this.visible = true,
 | 
			
		||||
  })  : assert(label != null),
 | 
			
		||||
        assert(onBuild != null),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user