diff --git a/build.gradle b/build.gradle index 1212dc3b1..b3e5b0810 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,8 @@ buildscript { allprojects { ext { projectGroupId = 'org.mariotaku.twidere' - projectVersionCode = 515 - projectVersionName = '4.1.6' + projectVersionCode = 517 + projectVersionName = '4.1.8' globalCompileSdkVersion = 30 globalBuildToolsVersion = "30.0.3" diff --git a/twidere/src/main/AndroidManifest.xml b/twidere/src/main/AndroidManifest.xml index c310bf191..7a0f27b07 100644 --- a/twidere/src/main/AndroidManifest.xml +++ b/twidere/src/main/AndroidManifest.xml @@ -703,6 +703,7 @@ { data?.let { data -> var idx = position - getIndexStart(ITEM_IDX_CONVERSATION) - if (data[idx].is_filtered) idx++ - return data[idx] + if (idx in data.indices) { + if (data[idx].is_filtered) { + idx++ + } + return data[idx] + } } } ITEM_IDX_REPLY -> { @@ -137,8 +141,12 @@ class StatusDetailsAdapter( var idx = position - getIndexStart(ITEM_IDX_CONVERSATION) - getTypeCount(ITEM_IDX_CONVERSATION) - getTypeCount(ITEM_IDX_STATUS) + replyStart - if (data[idx].is_filtered) idx++ - return data[idx] + if (idx in data.indices) { + if (data[idx].is_filtered) { + idx++ + } + return data[idx] + } } } ITEM_IDX_STATUS -> { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsContentListViewFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsContentListViewFragment.kt index 45d6ffc1d..92c0cb91d 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsContentListViewFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AbsContentListViewFragment.kt @@ -213,7 +213,9 @@ abstract class AbsContentListViewFragment : BaseFragment(), val density = resources.displayMetrics.density val progressCircleDiameter = swipeLayout.progressCircleDiameter val controlBarOffsetPixels = - (activity.controlBarHeight * (1 - activity.controlBarOffset)).roundToInt() + ((activity.controlBarHeight * (1 - activity.controlBarOffset)).takeIf { !it.isNaN() } + ?: 0f) + .roundToInt() val swipeStart = systemWindowsInsets.top - controlBarOffsetPixels - progressCircleDiameter // 64: SwipeRefreshLayout.DEFAULT_CIRCLE_TARGET val swipeDistance = (64 * density).roundToInt()