Skip to content

Commit

Permalink
Merge pull request #102 from matheus-corregiari/release/1.8.0
Browse files Browse the repository at this point in the history
Add Combine and Chain to ResponseLiveData
  • Loading branch information
matheus-corregiari committed Aug 19, 2024
2 parents 74ff8d1 + b6dde3e commit acae68e
Show file tree
Hide file tree
Showing 36 changed files with 748 additions and 163 deletions.
18 changes: 9 additions & 9 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
plugins {
id("jacoco")

alias(libraries.plugins.android.application) apply false
alias(libraries.plugins.android.library) apply false
alias(libraries.plugins.google.ksp) apply false
alias(libraries.plugins.jetbrains.kotlin) apply false
alias(libraries.plugins.jetbrains.multiplatform) apply false
alias(libraries.plugins.jetbrains.serialization) apply false
alias(libraries.plugins.dexcount) apply false
alias(libraries.plugins.detekt) apply false
alias(pluginLibraries.plugins.android.application) apply false
alias(pluginLibraries.plugins.android.library) apply false
alias(pluginLibraries.plugins.google.ksp) apply false
alias(pluginLibraries.plugins.jetbrains.kotlin) apply false
alias(pluginLibraries.plugins.jetbrains.multiplatform) apply false
alias(pluginLibraries.plugins.jetbrains.serialization) apply false
alias(pluginLibraries.plugins.dexcount) apply false
alias(pluginLibraries.plugins.detekt) apply false
// TODO Pedrinho, help me
// alias(libraries.plugins.pedrinho_publish) apply false
// alias(pluginLibraries.plugins.pedrinho_publish) apply false
}
4 changes: 2 additions & 2 deletions plugin/src/main/kotlin/com/toolkit/plugin/_common.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.toolkit.plugin
import com.android.build.api.dsl.CommonExtension
import com.toolkit.plugin.util.projectJavaVersion

