Files
Location-Tracker/LocationTrackerApp/Services/ConfigurationService.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

70 lines
2.1 KiB
C#

using System.Text.Json;
namespace LocationTrackerApp.Services;
/// <summary>
/// Provides configuration services for the application
/// </summary>
public class ConfigurationService : IConfigurationService
{
private readonly string _googleMapsApiKey;
/// <summary>
/// Initializes a new instance of the ConfigurationService
/// </summary>
public ConfigurationService()
{
_googleMapsApiKey = LoadGoogleMapsApiKey();
}
/// <summary>
/// Gets the Google Maps API key
/// </summary>
public string GetGoogleMapsApiKey()
{
return _googleMapsApiKey;
}
/// <summary>
/// Loads the Google Maps API key from configuration
/// </summary>
private string LoadGoogleMapsApiKey()
{
try
{
// First, try to get from environment variable
var envApiKey = Environment.GetEnvironmentVariable("GoogleMapsApiKey");
if (!string.IsNullOrEmpty(envApiKey) && envApiKey != "YOUR_ACTUAL_API_KEY_HERE")
{
return envApiKey;
}
// Then try to load from appsettings.json
var configPath = Path.Combine(FileSystem.AppDataDirectory, "appsettings.json");
if (File.Exists(configPath))
{
var json = File.ReadAllText(configPath);
var config = JsonSerializer.Deserialize<JsonElement>(json);
if (config.TryGetProperty("GoogleMaps", out var googleMaps) &&
googleMaps.TryGetProperty("ApiKey", out var apiKeyElement))
{
var apiKey = apiKeyElement.GetString();
if (!string.IsNullOrEmpty(apiKey) && apiKey != "YOUR_ACTUAL_API_KEY_HERE")
{
return apiKey;
}
}
}
// Fallback to default demo key
return "AIzaSyDemoKeyForDevelopment123456789";
}
catch (Exception)
{
// Return demo key if anything goes wrong
return "AIzaSyDemoKeyForDevelopment123456789";
}
}
}