diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2667330ac..3f60d69c1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -9,46 +9,37 @@ jobs:
name: Assemble
runs-on: ubuntu-latest
timeout-minutes: 25
- env:
- JAVA_TOOL_OPTIONS: -Xmx6g
- GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v1
- with:
- java-version: 11
- - uses: actions/cache@v2
+ - uses: actions/checkout@v4
+ - uses: gradle/wrapper-validation-action@v2
+ - uses: actions/setup-java@v4
with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ distribution: 'zulu'
+ java-version: '17'
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
- name: Assemble
run: ./gradlew assemble
working-directory: .
- - name: Cleanup Gradle Cache
- run: |
- rm -f ~/.gradle/caches/modules-2/modules-2.lock
- rm -f ~/.gradle/caches/modules-2/gc.properties
detekt:
name: Detekt
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v1
+ - uses: actions/checkout@v4
+ - uses: gradle/wrapper-validation-action@v2
+ - uses: actions/setup-java@v4
with:
- java-version: 11
+ distribution: 'zulu'
+ java-version: '17'
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
- name: Detekt
run: ./gradlew detekt --stacktrace
working-directory: .
- name: Upload failure reports
if: failure()
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
path: '**/build/reports'
@@ -56,103 +47,92 @@ jobs:
name: Unit tests
runs-on: ubuntu-latest
timeout-minutes: 20
- env:
- JAVA_TOOL_OPTIONS: -Xmx4g
- GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v1
+ - uses: actions/checkout@v4
+ - uses: gradle/wrapper-validation-action@v2
+ - uses: actions/setup-java@v4
with:
- java-version: 11
- - uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ distribution: 'zulu'
+ java-version: '17'
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
- name: Unit tests
run: ./gradlew testDebugUnitTest
working-directory: .
- name: Upload failure reports
if: failure()
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: unit-test-reports
path: '**/build/reports'
- - name: Cleanup Gradle Cache
- run: |
- rm -f ~/.gradle/caches/modules-2/modules-2.lock
- rm -f ~/.gradle/caches/modules-2/gc.properties
instrumentation-tests:
- runs-on: macOS-latest
- timeout-minutes: 60
- env:
- JAVA_TOOL_OPTIONS: -Xmx4g
- GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.incremental=false -Dkotlin.compiler.execution.strategy=in-process
- strategy:
- fail-fast: false
- matrix:
- api-level: [22,25,29]
- name: Instrumentation tests [API=${{ matrix.api-level }}]
+ name: Instrumentation tests
+ runs-on: macos-13
+ timeout-minutes: 30
steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v1
+ - uses: actions/checkout@v4
+ - uses: actions/setup-java@v4
with:
- java-version: 11
- - uses: actions/cache@v2
+ distribution: 'zulu'
+ java-version: '17'
+ - uses: gradle/wrapper-validation-action@v1
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
+ - name: Pre build sources before launching emulator
+ run: ./gradlew compileDebugAndroidTestSources
+ - name: AVD cache
+ uses: actions/cache@v4
+ id: avd-cache
with:
path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ ~/.android/avd/*
+ ~/.android/adb*
+ key: avd-29-ribs
+ - name: Create AVD and generate snapshot for caching
+ if: steps.avd-cache.outputs.cache-hit != 'true'
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ # Use API 29 https://github.com/ReactiveCircus/android-emulator-runner/issues/222
+ api-level: 29
+ arch: x86_64
+ force-avd-creation: false
+ emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: false
+ script: echo "Generated AVD snapshot for caching."
- name: Instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
with:
- api-level: ${{ matrix.api-level }}
- arch: x86
- script: ./gradlew connectedCheck
-
- - name: Upload failure reports
+ # Use API 29 https://github.com/ReactiveCircus/android-emulator-runner/issues/222
+ api-level: 29
+ arch: x86_64
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ disable-animations: true
+ script: |
+ adb logcat > logcat.out &
+ ./gradlew connectedCheck
+ - name: Upload failed instrumentation artifacts
if: failure()
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
- name: instrumentation-reports-api-${{ matrix.api-level }}
- path: '**/build/reports'
-
- - name: Cleanup Gradle Cache
- run: |
- rm -f ~/.gradle/caches/modules-2/modules-2.lock
- rm -f ~/.gradle/caches/modules-2/gc.properties
-
+ name: instrumentation-failures
+ path: |
+ **/build/reports
+ logcat.out
verify-publication:
name: Verify publication
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v1
- with:
- java-version: 11
- - uses: actions/cache@v2
+ - uses: actions/checkout@v4
+ - uses: gradle/wrapper-validation-action@v2
+ - uses: actions/setup-java@v4
with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
+ distribution: 'zulu'
+ java-version: '17'
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
- name: Verify
run: ./gradlew publishToMavenLocal
working-directory: .
- - name: Cleanup Gradle Cache
- run: |
- rm -f ~/.gradle/caches/modules-2/modules-2.lock
- rm -f ~/.gradle/caches/modules-2/gc.properties
diff --git a/build.gradle b/build.gradle
index ce2c29c36..b7be93a03 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,3 +1,6 @@
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
buildscript {
apply from: 'gradle/dependencies.gradle'
@@ -11,7 +14,6 @@ buildscript {
dependencies {
classpath deps.build.gradlePlugins.android
classpath deps.build.gradlePlugins.kotlin
- classpath deps.build.gradlePlugins.mavenPublish
classpath deps.build.gradlePlugins.detekt
classpath deps.build.gradlePlugins.jacoco
}
@@ -40,13 +42,14 @@ subprojects {
maven { url "https://www.jitpack.io" }
}
- configurations.all {
+ configurations.configureEach {
resolutionStrategy.eachDependency {
}
}
- tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.name
+ tasks.withType(KotlinCompile).configureEach {
+ compilerOptions {
+ jvmTarget = JvmTarget.JVM_11
+ freeCompilerArgs.add("-Xopt-in=com.badoo.ribs.annotation.ExperimentalApi")
}
}
}
diff --git a/detekt.yml b/detekt.yml
index 5e8418305..c13b8cb6c 100644
--- a/detekt.yml
+++ b/detekt.yml
@@ -178,6 +178,7 @@ naming:
FunctionNaming:
active: true
functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$'
+ ignoreAnnotated: [ 'Composable' ]
VariableNaming:
active: true
variablePattern: '^(_)?[a-z$][a-zA-Z$0-9]*$'
diff --git a/documentation/index.md b/documentation/index.md
index 7ceadff75..424991209 100644
--- a/documentation/index.md
+++ b/documentation/index.md
@@ -62,7 +62,6 @@
- Demo apps
- [Tooling](extras/tooling.md)
- [Minimal reactive API](extras/minimal-reactive-api.md)
-- Template plugin
## Experimental features
diff --git a/gradle.properties b/gradle.properties
index 4d33e348d..b273445d1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -10,21 +10,13 @@
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512M
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
org.gradle.caching=true
org.gradle.parallel=true
-GROUP=com.badoo.ribs
VERSION_NAME=0.40.2
-POM_DESCRIPTION=Badoo RIBs is an evolution of Uber RIBs, with notable differences and additions
-POM_URL=https://github.com/badoo/RIBs/
-POM_SCM_URL=https://github.com/badoo/RIBs/
-POM_SCM_CONNECTION=scm:git:git://github.com/badoo/RIBs.git
-POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/badoo/RIBs.git
-POM_LICENCE_NAME=The Apache Software License, Version 2.0
-POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
-POM_LICENCE_DIST=repo
-POM_DEVELOPER_ID=badoo
-POM_DEVELOPER_NAME=Badoo Trading Limited
android.useAndroidX=true
+android.defaults.buildfeatures.buildconfig=true
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
diff --git a/gradle/code-coverage.gradle b/gradle/code-coverage.gradle
index 913ad4202..e4bda4e86 100644
--- a/gradle/code-coverage.gradle
+++ b/gradle/code-coverage.gradle
@@ -2,7 +2,7 @@ apply plugin: 'jacoco'
jacoco {
toolVersion = deps.versions.jacoco
- reportsDir = file("$buildDir/codeCoverageReports")
+ reportsDirectory = file("$buildDir/codeCoverageReports")
}
tasks.withType(Test) {
@@ -52,10 +52,6 @@ task debugCombinedCodeCoverageReport(type: JacocoReport, dependsOn: ['testDebugU
group = "Code coverage"
description = "Generate coverage reports that combine both Unit and UI tests for debug builds"
- reports {
- html.enabled = true
- }
-
classDirectories.setFrom(files([javaClasses, kotlinClasses]))
sourceDirectories.setFrom(files([javaSourceDirectory, kotlinSourceDirectory]))
executionData(files([unitTestsData, androidTestsData]))
@@ -66,10 +62,6 @@ task debugUnitTestCodeCoverageReport(type: JacocoReport, dependsOn: ['testDebugU
group = "Code coverage"
description = "Generate coverage reports on Unit tests for debug builds"
- reports {
- html.enabled = true
- }
-
classDirectories.setFrom(files([javaClasses, kotlinClasses]))
sourceDirectories.setFrom(files([javaSourceDirectory, kotlinSourceDirectory]))
executionData(files([unitTestsData]))
@@ -80,10 +72,6 @@ task debugUiTestCodeCoverageReport(type: JacocoReport, dependsOn: ['createDebugC
group = "Code coverage"
description = "Generate coverage reports on UI tests for debug builds"
- reports {
- html.enabled = true
- }
-
classDirectories.setFrom(files([javaClasses, kotlinClasses]))
sourceDirectories.setFrom(files([javaSourceDirectory, kotlinSourceDirectory]))
executionData(files([androidTestsData]))
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 0f7a1a48f..7a67f902e 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -5,17 +5,15 @@ while (!rootDirectory.listFiles().any { it.isDirectory() && it.name == ".github"
rootDirectory = rootDirectory.parentFile
}
-def kotlinVersion = '1.8.10'
+def kotlinVersion = '1.9.21'
def versions = [
dagger : '2.45',
- intellij : '212.5457.46',
- intellij_kotlin : '212-1.6.21-release-334-AS5457.46',
kotlin : kotlinVersion,
mviCore : '1.4.0',
- robolectric : '4.8.1',
- composeBom : '2022.12.00',
- composeCompiler : '1.4.4',
+ robolectric : '4.13',
+ composeBom : '2023.10.01',
+ composeCompiler : '1.5.7',
materialVersion : '1.4.0', // https://github.com/material-components/material-components-android/releases
androidxAnnotationVersion : '1.2.0', // https://developer.android.com/jetpack/androidx/releases/annotation
@@ -37,7 +35,7 @@ def versions = [
androidxPercentLayoutVersion : '1.0.0', // https://developer.android.com/jetpack/androidx/releases/percentlayout
androidxRecyclerViewVersion : '1.1.0', // https://developer.android.com/jetpack/androidx/releases/recyclerview
androidxSavedStateVersion : '1.2.0', // https://developer.android.com/jetpack/androidx/releases/savedstate
- androidxTestVersion : '1.4.0', // https://developer.android.com/jetpack/androidx/releases/test
+ androidxTestVersion : '1.5.0', // https://developer.android.com/jetpack/androidx/releases/test
androidxTestUiAutoVersion : '2.2.0',
retrofitVersion : '2.9.0',
okhttp : '3.14.7',
@@ -54,23 +52,19 @@ def apt = [
javaxInject : "javax.inject:javax.inject:1",
]
-def agp = 'com.android.tools.build:gradle:7.2.2'
+def agp = 'com.android.tools.build:gradle:8.2.2'
def build = [
- compileSdk : 33,
+ compileSdk : 34,
gradlePluginsUrl: "https://plugins.gradle.org/m2/",
ci : 'true' == System.getenv('CI'),
minSdk : 21,
- targetSdk : 32,
+ targetSdk : 33,
guava : "com.google.guava:guava:20.0",
- commonsLang : "commons-lang:commons-lang:2.6",
- intellijPlugin : "org.jetbrains.intellij:org.jetbrains.intellij.gradle.plugin:1.1.4",
- kotlinIdeaPlugin: "org.jetbrains.kotlin:${versions.intellij_kotlin}",
gradlePlugins : [
android : agp,
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}",
- mavenPublish: 'com.vanniktech:gradle-maven-publish-plugin:0.15.1',
- detekt : 'io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.17.1',
+ detekt : 'io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.21.0',
jacoco : "org.jacoco:org.jacoco.core:${versions.jacoco}"
]
]
@@ -102,16 +96,13 @@ def test = [
junitParams : "org.junit.jupiter:junit-jupiter-params:${versions.junit5}",
junitEngine : "org.junit.jupiter:junit-jupiter-engine:${versions.junit5}",
junitVintage : "org.junit.vintage:junit-vintage-engine:${versions.junit5}",
- byteBuddy : "net.bytebuddy:byte-buddy:1.10.21",
- mockito : "org.mockito:mockito-core:2.24.0",
- mockitoKotlin : "org.mockito.kotlin:mockito-kotlin:3.2.0",
+ mockitoKotlin : "org.mockito.kotlin:mockito-kotlin:5.4.0",
assertj : "org.assertj:assertj-core:2.9.1", // 2.x version is Android compatible
- compileTesting: "com.google.testing.compile:compile-testing:0.11",
]
def androidTest = [
- espresso : 'androidx.test.espresso:espresso-core:3.4.0',
- espressoIntents: 'androidx.test.espresso:espresso-intents:3.4.0',
+ espresso : 'androidx.test.espresso:espresso-core:3.5.0',
+ espressoIntents: 'androidx.test.espresso:espresso-intents:3.5.0',
runner : "androidx.test:runner:${versions.androidxTestVersion}",
rules : "androidx.test:rules:${versions.androidxTestVersion}"
]
@@ -127,10 +118,6 @@ def external = [
rxrelay2 : "com.jakewharton.rxrelay2:rxrelay:2.1.0",
rxandroid2 : "io.reactivex.rxjava2:rxandroid:2.1.1",
roboelectricBase : "org.robolectric:robolectric:${versions.robolectric}",
- rxbinding : 'com.jakewharton.rxbinding2:rxbinding:2.2.0',
- leakcanaryDebug : 'com.squareup.leakcanary:leakcanary-android:1.6.3',
- apacheCommons : 'org.apache.commons:commons-lang3:3.0',
- gson : 'com.google.code.gson:gson:2.8.5',
coil : "io.coil-kt:coil:${versions.coil}",
leakCanary : "com.squareup.leakcanary:leakcanary-android:${versions.leakCanary}",
appyxCustomisations: "com.bumble.appyx:customisations:${versions.appyx}",
diff --git a/gradle/gradle-mvn-push.gradle b/gradle/gradle-mvn-push.gradle
index ac46fbad3..8eb8529d7 100755
--- a/gradle/gradle-mvn-push.gradle
+++ b/gradle/gradle-mvn-push.gradle
@@ -1,6 +1,3 @@
-version = VERSION_NAME
-group = GROUP
-
def getReleaseRepositoryUrl() {
return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
@@ -11,22 +8,57 @@ def getSnapshotRepositoryUrl() {
: "https://oss.sonatype.org/content/repositories/snapshots/"
}
-apply plugin: "com.vanniktech.maven.publish"
+apply plugin: "maven-publish"
-publishing {
- repositories {
- maven {
- url = version.endsWith('SNAPSHOT') ? getSnapshotRepositoryUrl() : getReleaseRepositoryUrl()
+android {
+ publishing {
+ singleVariant("release") {
+ withSourcesJar()
+ withJavadocJar()
}
}
}
-mavenPublish {
- releaseSigningEnabled false
-}
+afterEvaluate {
+ publishing {
+ repositories {
+ maven {
+ url = version.endsWith('SNAPSHOT') ? getSnapshotRepositoryUrl() : getReleaseRepositoryUrl()
+ }
+ }
-project.afterEvaluate {
- project.tasks.named("androidSourcesJar").configure {
- from project.android.sourceSets.main.java.srcDirs
+ publications {
+ release(MavenPublication) {
+ afterEvaluate {
+ from components.release
+ }
+ groupId = "com.badoo.ribs"
+ version = VERSION_NAME
+
+ pom {
+ name.set("MVICore")
+ description.set("Badoo RIBs is an evolution of Uber RIBs, with notable differences and additions")
+ url.set("https://github.com/badoo/RIBs/")
+ licenses {
+ license {
+ name.set("The Apache Software License, Version 2.0")
+ url.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
+ }
+ }
+ developers {
+ developer {
+ id.set("badoo")
+ name.set("Badoo Trading Limited")
+ }
+ }
+ scm {
+ connection.set("scm:git:git://github.com/badoo/RIBs.git")
+ developerConnection.set("scm:git:ssh://git@github.com/badoo/RIBs.git")
+ url.set("https://github.com/badoo/RIBs/")
+ }
+ }
+ }
+ }
}
}
+
diff --git a/gradle/utils.gradle b/gradle/utils.gradle
index 10db1a585..f4e3be774 100755
--- a/gradle/utils.gradle
+++ b/gradle/utils.gradle
@@ -37,7 +37,6 @@ ext.junitTestImplementation = { it ->
testImplementation deps.test.junitParams
testRuntimeOnly deps.test.junitEngine
testImplementation deps.test.junitVintage
- testImplementation deps.test.byteBuddy
testImplementation project(':internal:junitextensions')
}
}
@@ -79,6 +78,11 @@ private def configureAndroidModule(Project project) {
}
}
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+
project.afterEvaluate {
project.android.kotlinOptions.freeCompilerArgs += "-Xopt-in=com.badoo.ribs.annotation.ExperimentalApi"
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 063e574e6..5fbdbe6a7 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-7.4.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
diff --git a/internal/junitextensions/build.gradle b/internal/junitextensions/build.gradle
index 54517642b..2cca1259d 100644
--- a/internal/junitextensions/build.gradle
+++ b/internal/junitextensions/build.gradle
@@ -8,7 +8,15 @@ dependencies {
}
android {
+ namespace 'com.badoo.ribs.internal.junitextensions'
+
packagingOptions {
- exclude 'META-INF/LICENSE*.*'
+ jniLibs {
+ excludes += ['META-INF/LICENSE*.*']
+ }
+ resources {
+ excludes += ['META-INF/LICENSE*.*']
+ }
}
}
+
diff --git a/internal/junitextensions/src/main/AndroidManifest.xml b/internal/junitextensions/src/main/AndroidManifest.xml
deleted file mode 100644
index cc3069585..000000000
--- a/internal/junitextensions/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/libraries/rib-base-test-activity/build.gradle b/libraries/rib-base-test-activity/build.gradle
index 4f9c33639..afcf812d6 100644
--- a/libraries/rib-base-test-activity/build.gradle
+++ b/libraries/rib-base-test-activity/build.gradle
@@ -1,6 +1,8 @@
configureAndroidLibrary(project)
android {
+ namespace 'com.badoo.ribs.test.activity'
+
defaultConfig {
versionCode 1
versionName '1.0'
diff --git a/libraries/rib-base-test-activity/src/main/AndroidManifest.xml b/libraries/rib-base-test-activity/src/main/AndroidManifest.xml
index d7ab8e207..cceb5a314 100644
--- a/libraries/rib-base-test-activity/src/main/AndroidManifest.xml
+++ b/libraries/rib-base-test-activity/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
+ xmlns:android="http://schemas.android.com/apk/res/android">
diff --git a/libraries/rib-base-test-rx2/build.gradle b/libraries/rib-base-test-rx2/build.gradle
index 93a507a69..7def029a4 100644
--- a/libraries/rib-base-test-rx2/build.gradle
+++ b/libraries/rib-base-test-rx2/build.gradle
@@ -1,6 +1,8 @@
configureAndroidLibrary(project)
android {
+ namespace 'com.badoo.ribs.test.rx2'
+
defaultConfig {
versionCode 1
versionName '1.0'
@@ -22,7 +24,7 @@ dependencies {
api deps.external.rxjava2
api deps.external.rxrelay2
- implementation deps.test.mockito
+ implementation deps.test.mockitoKotlin
}
apply from: rootProject.file('gradle/gradle-mvn-push.gradle')
diff --git a/libraries/rib-base-test-rx2/src/main/AndroidManifest.xml b/libraries/rib-base-test-rx2/src/main/AndroidManifest.xml
deleted file mode 100644
index 4dca1ac38..000000000
--- a/libraries/rib-base-test-rx2/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/libraries/rib-base-test-rx2/src/main/java/com/badoo/common/ribs/rx2/InteractorTestHelper.kt b/libraries/rib-base-test-rx2/src/main/java/com/badoo/common/ribs/rx2/InteractorTestHelper.kt
index 8f9838571..38f6b98fb 100644
--- a/libraries/rib-base-test-rx2/src/main/java/com/badoo/common/ribs/rx2/InteractorTestHelper.kt
+++ b/libraries/rib-base-test-rx2/src/main/java/com/badoo/common/ribs/rx2/InteractorTestHelper.kt
@@ -10,10 +10,9 @@ import com.jakewharton.rxrelay2.PublishRelay
import com.jakewharton.rxrelay2.Relay
import io.reactivex.ObservableSource
import io.reactivex.Observer
-import org.mockito.ArgumentMatchers.any
-import org.mockito.Mockito
-import org.mockito.Mockito.mock
-import org.mockito.Mockito.`when` as whenever
+import org.mockito.kotlin.any
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
@Deprecated("Use RibInteractorTestHelper")
inline fun createInteractorTestHelper(
@@ -29,7 +28,7 @@ inline fun Interactor.mockIO(
inputRelay: Relay = PublishRelay.create(),
outputRelay: Relay