From 4623a4372c6eb92dbbfa48869a66f537fb216dcb Mon Sep 17 00:00:00 2001 From: seannajera Date: Thu, 2 Jul 2020 17:10:46 -0400 Subject: [PATCH] * add "appendComponents" api * update dependencies --- build.gradle | 4 ++-- .../src/main/java/com/seannajera/dkouple/MainActivity.kt | 8 ++++++++ example/src/main/res/layout/component_item.xml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- library/build.gradle | 5 ++--- .../main/java/com/seannajera/dkouple/ComponentAdapter.kt | 6 ++++++ 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 5ee61fb..38a4aea 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.3.72' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:4.0.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/example/src/main/java/com/seannajera/dkouple/MainActivity.kt b/example/src/main/java/com/seannajera/dkouple/MainActivity.kt index 0c1c28c..430d273 100644 --- a/example/src/main/java/com/seannajera/dkouple/MainActivity.kt +++ b/example/src/main/java/com/seannajera/dkouple/MainActivity.kt @@ -42,5 +42,13 @@ class MainActivity : AppCompatActivity() { Log.i(tag, "Non existent item was updated: $nonExistentItemUpdated") // "Non existent item was updated: false" }, 5000) + + Handler(Looper.getMainLooper()).postDelayed({ + + componentAdapter.appendComponents( + listOf(ItemComponent("2", "But I am in the components now")) + ) + + }, 10000) } } diff --git a/example/src/main/res/layout/component_item.xml b/example/src/main/res/layout/component_item.xml index c27a51b..f11a5de 100644 --- a/example/src/main/res/layout/component_item.xml +++ b/example/src/main/res/layout/component_item.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/item_component_name" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:padding="16dp" android:textSize="16sp" android:textStyle="bold" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8064db6..86a8a07 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/library/build.gradle b/library/build.gradle index 25df5a0..e77935c 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -6,7 +6,7 @@ group='com.github.Mariana-Tek.DKouple' android { compileSdkVersion 29 - buildToolsVersion "29.0.2" + buildToolsVersion "29.0.3" defaultConfig { @@ -44,8 +44,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2' implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.core:core-ktx:1.1.0' + implementation 'androidx.core:core-ktx:1.3.0' implementation "androidx.recyclerview:recyclerview:1.1.0" } diff --git a/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt b/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt index 1367831..0e92287 100644 --- a/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt +++ b/library/src/main/java/com/seannajera/dkouple/ComponentAdapter.kt @@ -78,6 +78,12 @@ class ComponentAdapter(private val componentFactory: ComponentFactory) : return isComponentInList } + fun appendComponents(components: List) { + val updatedComponents: List = ArrayList(currentList).also { it.addAll(components) } + + submitList(updatedComponents) + } + companion object { val componentDiffer = object : DiffUtil.ItemCallback() { override fun areItemsTheSame(