Skip to content

Commit 6ffa089

Browse files
authored
Merge pull request #23 from manneohlund/rc-5.0.0
Rc 5.0.0
2 parents 91e0fb6 + b90c5fe commit 6ffa089

File tree

70 files changed

+521
-95
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+521
-95
lines changed

Diff for: .idea/gradle.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: .idea/modules.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: README.md

+62-22
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,35 @@ This library will make it easy and painless to map your data item with a target
1313
# Features
1414

1515
###### OnViewEventListener
16-
* Smart <b>OnClick</b> / <b>OnLongClickListener</b> <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/SimpleItemOnClickOnLongClickActivity.kt" target="_blank">SimpleItemOnClickOnLongClickActivity</a></sup>
17-
* State holding with <b>OnItemSelectedListener</b> <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultipleViewTypesResolverActivity.kt" target="_blank">MultipleViewTypesResolverActivity</a></sup>
18-
* Custom View Events <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/CustomViewEventActivity.kt" target="_blank">CustomViewEventActivity</a></sup>
16+
* Smart <b>OnClick</b> / <b>OnLongClickListener</b> <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/SimpleItemOnClickOnLongClickActivity.kt" target="_blank">SimpleItemOnClickOnLongClickActivity</a></sup>
17+
* State holding with <b>OnItemSelectedListener</b> <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultipleViewTypesResolverActivity.kt" target="_blank">MultipleViewTypesResolverActivity</a></sup>
18+
* Custom View Events <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/CustomViewEventActivity.kt" target="_blank">CustomViewEventActivity</a></sup>
1919
###### ItemTouchHelper Swipe, Drag & Drop extensions
20-
* Drag & drop <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/DragAndDropItemActivity.kt" target="_blank">DragAndDropItemActivity</a></sup>
21-
* Drag & drop with handle <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/DragAndDropHandleItemActivity.kt" target="_blank">DragAndDropHandleItemActivity</a></sup>
22-
* Swipe to remove item <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/SwipeRemoveItemActivity.kt" target="_blank">SwipeRemoveItemActivity</a></sup>
23-
* Drag & drop, Swipe, View Events <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultipleEventsAndExtensionsActivity.kt" target="_blank">MultipleEventsAndExtensionsActivity</a></sup>
24-
* Grid + Drag & drop <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/GridActivity.kt" target="_blank">GridActivity</a></sup>
20+
* Drag & drop <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/DragAndDropItemActivity.kt" target="_blank">DragAndDropItemActivity</a></sup>
21+
* Drag & drop with handle <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/DragAndDropHandleItemActivity.kt" target="_blank">DragAndDropHandleItemActivity</a></sup>
22+
* Swipe to remove item <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/SwipeRemoveItemActivity.kt" target="_blank">SwipeRemoveItemActivity</a></sup>
23+
* Drag & drop, Swipe, View Events <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultipleEventsAndExtensionsActivity.kt" target="_blank">MultipleEventsAndExtensionsActivity</a></sup>
24+
* Grid + Drag & drop <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/GridActivity.kt" target="_blank">GridActivity</a></sup>
2525
###### ViewTypeResolver
26-
* Multiple ViewHolder types resolver <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultipleViewTypesResolverActivity.kt" target="_blank">MultipleViewTypesResolverActivity</a></sup>
26+
* Multiple ViewHolder types resolver <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultipleViewTypesResolverActivity.kt" target="_blank">MultipleViewTypesResolverActivity</a></sup>
2727
###### SmartStateHolder
28-
* Multiple items select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultiSelectItemsActivity.kt" target="_blank">MultiSelectItemsActivity</a></sup>
29-
* Single RadioButton select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/SingleSelectRadioButtonItemActivity.kt" target="_blank">SingleSelectRadioButtonItemActivity</a></sup>
30-
* Multiple CheckBox select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultiSelectCheckBoxItemsActivity.kt" target="_blank">MultiSelectCheckBoxItemsActivity</a></sup>
31-
* Multiple Switch select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultiSelectSwitchItemsActivity.kt" target="_blank">MultiSelectSwitchItemsActivity</a></sup>
32-
* Multiple Expandable items <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/MultipleExpandableItemActivity.kt" target="_blank">MultipleExpandableItemActivity</a></sup>
33-
* Single Expandable item <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/SingleExpandableItemActivity.kt" target="_blank">SingleExpandableItemActivity</a></sup>
28+
* Multiple items select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultiSelectItemsActivity.kt" target="_blank">MultiSelectItemsActivity</a></sup>
29+
* Single RadioButton select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/SingleSelectRadioButtonItemActivity.kt" target="_blank">SingleSelectRadioButtonItemActivity</a></sup>
30+
* Multiple CheckBox select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultiSelectCheckBoxItemsActivity.kt" target="_blank">MultiSelectCheckBoxItemsActivity</a></sup>
31+
* Multiple Switch select <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultiSelectSwitchItemsActivity.kt" target="_blank">MultiSelectSwitchItemsActivity</a></sup>
32+
* Multiple Expandable items <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/MultipleExpandableItemActivity.kt" target="_blank">MultipleExpandableItemActivity</a></sup>
33+
* Single Expandable item <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/SingleExpandableItemActivity.kt" target="_blank">SingleExpandableItemActivity</a></sup>
3434
###### Nested adapter
35-
* Nested SmartRecyclerAdapter <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/NestedSmartRecyclerAdaptersActivity.kt" target="_blank">NestedSmartRecyclerAdaptersActivity</a></sup>
35+
* Nested SmartRecyclerAdapter <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/NestedSmartRecyclerAdaptersActivity.kt" target="_blank">NestedSmartRecyclerAdaptersActivity</a></sup>
3636
###### Pagination
37-
* Endless scroll <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/EndlessScrollActivity.kt" target="_blank">EndlessScrollActivity</a></sup>
38-
* Endless scroll with load more button <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/EndlessScrollLoadMoreButtonActivity.kt" target="_blank">EndlessScrollLoadMoreButtonActivity</a></sup>
37+
* Endless scroll <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/EndlessScrollActivity.kt" target="_blank">EndlessScrollActivity</a></sup>
38+
* Endless scroll with load more button <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/EndlessScrollLoadMoreButtonActivity.kt" target="_blank">EndlessScrollLoadMoreButtonActivity</a></sup>
3939
###### DiffUtil
40-
* Diff Util extension <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta02/sample/src/main/java/smartrecycleradapter/feature/DiffUtilActivity.kt" target="_blank">DiffUtilActivity</a></sup>
40+
* Diff Util extension <sup><a href="https://github.com/manneohlund/smart-recycler-adapter/blob/5.0.0-beta03/sample/src/main/kotlin/smartrecycleradapter/feature/DiffUtilActivity.kt" target="_blank">DiffUtilActivity</a></sup>
4141

