Skip to content

Commit

Permalink
Merge pull request #1 from trading-point/rxjava3
Browse files Browse the repository at this point in the history
Migrate to RxJava 3
  • Loading branch information
NaSOS authored Dec 15, 2021
2 parents 06107e6 + b427dbb commit cd2590b
Show file tree
Hide file tree
Showing 20 changed files with 70 additions and 54 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# RxWorkManagerObservers
# An RxJava3 fork of [RxWorkManagerObservers](https://github.com/PaulinaSadowska/RxWorkManagerObservers)

This library contains a set of extension functions to the WorkManager and LiveData allowing to observe enqueued work in a reactive manner.

Expand Down
9 changes: 4 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.3.21'
ext.kotlin_version = '1.5.31'
repositories {
google()
jcenter()

mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath 'com.android.tools.build:gradle:7.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand All @@ -18,7 +17,7 @@ buildscript {
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}

Expand Down
6 changes: 3 additions & 3 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Sat Mar 16 12:50:33 CET 2019
#Tue Dec 14 18:53:07 EET 2021
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
zipStoreBase=GRADLE_USER_HOME
4 changes: 4 additions & 0 deletions jitpack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
jdk:
- openjdk11
install:
- ./gradlew build :rx-workmanager-observers:publishToMavenLocal
34 changes: 23 additions & 11 deletions rx-workmanager-observers/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'maven-publish'

android {
compileSdkVersion 28


compileSdkVersion 30

defaultConfig {
minSdkVersion 16
targetSdkVersion 28
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Expand All @@ -23,20 +22,33 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

project.afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
}
}
}
}

