Add read event tracking debugging
Change-Id: If9cc30f32af7bcadda9df6b04ad89ae248166da8
This commit is contained in:
parent
57fee29645
commit
b982841ed5
|
@ -7,6 +7,7 @@ import timber.log.Timber
|
||||||
|
|
||||||
object DbgUtil {
|
object DbgUtil {
|
||||||
const val DBG_READ_MARKER = "DBG_READ_MARKER"
|
const val DBG_READ_MARKER = "DBG_READ_MARKER"
|
||||||
|
const val DBG_SHOW_READ_TRACKING = "DBG_SHOW_READ_TRACKING"
|
||||||
const val DBG_TIMELINE_CHUNKS = "DBG_TIMELINE_CHUNKS"
|
const val DBG_TIMELINE_CHUNKS = "DBG_TIMELINE_CHUNKS"
|
||||||
const val DBG_SHOW_DISPLAY_INDEX = "DBG_SHOW_DISPLAY_INDEX"
|
const val DBG_SHOW_DISPLAY_INDEX = "DBG_SHOW_DISPLAY_INDEX"
|
||||||
|
|
||||||
|
@ -14,8 +15,9 @@ object DbgUtil {
|
||||||
|
|
||||||
private val ALL_PREFS = arrayOf(
|
private val ALL_PREFS = arrayOf(
|
||||||
DBG_READ_MARKER,
|
DBG_READ_MARKER,
|
||||||
|
DBG_SHOW_READ_TRACKING,
|
||||||
DBG_TIMELINE_CHUNKS,
|
DBG_TIMELINE_CHUNKS,
|
||||||
DBG_SHOW_DISPLAY_INDEX
|
DBG_SHOW_DISPLAY_INDEX,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun load(context: Context) {
|
fun load(context: Context) {
|
||||||
|
|
|
@ -20,6 +20,7 @@ import android.net.Uri
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import im.vector.app.core.platform.VectorViewEvents
|
import im.vector.app.core.platform.VectorViewEvents
|
||||||
import im.vector.app.features.call.webrtc.WebRtcCall
|
import im.vector.app.features.call.webrtc.WebRtcCall
|
||||||
|
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
|
||||||
import org.matrix.android.sdk.api.session.widgets.model.Widget
|
import org.matrix.android.sdk.api.session.widgets.model.Widget
|
||||||
import org.matrix.android.sdk.api.util.MatrixItem
|
import org.matrix.android.sdk.api.util.MatrixItem
|
||||||
import org.matrix.android.sdk.internal.crypto.model.event.WithHeldCode
|
import org.matrix.android.sdk.internal.crypto.model.event.WithHeldCode
|
||||||
|
@ -82,4 +83,6 @@ sealed class RoomDetailViewEvents : VectorViewEvents {
|
||||||
data class StartChatEffect(val type: ChatEffect) : RoomDetailViewEvents()
|
data class StartChatEffect(val type: ChatEffect) : RoomDetailViewEvents()
|
||||||
object StopChatEffects : RoomDetailViewEvents()
|
object StopChatEffects : RoomDetailViewEvents()
|
||||||
object RoomReplacementStarted : RoomDetailViewEvents()
|
object RoomReplacementStarted : RoomDetailViewEvents()
|
||||||
|
|
||||||
|
data class ScDbgReadTracking(val event: TimelineEvent?) : RoomDetailViewEvents()
|
||||||
}
|
}
|
||||||
|
|
|
@ -395,6 +395,8 @@ class TimelineFragment @Inject constructor(
|
||||||
setupRemoveJitsiWidgetView()
|
setupRemoveJitsiWidgetView()
|
||||||
setupVoiceMessageView()
|
setupVoiceMessageView()
|
||||||
|
|
||||||
|
views.scRoomDebugView.isVisible = DbgUtil.isDbgEnabled(DbgUtil.DBG_SHOW_READ_TRACKING)
|
||||||
|
|
||||||
views.includeRoomToolbar.roomToolbarContentView.debouncedClicks {
|
views.includeRoomToolbar.roomToolbarContentView.debouncedClicks {
|
||||||
navigator.openRoomProfile(requireActivity(), timelineArgs.roomId)
|
navigator.openRoomProfile(requireActivity(), timelineArgs.roomId)
|
||||||
}
|
}
|
||||||
|
@ -494,6 +496,7 @@ class TimelineFragment @Inject constructor(
|
||||||
RoomDetailViewEvents.StopChatEffects -> handleStopChatEffects()
|
RoomDetailViewEvents.StopChatEffects -> handleStopChatEffects()
|
||||||
is RoomDetailViewEvents.DisplayAndAcceptCall -> acceptIncomingCall(it)
|
is RoomDetailViewEvents.DisplayAndAcceptCall -> acceptIncomingCall(it)
|
||||||
RoomDetailViewEvents.RoomReplacementStarted -> handleRoomReplacement()
|
RoomDetailViewEvents.RoomReplacementStarted -> handleRoomReplacement()
|
||||||
|
is RoomDetailViewEvents.ScDbgReadTracking -> handleScDbgReadTracking(it)
|
||||||
}.exhaustive
|
}.exhaustive
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -606,6 +609,10 @@ class TimelineFragment @Inject constructor(
|
||||||
views.viewKonfetti.isInvisible = true
|
views.viewKonfetti.isInvisible = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun handleScDbgReadTracking(action: RoomDetailViewEvents.ScDbgReadTracking) {
|
||||||
|
views.scRoomDebugView.text = "Read: ${action.event?.eventId}/${action.event?.displayIndex}"
|
||||||
|
}
|
||||||
|
|
||||||
override fun onImageReady(uri: Uri?) {
|
override fun onImageReady(uri: Uri?) {
|
||||||
uri ?: return
|
uri ?: return
|
||||||
timelineViewModel.handle(
|
timelineViewModel.handle(
|
||||||
|
|
|
@ -158,6 +158,12 @@ class TimelineViewModel @AssistedInject constructor(
|
||||||
|
|
||||||
private var trackUnreadMessages = AtomicBoolean(false)
|
private var trackUnreadMessages = AtomicBoolean(false)
|
||||||
private var mostRecentDisplayedEvent: TimelineEvent? = null
|
private var mostRecentDisplayedEvent: TimelineEvent? = null
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
if (DbgUtil.isDbgEnabled(DbgUtil.DBG_SHOW_READ_TRACKING)) {
|
||||||
|
_viewEvents.post(RoomDetailViewEvents.ScDbgReadTracking(mostRecentDisplayedEvent))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private var prepareToEncrypt: Async<Unit> = Uninitialized
|
private var prepareToEncrypt: Async<Unit> = Uninitialized
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ class VectorSettingsScDebuggingFragment @Inject constructor(
|
||||||
DbgPref(DbgUtil.DBG_TIMELINE_CHUNKS, R.string.settings_sc_dbg_timeline_chunks),
|
DbgPref(DbgUtil.DBG_TIMELINE_CHUNKS, R.string.settings_sc_dbg_timeline_chunks),
|
||||||
DbgPref(DbgUtil.DBG_SHOW_DISPLAY_INDEX, R.string.settings_sc_dbg_show_display_index),
|
DbgPref(DbgUtil.DBG_SHOW_DISPLAY_INDEX, R.string.settings_sc_dbg_show_display_index),
|
||||||
DbgPref(DbgUtil.DBG_READ_MARKER, R.string.settings_sc_dbg_read_marker),
|
DbgPref(DbgUtil.DBG_READ_MARKER, R.string.settings_sc_dbg_read_marker),
|
||||||
|
DbgPref(DbgUtil.DBG_SHOW_READ_TRACKING, R.string.settings_sc_dbg_show_read_tracking),
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun bindPref() {
|
override fun bindPref() {
|
||||||
|
|
|
@ -52,6 +52,20 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/appBarLayout" />
|
app:layout_constraintTop_toBottomOf="@id/appBarLayout" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/scRoomDebugView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Widget.Vector.TextView.Caption"
|
||||||
|
android:layout_gravity="end|center_vertical"
|
||||||
|
android:fontFamily="monospace"
|
||||||
|
android:padding="2dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:text="SC-dbg"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/syncStateView" />
|
||||||
|
|
||||||
<im.vector.app.features.call.conference.RemoveJitsiWidgetView
|
<im.vector.app.features.call.conference.RemoveJitsiWidgetView
|
||||||
android:id="@+id/removeJitsiWidgetView"
|
android:id="@+id/removeJitsiWidgetView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -59,7 +73,7 @@
|
||||||
android:background="?android:colorBackground"
|
android:background="?android:colorBackground"
|
||||||
android:minHeight="54dp"
|
android:minHeight="54dp"
|
||||||
android:visibility="visible"
|
android:visibility="visible"
|
||||||
app:layout_constraintTop_toBottomOf="@id/syncStateView" />
|
app:layout_constraintTop_toBottomOf="@id/scRoomDebugView" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/timelineRecyclerView"
|
android:id="@+id/timelineRecyclerView"
|
||||||
|
|
|
@ -177,4 +177,5 @@
|
||||||
<string name="settings_sc_dbg_read_marker">Debug read markers</string>
|
<string name="settings_sc_dbg_read_marker">Debug read markers</string>
|
||||||
<string name="settings_sc_dbg_timeline_chunks">Debug timeline consistency</string>
|
<string name="settings_sc_dbg_timeline_chunks">Debug timeline consistency</string>
|
||||||
<string name="settings_sc_dbg_show_display_index">Show displayIndex in timeline</string>
|
<string name="settings_sc_dbg_show_display_index">Show displayIndex in timeline</string>
|
||||||
|
<string name="settings_sc_dbg_show_read_tracking">Show read tracking</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in New Issue