mirror of
				https://gitlab.com/famedly/fluffychat.git
				synced 2025-11-04 06:17:26 +01:00 
			
		
		
		
	Minor fixes
This commit is contained in:
		
							parent
							
								
									c23c8ac957
								
							
						
					
					
						commit
						1cdbfc4f0b
					
				@ -4,9 +4,7 @@ import 'package:flutter/material.dart';
 | 
			
		||||
 | 
			
		||||
extension PresenceExtension on Presence {
 | 
			
		||||
  bool get isStatus =>
 | 
			
		||||
      (statusMsg?.isNotEmpty ?? false) ||
 | 
			
		||||
      this.displayname != null ||
 | 
			
		||||
      this.avatarUrl != null;
 | 
			
		||||
      (statusMsg?.isNotEmpty ?? false) || this.displayname != null;
 | 
			
		||||
 | 
			
		||||
  String getLocalizedStatusMessage(BuildContext context) {
 | 
			
		||||
    if (!isStatus) return null;
 | 
			
		||||
 | 
			
		||||
@ -229,88 +229,98 @@ class _ChatListState extends State<ChatList> {
 | 
			
		||||
      setState(() => selectMode = SelectMode.normal);
 | 
			
		||||
    }
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      drawer: Drawer(
 | 
			
		||||
        child: SafeArea(
 | 
			
		||||
          child: ListView(
 | 
			
		||||
            padding: EdgeInsets.zero,
 | 
			
		||||
            children: <Widget>[
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.edit),
 | 
			
		||||
                title: Text(I18n.of(context).setStatus),
 | 
			
		||||
                onTap: () => _setStatus(context),
 | 
			
		||||
              ),
 | 
			
		||||
              Divider(height: 1),
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.people_outline),
 | 
			
		||||
                title: Text(I18n.of(context).createNewGroup),
 | 
			
		||||
                onTap: () => _drawerTapAction(NewGroupView()),
 | 
			
		||||
              ),
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.person_add),
 | 
			
		||||
                title: Text(I18n.of(context).newPrivateChat),
 | 
			
		||||
                onTap: () => _drawerTapAction(NewPrivateChatView()),
 | 
			
