juice_location library

Device location as a Juice bloc.

LocationBloc owns the current position and continuous tracking, through a swappable LocationSource seam (default GeolocatorLocationSource). Permission status is set externally via LocationBloc.setPermissionStatus — wire it from juice_permissions with a PermissionBinding.

final location = LocationBloc.withConfig(LocationConfig());
location.getCurrent();

PermissionBinding(permissions, JuicePermission.locationWhenInUse,
  onStatus: (s) => location.setPermissionStatus(s == PermissionStatus.granted),
)..start();

Classes

GeolocatorLocationSource
Default LocationSource backed by geolocator.
GeoPosition
A vendor-agnostic position fix.
GetCurrentLocationEvent
Read the current position once.
InitializeLocationEvent
Configure the source.
LocationBloc
Bloc that owns the device's location — one-shot reads and continuous tracking.
LocationChangedEvent
Internal: a new position arrived (one-shot or stream).
LocationConfig
Configuration for LocationBloc.
LocationEvent
Base class for location events.
LocationGroups
Rebuild groups emitted by LocationBloc.
LocationSource
Vendor seam for device location.
LocationState
Immutable location state.
SetPermissionStatusEvent
Set whether the app may read location (wire from juice_permissions).
StartTrackingEvent
Start continuous tracking.
StopTrackingEvent
Stop continuous tracking.