Class BaseNativeViewabilityManager

  • All Implemented Interfaces:
    com.inmobi.media.ads.common.viewability.interfaces.IViewabilityManager

    
    public abstract class BaseNativeViewabilityManager
     implements IViewabilityManager
                        

    An abstract base class for managing native ad viewability.

    This class provides common functionality for tracking the viewability of native ads, including handling window lifecycle events (view attachment/detachment), managing view observation, and coordinating a ViewabilityManagerImpl for actual visibility polling.

    Subclasses are responsible for providing a concrete ViewabilityManagerImpl instance and can override the TAG for logging.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      Flow<Unit> registerForTracking() Registers for viewability tracking.
      Unit destroy() Cleans up resources and stops all tracking activities.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BaseNativeViewabilityManager

        BaseNativeViewabilityManager(CoroutineScope coroutineScope, ViewHolderConfig viewabilityModel, ViewabilityCriteria viewabilityCriteria, Flow<Boolean> lifecycleObserver)
        Parameters:
        viewabilityModel - The ViewHolderConfig containing configuration for the views being tracked.
        lifecycleObserver - A Flow that emits true when the view becomes attached/visible in the window, and false otherwise.
    • Method Detail

      • registerForTracking

         Flow<Unit> registerForTracking()

        Registers for viewability tracking.

        Starts the underlying viewabilityManager and handles setup and teardown logic via onStart and onCompletion callbacks.

        Returns:

        A Flow that emits Unit when the viewability criteria are met.

      • destroy

         Unit destroy()

        Cleans up resources and stops all tracking activities.

        This includes stopping the native views observer, the viewability manager, and canceling the lifecycle observer job.