Skip to content

Commit 80aa810

Browse files
committed
Handle disposables in example, just to show good practices
1 parent 31f1837 commit 80aa810

File tree

1 file changed

+35
-22
lines changed
  • example-android/app/src/main/java/com/akaita/java/rxjava2debug/exampleandroid

1 file changed

+35
-22
lines changed

example-android/app/src/main/java/com/akaita/java/rxjava2debug/exampleandroid/MainActivity.kt

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,33 @@ import android.util.Log
2323
import com.akaita.java.rxjava2debug.RxJava2Debug
2424
import io.reactivex.Single
2525
import io.reactivex.android.schedulers.AndroidSchedulers
26+
import io.reactivex.disposables.CompositeDisposable
2627
import io.reactivex.functions.Consumer
2728
import io.reactivex.schedulers.Schedulers
2829
import kotlinx.android.synthetic.main.activity_main.*
2930

3031
class MainActivity : AppCompatActivity() {
3132

33+
private val disposables = CompositeDisposable()
34+
3235
override fun onCreate(savedInstanceState: Bundle?) {
3336
super.onCreate(savedInstanceState)
3437
setContentView(R.layout.activity_main)
3538

36-
toggleAssembly.setOnCheckedChangeListener({ _, isChecked -> toggleRxJava2Debug(isChecked) })
39+
toggleAssembly.setOnCheckedChangeListener { _, isChecked -> toggleRxJava2Debug(isChecked) }
3740
handledException.setOnClickListener { generateHandledException() }
3841
unhandledException.setOnClickListener { generateUnhandledException() }
3942
}
4043

44+
override fun onDestroy() {
45+
disposables.clear()
46+
super.onDestroy()
47+
}
48+
4149
/**
4250
* Toggle RxJava2Debug on and off.
4351
*/
44-
private fun toggleRxJava2Debug( enable: Boolean ) {
52+
private fun toggleRxJava2Debug(enable: Boolean) {
4553
if (enable) {
4654
RxJava2Debug.enableRxJava2AssemblyTracking(ExampleApplication.MY_CODE_PACKAGES)
4755
} else {
@@ -57,19 +65,21 @@ class MainActivity : AppCompatActivity() {
5765
* It handles the exception by printing it in LogCat and the screen, so the developer can fix it
5866
*/
5967
private fun generateHandledException() {
60-
Single.just("event")
61-
.subscribeOn(Schedulers.computation())
62-
.doOnEvent { _, _ -> Log.i("HandledException", "Start") }
63-
.map { null }
64-
.observeOn(AndroidSchedulers.mainThread())
65-
.subscribe(
66-
{ Log.i("HandledException", "Subscribe") },
67-
{ t: Throwable ->
68-
val enhancedStackTrace = RxJava2Debug.getEnhancedStackTrace(t)
69-
Log.e("HandledException", "Error", enhancedStackTrace)
70-
displayStackTrace(enhancedStackTrace)
71-
}
72-
)
68+
disposables.add(
69+
Single.just("event")
70+
.subscribeOn(Schedulers.computation())
71+
.doOnEvent { _, _ -> Log.i("HandledException", "Start") }
72+
.map { null }
73+
.observeOn(AndroidSchedulers.mainThread())
74+
.subscribe(
75+
{ Log.i("HandledException", "Subscribe") },
76+
{ t: Throwable ->
77+
val enhancedStackTrace = RxJava2Debug.getEnhancedStackTrace(t)
78+
Log.e("HandledException", "Error", enhancedStackTrace)
79+
displayStackTrace(enhancedStackTrace)
80+
}
81+
)
82+
)
7383
}
7484

7585
/**
@@ -78,12 +88,14 @@ class MainActivity : AppCompatActivity() {
7888
* No implementation for `onError` is provided, so the exception will be thrown and it will eventually crash the app O_o
7989
*/
8090
private fun generateUnhandledException() {
81-
Single.just("event")
82-
.subscribeOn(Schedulers.computation())
83-
.doOnEvent { _, _ -> Log.i("HandledException", "Start") }
84-
.map { null }
85-
.observeOn(AndroidSchedulers.mainThread())
86-
.subscribe(Consumer { Log.i("UnhandledException", "Subscribe") })
91+
disposables.add(
92+
Single.just("event")
93+
.subscribeOn(Schedulers.computation())
94+
.doOnEvent { _, _ -> Log.i("HandledException", "Start") }
95+
.map { null }
96+
.observeOn(AndroidSchedulers.mainThread())
97+
.subscribe(Consumer { Log.i("UnhandledException", "Subscribe") })
98+
)
8799
}
88100

89101
/**
@@ -93,6 +105,7 @@ class MainActivity : AppCompatActivity() {
93105
textView.text = Html.fromHtml(
94106
throwable
95107
?.toHtml()
96-
?.highlight(ExampleApplication.MY_CODE_PACKAGES) ?: "Something horrible happened!") //
108+
?.highlight(ExampleApplication.MY_CODE_PACKAGES)
109+
?: "Something horrible happened!") //
97110
}
98111
}

0 commit comments

Comments
 (0)