coil icon indicating copy to clipboard operation
coil copied to clipboard

Multiple listeners for ImageRequest

Open Koitharu opened this issue 1 year ago • 2 comments

Is your feature request related to a problem? Please describe. Support for multiple listeners for ImageRequest

Describe the solution you'd like Now ImageRequest.Builder allow to set only one Listener, so call listener() overrides previous listener value. It would be nice to add something like addListener()

Additional context None

Koitharu avatar Aug 18 '23 12:08 Koitharu

Can I take this issue?

l2hyunwoo avatar Dec 10 '23 05:12 l2hyunwoo

Would creating your own composite listener fulfill this use case?

class CompositeListener : ImageRequest.Listener {
    val listeners = mutableListOf<ImageRequest.Listener>()

    override fun onStart(request: ImageRequest) {
        listeners.forEach { it.onStart(request) }
    }

    override fun onCancel(request: ImageRequest) {
        listeners.forEach { it.onCancel(request) }
    }

    override fun onSuccess(request: ImageRequest, result: SuccessResult) {
        listeners.forEach { it.onSuccess(request, result) }
    }

    override fun onError(request: ImageRequest, result: ErrorResult) {
        listeners.forEach { it.onError(request, result) }
    }
}

colinrtwhite avatar Jan 20 '24 02:01 colinrtwhite

Going to close this as it's possible to do the above. ^

colinrtwhite avatar Jun 26 '24 17:06 colinrtwhite