mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Use the conversation messages cache before going online
This commit is contained in:
		@@ -43,7 +43,7 @@ class _ConversationScreenState extends State<ConversationScreen> {
 | 
			
		||||
  @override
 | 
			
		||||
  void didChangeDependencies() {
 | 
			
		||||
    super.didChangeDependencies();
 | 
			
		||||
    _loadMessages();
 | 
			
		||||
    _initializeLoading();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _setError(ErrorLevel err) => setState(() => _error = err);
 | 
			
		||||
@@ -55,15 +55,27 @@ class _ConversationScreenState extends State<ConversationScreen> {
 | 
			
		||||
    _setError(_messages == null ? ErrorLevel.MAJOR : ErrorLevel.MINOR);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Load the first conversations
 | 
			
		||||
  Future<void> _initializeLoading() async {
 | 
			
		||||
    await _loadMessages(false);
 | 
			
		||||
    await _loadMessages(true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /// Load a list of messages
 | 
			
		||||
  Future<void> _loadMessages() async {
 | 
			
		||||
  Future<void> _loadMessages(bool online) async {
 | 
			
		||||
    //First, get the messages
 | 
			
		||||
    final messages = await _conversationsHelper.getNewMessages(
 | 
			
		||||
        conversationID: widget.conversationID,
 | 
			
		||||
        lastMessageID: _messages == null ? 0 : _messages.lastMessageID);
 | 
			
		||||
        lastMessageID: _messages == null ? 0 : _messages.lastMessageID,
 | 
			
		||||
        online: online);
 | 
			
		||||
 | 
			
		||||
    if (messages == null) return _errorLoading();
 | 
			
		||||
 | 
			
		||||
    // In case we are offline and we did not get any message we do not do
 | 
			
		||||
    // anything (we wait for the online request)
 | 
			
		||||
    if(messages.length == 0 && !online)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
    //Then get information about users
 | 
			
		||||
    final usersToGet =
 | 
			
		||||
        findMissingFromList(_usersInfo.usersID, messages.getUsersID());
 | 
			
		||||
@@ -254,6 +266,9 @@ class _ConversationScreenState extends State<ConversationScreen> {
 | 
			
		||||
 | 
			
		||||
    return Column(
 | 
			
		||||
      children: <Widget>[
 | 
			
		||||
        Container(
 | 
			
		||||
          child: _error == ErrorLevel.MINOR ? _buildError() : null,
 | 
			
		||||
        ),
 | 
			
		||||
        _buildMessagesList(),
 | 
			
		||||
        Divider(),
 | 
			
		||||
        _buildSendMessageForm()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user