Hide mark as read action on conversation if no unread message

This commit is contained in:
Sylvain Berfini 2024-07-15 10:30:42 +02:00
parent 8a92624254
commit 179a6c39ca
7 changed files with 12 additions and 5 deletions

View file

@ -37,7 +37,7 @@ import org.linphone.contacts.getListOfSipAddressesAndPhoneNumbers
import org.linphone.core.Address
import org.linphone.core.tools.Log
import org.linphone.databinding.StartCallFragmentBinding
import org.linphone.ui.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.contacts.model.ContactNumberOrAddressClickListener
import org.linphone.ui.main.contacts.model.ContactNumberOrAddressModel
import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel

View file

@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.linphone.ui.adapter
package org.linphone.ui.main.adapter
import android.content.Context
import android.view.LayoutInflater

View file

@ -36,6 +36,7 @@ class ConversationDialogFragment(
private val isMuted: Boolean,
private val isGroup: Boolean,
private val isReadOnly: Boolean,
private val hasUnreadMessages: Boolean,
private val onDismiss: (() -> Unit)? = null,
private val onMarkConversationAsRead: (() -> Unit)? = null,
private val onToggleMute: (() -> Unit)? = null,
@ -74,6 +75,7 @@ class ConversationDialogFragment(
view.isMuted = isMuted
view.isGroup = isGroup
view.isReadOnly = isReadOnly
view.hasUnreadMessages = hasUnreadMessages
view.setMarkAsReadClickListener {
onMarkConversationAsRead?.invoke()

View file

@ -32,7 +32,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import org.linphone.R
import org.linphone.core.tools.Log
import org.linphone.databinding.ChatMessageForwardFragmentBinding
import org.linphone.ui.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.chat.viewmodel.ConversationForwardMessageViewModel
import org.linphone.ui.main.contacts.model.ContactNumberOrAddressModel
import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel

View file

@ -130,6 +130,7 @@ class ConversationsListFragment : AbstractMainFragment() {
model.isMuted.value == true,
model.isGroup,
model.isReadOnly,
(model.unreadMessageCount.value ?: 0) > 0,
{ // onDismiss
adapter.resetSelection()
},

View file

@ -31,7 +31,7 @@ import org.linphone.contacts.getListOfSipAddressesAndPhoneNumbers
import org.linphone.core.Address
import org.linphone.core.Friend
import org.linphone.core.tools.Log
import org.linphone.ui.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.adapter.ConversationsContactsAndSuggestionsListAdapter
import org.linphone.ui.main.contacts.model.ContactNumberOrAddressClickListener
import org.linphone.ui.main.contacts.model.ContactNumberOrAddressModel
import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel

View file

@ -28,6 +28,9 @@
<variable
name="isReadOnly"
type="Boolean" />
<variable
name="hasUnreadMessages"
type="Boolean" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
@ -41,9 +44,10 @@
android:id="@+id/mark_as_read"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:visibility="@{hasUnreadMessages ? View.VISIBLE : View.GONE}"
android:text="@string/conversation_action_mark_as_read"
android:background="@drawable/menu_item_background"
android:layout_marginBottom="1dp"
android:drawableStart="@drawable/envelope_simple_open"
app:layout_constraintBottom_toTopOf="@id/mute"
app:layout_constraintStart_toStartOf="parent"