diff --git a/app/build.gradle b/app/build.gradle index 11027a758..e2d6b3fdf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index ef677efa3..e7d675964 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -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() { private var subscriptionBroadcastReceiver: BroadcastReceiver? = null - private val groupAdapter = GroupAdapter() + private val groupAdapter = GroupAdapter() private val feedGroupsSection = Section() private var feedGroupsCarousel: FeedGroupCarouselItem? = null private lateinit var importExportItem: FeedImportExportItem @@ -189,7 +189,7 @@ class SubscriptionFragment : BaseStateFragment() { private fun setupInitialLayout() { Section().apply { - val carouselAdapter = GroupAdapter() + val carouselAdapter = GroupAdapter() carouselAdapter.add(FeedGroupCardItem(-1, getString(R.string.all), FeedGroupIcon.ALL)) carouselAdapter.add(feedGroupsSection) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index f91c617e2..fdefe69b1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -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() + val groupAdapter = GroupAdapter() 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() + val groupAdapter = GroupAdapter() groupAdapter.addAll(FeedGroupIcon.values().map { PickerIconItem(requireContext(), it) }) icon_selector.apply { diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt index 926a208e8..ba12fbdab 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt @@ -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 diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/EmptyPlaceholderItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/EmptyPlaceholderItem.kt index 40d8c9919..0c651dc69 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/EmptyPlaceholderItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/EmptyPlaceholderItem.kt @@ -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) {} } \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupAddItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupAddItem.kt index ce5b60104..309f82bbc 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupAddItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupAddItem.kt @@ -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) {} } \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardItem.kt index 1f069f023..e0e06b181 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardItem.kt @@ -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)) } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCarouselItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCarouselItem.kt index 92bb16aa1..bde3c604a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCarouselItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCarouselItem.kt @@ -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) : Item() { +class FeedGroupCarouselItem(context: Context, private val carouselAdapter: GroupAdapter) : 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() diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedImportExportItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedImportExportItem.kt index f7eba9d8d..ab47564ce 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedImportExportItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedImportExportItem.kt @@ -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) { + override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList) { 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 } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt index 6cf672d44..367605f46 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderItem.kt @@ -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 diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderTextSideItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderTextSideItem.kt index 9ed077496..5ec060ded 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderTextSideItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/HeaderTextSideItem.kt @@ -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) { + override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList) { 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 diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt index 6af07eb96..fedec9880 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerIconItem.kt @@ -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) } } \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt index 592f7793f..21c74b09f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt @@ -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) { + override fun bind(viewHolder: GroupieViewHolder, position: Int, payloads: MutableList) { 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()