Files
Location-Tracker/LocationTrackerApp/Services/ILocationService.cs
Carlos Gutierrez fecd0ce968 Integration and add heat map demo
- Implemented OpenStreetMap using WebView with Leaflet.js
- Added OpenStreetMapView component with interactive map functionality
- Created heat map visualization with color-coded intensity
- Added 30 dummy location points around San Francisco Bay Area
- Implemented location tracking with real-time pin placement
- Added comprehensive UI with two-row button layout
- Features: Start/Stop tracking, Center map, Demo heat map, Clear demo, Reset map
- Added location count display and confirmation dialogs
- Updated project structure and documentation
- All functionality tested and working on Android emulator
2025-10-12 21:42:25 -04:00

61 lines
1.7 KiB
C#

using LocationTrackerApp.Models;
namespace LocationTrackerApp.Services;
/// <summary>
/// Interface for location tracking service
/// </summary>
public interface ILocationService
{
/// <summary>
/// Event fired when a new location is received
/// </summary>
event EventHandler<LocationData>? LocationChanged;
/// <summary>
/// Event fired when location tracking status changes
/// </summary>
event EventHandler<bool>? TrackingStatusChanged;
/// <summary>
/// Gets the current location tracking status
/// </summary>
bool IsTracking { get; }
/// <summary>
/// Gets the current session ID
/// </summary>
string? CurrentSessionId { get; }
/// <summary>
/// Starts location tracking
/// </summary>
/// <param name="sessionId">Optional session ID for grouping location data</param>
/// <returns>Task representing the async operation</returns>
Task StartTrackingAsync(string? sessionId = null);
/// <summary>
/// Stops location tracking
/// </summary>
/// <returns>Task representing the async operation</returns>
Task StopTrackingAsync();
/// <summary>
/// Gets the current location
/// </summary>
/// <returns>Current location data or null if not available</returns>
Task<LocationData?> GetCurrentLocationAsync();
/// <summary>
/// Requests location permissions from the user
/// </summary>
/// <returns>True if permissions are granted, false otherwise</returns>
Task<bool> RequestLocationPermissionsAsync();
/// <summary>
/// Checks if location permissions are granted
/// </summary>
/// <returns>True if permissions are granted, false otherwise</returns>
Task<bool> HasLocationPermissionsAsync();
}