mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 05:31:21 +03:00
Fix quality code issues
This commit is contained in:
parent
737959f616
commit
8605095668
6 changed files with 52 additions and 33 deletions
|
@ -258,12 +258,21 @@ internal class DefaultTimeline(
|
|||
}
|
||||
// Otherwise, we should check if the event is in the db, but is hidden because of filters
|
||||
return Realm.getInstance(realmConfiguration).use { localRealm ->
|
||||
val nonFilteredEvents = buildEventQuery(localRealm).sort(TimelineEventEntityFields.ROOT.DISPLAY_INDEX, Sort.DESCENDING).findAll()
|
||||
val nonFilteredEvent = nonFilteredEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, eventId).findFirst()
|
||||
val nonFilteredEvents = buildEventQuery(localRealm)
|
||||
.sort(TimelineEventEntityFields.ROOT.DISPLAY_INDEX, Sort.DESCENDING)
|
||||
.findAll()
|
||||
|
||||
val nonFilteredEvent = nonFilteredEvents.where()
|
||||
.equalTo(TimelineEventEntityFields.EVENT_ID, eventId)
|
||||
.findFirst()
|
||||
|
||||
val filteredEvents = nonFilteredEvents.where().filterEventsWithSettings().findAll()
|
||||
val isEventInDb = nonFilteredEvent != null
|
||||
|
||||
val isHidden = isEventInDb && filteredEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, eventId).findFirst() == null
|
||||
val isHidden = isEventInDb && filteredEvents.where()
|
||||
.equalTo(TimelineEventEntityFields.EVENT_ID, eventId)
|
||||
.findFirst() == null
|
||||
|
||||
if (isHidden) {
|
||||
val displayIndex = nonFilteredEvent?.root?.displayIndex
|
||||
if (displayIndex != null) {
|
||||
|
|
|
@ -65,7 +65,10 @@ internal class TimelineHiddenReadMarker constructor(private val roomId: String,
|
|||
val hiddenEvent = readMarker.timelineEvent?.firstOrNull()
|
||||
?: return@OrderedRealmCollectionChangeListener
|
||||
|
||||
val isLoaded = nonFilteredEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, hiddenEvent.eventId).findFirst() != null
|
||||
val isLoaded = nonFilteredEvents.where()
|
||||
.equalTo(TimelineEventEntityFields.EVENT_ID, hiddenEvent.eventId)
|
||||
.findFirst() != null
|
||||
|
||||
val displayIndex = hiddenEvent.root?.displayIndex
|
||||
if (isLoaded && displayIndex != null) {
|
||||
// Then we are looking for the first displayable event after the hidden one
|
||||
|
|
|
@ -74,8 +74,10 @@ internal class TimelineHiddenReadReceipts constructor(private val readReceiptsSu
|
|||
for (index in 0 until hiddenReadReceipts.size) {
|
||||
val summary = hiddenReadReceipts[index] ?: continue
|
||||
val timelineEvent = summary.timelineEvent?.firstOrNull() ?: continue
|
||||
val isLoaded = nonFilteredEvents.where().equalTo(TimelineEventEntityFields.EVENT_ID, timelineEvent.eventId).findFirst() != null
|
||||
val isLoaded = nonFilteredEvents.where()
|
||||
.equalTo(TimelineEventEntityFields.EVENT_ID, timelineEvent.eventId).findFirst() != null
|
||||
val displayIndex = timelineEvent.root?.displayIndex
|
||||
|
||||
if (isLoaded && displayIndex != null) {
|
||||
// Then we are looking for the first displayable event after the hidden one
|
||||
val firstDisplayedEvent = filteredEvents.where()
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.view.ViewGroup
|
|||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.isInvisible
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import butterknife.ButterKnife
|
||||
|
@ -77,11 +78,7 @@ class JumpToReadMarkerView @JvmOverloads constructor(
|
|||
|
||||
fun render(show: Boolean, readMarkerId: String?) {
|
||||
this.readMarkerId = readMarkerId
|
||||
visibility = if(show){
|
||||
View.VISIBLE
|
||||
}else {
|
||||
View.INVISIBLE
|
||||
}
|
||||
isInvisible = !show
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -488,27 +488,26 @@ class RoomDetailFragment :
|
|||
timelineEventController.callback = this
|
||||
|
||||
if (vectorPreferences.swipeToReplyIsEnabled()) {
|
||||
val swipeCallback = RoomMessageTouchHelperCallback(requireContext(),
|
||||
R.drawable.ic_reply,
|
||||
object : RoomMessageTouchHelperCallback.QuickReplayHandler {
|
||||
override fun performQuickReplyOnHolder(model: EpoxyModel<*>) {
|
||||
(model as? AbsMessageItem)?.attributes?.informationData?.let {
|
||||
val eventId = it.eventId
|
||||
roomDetailViewModel.process(RoomDetailActions.EnterReplyMode(eventId, composerLayout.composerEditText.text.toString()))
|
||||
}
|
||||
}
|
||||
val quickReplyHandler = object : RoomMessageTouchHelperCallback.QuickReplayHandler {
|
||||
override fun performQuickReplyOnHolder(model: EpoxyModel<*>) {
|
||||
(model as? AbsMessageItem)?.attributes?.informationData?.let {
|
||||
val eventId = it.eventId
|
||||
roomDetailViewModel.process(RoomDetailActions.EnterReplyMode(eventId, composerLayout.composerEditText.text.toString()))
|
||||
}
|
||||
}
|
||||
|
||||
override fun canSwipeModel(model: EpoxyModel<*>): Boolean {
|
||||
return when (model) {
|
||||
is MessageFileItem,
|
||||
is MessageImageVideoItem,
|
||||
is MessageTextItem -> {
|
||||
return (model as AbsMessageItem).attributes.informationData.sendState == SendState.SYNCED
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
})
|
||||
override fun canSwipeModel(model: EpoxyModel<*>): Boolean {
|
||||
return when (model) {
|
||||
is MessageFileItem,
|
||||
is MessageImageVideoItem,
|
||||
is MessageTextItem -> {
|
||||
return (model as AbsMessageItem).attributes.informationData.sendState == SendState.SYNCED
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
val swipeCallback = RoomMessageTouchHelperCallback(requireContext(), R.drawable.ic_reply, quickReplyHandler)
|
||||
val touchHelper = ItemTouchHelper(swipeCallback)
|
||||
touchHelper.attachToRecyclerView(recyclerView)
|
||||
}
|
||||
|
|
|
@ -90,7 +90,12 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : BaseEventItem<H>() {
|
|||
holder.timeView.visibility = View.VISIBLE
|
||||
holder.timeView.text = attributes.informationData.time
|
||||
holder.memberNameView.text = attributes.informationData.memberName
|
||||
attributes.avatarRenderer.render(attributes.informationData.avatarUrl, attributes.informationData.senderId, attributes.informationData.memberName?.toString(), holder.avatarImageView)
|
||||
attributes.avatarRenderer.render(
|
||||
attributes.informationData.avatarUrl,
|
||||
attributes.informationData.senderId,
|
||||
attributes.informationData.memberName?.toString(),
|
||||
holder.avatarImageView
|
||||
)
|
||||
holder.avatarImageView.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
holder.memberNameView.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
} else {
|
||||
|
@ -104,8 +109,12 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : BaseEventItem<H>() {
|
|||
}
|
||||
holder.view.setOnClickListener(attributes.itemClickListener)
|
||||
holder.view.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
|
||||
holder.readReceiptsView.render(attributes.informationData.readReceipts, attributes.avatarRenderer, _readReceiptsClickListener)
|
||||
|
||||
holder.readReceiptsView.render(
|
||||
attributes.informationData.readReceipts,
|
||||
attributes.avatarRenderer,
|
||||
_readReceiptsClickListener
|
||||
)
|
||||
holder.readMarkerView.bindView(
|
||||
attributes.informationData.eventId,
|
||||
attributes.informationData.hasReadMarker,
|
||||
|
|
Loading…
Reference in a new issue