Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Commit

Permalink
Merge branch 'trunk' into compose-migration
Browse files Browse the repository at this point in the history
  • Loading branch information
Goooler authored Jun 28, 2024
2 parents 76502c1 + b435099 commit 8546123
Show file tree
Hide file tree
Showing 62 changed files with 1,066 additions and 735 deletions.
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ ij_kotlin_name_count_to_use_star_import_for_members = 999
ij_kotlin_packages_to_use_import_on_demand = unset
ktlint_code_style = intellij_idea
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_standard_function-expression-body = disabled

[*.md]
trim_trailing_whitespace = false
8 changes: 4 additions & 4 deletions .github/renovate.json → .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
{
"labels": [
"dependencies"
"dependencies",
],
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
"config:base",
],
"packageRules": [
{
"groupName": "Kotlin and KSP",
"matchPackagePrefixes": [
"com.google.devtools.ksp"
"com.google.devtools.ksp",
],
"matchPackagePatterns": [
"org.jetbrains.kotlin.*"
"org.jetbrains.kotlin.*",
]
}
]
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,23 @@ jobs:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v3
with:
cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
- run: ./gradlew spotlessCheck

check-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/actions/setup-gradle@v3
with:
cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
- run: ./gradlew apiCheck

detekt:
runs-on: ubuntu-latest
steps:
Expand Down
16 changes: 0 additions & 16 deletions adapter/build.gradle.kts

This file was deleted.

231 changes: 231 additions & 0 deletions adapter/rv/api/rv.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
public abstract interface class androidx/databinding/DataBindingComponent {
}

public class androidx/databinding/library/baseAdapters/BR {
public static field _all I
public fun <init> ()V
}

public class io/github/goooler/adapter/rv/BR {
public static field _all I
public fun <init> ()V
}

