Add some optional ViewPager debugging

Change-Id: I30332b57779e1093d06d2d7a07bca0ca5342de15
This commit is contained in:
SpiritCroc 2022-04-03 13:29:16 +02:00
parent 45613792bf
commit 1287770b16
5 changed files with 43 additions and 7 deletions

View File

@ -10,6 +10,7 @@ object DbgUtil {
const val DBG_SHOW_READ_TRACKING = "DBG_SHOW_READ_TRACKING"
const val DBG_TIMELINE_CHUNKS = "DBG_TIMELINE_CHUNKS"
const val DBG_SHOW_DISPLAY_INDEX = "DBG_SHOW_DISPLAY_INDEX"
const val DBG_VIEW_PAGER = "DBG_VIEW_PAGER"
private val prefs = HashMap<String, Boolean>()
@ -18,6 +19,7 @@ object DbgUtil {
DBG_SHOW_READ_TRACKING,
DBG_TIMELINE_CHUNKS,
DBG_SHOW_DISPLAY_INDEX,
DBG_VIEW_PAGER,
)
fun load(context: Context) {

View File

@ -38,6 +38,7 @@ import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState
import im.vector.app.AppStateHandler
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import de.spiritcroc.matrixsdk.util.DbgUtil
import im.vector.app.R
import im.vector.app.core.epoxy.LayoutManagerStateRestorer
import im.vector.app.core.extensions.cleanup
@ -166,6 +167,8 @@ class RoomListFragment @Inject constructor(
val spaceId = it.invoke()?.space()?.roomId
onSwitchSpace(spaceId)
}
updateDebugView()
}
override fun onPause() {
@ -174,6 +177,18 @@ class RoomListFragment @Inject constructor(
persistExpandStatus()
}
private fun updateDebugView() {
if (DbgUtil.isDbgEnabled(DbgUtil.DBG_VIEW_PAGER)) {
views.scRoomListDebugView.isVisible = true
withState(roomListViewModel) {
val currentSpace = it.currentRoomGrouping.invoke()?.space()
views.scRoomListDebugView.text = "explicit: ${roomListParams.explicitSpaceId}\nexpanded: $expandStatusSpaceId\ngrouping: ${currentSpace?.roomId} | ${currentSpace?.displayName}"
}
} else {
views.scRoomListDebugView.isVisible = false
}
}
private fun refreshCollapseStates() {
val sectionsCount = adapterInfosList.count { !it.sectionHeaderAdapter.roomsSectionData.isHidden }
roomListViewModel.sections.forEachIndexed { index, roomsSection ->
@ -631,6 +646,7 @@ class RoomListFragment @Inject constructor(
expandStatusSpaceId = spaceId
loadExpandStatus()
}
updateDebugView()
}
private fun persistExpandStatus() {

View File

@ -20,6 +20,7 @@ class VectorSettingsScDebuggingFragment @Inject constructor(
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_SHOW_READ_TRACKING, R.string.settings_sc_dbg_show_read_tracking),
DbgPref(DbgUtil.DBG_VIEW_PAGER, R.string.settings_sc_dbg_view_pager),
)
override fun bindPref() {

View File

@ -7,6 +7,21 @@
android:layout_height="match_parent"
android:background="?android:colorBackground">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/scRoomListDebugView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.Vector.TextView.Caption"
android:fontFamily="monospace"
android:padding="2dp"
android:visibility="gone"
tools:text="SC-dbg" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/roomListView"
android:layout_width="match_parent"
@ -14,6 +29,7 @@
android:overScrollMode="always"
tools:itemCount="5"
tools:listitem="@layout/item_room" />
</LinearLayout>
<im.vector.app.features.home.room.list.widget.NotifsFabMenuView
android:id="@+id/createChatFabMenu"

View File

@ -174,10 +174,11 @@
<!-- SC debugging -->
<string name="settings_sc_debugging">Schildi-debugging</string>
<string name="settings_sc_debugging_summary">Enable additional logs or debugging features</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_read_marker">Read marker debugging</string>
<string name="settings_sc_dbg_timeline_chunks">Timeline consistency debugging</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>
<string name="settings_sc_dbg_view_pager">ViewPager debugging</string>
<!-- SC labs -->
<string name="settings_upstream_labs">Element features</string>