Finalized design for vertical card view and removed unneeded variables in SubscriptionFragment.kt

This commit is contained in:
Samuel Wu 2022-10-25 11:43:25 +11:00
parent ed68e3bd46
commit 28464344c1
5 changed files with 20 additions and 21 deletions

View File

@ -78,9 +78,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
private val groupAdapter = GroupAdapter<GroupieViewHolder<FeedItemCarouselBinding>>() private val groupAdapter = GroupAdapter<GroupieViewHolder<FeedItemCarouselBinding>>()
private val feedGroupsSection = Section() private val feedGroupsSection = Section()
private val feedGroupsVerticalSection = Section()
private var feedGroupsCarousel: FeedGroupCarouselItem? = null private var feedGroupsCarousel: FeedGroupCarouselItem? = null
private var feedGroupsVerticalCarousel: FeedGroupCarouselItem? = null
private lateinit var feedGroupsSortMenuItem: HeaderWithMenuItem private lateinit var feedGroupsSortMenuItem: HeaderWithMenuItem
private val subscriptionsSection = Section() private val subscriptionsSection = Section()
private var defaultListView: Boolean = true private var defaultListView: Boolean = true
@ -284,7 +282,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
getString(R.string.feed_groups_header_title), getString(R.string.feed_groups_header_title),
R.drawable.ic_list, R.drawable.ic_list,
R.drawable.ic_sort, R.drawable.ic_sort,
listViewOnClickListener = ::changeLayout, listViewOnClickListener = ::changeVerticalLayout,
menuItemOnClickListener = ::openReorderDialog menuItemOnClickListener = ::openReorderDialog
) )
@ -307,13 +305,13 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
view?.let { initViews(it, savedInstanceState = Bundle()) } view?.let { initViews(it, savedInstanceState = Bundle()) }
} }
private fun changeLayout() { private fun changeVerticalLayout() {
defaultListView = false defaultListView = false
Section().apply { Section().apply {
val carouselAdapter = GroupAdapter<GroupieViewHolder<FeedItemCarouselBinding>>() val carouselAdapter = GroupAdapter<GroupieViewHolder<FeedItemCarouselBinding>>()
carouselAdapter.add(FeedGroupCardVerticalItem(-1, getString(R.string.all), FeedGroupIcon.RSS)) carouselAdapter.add(FeedGroupCardVerticalItem(-1, getString(R.string.all), FeedGroupIcon.RSS))
carouselAdapter.add(feedGroupsVerticalSection) carouselAdapter.add(feedGroupsSection)
carouselAdapter.add(FeedGroupAddVerticalItem()) carouselAdapter.add(FeedGroupAddVerticalItem())
carouselAdapter.setOnItemClickListener { item, _ -> carouselAdapter.setOnItemClickListener { item, _ ->
@ -328,7 +326,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
listenerFeedVerticalGroups.held(item) listenerFeedVerticalGroups.held(item)
return@setOnItemLongClickListener true return@setOnItemLongClickListener true
} }
feedGroupsVerticalCarousel = FeedGroupCarouselItem(requireContext(), carouselAdapter, RecyclerView.VERTICAL) feedGroupsCarousel = FeedGroupCarouselItem(requireContext(), carouselAdapter, RecyclerView.VERTICAL)
feedGroupsSortMenuItem = HeaderWithMenuItem( feedGroupsSortMenuItem = HeaderWithMenuItem(
getString(R.string.feed_groups_header_title), getString(R.string.feed_groups_header_title),
@ -337,7 +335,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
listViewOnClickListener = ::setupInitialLayout, listViewOnClickListener = ::setupInitialLayout,
menuItemOnClickListener = ::openReorderDialog menuItemOnClickListener = ::openReorderDialog
) )
add(Section(feedGroupsSortMenuItem, listOf(feedGroupsVerticalCarousel))) add(Section(feedGroupsSortMenuItem, listOf(feedGroupsCarousel)))
groupAdapter.clear() groupAdapter.clear()
groupAdapter.add(this) groupAdapter.add(this)
} }
@ -499,10 +497,10 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
private fun handleFeedGroupsVertical(groups: List<Group>) { private fun handleFeedGroupsVertical(groups: List<Group>) {
if (!defaultListView) { if (!defaultListView) {
feedGroupsVerticalSection.update(groups) feedGroupsSection.update(groups)
if (feedGroupsListVerticalState != null) { if (feedGroupsListVerticalState != null) {
feedGroupsVerticalCarousel?.onRestoreInstanceState(feedGroupsListVerticalState) feedGroupsCarousel?.onRestoreInstanceState(feedGroupsListVerticalState)
feedGroupsListVerticalState = null feedGroupsListVerticalState = null
} }

View File

@ -3,10 +3,10 @@ package org.schabi.newpipe.local.subscription.item
import android.view.View import android.view.View
import com.xwray.groupie.viewbinding.BindableItem import com.xwray.groupie.viewbinding.BindableItem
import org.schabi.newpipe.R import org.schabi.newpipe.R
import org.schabi.newpipe.databinding.FeedGroupAddNewItemVerticalBinding import org.schabi.newpipe.databinding.FeedGroupAddNewVerticalItemBinding
class FeedGroupAddVerticalItem : BindableItem<FeedGroupAddNewItemVerticalBinding>() { class FeedGroupAddVerticalItem : BindableItem<FeedGroupAddNewVerticalItemBinding>() {
override fun getLayout(): Int = R.layout.feed_group_add_new_item_vertical override fun getLayout(): Int = R.layout.feed_group_add_new_vertical_item
override fun bind(viewBinding: FeedGroupAddNewItemVerticalBinding, position: Int) {} override fun bind(viewBinding: FeedGroupAddNewVerticalItemBinding, position: Int) {}
override fun initializeViewBinding(view: View) = FeedGroupAddNewItemVerticalBinding.bind(view) override fun initializeViewBinding(view: View) = FeedGroupAddNewVerticalItemBinding.bind(view)
} }

View File

@ -17,10 +17,10 @@
<ImageView <ImageView
android:id="@+id/icon" android:id="@+id/icon"
android:layout_width="51dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="48dp"
android:layout_gravity="center" android:layout_gravity="center"
android:paddingTop="8dp" android:paddingTop="2dp"
android:paddingBottom="2dp" android:paddingBottom="2dp"
android:scaleType="centerInside" android:scaleType="centerInside"
tools:ignore="ContentDescription" tools:ignore="ContentDescription"
@ -31,12 +31,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:ellipsize="end" android:ellipsize="end"
android:gravity="start" android:background="?attr/card_item_contrast_color"
android:gravity="center_vertical"
android:maxLines="1" android:maxLines="1"
android:padding="2dp" android:padding="10dp"
android:textAllCaps="false" android:textAllCaps="false"
android:textColor="?attr/colorAccent" android:textColor="?attr/colorAccent"
android:textSize="20sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
tools:text="ALL" /> tools:text="ALL" />
</LinearLayout> </LinearLayout>

View File

@ -125,7 +125,7 @@
<!-- Feed Groups dimensions--> <!-- Feed Groups dimensions-->
<dimen name="feed_group_carousel_start_end_margin">12dp</dimen> <dimen name="feed_group_carousel_start_end_margin">12dp</dimen>
<dimen name="feed_group_carousel_top_bottom_margin">2dp</dimen> <dimen name="feed_group_carousel_top_bottom_margin">4dp</dimen>
<dimen name="feed_group_carousel_between_items_margin">4dp</dimen> <dimen name="feed_group_carousel_between_items_margin">4dp</dimen>
<dimen name="search_suggestion_text_size">16sp</dimen> <dimen name="search_suggestion_text_size">16sp</dimen>