Skip to content

Commit

Permalink
add rx schedulers and activity launching extensions (#1)
Browse files Browse the repository at this point in the history
* add rx schedulers and activity launching extensions

* change extension class from base module to sample demo extension
  • Loading branch information
HeinXtet authored and khunzohn committed Sep 16, 2019
1 parent 356ca7a commit e55eda5
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 0 deletions.
63 changes: 63 additions & 0 deletions mvi-rx/src/main/java/com/codigo/mvi/rx/rxutils/RxSchedulers.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.codigo.mvi.rx.rxutils

import io.reactivex.FlowableTransformer
import io.reactivex.ObservableTransformer
import io.reactivex.SingleTransformer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers

/**
* Created by heinhtet on 12,September,2019
*/
object RxSchedulers {
fun <T> applyObservableAsync(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
}

fun <T> applySingleAsync(): SingleTransformer<T, T> {
return SingleTransformer { observable ->
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
}

fun <T> applyObservableCompute(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
}
}

fun <T> applyObservableMainThread(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable.observeOn(
AndroidSchedulers.mainThread()
)
}
}

fun <T> applyFlowableMainThread(): FlowableTransformer<T, T> {
return FlowableTransformer { flowable ->
flowable.observeOn(
AndroidSchedulers.mainThread()
)
}
}

fun <T> applyFlowableAsysnc(): FlowableTransformer<T, T> {
return FlowableTransformer { flowable ->
flowable
.observeOn(AndroidSchedulers.mainThread())
}
}

fun <T> applyFlowableCompute():
FlowableTransformer<T, T> {
return FlowableTransformer { flowable ->
flowable.observeOn(AndroidSchedulers.mainThread())
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.codigo.glory.app.extensions

import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle

/**
* Created by heinhtet on 12,September,2019
*/

/* To Use Activity Launching Extension */

inline fun <reified T : Any> Activity.launchActivity(
requestCode: Int = -1,
options: Bundle? = null,
noinline init: Intent.() -> Unit = {}
) {

val intent = newIntent<T>(this)
intent.init()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
startActivityForResult(intent, requestCode, options)
} else {
startActivityForResult(intent, requestCode)
}
}

inline fun <reified T : Any> Context.launchActivity(
options: Bundle? = null,
noinline init: Intent.() -> Unit = {}
) {

val intent = newIntent<T>(this)
intent.init()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
startActivity(intent, options)
} else {
startActivity(intent)
}
}

inline fun <reified T : Any> newIntent(context: Context): Intent =
Intent(context, T::class.java)

0 comments on commit e55eda5

Please sign in to comment.