Update Groupie list library to v2.7.0

This commit is contained in:
Mauricio Colli 2019-10-10 10:28:57 -03:00
parent a93e2cdc30
commit 8b87893248
No known key found for this signature in database
GPG Key ID: F200BFD6F29DDD85
13 changed files with 38 additions and 38 deletions

View File

@ -116,8 +116,8 @@ dependencies {
implementation "androidx.cardview:cardview:${androidxLibVersion}"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.xwray:groupie:2.3.0'
implementation 'com.xwray:groupie-kotlin-android-extensions:2.3.0'
implementation 'com.xwray:groupie:2.7.0'
implementation 'com.xwray:groupie-kotlin-android-extensions:2.7.0'
implementation 'androidx.lifecycle:lifecycle-livedata:2.0.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.0.0'

View File

@ -16,7 +16,7 @@ import com.xwray.groupie.Group
import com.xwray.groupie.GroupAdapter
import com.xwray.groupie.Item
import com.xwray.groupie.Section
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import icepick.State
import io.reactivex.disposables.CompositeDisposable
import kotlinx.android.synthetic.main.dialog_title.view.*
@ -49,7 +49,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
private var subscriptionBroadcastReceiver: BroadcastReceiver? = null
private val groupAdapter = GroupAdapter<ViewHolder>()
private val groupAdapter = GroupAdapter<GroupieViewHolder>()
private val feedGroupsSection = Section()
private var feedGroupsCarousel: FeedGroupCarouselItem? = null
private lateinit var importExportItem: FeedImportExportItem
@ -189,7 +189,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
private fun setupInitialLayout() {
Section().apply {
val carouselAdapter = GroupAdapter<ViewHolder>()
val carouselAdapter = GroupAdapter<GroupieViewHolder>()
carouselAdapter.add(FeedGroupCardItem(-1, getString(R.string.all), FeedGroupIcon.ALL))
carouselAdapter.add(feedGroupsSection)

View File

@ -19,7 +19,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.xwray.groupie.GroupAdapter
import com.xwray.groupie.Section
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import icepick.Icepick
import icepick.State
import kotlinx.android.synthetic.main.dialog_feed_group_create.*
@ -180,7 +180,7 @@ class FeedGroupDialog : DialogFragment() {
this.selectedSubscriptions.addAll(selectedSubscriptions)
val useGridLayout = subscriptions.isNotEmpty()
val groupAdapter = GroupAdapter<ViewHolder>()
val groupAdapter = GroupAdapter<GroupieViewHolder>()
groupAdapter.spanCount = if (useGridLayout) 4 else 1
val selectedCountText = getString(R.string.feed_group_dialog_selection_count, this.selectedSubscriptions.size)
@ -250,7 +250,7 @@ class FeedGroupDialog : DialogFragment() {
}
private fun setupIconPicker() {
val groupAdapter = GroupAdapter<ViewHolder>()
val groupAdapter = GroupAdapter<GroupieViewHolder>()
groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) })
icon_selector.apply {

View File

@ -3,7 +3,7 @@ package org.schabi.newpipe.local.subscription.item
import android.content.Context
import com.nostra13.universalimageloader.core.ImageLoader
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.list_channel_item.*
import org.schabi.newpipe.R
import org.schabi.newpipe.extractor.channel.ChannelInfoItem
@ -29,7 +29,7 @@ class ChannelItem(
ItemVersion.GRID -> R.layout.list_channel_grid_item
}
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.itemTitleView.text = infoItem.name
viewHolder.itemAdditionalDetails.text = getDetailLine(viewHolder.root.context)
if (itemVersion == ItemVersion.NORMAL) viewHolder.itemChannelDescriptionView.text = infoItem.description

View File

@ -1,10 +1,10 @@
package org.schabi.newpipe.local.subscription.item
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import org.schabi.newpipe.R
class EmptyPlaceholderItem : Item() {
override fun getLayout(): Int = R.layout.list_empty_view
override fun bind(viewHolder: ViewHolder, position: Int) {}
override fun bind(viewHolder: GroupieViewHolder, position: Int) {}
}

View File

@ -1,10 +1,10 @@
package org.schabi.newpipe.local.subscription.item
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import org.schabi.newpipe.R
class FeedGroupAddItem : Item() {
override fun getLayout(): Int = R.layout.feed_group_add_new_item
override fun bind(viewHolder: ViewHolder, position: Int) {}
override fun bind(viewHolder: GroupieViewHolder, position: Int) {}
}

View File

@ -1,7 +1,7 @@
package org.schabi.newpipe.local.subscription.item
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.feed_group_card_item.*
import org.schabi.newpipe.R
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
@ -20,7 +20,7 @@ data class FeedGroupCardItem(
override fun getLayout(): Int = R.layout.feed_group_card_item
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.title.text = name
viewHolder.icon.setImageResource(icon.getDrawableRes(viewHolder.containerView.context))
}

View File

@ -7,12 +7,12 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.xwray.groupie.GroupAdapter
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.feed_item_carousel.*
import org.schabi.newpipe.R
import org.schabi.newpipe.local.subscription.decoration.FeedGroupCarouselDecoration
class FeedGroupCarouselItem(context: Context, private val carouselAdapter: GroupAdapter<ViewHolder>) : Item() {
class FeedGroupCarouselItem(context: Context, private val carouselAdapter: GroupAdapter<GroupieViewHolder>) : Item() {
private val feedGroupCarouselDecoration = FeedGroupCarouselDecoration(context)
private var linearLayoutManager: LinearLayoutManager? = null
@ -30,7 +30,7 @@ class FeedGroupCarouselItem(context: Context, private val carouselAdapter: Group
listState = state
}
override fun createViewHolder(itemView: View): ViewHolder {
override fun createViewHolder(itemView: View): GroupieViewHolder {
val viewHolder = super.createViewHolder(itemView)
linearLayoutManager = LinearLayoutManager(itemView.context, RecyclerView.HORIZONTAL, false)
@ -44,12 +44,12 @@ class FeedGroupCarouselItem(context: Context, private val carouselAdapter: Group
return viewHolder
}
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.recycler_view.apply { adapter = carouselAdapter }
linearLayoutManager?.onRestoreInstanceState(listState)
}
override fun unbind(viewHolder: ViewHolder) {
override fun unbind(viewHolder: GroupieViewHolder) {
super.unbind(viewHolder)
listState = linearLayoutManager?.onSaveInstanceState()

View File

@ -7,8 +7,8 @@ import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.annotation.DrawableRes
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import kotlinx.android.synthetic.main.feed_import_export_group.*
import org.schabi.newpipe.R
import org.schabi.newpipe.extractor.NewPipe
@ -28,7 +28,7 @@ class FeedImportExportItem(
const val REFRESH_EXPANDED_STATUS = 123
}
override fun bind(viewHolder: ViewHolder, position: Int, payloads: MutableList<Any>) {
override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList<Any>) {
if (payloads.contains(REFRESH_EXPANDED_STATUS)) {
viewHolder.import_export_options.apply { if (isExpanded) expand() else collapse() }
return
@ -39,7 +39,7 @@ class FeedImportExportItem(
override fun getLayout(): Int = R.layout.feed_import_export_group
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
if (viewHolder.import_from_options.childCount == 0) setupImportFromItems(viewHolder.import_from_options)
if (viewHolder.export_to_options.childCount == 0) setupExportToItems(viewHolder.export_to_options)
@ -60,9 +60,9 @@ class FeedImportExportItem(
}
}
override fun unbind(holder: ViewHolder) {
super.unbind(holder)
expandIconListener?.let { holder.import_export_options.removeListener(it) }
override fun unbind(viewHolder: GroupieViewHolder) {
super.unbind(viewHolder)
expandIconListener?.let { viewHolder.import_export_options.removeListener(it) }
expandIconListener = null
}

View File

@ -2,7 +2,7 @@ package org.schabi.newpipe.local.subscription.item
import android.view.View.OnClickListener
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.header_item.*
import org.schabi.newpipe.R
@ -10,7 +10,7 @@ class HeaderItem(val title: String, private val onClickListener: (() -> Unit)? =
override fun getLayout(): Int = R.layout.header_item
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.header_title.text = title
val listener: OnClickListener? = if (onClickListener != null) OnClickListener { onClickListener.invoke() } else null

View File

@ -2,7 +2,7 @@ package org.schabi.newpipe.local.subscription.item
import android.view.View.OnClickListener
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.header_with_text_item.*
import org.schabi.newpipe.R
@ -18,7 +18,7 @@ class HeaderTextSideItem(
override fun getLayout(): Int = R.layout.header_with_text_item
override fun bind(viewHolder: ViewHolder, position: Int, payloads: MutableList<Any>) {
override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList<Any>) {
if (payloads.contains(UPDATE_INFO)) {
viewHolder.header_info.text = infoText
return
@ -27,7 +27,7 @@ class HeaderTextSideItem(
super.bind(viewHolder, position, payloads)
}
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.header_title.text = title
viewHolder.header_info.text = infoText

View File

@ -3,7 +3,7 @@ package org.schabi.newpipe.local.subscription.item
import android.content.Context
import androidx.annotation.DrawableRes
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.picker_icon_item.*
import org.schabi.newpipe.R
import org.schabi.newpipe.local.subscription.FeedGroupIcon
@ -13,7 +13,7 @@ class PickerIconItem(context: Context, val icon: FeedGroupIcon) : Item() {
override fun getLayout(): Int = R.layout.picker_icon_item
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
viewHolder.icon_view.setImageResource(iconRes)
}
}

View File

@ -4,7 +4,7 @@ import android.view.View
import com.nostra13.universalimageloader.core.DisplayImageOptions
import com.nostra13.universalimageloader.core.ImageLoader
import com.xwray.groupie.kotlinandroidextensions.Item
import com.xwray.groupie.kotlinandroidextensions.ViewHolder
import com.xwray.groupie.kotlinandroidextensions.GroupieViewHolder
import kotlinx.android.synthetic.main.picker_subscription_item.*
import org.schabi.newpipe.R
import org.schabi.newpipe.database.subscription.SubscriptionEntity
@ -21,7 +21,7 @@ data class PickerSubscriptionItem(val subscriptionEntity: SubscriptionEntity, va
override fun getLayout(): Int = R.layout.picker_subscription_item
override fun bind(viewHolder: ViewHolder, position: Int, payloads: MutableList<Any>) {
override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList<Any>) {
if (payloads.contains(UPDATE_SELECTED)) {
animateView(viewHolder.selected_highlight, AnimationUtils.Type.LIGHT_SCALE_AND_ALPHA, isSelected, 150)
return
@ -30,14 +30,14 @@ data class PickerSubscriptionItem(val subscriptionEntity: SubscriptionEntity, va
super.bind(viewHolder, position, payloads)
}
override fun bind(viewHolder: ViewHolder, position: Int) {
override fun bind(viewHolder: GroupieViewHolder, position: Int) {
ImageLoader.getInstance().displayImage(subscriptionEntity.avatarUrl, viewHolder.thumbnail_view, IMAGE_LOADING_OPTIONS)
viewHolder.title_view.text = subscriptionEntity.name
viewHolder.selected_highlight.visibility = if (isSelected) View.VISIBLE else View.GONE
}
override fun unbind(viewHolder: ViewHolder) {
override fun unbind(viewHolder: GroupieViewHolder) {
super.unbind(viewHolder)
viewHolder.selected_highlight.animate().setListener(null).cancel()