handle disposable properly

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-11-11 15:23:01 +01:00
parent dba30346dc
commit 2c6daedb2b
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -92,6 +92,8 @@ class SetStatusDialogFragment :
val predefinedStatusesList = ArrayList<PredefinedStatus>() val predefinedStatusesList = ArrayList<PredefinedStatus>()
private val disposables: MutableList<Disposable> = ArrayList()
private lateinit var adapter: PredefinedStatusListAdapter private lateinit var adapter: PredefinedStatusListAdapter
private var clearAt: Long? = null private var clearAt: Long? = null
private lateinit var popup: EmojiPopup private lateinit var popup: EmojiPopup
@ -130,7 +132,9 @@ class SetStatusDialogFragment :
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<ResponseBody> { .subscribe(object : Observer<ResponseBody> {
override fun onSubscribe(d: Disposable) {} override fun onSubscribe(d: Disposable) {
disposables.add(d)
}
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
override fun onNext(responseBody: ResponseBody) { override fun onNext(responseBody: ResponseBody) {
@ -152,7 +156,9 @@ class SetStatusDialogFragment :
Log.e(TAG, "Error while fetching predefined statuses", e) Log.e(TAG, "Error while fetching predefined statuses", e)
} }
override fun onComplete() {} override fun onComplete() {
// unused atm
}
}) })
} }
@ -163,6 +169,7 @@ class SetStatusDialogFragment :
.subscribe(object : Observer<StatusOverall> { .subscribe(object : Observer<StatusOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
disposables.add(d)
} }
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
@ -188,6 +195,7 @@ class SetStatusDialogFragment :
} }
override fun onComplete() { override fun onComplete() {
// unused atm
} }
}) })
} }
@ -294,6 +302,7 @@ class SetStatusDialogFragment :
.subscribe(object : Observer<GenericOverall> { .subscribe(object : Observer<GenericOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
disposables.add(d)
} }
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
@ -314,6 +323,7 @@ class SetStatusDialogFragment :
} }
override fun onComplete() { override fun onComplete() {
// unused atm
} }
}) })
} }
@ -432,7 +442,7 @@ class SetStatusDialogFragment :
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<GenericOverall> { .observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<GenericOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
// unused atm disposables.add(d)
} }
override fun onNext(statusOverall: GenericOverall) { override fun onNext(statusOverall: GenericOverall) {
@ -459,7 +469,7 @@ class SetStatusDialogFragment :
) )
.observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<GenericOverall> { .observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<GenericOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
// unused atm disposables.add(d)
} }
override fun onNext(statusOverall: GenericOverall) { override fun onNext(statusOverall: GenericOverall) {
@ -562,7 +572,9 @@ class SetStatusDialogFragment :
) )
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())?.subscribe(object : Observer<GenericOverall> { .observeOn(AndroidSchedulers.mainThread())?.subscribe(object : Observer<GenericOverall> {
override fun onSubscribe(d: Disposable) = Unit override fun onSubscribe(d: Disposable) {
disposables.add(d)
}
override fun onNext(t: GenericOverall) { override fun onNext(t: GenericOverall) {
Log.d(TAG, "PredefinedStatusMessage successfully set") Log.d(TAG, "PredefinedStatusMessage successfully set")
@ -573,7 +585,8 @@ class SetStatusDialogFragment :
Log.e(TAG, "failed to set PredefinedStatusMessage", e) Log.e(TAG, "failed to set PredefinedStatusMessage", e)
} }
override fun onComplete() = Unit override fun onComplete() {
}
}) })
} }
} }
@ -619,6 +632,19 @@ class SetStatusDialogFragment :
} }
} }
private fun dispose() {
for (i in disposables.indices) {
if (!disposables[i].isDisposed) {
disposables[i].dispose()
}
}
}
override fun onDestroy() {
dispose()
super.onDestroy()
}
/** /**
* Fragment creator * Fragment creator
*/ */