messenger-android

Android graphical user interfaces for GNUnet Messenger
Log | Files | Refs | README | LICENSE

ChatViewModel.kt (1619B)


      1 /*
      2    This file is part of GNUnet.
      3    Copyright (C) 2021--2025 GNUnet e.V.
      4 
      5    GNUnet is free software: you can redistribute it and/or modify it
      6    under the terms of the GNU Affero General Public License as published
      7    by the Free Software Foundation, either version 3 of the License,
      8    or (at your option) any later version.
      9 
     10    GNUnet is distributed in the hope that it will be useful, but
     11    WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13    Affero General Public License for more details.
     14 
     15    You should have received a copy of the GNU Affero General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.
     17 
     18    SPDX-License-Identifier: AGPL3.0-or-later
     19  */
     20 /*
     21  * @author t3sserakt
     22  * @file GNUnetMessenger/app/src/main/java/org/gnunet/gnunetmessenger/ui/viewmodel/ChatViewModel.kt
     23  */
     24 
     25 package org.gnunet.gnunetmessenger.viewmodel
     26 
     27 import androidx.lifecycle.LiveData
     28 import androidx.lifecycle.MutableLiveData
     29 import androidx.lifecycle.ViewModel
     30 import org.gnunet.gnunetmessenger.model.ChatContext
     31 import org.gnunet.gnunetmessenger.model.ChatMessage
     32 
     33 class ChatViewModel(chatContext: ChatContext) : ViewModel() {
     34 
     35     private val _messages = MutableLiveData<List<ChatMessage>>(emptyList())
     36     val messages: LiveData<List<ChatMessage>> = _messages
     37 
     38     fun addMessage(msg: ChatMessage) {
     39         val updated = _messages.value.orEmpty().toMutableList().apply {
     40             add(msg)
     41         }
     42         _messages.value = updated
     43     }
     44 
     45     fun clearModel() {
     46         _messages.value = emptyList()
     47     }
     48 }