Class PollingVisibilityTracker

  • All Implemented Interfaces:
    com.inmobi.media.ads.common.visibility.tracker.VisibilityTracker

    
    public final class PollingVisibilityTracker
    extends VisibilityTrackerImpl
                        

    Polling-based implementation of VisibilityTrackerImpl for periodic visibility checking.

    This class provides a timer-driven visibility tracking solution that periodically checks the visibility status of a tracked view at configurable intervals. It uses coroutines for non-blocking polling operations and maintains proper lifecycle management for efficient resource usage and battery optimization.

    The implementation features:

    • Configurable polling intervals for balancing precision and performance

    • Thread-safe pause/resume operations using atomic flags

    • Proper coroutine lifecycle management with safe cancellation

    • Main thread visibility checks for UI safety

    • Automatic polling loop termination on pause/stop operations

    The polling approach is suitable for scenarios requiring real-time visibility monitoring with predictable resource consumption and configurable accuracy. It ensures visibility checks occur on the main thread for safe UI access while managing the polling logic on background threads.

    • 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
      Unit resume() Resumes visibility tracking.
      Unit pause() Pauses visibility tracking.
      Unit stop() Stops visibility tracking.
      Unit onVisibilityCheck() Starts the visibility polling process.
      • Methods inherited from class com.inmobi.media.ads.common.visibility.tracker.VisibilityTrackerImpl

        startTracking
      • Methods inherited from class java.lang.Object

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

      • resume

         Unit resume()

        Resumes visibility tracking.

        This method sets the isPaused flag to false and calls onVisibilityCheck to restart the polling process.

      • pause

         Unit pause()

        Pauses visibility tracking.

      • stop

         Unit stop()

        Stops visibility tracking.

      • onVisibilityCheck

         Unit onVisibilityCheck()

        Starts the visibility polling process.

        This method checks if the tracker is paused or if a visibility job is already running. If not, it launches a new coroutine to start the polling process.