diff --git a/app/src/main/java/keijumt/devandroid/fragment/AsyncFragment.kt b/app/src/main/java/keijumt/devandroid/fragment/AsyncFragment.kt index 18e24f0..871b2fc 100644 --- a/app/src/main/java/keijumt/devandroid/fragment/AsyncFragment.kt +++ b/app/src/main/java/keijumt/devandroid/fragment/AsyncFragment.kt @@ -1,5 +1,6 @@ package keijumt.devandroid.fragment +import android.arch.lifecycle.Observer import android.arch.lifecycle.ViewModelProviders import android.databinding.DataBindingUtil import android.os.Bundle @@ -7,6 +8,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import keijumt.devandroid.R import keijumt.devandroid.databinding.FragmentAsyncBinding import keijumt.devandroid.viewmodel.AsyncViewModel @@ -23,8 +25,14 @@ binding = DataBindingUtil.inflate(inflater, R.layout.fragment_async, null, false) asyncViewModel = ViewModelProviders.of(nonNullActivity, viewModelFactory).get(AsyncViewModel::class.java) binding.asyncViewModel = asyncViewModel + subscribe() return binding.root } + fun subscribe() { + asyncViewModel.toastMessage.observe(this, Observer { + Toast.makeText(activity, it, Toast.LENGTH_SHORT).show() + }) + } } diff --git a/app/src/main/java/keijumt/devandroid/viewmodel/AsyncViewModel.kt b/app/src/main/java/keijumt/devandroid/viewmodel/AsyncViewModel.kt index 5f45283..ed8112f 100644 --- a/app/src/main/java/keijumt/devandroid/viewmodel/AsyncViewModel.kt +++ b/app/src/main/java/keijumt/devandroid/viewmodel/AsyncViewModel.kt @@ -7,6 +7,7 @@ import io.reactivex.rxkotlin.subscribeBy import io.reactivex.schedulers.Schedulers import keijumt.devandroid.common.Task +import keijumt.devandroid.databinding.SingleLiveEvent import kotlinx.coroutines.experimental.android.UI import kotlinx.coroutines.experimental.async import kotlinx.coroutines.experimental.launch @@ -14,10 +15,12 @@ class AsyncViewModel @Inject constructor() : BaseViewModel() { + val toastMessage = SingleLiveEvent() + fun async() { val calc = Task(object : Task.Callback { override fun execute(value: Int) { - println("callback is ${value}") + toastMessage.value = "asynctask value is ${value}" } }) calc.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) @@ -26,7 +29,7 @@ fun coroutine() { launch(UI) { val result = calc(3).await() * calc(5).await() - println(result) + toastMessage.value = "coroutine processing value is ${result}" } } @@ -40,7 +43,7 @@ .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onSuccess = { - println(it) + toastMessage.value = "rxjava processing value is ${it}" } ) addDisposable(disposable)