4242
#### Release overview
4343

44-
* Kotlin + AndroidX (jcenter, jitpack) [v5.0.0-beta02](https://github.com/manneohlund/smart-recycler-adapter/tree/5.0.0-beta02)
44+
* Kotlin + AndroidX (jcenter, jitpack) [v5.0.0-beta03](https://github.com/manneohlund/smart-recycler-adapter/tree/5.0.0-beta03)
4545
* Kotlin + AndroidX (jcenter, jitpack) [v4.0.0](https://github.com/manneohlund/smart-recycler-adapter/tree/4.0.0)
4646
* Java + AndroidX (jcenter, jitpack) [v3.0.0](https://github.com/manneohlund/smart-recycler-adapter/tree/3.0.0)
4747
* Java + AppCompat (jitpack) [v2.2.0](https://github.com/manneohlund/smart-recycler-adapter/tree/2.2.0)
@@ -53,7 +53,7 @@ Add `jcenter()` or `maven { url "https://dl.bintray.com/manneohlund/maven" }` t
5353
```groovy
5454
dependencies {
5555
// Core SmartRecyclerAdapter
56-
implementation 'io.github.manneohlund:smart-recycler-adapter:5.0.0-beta02'
56+
implementation 'io.github.manneohlund:smart-recycler-adapter:5.0.0-beta03'
5757
}
5858
```
5959

@@ -63,6 +63,18 @@ dependencies {
6363
dependencies {
6464
// ViewEvent click listeners, multi select, swipe dismiss and drag & drop
6565
implementation 'io.github.manneohlund:smart-recycler-adapter-viewevent:1.0.0-alpha02'
66+
// DiffUtil extension library
67+
implementation 'io.github.manneohlund:smart-recycler-adapter-diffutil:1.0.0-alpha01'
68+
}
69+
```
70+
71+
# Proguard
72+
73+
Only known rule is to keep constructor for all ViewHolders.
74+
75+
```proguard
76+
-keepclassmembers class **ViewHolder {
77+
public <init>(**);
6678
}
6779
```
6880

@@ -232,6 +244,34 @@ SmartRecyclerAdapter
232244

233245
**See sample app section:** [#SmartStateHolder](#smartstateholder)
234246

247+
# smart-recycler-adapter-diffutil
248+
249+
As of `smart-recycler-adapter:v5.0.0` diff util have been removed from `SmartRecyclerAdapter` and is added in this extension library `smart-recycler-adapter-diffutil`.
250+
Essentially the `SmartRecyclerAdapter` will now hold a map of `SmartRecyclerAdapterExtension` that is the basic interface for `SmartRecyclerAdapter` binding extensions.
251+
252+
```kotlin
253+
// If adapter items contains unspecified super type DiffPredicate bust be of type Any, DiffPredicate<Any>
254+
private val predicate = object : DiffUtilExtension.DiffPredicate<Int> {
255+
override fun areItemsTheSame(oldItem: Int, newItem: Int): Boolean {
256+
return oldItem == newItem
257+
}
258+
259+
override fun areContentsTheSame(oldItem: Int, newItem: Int): Boolean {
260+
return oldItem == newItem
261+
}
262+
}
263+
264+
// Add SimpleDiffUtilExtension to the adapter
265+
SmartRecyclerAdapter
266+
.items((0..100).toMutableList())
267+
.map(Integer::class, SimpleItemViewHolder::class)
268+
.add(SimpleDiffUtilExtension(predicate))
269+
.into(recyclerView)
270+
271+
// Add some new random items
272+
smartRecyclerAdapter.diffSwapList((0..100).shuffled().toMutableList())
273+
```
274+
235275
### Adapter creation with ViewTypeResolver
236276

237277
If you want to bind one data type with different view holders depending on some attribute you can set a ViewTypeResolver.<br/>
@@ -335,7 +375,7 @@ You can also set your custom loading/loadmore view.
335375

336376
# More
337377

338-
For more samples test out the sample app and see the [source code](https://github.com/manneohlund/smart-recycler-adapter/tree/master/sample/src/main/java/com/example/smartrecycleradapter).
378+
For more samples test out the sample app and see the [source code](https://github.com/manneohlund/smart-recycler-adapter/tree/master/sample/src/main/kotlin/com/example/smartrecycleradapter).
339379

340380
### RecyclableViewHolder
341381

Diff for: build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ ext {
44
PROJ_NAME = 'SmartRecyclerAdapter'
55
PROJ_GROUP_ID = 'io.github.manneohlund'
66
PROJ_ARTIFACT_ID = 'smart-recycler-adapter'
7-
PROJ_VERSION_CODE = 13
8-
PROJ_VERSION_NAME = '5.0.0-beta02'
7+
PROJ_VERSION_CODE = 14
8+
PROJ_VERSION_NAME = '5.0.0-beta03'
99

1010
TARGET_SDK_VERSION = 28
1111
BUILD_TOOLS_VERSION = '29.0.2'

Diff for: extensions/diffutil/.gitignore

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Project
2+
upload-keystore.jks
3+
4+
# Built application files
5+
*.apk
6+
*.ap_
7+
*.aab
8+
9+
# Files for the ART/Dalvik VM
10+
*.dex
11+
12+
# Java class files
13+
*.class
14+
15+
# Generated files
16+
bin/
17+
gen/
18+
out/
19+
release/
20+
21+
# Gradle files
22+
.gradle/
23+
build/
24+
25+
# Local configuration file (sdk path, etc)
26+
local.properties
27+
28+
# Proguard folder generated by Eclipse
29+
proguard/
30+
31+
# Log Files
32+
*.log
33+
34+
# Android Studio Navigation editor temp files
35+
.navigation/
36+
37+
# Android Studio captures folder
38+
captures/
39+
40+
# IntelliJ, Android Studio
41+
*.iml
42+
.idea/workspace.xml
43+
.idea/tasks.xml
44+
.idea/gradle.xml
45+
.idea/assetWizardSettings.xml
46+
.idea/dictionaries
47+
.idea/libraries
48+
# Android Studio 3 in .gitignore file.
49+
.idea/caches/
50+
.idea/caches/build_file_checksums.ser
51+
.idea/modules.xml
52+
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
53+
.idea/navEditor.xml
54+
.idea/assetWizardSettings.xml
55+
56+
# Keystore files
57+
# Uncomment the following lines if you do not want to check your keystore files in.
58+
#*.jks
59+
#*.keystore
60+
61+
# External native build folder generated in Android Studio 2.2 and later
62+
.externalNativeBuild
63+
64+
# Google Services (e.g. APIs or Firebase)
65+
# google-services.json
66+
67+
# Freeline
68+
freeline.py
69+
freeline/
70+
freeline_project_description.json
71+
72+
# Version control
73+
vcs.xml
74+
75+
# lint
76+
lint/intermediates/
77+
lint/generated/
78+
lint/outputs/
79+
lint/tmp/
80+
lint/reports/
81+
82+
# Mac
83+
*.DS_Store

Diff for: extensions/diffutil/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# v1.0.0-alpha01
2+
3+
### Initial release contains
4+
* `SimpleDiffUtilExtension` basic implementation of `DiffUtilExtension`
5+
* `DiffUtilExtension` defining the basic diff util.
6+
* `SmartRecyclerAdapterExt` helper extension methods getDiffUtil, diffSwapList
7+
* `SmartAdapterBuilderExt` helper extension methods to add extension

Diff for: extensions/diffutil/build.gradle

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
apply plugin: 'com.android.library'
2+
apply plugin: 'kotlin-android'
3+
apply plugin: 'kotlin-android-extensions'
4+
5+
ext {
6+
LIB_ARTIFACT_NAME = 'SmartRecyclerAdapter DiffUtil'
7+
LIB_ARTIFACT_ID = 'smart-recycler-adapter-diffutil'
8+
LIB_VERSION_CODE = 1
9+
LIB_VERSION_NAME = '1.0.0-alpha01'
10+
LIB_DESCRIPTION = 'Diff util extension library for SmartRecyclerAdapter'
11+
}
12+
13+
android {
14+
compileSdkVersion TARGET_SDK_VERSION
15+
buildToolsVersion BUILD_TOOLS_VERSION
16+
17+
defaultConfig {
18+
minSdkVersion MIN_SDK_VERSION
19+
targetSdkVersion TARGET_SDK_VERSION
20+
versionCode LIB_VERSION_CODE
21+
versionName LIB_VERSION_NAME
22+
23+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
24+
consumerProguardFiles "consumer-rules.pro"
25+
}
26+
27+
sourceSets {
28+
main {
29+
java.srcDirs = ['src/main/kotlin']
30+
res.srcDirs = ['src/main/res']
31+
}
32+
release {
33+
java.srcDirs = ['src/main/kotlin']
34+
res.srcDirs = ['src/main/res']
35+
}
36+
}
37+
38+
buildTypes {
39+
release {
40+
minifyEnabled false
41+
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
42+
}
43+
}
44+
}
45+
46+
dependencies {
47+
implementation fileTree(dir: "libs", include: ["*.jar"])
48+
// Test
49+
testImplementation 'junit:junit:4.12'
50+
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
51+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
52+
53+
// Project
54+
implementation project(path: ':smartadapter')
55+
56+
// Kotlin
57+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
58+
59+
// Androidx
60+
implementation "androidx.appcompat:appcompat:$appcompat_version"
61+
implementation "androidx.recyclerview:recyclerview:$recyclerview_version"
62+
}

Diff for: extensions/diffutil/consumer-rules.pro

Whitespace-only changes.

Diff for: extensions/diffutil/proguard-rules.pro

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package smartadapter.diffutil
2+
3+
import androidx.test.ext.junit.runners.AndroidJUnit4
4+
import androidx.test.platform.app.InstrumentationRegistry
5+
import org.junit.Assert.assertEquals
6+
import org.junit.Test
7+
import org.junit.runner.RunWith
8+
9+
/**
10+
* Instrumented test, which will execute on an Android device.
11+
*
12+
* See [testing documentation](http://d.android.com/tools/testing).
13+
*/
14+
@RunWith(AndroidJUnit4::class)
15+
class ExampleInstrumentedTest {
16+
@Test
17+
fun useAppContext() {
18+
// Context of the app under test.
19+
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
20+
assertEquals("smartadapter.diffutil.test", appContext.packageName)
21+
}
22+
}

Diff for: extensions/diffutil/src/main/AndroidManifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<manifest package="io.github.manneohlund.smartrecycleradapter.diffutil" />

0 commit comments

Comments
 (0)