Skip to content

Commit

Permalink
Improved UI.| #74
Browse files Browse the repository at this point in the history
  • Loading branch information
DenBond7 committed Nov 7, 2024
1 parent cabdb6a commit 6822679
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ import com.flowcrypt.email.extensions.androidx.fragment.app.toast
import com.flowcrypt.email.extensions.exceptionMsg
import com.flowcrypt.email.extensions.gone
import com.flowcrypt.email.extensions.showDialogFragment
import com.flowcrypt.email.extensions.visibleOrGone
import com.flowcrypt.email.jetpack.lifecycle.CustomAndroidViewModelFactory
import com.flowcrypt.email.jetpack.viewmodel.RecipientsViewModel
import com.flowcrypt.email.jetpack.viewmodel.ThreadDetailsViewModel
Expand Down Expand Up @@ -144,6 +145,19 @@ class ThreadDetailsFragment : BaseFragment<FragmentThreadDetailsBinding>(), Prog
}

private val messagesInThreadListAdapter = MessagesInThreadListAdapter(
object : MessagesInThreadListAdapter.AdapterListener {
override fun onDataSubmitted(list: List<MessagesInThreadListAdapter.Item>?) {
val freshestMessageInConversation =
(list?.getOrNull(1) as? MessagesInThreadListAdapter.Message)
updateThreadReplyButtons(
if (freshestMessageInConversation?.messageEntity?.isDraft == true) {
null
} else {
freshestMessageInConversation
}
)
}
},
object : MessagesInThreadListAdapter.OnMessageActionsListener {
override fun onMessageClick(position: Int, message: MessagesInThreadListAdapter.Message) {
processMessageClick(message)
Expand Down Expand Up @@ -457,6 +471,10 @@ class ThreadDetailsFragment : BaseFragment<FragmentThreadDetailsBinding>(), Prog
}

private fun initViews() {
binding?.layoutReplyButtons?.replyButton?.gone()
binding?.layoutReplyButtons?.replyAllButton?.gone()
binding?.layoutReplyButtons?.forwardButton?.gone()

binding?.recyclerViewThreads?.apply {
val linearLayoutManager = LinearLayoutManager(context)
layoutManager = linearLayoutManager
Expand Down Expand Up @@ -498,16 +516,6 @@ class ThreadDetailsFragment : BaseFragment<FragmentThreadDetailsBinding>(), Prog
binding?.swipeRefreshLayout?.isEnabled = true
messagesInThreadListAdapter.submitList(items)
showContent()
val freshestMessageInConversation =
(items.getOrNull(1) as? MessagesInThreadListAdapter.Message)
updateThreadReplyButtons(
if (freshestMessageInConversation?.messageEntity?.isDraft == true) {
null
} else {
freshestMessageInConversation
}
)

if (!it.data.silentUpdate) {
tryToOpenTheFreshestMessage(items)
}
Expand Down Expand Up @@ -969,8 +977,11 @@ class ThreadDetailsFragment : BaseFragment<FragmentThreadDetailsBinding>(), Prog
val replyAllButton = binding?.layoutReplyButtons?.replyAllButton
val forwardButton = binding?.layoutReplyButtons?.forwardButton

replyButton?.visibleOrGone(message != null)
replyAllButton?.visibleOrGone(message != null)
forwardButton?.visibleOrGone(message != null)

if (message == null) {
binding?.layoutReplyButtons?.root?.gone()
return
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,10 @@ import java.nio.charset.StandardCharsets
/**
* @author Denys Bondarenko
*/
class MessagesInThreadListAdapter(private val onMessageActionsListener: OnMessageActionsListener) :
class MessagesInThreadListAdapter(
private val adapterListener: AdapterListener,
private val onMessageActionsListener: OnMessageActionsListener
) :
ListAdapter<MessagesInThreadListAdapter.Item, MessagesInThreadListAdapter.BaseViewHolder>(
DIFF_UTIL_ITEM_CALLBACK
) {
Expand Down Expand Up @@ -166,10 +169,7 @@ class MessagesInThreadListAdapter(private val onMessageActionsListener: OnMessag

override fun submitList(list: List<Item>?) {
super.submitList(list)
LogsUtil.d(
TAG,
"submitList|list.size = ${list?.size}"
)
adapterListener.onDataSubmitted(list)
}

fun getMessageItemById(messageId: Long): Message? {
Expand Down Expand Up @@ -198,6 +198,10 @@ class MessagesInThreadListAdapter(private val onMessageActionsListener: OnMessag
fun getAccount(): AccountEntity?
}

interface AdapterListener {
fun onDataSubmitted(list: List<Item>?)
}

abstract inner class BaseViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
protected val context: Context
get() = itemView.context
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,12 @@ class MsgsPagedListAdapter(private val onMessageClickListener: OnMessageClickLis
binding.textViewSenderAddress.text = if (messageEntity.isGmailThread) {
messageEntity.getThreadSpannableString(context).let { spannableString ->
SpannableStringBuilder(senderAddress).apply {
if (spannableString.startsWith("(")) {
append(" ")
} else {
append(", ")
if (spannableString.isNotEmpty()) {
if (spannableString.startsWith("(")) {
append(" ")
} else {
append(", ")
}
}
append(spannableString)
}
Expand Down

0 comments on commit 6822679

Please sign in to comment.