internal fun CommonExtension<*, *, *, *, *>.commonSetup() {
internal fun CommonExtension<*, *, *, *, *, *>.commonSetup() {
androidResources { noCompress.add("") }

compileOptions {
Expand All @@ -18,7 +18,7 @@ internal fun CommonExtension<*, *, *, *, *>.commonSetup() {
}
}

internal fun CommonExtension<*, *, *, *, *>.regularSourceSets() {
internal fun CommonExtension<*, *, *, *, *, *>.regularSourceSets() {
sourceSets {
maybeCreate("main").java.srcDirs("src/main/kotlin")
maybeCreate("test").java.srcDirs("src/test/kotlin")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ package com.toolkit.plugin.multiplatform
import com.toolkit.plugin.util.applyPlugins
import com.toolkit.plugin.util.multiplatform
import com.toolkit.plugin.util.projectJavaVersionCode
import com.toolkit.plugin.util.projectJavaVersionName
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.NamedDomainObjectProvider
import org.gradle.api.Plugin
Expand All @@ -22,13 +21,7 @@ internal class ToolkitBasePlugin : Plugin<Project> {
}

with(target.multiplatform) {
androidTarget {
compilations.all { compilation ->
compilation.kotlinOptions {
jvmTarget = projectJavaVersionName
}
}
}
androidTarget {}
}

target.plugins.apply("toolkit-optimize")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ internal val Project.libraries: VersionCatalog
return extensions.findByType(VersionCatalogsExtension::class.java)?.named("libraries")
?: error("Cannot find libraries in version catalog!")
}
internal val Project.pluginLibraries: VersionCatalog
@Throws(IllegalStateException::class)
get() {
return extensions.findByType(VersionCatalogsExtension::class.java)?.named("pluginLibraries")
?: error("Cannot find libraries in version catalog!")
}

internal val Project.ktLint: KtlintExtension
@Throws(IllegalStateException::class)
Expand Down Expand Up @@ -97,6 +103,6 @@ internal val Project.sign: SigningExtension

internal fun Project.applyPlugins(vararg id: String) {
id.forEach {
plugins.apply(libraries.findPlugin(it).get().get().pluginId)
plugins.apply(pluginLibraries.findPlugin(it).get().get().pluginId)
}
}
2 changes: 1 addition & 1 deletion samples/github-list-project/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id("toolkit-android-sample")
// id("toolkit-compose") --> Commented until Compose finally work on API 34 -.-"
alias(libraries.plugins.google.ksp)
alias(pluginLibraries.plugins.google.ksp)
}

android.namespace = "br.com.arch.toolkit.sample.github"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package br.com.arch.toolkit.sample.github.ui.xml.item

import android.content.Context
import androidx.appcompat.widget.AppCompatTextView
import br.com.arch.toolkit.playground.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.sample.github.data.remote.model.RepoDTO

class RepositoryItemView(context: Context) : AppCompatTextView(context), ViewBinder<RepoDTO> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.RecyclerView
import br.com.arch.toolkit.delegate.viewModelProvider
import br.com.arch.toolkit.delegate.viewProvider
import br.com.arch.toolkit.playground.recyclerAdapter.SimpleAdapter
import br.com.arch.toolkit.recyclerAdapter.SimpleAdapter
import br.com.arch.toolkit.result.DataResultStatus
import br.com.arch.toolkit.sample.github.R
import br.com.arch.toolkit.sample.github.data.remote.model.RepoDTO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import br.com.arch.toolkit.delegate.viewProvider
import br.com.arch.toolkit.playground.recyclerAdapter.SimpleAdapter
import br.com.arch.toolkit.recyclerAdapter.SimpleAdapter
import br.com.arch.toolkit.sample.playground.R
import br.com.arch.toolkit.sample.playground.recyclerAdapter.itemView.SimpleItemView

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import android.widget.Toast
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView
import br.com.arch.toolkit.delegate.viewProvider
import br.com.arch.toolkit.playground.recyclerAdapter.SimpleStickyAdapter
import br.com.arch.toolkit.playground.recyclerAdapter.stickyheader.StickyHeaderModel
import br.com.arch.toolkit.playground.recyclerAdapter.stickyheader.StickyHeadersLinearLayoutManager
import br.com.arch.toolkit.recyclerAdapter.SimpleStickyAdapter
import br.com.arch.toolkit.recyclerAdapter.stickyheader.StickyHeaderModel
import br.com.arch.toolkit.recyclerAdapter.stickyheader.StickyHeadersLinearLayoutManager
import br.com.arch.toolkit.sample.playground.R
import br.com.arch.toolkit.sample.playground.recyclerAdapter.itemView.StickyItemView

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package br.com.arch.toolkit.sample.playground.recyclerAdapter.adapter

import android.content.Context
import br.com.arch.toolkit.playground.recyclerAdapter.BaseRecyclerAdapter
import br.com.arch.toolkit.playground.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.recyclerAdapter.BaseRecyclerAdapter
import br.com.arch.toolkit.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.sample.playground.recyclerAdapter.itemView.AnotherSimpleItemView
import br.com.arch.toolkit.sample.playground.recyclerAdapter.itemView.SimpleItemView

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import androidx.appcompat.widget.AppCompatTextView
import br.com.arch.toolkit.playground.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.sample.playground.R

class AnotherSimpleItemView : AppCompatTextView, ViewBinder<String> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import androidx.appcompat.widget.AppCompatTextView
import br.com.arch.toolkit.playground.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.sample.playground.R

class SimpleItemView : AppCompatTextView, ViewBinder<String> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.content.Context
import android.util.AttributeSet
import android.view.ViewGroup
import androidx.appcompat.widget.AppCompatTextView
import br.com.arch.toolkit.playground.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.recyclerAdapter.ViewBinder
import br.com.arch.toolkit.sample.playground.R
import br.com.arch.toolkit.sample.playground.recyclerAdapter.StickyHeadersActivity

Expand Down
2 changes: 1 addition & 1 deletion samples/playground/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id("toolkit-android-sample")
alias(libraries.plugins.jetbrains.serialization)
alias(pluginLibraries.plugins.jetbrains.serialization)
}

android.namespace = "br.com.arch.toolkit.sample.livedata"
Expand Down
3 changes: 3 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ dependencyResolutionManagement {
register("libraries") {
from(files("$rootDir/tools/libs.versions.toml"))
}
register("pluginLibraries") {
from(files("$rootDir/tools/plugin.versions.toml"))
}
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
@file:Suppress("KotlinNullnessAnnotation", "TooManyFunctions")
@file:Suppress(
"KotlinNullnessAnnotation",
"TooManyFunctions",
"MemberVisibilityCanBePrivate",
"DeprecatedCallableAddReplaceWith",
"unused"
)

package br.com.arch.toolkit.livedata

Expand Down Expand Up @@ -126,9 +132,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
* @see ResponseLiveData.onError
*/
@NonNull
fun mapError(
@NonNull transformation: (Throwable) -> Throwable
): ResponseLiveData<T> {
fun mapError(@NonNull transformation: (Throwable) -> Throwable): ResponseLiveData<T> {
val liveData = SwapResponseLiveData<T>()
.scope(scope)
.transformDispatcher(transformDispatcher)
Expand All @@ -153,9 +157,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
* @see ResponseLiveData.onErrorReturn
*/
@NonNull
fun onErrorReturn(
@NonNull onErrorReturn: ((Throwable) -> T)
): ResponseLiveData<T> {
fun onErrorReturn(@NonNull onErrorReturn: ((Throwable) -> T)): ResponseLiveData<T> {
val liveData = SwapResponseLiveData<T>()
.scope(scope)
.transformDispatcher(transformDispatcher)
Expand All @@ -172,6 +174,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
*/
@NonNull
@Experimental
@Deprecated("Use combine instead")
fun <R> mergeWith(@NonNull source: ResponseLiveData<R>): ResponseLiveData<Pair<T, R>> =
withDelegate {
merge(this@ResponseLiveData, source, scope, transformDispatcher)
Expand All @@ -187,6 +190,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
*/
@NonNull
@Experimental
@Deprecated("Use combine instead")
fun mergeWith(
@NonNull tag: String,
@NonNull vararg sources: Pair<String, ResponseLiveData<*>>
Expand All @@ -209,6 +213,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
*/
@NonNull
@Experimental
@Deprecated("Use chainWith instead")
fun <R> followedBy(
@NonNull source: (T) -> ResponseLiveData<R>,
@NonNull condition: (T) -> Boolean,
Expand All @@ -235,6 +240,7 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
*/
@NonNull
@Experimental
@Deprecated("Use chainWith instead")
fun <R> followedBy(
@NonNull source: (T) -> ResponseLiveData<R>,
@NonNull condition: (T) -> Boolean
Expand All @@ -250,14 +256,8 @@ open class ResponseLiveData<T> : LiveData<DataResult<T>> {
*/
@NonNull
@Experimental
fun <R> followedBy(
@NonNull source: (T) -> ResponseLiveData<R>
): ResponseLiveData<Pair<T, R>> = followedBy(source) { true }
//endregion

//region Operators
@Experimental
operator fun <R> plus(source: ResponseLiveData<R>) = mergeWith(source)
@Deprecated("Use chainWith instead")
fun <R> followedBy(@NonNull source: (T) -> ResponseLiveData<R>) = followedBy(source) { true }
//endregion

//region Observability
Expand Down
Loading

0 comments on commit acae68e

Please sign in to comment.