diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt index cd3e3bcaf..d72ef162b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt @@ -66,6 +66,7 @@ import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.visible import java.util.Locale import java.util.concurrent.TimeUnit +import kotlin.math.roundToInt class MediaPreviewV2Fragment : Fragment(R.layout.fragment_media_preview_v2), MediaPreviewFragment.Events { private val TAG = Log.tag(MediaPreviewV2Fragment::class.java) @@ -78,9 +79,12 @@ class MediaPreviewV2Fragment : Fragment(R.layout.fragment_media_preview_v2), Med private lateinit var fullscreenHelper: FullscreenHelper private lateinit var albumRailAdapter: MediaRailAdapter + private var individualItemWidth: Int = 0 + override fun onAttach(context: Context) { super.onAttach(context) fullscreenHelper = FullscreenHelper(requireActivity()) + individualItemWidth = context.resources.getDimension(R.dimen.media_rail_item_size).roundToInt() } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -293,19 +297,14 @@ class MediaPreviewV2Fragment : Fragment(R.layout.fragment_media_preview_v2), Med val currentItemPosition = albumRailAdapter.currentItemPosition val currentList = albumRailAdapter.currentList val albumRail: RecyclerView = binding.mediaPreviewPlaybackControls.recyclerView - var selectedItemWidth = -1 + albumRail.scrollToPosition(currentItemPosition) for (i in currentList.indices) { val isSelected = i == currentItemPosition val stableId = albumRailAdapter.getItemId(i) val viewHolder = albumRail.findViewHolderForItemId(stableId) as? MediaRailAdapter.MediaRailViewHolder - if (viewHolder != null) { - viewHolder.setSelectedItem(isSelected) - if (isSelected) { - selectedItemWidth = viewHolder.itemView.width - } - } + viewHolder?.setSelectedItem(isSelected) } - val offsetFromStart = (albumRail.width - selectedItemWidth) / 2 + val offsetFromStart = (albumRail.width - individualItemWidth) / 2 val smoothScroller = OffsetSmoothScroller(requireContext(), offsetFromStart) smoothScroller.targetPosition = currentItemPosition val layoutManager = albumRail.layoutManager as LinearLayoutManager diff --git a/app/src/main/res/layout/mediarail_media_item.xml b/app/src/main/res/layout/mediarail_media_item.xml index 1cfaf8088..fbea9f72e 100644 --- a/app/src/main/res/layout/mediarail_media_item.xml +++ b/app/src/main/res/layout/mediarail_media_item.xml @@ -11,16 +11,15 @@ 8dp 36dp 46dp + 44dp