Class LocationGeotriggerFeed

    • Constructor Detail

      • LocationGeotriggerFeed

        public LocationGeotriggerFeed()
        Constructs an empty LocationGeotriggerFeed.
        Since:
        100.12.0
      • LocationGeotriggerFeed

        public LocationGeotriggerFeed​(LocationDataSource locationDataSource)
        Constructs a LocationGeotriggerFeed with a LocationDataSource.
        Parameters:
        locationDataSource - a location data source that provides updates for the device location
        Throws:
        java.lang.IllegalArgumentException - if locationDataSource is null
        Since:
        100.12.0
    • Method Detail

      • getFilter

        public ArcadeExpression getFilter()
        Gets an ArcadeExpression that controls whether an update from the LocationGeotriggerFeed is sent to a GeotriggerMonitor.

        The expression uses the Arcade language to determine whether feed entity updates are suitable for monitoring. The ArcadeExpression must evaluate to a boolean where:

        • True indicates that the update will be used.
        • False indicates that the update will not be used.
        Filtering out undesirable updates reduces inaccurate notifications from your GeotriggerMonitor. For example, you could filter out GPS updates where the horizontal accuracy is poor, to avoid false enter and exit notifications.

        With a LocationGeotriggerFeed, the expression inspects a new LocationDataSource.Location object and returns true if it is suitable and false if not. Typically, your expression excludes Location objects where the LocationDataSource.Location.getHorizontalAccuracy() does not meet your criteria - but it could also consider other properties such as LocationDataSource.Location.getVelocity() and LocationDataSource.Location.getCourse().

        Arcade gives you access to the properties of the feed entity with the $locationupdate global variable. This represents a new Location received from your device GPS. For example, an ArcadeExpression with the following string rejects Location updates with a horizontal accuracy greater than 10 meters:

        return $locationupdate.horizontalaccuracy <= 10;.

        Returns:
        an ArcadeExpression that controls whether an update from the LocationGeotriggerFeed is sent to a GeotriggerMonitor, or null if none
        Since:
        100.13.0
        See Also:
        setFilter(ArcadeExpression)
      • setFilter

        public void setFilter​(ArcadeExpression filter)
        Sets an ArcadeExpression that controls whether an update from the LocationGeotriggerFeed is sent to a GeotriggerMonitor.

        The expression uses the Arcade language to determine whether feed entity updates are suitable for monitoring. The ArcadeExpression must evaluate to a boolean where:

        • True indicates that the update will be used.
        • False indicates that the update will not be used.
        Filtering out undesirable updates reduces inaccurate notifications from your GeotriggerMonitor. For example, you could filter out GPS updates where the horizontal accuracy is poor, to avoid false enter and exit notifications.

        With a LocationGeotriggerFeed, the expression inspects a new LocationDataSource.Location object and returns true if it is suitable and false if not. Typically, your expression excludes Location objects where the LocationDataSource.Location.getHorizontalAccuracy() does not meet your criteria — but it could also consider other properties such as LocationDataSource.Location.getVelocity() and LocationDataSource.Location.getCourse().

        Arcade gives you access to the properties of the feed entity with the $locationupdate global variable. This represents a new Location received from your device GPS. For example, an ArcadeExpression with the following string rejects Location updates with a horizontal accuracy greater than 10 meters:

        return $locationupdate.horizontalaccuracy <= 10;.

        Parameters:
        filter - an ArcadeExpression that controls whether an update from the LocationGeotriggerFeed is sent to a GeotriggerMonitor
        Since:
        100.13.0
        See Also:
        getFilter()
      • getLocationDataSource

        public LocationDataSource getLocationDataSource()
        Gets the location data source that provides updates for the device location.

        To receive location updates, the LocationDataSource must be LocationDataSource.isStarted(). If you call GeotriggerMonitor.stop(), the underlying LocationDataSource is not stopped for you. In other words, it may continue to receive GPS readings.

        Returns:
        the location data source that provides updates for the device location, or null if none
        Since:
        100.12.0
      • setLocationDataSource

        public void setLocationDataSource​(LocationDataSource locationDataSource)
        Sets the location data source that provides updates for the device location.

        To receive location updates, the LocationDataSource must be LocationDataSource.isStarted(). If you call GeotriggerMonitor.stop(), the underlying LocationDataSource is not stopped for you. In other words, it may continue to receive GPS readings.

        Parameters:
        locationDataSource - the location data source that provides updates for the device location
        Since:
        100.12.0