mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Can delete all the notifications
This commit is contained in:
		@@ -102,4 +102,10 @@ class NotificationsHelper {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
      ).exec())
 | 
					      ).exec())
 | 
				
			||||||
          .isOK;
 | 
					          .isOK;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete all unread notifications
 | 
				
			||||||
 | 
					  Future<bool> deleteAllNotifications() async =>
 | 
				
			||||||
 | 
					      (await APIRequest(uri: "notifications/delete_all", needLogin: true)
 | 
				
			||||||
 | 
					              .exec())
 | 
				
			||||||
 | 
					          .isOK;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,8 @@ class _NotificationsScreenState extends State<NotificationsScreen> {
 | 
				
			|||||||
  GroupsList _groups;
 | 
					  GroupsList _groups;
 | 
				
			||||||
  _Status _status = _Status.LOADING;
 | 
					  _Status _status = _Status.LOADING;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final _refreshKey = GlobalKey<RefreshIndicatorState>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void setStatus(_Status s) => setState(() => _status = s);
 | 
					  void setStatus(_Status s) => setState(() => _status = s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<void> _loadList() async {
 | 
					  Future<void> _loadList() async {
 | 
				
			||||||
@@ -77,7 +79,22 @@ class _NotificationsScreenState extends State<NotificationsScreen> {
 | 
				
			|||||||
    return Column(
 | 
					    return Column(
 | 
				
			||||||
      children: [
 | 
					      children: [
 | 
				
			||||||
        Expanded(
 | 
					        Expanded(
 | 
				
			||||||
          child: RefreshIndicator(child: _buildBody(), onRefresh: _loadList),
 | 
					          child: Stack(children: [
 | 
				
			||||||
 | 
					            RefreshIndicator(
 | 
				
			||||||
 | 
					              key: _refreshKey,
 | 
				
			||||||
 | 
					              child: _buildBody(),
 | 
				
			||||||
 | 
					              onRefresh: _loadList,
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					            // Add conversation button
 | 
				
			||||||
 | 
					            Positioned(
 | 
				
			||||||
 | 
					              right: 20.0,
 | 
				
			||||||
 | 
					              bottom: 20.0,
 | 
				
			||||||
 | 
					              child: FloatingActionButton(
 | 
				
			||||||
 | 
					                onPressed: () => _deleteAllNotifications(),
 | 
				
			||||||
 | 
					                child: Icon(Icons.delete),
 | 
				
			||||||
 | 
					              ),
 | 
				
			||||||
 | 
					            ),
 | 
				
			||||||
 | 
					          ]),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
@@ -134,6 +151,21 @@ class _NotificationsScreenState extends State<NotificationsScreen> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    NotificationsHelper().markSeen(notif);
 | 
					    NotificationsHelper().markSeen(notif);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete all the notifications
 | 
				
			||||||
 | 
					  void _deleteAllNotifications() async {
 | 
				
			||||||
 | 
					    if (!await showConfirmDialog(
 | 
				
			||||||
 | 
					        context: context,
 | 
				
			||||||
 | 
					        message: tr("Do you really want to delete all your notifications?")))
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!await NotificationsHelper().deleteAllNotifications()) {
 | 
				
			||||||
 | 
					      showSimpleSnack(context, tr("Could not delete all your notifications!"));
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _refreshKey.currentState.show();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class _NotificationTile extends StatelessWidget {
 | 
					class _NotificationTile extends StatelessWidget {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user