public class io/github/goooler/adapter/rv/DataBinderMapperImpl : androidx/databinding/DataBinderMapper {
public fun <init> ()V
public fun collectDependencies ()Ljava/util/List;
public fun convertBrIdToString (I)Ljava/lang/String;
public fun getDataBinder (Landroidx/databinding/DataBindingComponent;Landroid/view/View;I)Landroidx/databinding/ViewDataBinding;
public fun getDataBinder (Landroidx/databinding/DataBindingComponent;[Landroid/view/View;I)Landroidx/databinding/ViewDataBinding;
public fun getLayoutId (Ljava/lang/String;)I
}

public class io/github/goooler/adapter/rv/DataBindingTriggerClass {
public fun <init> ()V
}

public abstract class io/github/goooler/adapter/rv/core/BaseRvAdapter : androidx/recyclerview/widget/RecyclerView$Adapter, io/github/goooler/adapter/rv/core/IRvBinding, io/github/goooler/adapter/rv/internal/IMutableRvAdapter {
public fun <init> ()V
public fun addItems ([Lkotlin/Pair;)V
public fun get (I)Lio/github/goooler/adapter/rv/core/IVhModelType;
public fun getItemCount ()I
public fun getItemViewType (I)I
public fun getList ()Ljava/util/List;
public fun initManager (Lio/github/goooler/adapter/rv/internal/ViewTypeDelegateManager;)V
public fun moveItem (II)V
public fun onAttachedToRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public fun onBindVHForAll (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/core/IVhModelType;Ljava/util/List;)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;ILjava/util/List;)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;I)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;ILjava/util/List;)V
public fun onCreateVHForAll (Landroidx/databinding/ViewDataBinding;)V
public synthetic fun onCreateViewHolder (Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
public fun onCreateViewHolder (Landroid/view/ViewGroup;I)Lio/github/goooler/adapter/rv/core/BindingViewHolder;
public fun onDetachedFromRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public fun refreshItems ([Lkotlin/Triple;)V
public fun removeItem (I)V
public fun removeItem (Lio/github/goooler/adapter/rv/core/IVhModelType;)V
public fun setList (Ljava/util/List;)V
}

public final class io/github/goooler/adapter/rv/core/BindingViewHolder : androidx/recyclerview/widget/RecyclerView$ViewHolder {
public static final field Companion Lio/github/goooler/adapter/rv/core/BindingViewHolder$Companion;
public fun <init> (Landroidx/databinding/ViewDataBinding;)V
public final fun getBinding ()Landroidx/databinding/ViewDataBinding;
}

public final class io/github/goooler/adapter/rv/core/BindingViewHolder$Companion {
public final fun create (Landroid/view/ViewGroup;I)Lio/github/goooler/adapter/rv/core/BindingViewHolder;
}

public abstract interface class io/github/goooler/adapter/rv/core/IRvBinding {
public abstract fun onBindVH (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/core/IVhModelType;Ljava/util/List;)V
public abstract fun onCreateVH (Landroidx/databinding/ViewDataBinding;)V
}

public abstract interface class io/github/goooler/adapter/rv/core/ISpanSize {
public static final field Companion Lio/github/goooler/adapter/rv/core/ISpanSize$Companion;
public static final field SPAN_SIZE_DOUBLE I
public static final field SPAN_SIZE_FULL I
public static final field SPAN_SIZE_QUADRUPLE I
public static final field SPAN_SIZE_QUINTUPLE I
public static final field SPAN_SIZE_SINGLE I
public static final field SPAN_SIZE_TRIPLE I
public abstract fun getSpanSize ()I
}

public final class io/github/goooler/adapter/rv/core/ISpanSize$Companion {
public static final field SPAN_SIZE_DOUBLE I
public static final field SPAN_SIZE_FULL I
public static final field SPAN_SIZE_QUADRUPLE I
public static final field SPAN_SIZE_QUINTUPLE I
public static final field SPAN_SIZE_SINGLE I
public static final field SPAN_SIZE_TRIPLE I
}

public final class io/github/goooler/adapter/rv/core/ISpanSize$DefaultImpls {
public static fun getSpanSize (Lio/github/goooler/adapter/rv/core/ISpanSize;)I
}

public abstract interface class io/github/goooler/adapter/rv/core/IVhModelType {
public abstract fun getViewType ()I
}

public abstract interface class io/github/goooler/adapter/rv/core/IVhModelWrapper : io/github/goooler/adapter/rv/core/IVhModelType {
public abstract fun getSubList ()Ljava/lang/Iterable;
public abstract fun getViewType ()I
}

public final class io/github/goooler/adapter/rv/core/IVhModelWrapper$DefaultImpls {
public static fun getViewType (Lio/github/goooler/adapter/rv/core/IVhModelWrapper;)I
}

public final class io/github/goooler/adapter/rv/core/ItemTouchHelperCallback : androidx/recyclerview/widget/ItemTouchHelper$Callback {
public fun <init> (Lio/github/goooler/adapter/rv/core/ItemTouchHelperCallback$ItemChangeListener;ZZ)V
public synthetic fun <init> (Lio/github/goooler/adapter/rv/core/ItemTouchHelperCallback$ItemChangeListener;ZZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun getMovementFlags (Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
public fun isItemViewSwipeEnabled ()Z
public fun isLongPressDragEnabled ()Z
public fun onMove (Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z
public fun onSwiped (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
}

public abstract interface class io/github/goooler/adapter/rv/core/ItemTouchHelperCallback$ItemChangeListener {
public abstract fun onItemDismiss (I)V
public abstract fun onItemMove (II)V
}

public abstract class io/github/goooler/adapter/rv/diff/BaseRvDiffAdapter : androidx/recyclerview/widget/ListAdapter, io/github/goooler/adapter/rv/core/IRvBinding, io/github/goooler/adapter/rv/internal/IMutableRvAdapter {
public fun <init> (Landroidx/recyclerview/widget/AsyncDifferConfig;)V
public fun <init> (Lio/github/goooler/adapter/rv/diff/DiffCallback;)V
public synthetic fun <init> (Lio/github/goooler/adapter/rv/diff/DiffCallback;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun addItems ([Lkotlin/Pair;)V
public synthetic fun get (I)Lio/github/goooler/adapter/rv/core/IVhModelType;
public fun get (I)Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;
public fun getItemViewType (I)I
public fun getList ()Ljava/util/List;
public fun initManager (Lio/github/goooler/adapter/rv/internal/ViewTypeDelegateManager;)V
public fun moveItem (II)V
public fun onAttachedToRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public synthetic fun onBindVHForAll (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/core/IVhModelType;Ljava/util/List;)V
public fun onBindVHForAll (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Ljava/util/List;)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;ILjava/util/List;)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;I)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;ILjava/util/List;)V
public fun onCreateVHForAll (Landroidx/databinding/ViewDataBinding;)V
public synthetic fun onCreateViewHolder (Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
public fun onCreateViewHolder (Landroid/view/ViewGroup;I)Lio/github/goooler/adapter/rv/core/BindingViewHolder;
public fun onDetachedFromRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public fun refreshItems ([Lkotlin/Triple;)V
public fun removeItem (I)V
public synthetic fun removeItem (Lio/github/goooler/adapter/rv/core/IVhModelType;)V
public fun removeItem (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)V
public fun setList (Ljava/util/List;)V
}

public class io/github/goooler/adapter/rv/diff/DiffCallback : androidx/recyclerview/widget/DiffUtil$ItemCallback {
public fun <init> ()V
public fun areContentsTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
public synthetic fun areContentsTheSame (Ljava/lang/Object;Ljava/lang/Object;)Z
public fun areItemsTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
public synthetic fun areItemsTheSame (Ljava/lang/Object;Ljava/lang/Object;)Z
public fun getChangePayload (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Ljava/lang/Object;
public synthetic fun getChangePayload (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
}

public abstract interface class io/github/goooler/adapter/rv/diff/IDiffVhModelType : io/github/goooler/adapter/rv/core/IVhModelType {
public abstract fun getPayloads (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Ljava/lang/Object;
public abstract fun isContentTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
public abstract fun isItemTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
}

public final class io/github/goooler/adapter/rv/diff/IDiffVhModelType$DefaultImpls {
public static fun getPayloads (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Ljava/lang/Object;
public static fun isContentTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
public static fun isItemTheSame (Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;)Z
}

public abstract class io/github/goooler/adapter/rv/paging/BasePagingSource : androidx/paging/PagingSource {
public fun <init> ()V
public abstract fun fetchListData (ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun getRefreshKey (Landroidx/paging/PagingState;)Ljava/lang/Integer;
public synthetic fun getRefreshKey (Landroidx/paging/PagingState;)Ljava/lang/Object;
public fun load (Landroidx/paging/PagingSource$LoadParams;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}

public abstract class io/github/goooler/adapter/rv/paging/BaseRvPagingAdapter : androidx/paging/PagingDataAdapter, io/github/goooler/adapter/rv/core/IRvBinding, io/github/goooler/adapter/rv/internal/IRvAdapter {
public fun <init> (Lio/github/goooler/adapter/rv/diff/DiffCallback;)V
public synthetic fun <init> (Lio/github/goooler/adapter/rv/diff/DiffCallback;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun get (I)Lio/github/goooler/adapter/rv/core/IVhModelType;
public fun get (I)Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;
public fun getItemViewType (I)I
public fun getList ()Ljava/util/List;
public final fun getOnLoadStatusListener ()Lio/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener;
public fun initManager (Lio/github/goooler/adapter/rv/internal/ViewTypeDelegateManager;)V
public fun onAttachedToRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public synthetic fun onBindVHForAll (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/core/IVhModelType;Ljava/util/List;)V
public fun onBindVHForAll (Landroidx/databinding/ViewDataBinding;Lio/github/goooler/adapter/rv/diff/IDiffVhModelType;Ljava/util/List;)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
public synthetic fun onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;ILjava/util/List;)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;I)V
public fun onBindViewHolder (Lio/github/goooler/adapter/rv/core/BindingViewHolder;ILjava/util/List;)V
public fun onCreateVHForAll (Landroidx/databinding/ViewDataBinding;)V
public synthetic fun onCreateViewHolder (Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
public fun onCreateViewHolder (Landroid/view/ViewGroup;I)Lio/github/goooler/adapter/rv/core/BindingViewHolder;
public fun onDetachedFromRecyclerView (Landroidx/recyclerview/widget/RecyclerView;)V
public final fun setOnLoadStatusListener (Lio/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener;)V
}

public abstract interface class io/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener {
public abstract fun onEmpty ()V
public abstract fun onError (Ljava/lang/Throwable;)V
public abstract fun onLoadMore ()V
public abstract fun onNoMoreData ()V
public abstract fun onNotLoading ()V
public abstract fun onRefresh ()V
}

public final class io/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener$DefaultImpls {
public static fun onLoadMore (Lio/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener;)V
public static fun onRefresh (Lio/github/goooler/adapter/rv/paging/BaseRvPagingAdapter$OnLoadStatusListener;)V
}

public abstract class io/github/goooler/adapter/rv/paging/PagingSourceException : java/lang/Exception {
}

public final class io/github/goooler/adapter/rv/paging/PagingSourceException$EmptyDataException : io/github/goooler/adapter/rv/paging/PagingSourceException {
public static final field INSTANCE Lio/github/goooler/adapter/rv/paging/PagingSourceException$EmptyDataException;
public fun equals (Ljava/lang/Object;)Z
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class io/github/goooler/adapter/rv/paging/PagingSourceException$NoMoreDataException : io/github/goooler/adapter/rv/paging/PagingSourceException {
public static final field INSTANCE Lio/github/goooler/adapter/rv/paging/PagingSourceException$NoMoreDataException;
public fun equals (Ljava/lang/Object;)Z
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

40 changes: 40 additions & 0 deletions adapter/rv/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.bcv)
alias(libs.plugins.napt)
alias(libs.plugins.mavenPublish)
signing
}

android {
namespace = "io.github.goooler.adapter.rv"
buildFeatures.dataBinding = true

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

kotlin {
explicitApi()
compilerOptions {
jvmTarget = JvmTarget.JVM_1_8
}
}

mavenPublishing {
signAllPublications()
}

signing {
isRequired = !version.toString().endsWith("-SNAPSHOT")
}

dependencies {
api(libs.androidX.collection)
api(libs.androidX.paging)
api(libs.androidX.recyclerView)
}
4 changes: 4 additions & 0 deletions adapter/rv/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
POM_NAME=Adapter: RecyclerView
POM_DESCRIPTION=Android RecyclerView Adapter using with DataBinding
POM_ARTIFACT_ID=adapter-rv
VERSION_NAME=1.0.1-SNAPSHOT
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package io.github.goooler.adapter.rv.core

import androidx.recyclerview.widget.RecyclerView
import io.github.goooler.adapter.rv.internal.IMutableRvAdapter

/**
* Simple FeAdapter. You can write your own [RecyclerView.Adapter] according to this.
*/
@Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE")
public abstract class BaseRvAdapter<M : IVhModelType> private constructor(
private val delegate: IMutableRvAdapter.Impl<M, BaseRvAdapter<M>>,
) : RecyclerView.Adapter<BindingViewHolder>(),
IRvBinding<M>,
IMutableRvAdapter<M> by delegate {

public constructor() : this(IMutableRvAdapter.Impl()) {
@Suppress("LeakingThis")
delegate.adapter = this
}

public override var list: List<M>
get() = delegate.list
set(value) {
delegate.list = value
@Suppress("NotifyDataSetChanged")
notifyDataSetChanged()
}

public override fun getItemCount(): Int = delegate.list.size
}
Loading

0 comments on commit 8546123

Please sign in to comment.