From a96367139a64d2f132594e0dd02523c968e7644f Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 1 Apr 2025 10:33:10 +0200 Subject: [PATCH] fix: subscriptions feed scroll state reset after rotating phone --- .../libretube/ui/fragments/SubscriptionsFragment.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt index 5f601409c..4d7892c68 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt @@ -1,6 +1,7 @@ package com.github.libretube.ui.fragments import android.annotation.SuppressLint +import android.content.res.Configuration import android.os.Bundle import android.view.View import android.view.ViewGroup.MarginLayoutParams @@ -440,6 +441,13 @@ class SubscriptionsFragment : DynamicLayoutManagerFragment(R.layout.fragment_sub binding.toggleSubs.text = "${getString(R.string.subscriptions)} ($subCount)" } + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + // manually restore the recyclerview state after rotation due to https://github.com/material-components/material-components-android/issues/3473 + binding.subChannels.layoutManager?.onRestoreInstanceState(viewModel.subChannelsRecyclerViewState) + binding.subFeed.layoutManager?.onRestoreInstanceState(viewModel.subFeedRecyclerViewState) + } + fun removeItem(videoId: String) { feedAdapter.removeItemById(videoId) }