Skip to content

Commit

Permalink
refactor: code brevity
Browse files Browse the repository at this point in the history
  • Loading branch information
CraZyLegenD committed Jan 12, 2021
1 parent a6365f1 commit 2975d62
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 156 deletions.
147 changes: 13 additions & 134 deletions database/src/main/java/com/crazylegend/database/DBResultExtensions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ val databaseEmptyDB get() = DBResult.EmptyDB
fun <T> databaseSubscribe(response: T?): DBResult<T> = if (response == null) databaseEmptyDB else databaseSuccess<T>(response)


fun <T> databaseSubscribeList(response: T?, includeEmptyData: Boolean = false): DBResult<T> {
fun <T> databaseSubscribeList(response: T?, includeEmptyData: Boolean = true): DBResult<T> {
return when {
response == null -> {
databaseEmptyDB
Expand Down Expand Up @@ -74,82 +74,23 @@ fun <T> MutableLiveData<DBResult<T>>.emptyDataPost() {
postValue(databaseEmptyDB)
}


fun <T> MutableLiveData<DBResult<T>>.subscribe(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
value = databaseEmptyDB
} else {
value = databaseSuccess(queryModel)
}
} else {
queryModel?.apply {
value = databaseSuccess(this)
}
}
fun <T> MutableLiveData<DBResult<T>>.subscribe(queryModel: T?) {
value = databaseSubscribe(queryModel)
}


fun <T> MutableLiveData<DBResult<T>>.subscribePost(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
postValue(databaseEmptyDB)
} else {
postValue(databaseSuccess(queryModel))
}
} else {
queryModel?.apply {
postValue(databaseSuccess(this))
}
}
fun <T> MutableLiveData<DBResult<T>>.subscribePost(queryModel: T?) {
postValue(databaseSubscribe(queryModel))
}


fun <T> MutableLiveData<DBResult<T>>.subscribeList(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
value = databaseEmptyDB
} else {
if (this is List<*>) {
val list = this as List<*>
if (list.isNullOrEmpty()) {
value = databaseEmptyDB
} else {
value = databaseSuccess(queryModel)
}
} else {
value = databaseSuccess(queryModel)
}
}
} else {
queryModel?.apply {
value = databaseSuccess(this)
}
}
value = databaseSubscribeList(queryModel, includeEmptyData)
}


fun <T> MutableLiveData<DBResult<T>>.subscribeListPost(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
postValue(databaseEmptyDB)
} else {
if (this is List<*>) {
val list = this as List<*>
if (list.isNullOrEmpty()) {
postValue(databaseEmptyDB)
} else {
postValue(databaseSuccess(queryModel))
}
} else {
postValue(databaseSuccess(queryModel))
}
}
} else {
queryModel?.apply {
postValue(databaseSuccess(this))
}
}
postValue(databaseSubscribeList(queryModel, includeEmptyData))
}

fun <T> MutableLiveData<DBResult<T>>.callError(throwable: Throwable) {
Expand All @@ -175,8 +116,6 @@ inline fun <T> MutableLiveData<DBResult<T>>.onSuccess(action: (T) -> Unit) {
is DBResult.Success -> {
action(it.value)
}
else -> {
}
}
}
}
Expand All @@ -187,8 +126,6 @@ inline fun <T> LiveData<DBResult<T>>.onSuccess(action: (model: T) -> Unit = { _
is DBResult.Success -> {
action(it.value)
}
else -> {
}
}
}
}
Expand Down Expand Up @@ -237,42 +174,13 @@ fun <T> MutableStateFlow<DBResult<T>>.emptyData() {
}


fun <T> MutableStateFlow<DBResult<T>>.subscribe(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
value = databaseEmptyDB
} else {
value = databaseSuccess(queryModel)
}
} else {
queryModel?.apply {
value = databaseSuccess(this)
}
}
fun <T> MutableStateFlow<DBResult<T>>.subscribe(queryModel: T?) {
value = databaseSubscribe(queryModel)
}


fun <T> MutableStateFlow<DBResult<T>>.subscribeList(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
value = databaseEmptyDB
} else {
if (this is List<*>) {
val list = this as List<*>
if (list.isNullOrEmpty()) {
value = databaseEmptyDB
} else {
value = databaseSuccess(queryModel)
}
} else {
value = databaseSuccess(queryModel)
}
}
} else {
queryModel?.apply {
value = databaseSuccess(this)
}
}
value = databaseSubscribeList(queryModel, includeEmptyData)
}


Expand All @@ -295,42 +203,13 @@ suspend fun <T> MutableSharedFlow<DBResult<T>>.emptyData() {
}


suspend fun <T> MutableSharedFlow<DBResult<T>>.subscribe(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
emit(databaseEmptyDB)
} else {
emit(databaseSuccess(queryModel))
}
} else {
queryModel?.apply {
emit(databaseSuccess(this))
}
}
suspend fun <T> MutableSharedFlow<DBResult<T>>.subscribe(queryModel: T?) {
emit(databaseSubscribe(queryModel))
}


