package com.module.breeze import android.Manifest import android.content.Context import android.content.pm.PackageManager import android.location.Location import android.location.LocationListener import android.location.LocationManager import android.os.Bundle import androidx.core.content.ContextCompat // AI class GpsRepository(private val context: Context) : LocationListener { private var locationManager: LocationManager? = null private var onLocationChanged: ((Location) -> Unit)? = null fun startListening(onLocationChanged: (Location) -> Unit) { this.onLocationChanged = onLocationChanged locationManager = context.getSystemService(Context.LOCATION_SERVICE) as LocationManager if (ContextCompat.checkSelfPermission( context, Manifest.permission.ACCESS_FINE_LOCATION, ) == PackageManager.PERMISSION_GRANTED ) { locationManager?.requestLocationUpdates( LocationManager.GPS_PROVIDER, 1000L, 1f, this, ) } } fun stopListening() { locationManager?.removeUpdates(this) } override fun onLocationChanged(location: Location) { onLocationChanged?.invoke(location) } override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {} override fun onProviderEnabled(provider: String) {} override fun onProviderDisabled(provider: String) {} }