Skip to content

Commit

Permalink
Clear local perf data listener when null
Browse files Browse the repository at this point in the history
Reviewed By: oprisnik

Differential Revision: D45867838

fbshipit-source-id: 87b2bb7bbf5683085f24152fc1dc39fc5ac493e2
  • Loading branch information
steelrooter authored and facebook-github-bot committed May 18, 2023
1 parent 124bcb6 commit 349555d
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
package com.facebook.fresco.ui.common

interface ImagePerfNotifierHolder {
fun setImagePerfNotifier(imagePerfNotifier: ImagePerfNotifier)
fun setImagePerfNotifier(imagePerfNotifier: ImagePerfNotifier?)
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,14 @@ class CombinedImageListenerImpl : CombinedImageListener {
checkAndSetLocalImagePerfStateListener()
}

override fun setLocalImagePerfStateListener(imagePerfNotifier: ImagePerfNotifier) {
override fun setLocalImagePerfStateListener(imagePerfNotifier: ImagePerfNotifier?) {
localImagePerfStateListener = imagePerfNotifier
checkAndSetLocalImagePerfStateListener()
}

private fun checkAndSetLocalImagePerfStateListener() {
(imagePerfControllerListener as? ImagePerfNotifierHolder)?.let { localPerfStatePublisher ->
localImagePerfStateListener?.let { localPerfStatePublisher.setImagePerfNotifier(it) }
}
val localPerfStatePublisher = imagePerfControllerListener as? ImagePerfNotifierHolder
localPerfStatePublisher?.setImagePerfNotifier(localImagePerfStateListener)
}

override fun onSubmit(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,8 @@ class KFrescoController(
listenerManager.setVitoImageRequestListener(globalImageRequestListener)

// Setup local perf data listener
perfDataListener
?.let { ImagePerfDataNotifier(it) }
?.let { listenerManager.setLocalImagePerfStateListener(it) }
val localPerfStateListener = perfDataListener?.let { ImagePerfDataNotifier(it) }
listenerManager.setLocalImagePerfStateListener(localPerfStateListener)

_imageId = imageId
this.viewportDimensions = viewportDimensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,10 @@ public boolean fetch(

// Setup local perf data listener
if (perfDataListener != null) {
ImagePerfNotifier perfDataNotifier = new ImagePerfDataNotifier(perfDataListener);
frescoDrawable.getInternalListener().setLocalImagePerfStateListener(perfDataNotifier);
ImagePerfNotifier localPerfStateListener = new ImagePerfDataNotifier(perfDataListener);
frescoDrawable.getInternalListener().setLocalImagePerfStateListener(localPerfStateListener);
} else {
frescoDrawable.getInternalListener().setLocalImagePerfStateListener(null);
}

frescoDrawable.setOnFadeListener(onFadeListener);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ interface CombinedImageListener : VitoImageRequestListener {
var imageListener: ImageListener?

fun setImagePerfControllerListener(imagePerfControllerListener: ControllerListener2<ImageInfo>?)
fun setLocalImagePerfStateListener(imagePerfNotifier: ImagePerfNotifier)
fun setLocalImagePerfStateListener(imagePerfNotifier: ImagePerfNotifier?)

fun onReset()
}

0 comments on commit 349555d

Please sign in to comment.