suspend fun <T> MutableSharedFlow<DBResult<T>>.subscribeList(queryModel: T?, includeEmptyData: Boolean = false) {
if (includeEmptyData) {
if (queryModel == null) {
emit(databaseEmptyDB)
} else {
if (this is List<*>) {
val list = this as List<*>
if (list.isNullOrEmpty()) {
emit(databaseEmptyDB)
} else {
emit(databaseSuccess(queryModel))
}
} else {
emit(databaseSuccess(queryModel))
}
}
} else {
queryModel?.apply {
emit(databaseSuccess(this))
}
}
emit(databaseSubscribeList(queryModel, includeEmptyData))
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ inline fun <T> CoroutineScope.makeDBCallFlow(
try {
queryModel.onFlow()
queryModel?.collect {
dbResult.subscribePost(it, includeEmptyData)
dbResult.subscribePost(it)
}
} catch (t: Throwable) {
dbResult.callErrorPost(t)
Expand Down Expand Up @@ -160,7 +160,7 @@ inline fun <T> ViewModel.makeDBCallFlow(
try {
val flow = dbCall()
flow?.collect {
dbResult.subscribePost(it, includeEmptyData)
dbResult.subscribePost(it)
}
} catch (t: Throwable) {
dbResult.callErrorPost(t)
Expand Down Expand Up @@ -198,7 +198,7 @@ inline fun <T> CoroutineScope.makeDBCallAsync(
val task = async(ioDispatcher) {
dbCall()
}
dbResult.subscribe(task.await(), includeEmptyData)
dbResult.subscribe(task.await())
} catch (t: Throwable) {
dbResult.callError(t)
}
Expand Down Expand Up @@ -258,7 +258,7 @@ inline fun <T> ViewModel.makeDBCallAsync(
val task = async(ioDispatcher) {
dbCall()
}
dbResult.subscribe(task.await(), includeEmptyData)
dbResult.subscribe(task.await())
} catch (t: Throwable) {
dbResult.callError(t)
}
Expand Down Expand Up @@ -303,7 +303,7 @@ fun <T> CoroutineScope.makeDBCallAsync(
val task = async(ioDispatcher) {
queryModel
}
dbResult.subscribe(task.await(), includeEmptyData)
dbResult.subscribe(task.await())
} catch (t: Throwable) {
dbResult.callError(t)
}
Expand Down Expand Up @@ -348,7 +348,7 @@ fun <T> CoroutineScope.makeDBCall(
dbResult.queryingPost()
return launch(ioDispatcher) {
try {
dbResult.subscribePost(queryModel, includeEmptyData)
dbResult.subscribePost(queryModel)
} catch (t: Throwable) {
dbResult.callErrorPost(t)
}
Expand Down Expand Up @@ -380,7 +380,7 @@ fun <T> ViewModel.makeDBCall(
dbResult.queryingPost()
return viewModelIOCoroutine {
try {
dbResult.subscribePost(dbCall(), includeEmptyData)
dbResult.subscribePost(dbCall())
} catch (t: Throwable) {
dbResult.callErrorPost(t)
}
Expand Down Expand Up @@ -445,7 +445,7 @@ fun <T> CoroutineScope.makeDBCall(

return launch(ioDispatcher) {
try {
dbResult.subscribePost(dbCall(), includeEmptyData)
dbResult.subscribePost(dbCall())
} catch (t: Throwable) {
dbResult.callErrorPost(t)

Expand Down
16 changes: 8 additions & 8 deletions database/src/main/java/com/crazylegend/database/rx/RxDBCalls.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ fun <T> Flowable<T>?.makeDBCall(
call.subscribeOn(ioThreadScheduler)
.observeOn(mainThreadScheduler)
.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
}).addTo(compositeDisposable)
Expand Down Expand Up @@ -80,7 +80,7 @@ fun <T> Single<T>?.makeDBCall(
) {
result.querying()
this?.subscribeOn(ioThreadScheduler)?.observeOn(mainThreadScheduler)?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})?.addTo(compositeDisposable)
Expand Down Expand Up @@ -116,7 +116,7 @@ fun <T> Observable<T>?.makeDBCall(
result.querying()

this?.subscribeOn(ioThreadScheduler)?.observeOn(mainThreadScheduler)?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})?.addTo(compositeDisposable)
Expand Down Expand Up @@ -151,7 +151,7 @@ fun <T> Maybe<T>?.makeDBCall(
) {
result.querying()
this?.subscribeOn(ioThreadScheduler)?.observeOn(mainThreadScheduler)?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})?.addTo(compositeDisposable)
Expand Down Expand Up @@ -182,15 +182,15 @@ fun <T> CompositeDisposable.makeDBCall(result: MutableLiveData<DBResult<T>>, dro
if (dropBackPressure) {
disposable?.onBackpressureDrop()
?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})
?.addTo(this)
} else {
disposable
?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})
Expand Down Expand Up @@ -233,7 +233,7 @@ fun <T> CompositeDisposable.makeDBCallSingle(result: MutableLiveData<DBResult<T>
?.subscribeOn(ioThreadScheduler)
?.observeOn(mainThreadScheduler)
?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})
Expand Down Expand Up @@ -261,7 +261,7 @@ fun <T> CompositeDisposable.makeDBCallMaybe(result: MutableLiveData<DBResult<T>>
?.subscribeOn(ioThreadScheduler)
?.observeOn(mainThreadScheduler)
?.subscribe({
result.subscribe(it, includeEmptyData)
result.subscribe(it)
}, {
result.callError(it)
})
Expand Down
Loading

0 comments on commit 2975d62

Please sign in to comment.