ext {
ext.versions = [:]
versions.androidX = "1.0.2"
versions.workManager = "2.0.0"
versions.androidX = "1.1.0"
versions.workManager = "2.5.0"

versions.rxJava = "2.2.7"
versions.rxAndroid = "2.1.1"
versions.rxJava = "3.1.3"
versions.rxAndroid = "3.0.0"
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

implementation "androidx.appcompat:appcompat:$versions.androidX"

Expand All @@ -45,8 +57,8 @@ dependencies {
androidTestImplementation "androidx.work:work-testing:$versions.workManager"

// Rx
implementation "io.reactivex.rxjava2:rxjava:$versions.rxJava"
implementation "io.reactivex.rxjava2:rxandroid:$versions.rxAndroid"
implementation "io.reactivex.rxjava3:rxjava:$versions.rxJava"
implementation "io.reactivex.rxjava3:rxandroid:$versions.rxAndroid"

// unit tests
testImplementation 'junit:junit:4.12'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.paulinasadowska.rxworkmanagerobservers

import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.*
import com.paulinasadowska.rxworkmanagerobservers.extensions.getWorkDatasForUniqueWorkObservable
import com.paulinasadowska.rxworkmanagerobservers.utils.DEFAULT_DELAY
import com.paulinasadowska.rxworkmanagerobservers.utils.DEFAULT_DELAY_LONG
import com.paulinasadowska.rxworkmanagerobservers.utils.initializeTestWorkManager
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker.Companion.KEY_ECHO_MESSAGE
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.hamcrest.MatcherAssert
import org.hamcrest.Matchers
import org.hamcrest.collection.IsIterableContainingInAnyOrder
Expand All @@ -29,7 +29,7 @@ class UniqueWorkDataTest {
internal const val SMALL_DELAY = 10L
}

private val workManager by lazy { WorkManager.getInstance() }
private val workManager by lazy { WorkManager.getInstance(getApplicationContext()) }

@Before
fun setUp() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.paulinasadowska.rxworkmanagerobservers

import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.OneTimeWorkRequest
import androidx.work.OneTimeWorkRequestBuilder
Expand All @@ -8,14 +9,13 @@ import androidx.work.testing.WorkManagerTestInitHelper
import androidx.work.workDataOf
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkFailedException
import com.paulinasadowska.rxworkmanagerobservers.extensions.getWorkDataByIdSingle
import com.paulinasadowska.rxworkmanagerobservers.extensions.toWorkDataSingle
import com.paulinasadowska.rxworkmanagerobservers.utils.DEFAULT_DELAY
import com.paulinasadowska.rxworkmanagerobservers.utils.createEchoRequest
import com.paulinasadowska.rxworkmanagerobservers.utils.initializeTestWorkManager
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker.Companion.KEY_ECHO_MESSAGE
import com.paulinasadowska.rxworkmanagerobservers.workers.EmptyWorker
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
Expand All @@ -29,7 +29,7 @@ class WorkDataSingleTest {
private const val EXAMPLE_ECHO_MESSAGE = "some message"
}

private val workManager by lazy { WorkManager.getInstance() }
private val workManager by lazy { WorkManager.getInstance(getApplicationContext()) }

@Before
fun setUp() {
Expand Down Expand Up @@ -80,7 +80,7 @@ class WorkDataSingleTest {
.setInitialDelay(10, TimeUnit.DAYS)
.build()

val testDriver = WorkManagerTestInitHelper.getTestDriver()
val testDriver = WorkManagerTestInitHelper.getTestDriver(getApplicationContext())

//when
workManager.enqueue(request)
Expand All @@ -92,7 +92,7 @@ class WorkDataSingleTest {
sleep(DEFAULT_DELAY)

workSingle.assertNoValues()
testDriver.setInitialDelayMet(request.id)
testDriver?.setInitialDelayMet(request.id)

sleep(DEFAULT_DELAY)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.paulinasadowska.rxworkmanagerobservers

import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.WorkManager
import androidx.work.WorkRequest
Expand All @@ -11,7 +12,7 @@ import com.paulinasadowska.rxworkmanagerobservers.utils.DEFAULT_DELAY_LONG
import com.paulinasadowska.rxworkmanagerobservers.utils.createEchoRequest
import com.paulinasadowska.rxworkmanagerobservers.utils.initializeTestWorkManager
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker.Companion.KEY_ECHO_MESSAGE
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers
import org.hamcrest.Matchers.emptyIterable
Expand All @@ -31,7 +32,7 @@ class WorkDatasObservableTest {
private const val REQUEST_TAG = "requestTag"
}

private val workManager by lazy { WorkManager.getInstance() }
private val workManager by lazy { WorkManager.getInstance(getApplicationContext()) }

@Before
fun setUp() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package com.paulinasadowska.rxworkmanagerobservers

import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.*
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkFailedException
import com.paulinasadowska.rxworkmanagerobservers.extensions.getWorkInfoByIdObservable
import com.paulinasadowska.rxworkmanagerobservers.extensions.toWorkInfoObservable
import com.paulinasadowska.rxworkmanagerobservers.utils.DEFAULT_DELAY
import com.paulinasadowska.rxworkmanagerobservers.utils.createEchoRequest
import com.paulinasadowska.rxworkmanagerobservers.utils.initializeTestWorkManager
import com.paulinasadowska.rxworkmanagerobservers.workers.EchoWorker.Companion.KEY_ECHO_MESSAGE
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import junit.framework.Assert.assertEquals
import org.junit.Before
import org.junit.Test
Expand All @@ -23,7 +23,7 @@ class WorkInfoObservableTest {
private const val EXAMPLE_ECHO_MESSAGE = "some message"
}

private val workManager by lazy { WorkManager.getInstance() }
private val workManager by lazy { WorkManager.getInstance(getApplicationContext()) }

@Before
fun setUp() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.paulinasadowska.rxworkmanagerobservers.utils

internal const val DEFAULT_DELAY = 30L
internal const val DEFAULT_DELAY_LONG = 60L
internal const val DEFAULT_DELAY = 50L
internal const val DEFAULT_DELAY_LONG = 100L
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.work.Data
import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.base.MainThreadSingle
import com.paulinasadowska.rxworkmanagerobservers.observers.WorkDataObserver
import io.reactivex.SingleObserver
import io.reactivex.rxjava3.core.SingleObserver

class WorkDataSingle(
private val liveData: LiveData<WorkInfo>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.work.Data
import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.base.MainThreadObservable
import com.paulinasadowska.rxworkmanagerobservers.observers.WorkDatasObserver
import io.reactivex.Observer
import io.reactivex.rxjava3.core.Observer

class WorkDatasObservable(
private val liveData: LiveData<List<WorkInfo>>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.base.MainThreadObservable
import com.paulinasadowska.rxworkmanagerobservers.observers.WorkInfoObserver
import io.reactivex.Observer
import io.reactivex.rxjava3.core.Observer

class WorkInfoObservable(
private val liveData: LiveData<WorkInfo>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.paulinasadowska.rxworkmanagerobservers.base

import com.paulinasadowska.rxworkmanagerobservers.exceptions.LiveDataSubscribedOnWrongThreadException
import io.reactivex.Observable
import io.reactivex.Observer
import io.reactivex.disposables.Disposables
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.core.Observer
import io.reactivex.rxjava3.disposables.Disposable

abstract class MainThreadObservable<T> : Observable<T>() {
abstract class MainThreadObservable<T : Any> : Observable<T>() {

override fun subscribeActual(observer: Observer<in T>) {
if (isOnMainThread()) {
Expand All @@ -18,7 +18,7 @@ abstract class MainThreadObservable<T> : Observable<T>() {
abstract fun onSubscribeOnMainThread(observer: Observer<in T>)

private fun Observer<*>.subscribeAndCallWrongThreadError() {
onSubscribe(Disposables.empty())
onSubscribe(Disposable.empty())
onError(LiveDataSubscribedOnWrongThreadException())
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.paulinasadowska.rxworkmanagerobservers.base

import com.paulinasadowska.rxworkmanagerobservers.exceptions.LiveDataSubscribedOnWrongThreadException
import io.reactivex.Single
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposables
import io.reactivex.rxjava3.core.Single
import io.reactivex.rxjava3.core.SingleObserver
import io.reactivex.rxjava3.disposables.Disposable

abstract class MainThreadSingle<T> : Single<T>() {
abstract class MainThreadSingle<T : Any> : Single<T>() {

override fun subscribeActual(observer: SingleObserver<in T>) {
if (isOnMainThread()) {
Expand All @@ -18,7 +18,7 @@ abstract class MainThreadSingle<T> : Single<T>() {
abstract fun onSubscribeOnMainThread(observer: SingleObserver<in T>)

private fun SingleObserver<*>.subscribeAndCallWrongThreadError() {
onSubscribe(Disposables.empty())
onSubscribe(Disposable.empty())
onError(LiveDataSubscribedOnWrongThreadException())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.WorkDataSingle
import com.paulinasadowska.rxworkmanagerobservers.WorkDatasObservable
import com.paulinasadowska.rxworkmanagerobservers.WorkInfoObservable
import io.reactivex.Observable
import io.reactivex.Single
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.core.Single

fun LiveData<WorkInfo>.toWorkDataSingle(): Single<Data> {
return WorkDataSingle(this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkCancelledException
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkFailedException
import com.paulinasadowska.rxworkmanagerobservers.observers.base.WorkInfoLiveDataObserver
import io.reactivex.SingleObserver
import io.reactivex.rxjava3.core.SingleObserver

internal class WorkDataObserver(
private val observer: SingleObserver<in Data>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkCancelledExcept
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkException
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkFailedException
import com.paulinasadowska.rxworkmanagerobservers.observers.base.WorkInfosLiveDataObserver
import io.reactivex.Observer
import io.reactivex.rxjava3.core.Observer
import java.util.*

internal class WorkDatasObserver(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.work.WorkInfo
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkException
import com.paulinasadowska.rxworkmanagerobservers.exceptions.WorkFailedException
import com.paulinasadowska.rxworkmanagerobservers.observers.base.WorkInfoLiveDataObserver
import io.reactivex.Observer
import io.reactivex.rxjava3.core.Observer

internal class WorkInfoObserver(
private val observer: Observer<in WorkInfo>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.paulinasadowska.rxworkmanagerobservers.observers.base

import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
import io.reactivex.android.MainThreadDisposable
import io.reactivex.rxjava3.android.MainThreadDisposable

internal abstract class LiveDataObserver<T>(
private val liveData: LiveData<T>
Expand Down

0 comments on commit cd2590b

Please sign in to comment.