		||||
              ),
 | 
			
		||||
              Divider(height: 1),
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.archive),
 | 
			
		||||
                title: Text(I18n.of(context).archive),
 | 
			
		||||
                onTap: () => _drawerTapAction(
 | 
			
		||||
                  Archive(),
 | 
			
		||||
      drawer: selectMode == SelectMode.share
 | 
			
		||||
          ? null
 | 
			
		||||
          : Drawer(
 | 
			
		||||
              child: SafeArea(
 | 
			
		||||
                child: ListView(
 | 
			
		||||
                  padding: EdgeInsets.zero,
 | 
			
		||||
                  children: <Widget>[
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.edit),
 | 
			
		||||
                      title: Text(I18n.of(context).setStatus),
 | 
			
		||||
                      onTap: () => _setStatus(context),
 | 
			
		||||
                    ),
 | 
			
		||||
                    Divider(height: 1),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.people_outline),
 | 
			
		||||
                      title: Text(I18n.of(context).createNewGroup),
 | 
			
		||||
                      onTap: () => _drawerTapAction(NewGroupView()),
 | 
			
		||||
                    ),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.person_add),
 | 
			
		||||
                      title: Text(I18n.of(context).newPrivateChat),
 | 
			
		||||
                      onTap: () => _drawerTapAction(NewPrivateChatView()),
 | 
			
		||||
                    ),
 | 
			
		||||
                    Divider(height: 1),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.archive),
 | 
			
		||||
                      title: Text(I18n.of(context).archive),
 | 
			
		||||
                      onTap: () => _drawerTapAction(
 | 
			
		||||
                        Archive(),
 | 
			
		||||
                      ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.settings),
 | 
			
		||||
                      title: Text(I18n.of(context).settings),
 | 
			
		||||
                      onTap: () => _drawerTapAction(
 | 
			
		||||
                        SettingsView(),
 | 
			
		||||
                      ),
 | 
			
		||||
                    ),
 | 
			
		||||
                    Divider(height: 1),
 | 
			
		||||
                    ListTile(
 | 
			
		||||
                      leading: Icon(Icons.share),
 | 
			
		||||
                      title: Text(I18n.of(context).inviteContact),
 | 
			
		||||
                      onTap: () {
 | 
			
		||||
                        Navigator.of(context).pop();
 | 
			
		||||
                        Share.share(I18n.of(context).inviteText(
 | 
			
		||||
                            Matrix.of(context).client.userID,
 | 
			
		||||
                            "https://matrix.to/#/${Matrix.of(context).client.userID}"));
 | 
			
		||||
                      },
 | 
			
		||||
                    ),
 | 
			
		||||
                  ],
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.settings),
 | 
			
		||||
                title: Text(I18n.of(context).settings),
 | 
			
		||||
                onTap: () => _drawerTapAction(
 | 
			
		||||
                  SettingsView(),
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
              Divider(height: 1),
 | 
			
		||||
              ListTile(
 | 
			
		||||
                leading: Icon(Icons.share),
 | 
			
		||||
                title: Text(I18n.of(context).inviteContact),
 | 
			
		||||
                onTap: () {
 | 
			
		||||
                  Navigator.of(context).pop();
 | 
			
		||||
                  Share.share(I18n.of(context).inviteText(
 | 
			
		||||
                      Matrix.of(context).client.userID,
 | 
			
		||||
                      "https://matrix.to/#/${Matrix.of(context).client.userID}"));
 | 
			
		||||
                },
 | 
			
		||||
              ),
 | 
			
		||||
            ],
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
            ),
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        leading: selectMode != SelectMode.share
 | 
			
		||||
            ? null
 | 
			
		||||
            : IconButton(
 | 
			
		||||
                icon: Icon(Icons.close),
 | 
			
		||||
                onPressed: () => Matrix.of(context).shareContent = null,
 | 
			
		||||
              ),
 | 
			
		||||
        elevation: Matrix.of(context).client.statusList.isEmpty ? null : 0,
 | 
			
		||||
        titleSpacing: 0,
 | 
			
		||||
        title: Container(
 | 
			
		||||
          padding: EdgeInsets.all(8),
 | 
			
		||||
          height: 42,
 | 
			
		||||
          margin: EdgeInsets.only(right: 8),
 | 
			
		||||
          decoration: BoxDecoration(
 | 
			
		||||
            color: Theme.of(context).secondaryHeaderColor,
 | 
			
		||||
            borderRadius: BorderRadius.circular(90),
 | 
			
		||||
          ),
 | 
			
		||||
          child: TextField(
 | 
			
		||||
            autocorrect: false,
 | 
			
		||||
            controller: searchController,
 | 
			
		||||
            decoration: InputDecoration(
 | 
			
		||||
              suffixIcon: loadingPublicRooms
 | 
			
		||||
                  ? Container(
 | 
			
		||||
                      alignment: Alignment.centerRight,
 | 
			
		||||
                      child: Container(
 | 
			
		||||
                        width: 20,
 | 
			
		||||
                        height: 20,
 | 
			
		||||
                        child: CircularProgressIndicator(),
 | 
			
		||||
                      ),
 | 
			
		||||
                    )
 | 
			
		||||
                  : Icon(Icons.search),
 | 
			
		||||
              contentPadding: EdgeInsets.all(9),
 | 
			
		||||
              border: InputBorder.none,
 | 
			
		||||
              hintText: I18n.of(context).searchForAChat,
 | 
			
		||||
            ),
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
        title: selectMode == SelectMode.share
 | 
			
		||||
            ? Text(I18n.of(context).share)
 | 
			
		||||
            : Container(
 | 
			
		||||
                padding: EdgeInsets.all(8),
 | 
			
		||||
                height: 42,
 | 
			
		||||
                margin: EdgeInsets.only(right: 8),
 | 
			
		||||
                decoration: BoxDecoration(
 | 
			
		||||
                  color: Theme.of(context).secondaryHeaderColor,
 | 
			
		||||
                  borderRadius: BorderRadius.circular(90),
 | 
			
		||||
                ),
 | 
			
		||||
                child: TextField(
 | 
			
		||||
                  autocorrect: false,
 | 
			
		||||
                  controller: searchController,
 | 
			
		||||
                  decoration: InputDecoration(
 | 
			
		||||
                    suffixIcon: loadingPublicRooms
 | 
			
		||||
                        ? Container(
 | 
			
		||||
                            alignment: Alignment.centerRight,
 | 
			
		||||
                            child: Container(
 | 
			
		||||
                              width: 20,
 | 
			
		||||
                              height: 20,
 | 
			
		||||
                              child: CircularProgressIndicator(),
 | 
			
		||||
                            ),
 | 
			
		||||
                          )
 | 
			
		||||
                        : Icon(Icons.search),
 | 
			
		||||
                    contentPadding: EdgeInsets.all(9),
 | 
			
		||||
                    border: InputBorder.none,
 | 
			
		||||
                    hintText: I18n.of(context).searchForAChat,
 | 
			
		||||
                  ),
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
        bottom: Matrix.of(context).client.statusList.isEmpty
 | 
			
		||||
            ? null
 | 
			
		||||
            : PreferredSize(
 | 
			
		||||
@ -327,8 +337,8 @@ class _ChatListState extends State<ChatList> {
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
      ),
 | 
			
		||||
      floatingActionButton: AdaptivePageLayout.columnMode(context) &&
 | 
			
		||||
              selectMode == SelectMode.share
 | 
			
		||||
      floatingActionButton: (AdaptivePageLayout.columnMode(context) ||
 | 
			
		||||
              selectMode == SelectMode.share)
 | 
			
		||||
          ? null
 | 
			
		||||
          : SpeedDial(
 | 
			
		||||
              child: Icon(Icons.add),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user