Loading app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt +2 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.util.Log import foundation.e.privacycentralapp.data.repositories.LocalStateRepository import foundation.e.privacycentralapp.domain.entities.LocationMode import foundation.e.privacycentralapp.dummy.CityDataSource import foundation.e.privacymodules.fakelocation.FakeLocationModule import foundation.e.privacymodules.location.IFakeLocationModule import foundation.e.privacymodules.permissions.PermissionsPrivacyModule import foundation.e.privacymodules.permissions.data.AppOpModes import foundation.e.privacymodules.permissions.data.ApplicationDescription Loading @@ -39,7 +39,7 @@ import kotlinx.coroutines.launch import kotlin.random.Random class FakeLocationStateUseCase( private val fakeLocationModule: FakeLocationModule, private val fakeLocationModule: IFakeLocationModule, private val permissionsModule: PermissionsPrivacyModule, private val localStateRepository: LocalStateRepository, private val citiesRepository: CityDataSource, Loading fakelocation/build.gradle +2 −0 Original line number Diff line number Diff line Loading @@ -51,4 +51,6 @@ dependencies { Libs.AndroidX.coreKtx, Libs.Coroutines.core ) implementation project(':privacymodule-api') } fakelocation/src/main/java/foundation/e/privacymodules/fakelocation/FakeLocationModule.kt +32 −16 Original line number Diff line number Diff line Loading @@ -19,12 +19,15 @@ package foundation.e.privacymodules.fakelocation import android.content.Context import android.content.Context.LOCATION_SERVICE import android.location.Criteria import android.location.Location import android.location.LocationManager import android.location.LocationManager.GPS_PROVIDER import android.location.LocationManager.NETWORK_PROVIDER import android.location.provider.ProviderProperties import android.os.Build import android.os.SystemClock import android.util.Log import foundation.e.privacymodules.location.IFakeLocationModule /** * Implementation of the functionality of fake location. Loading @@ -32,12 +35,10 @@ import android.util.Log * * @param context an Android context, to retrieve system services for example. */ class FakeLocationModule(protected val context: Context) { /** * List of all the Location provider that will be mocked. */ private val providers = listOf(LocationManager.NETWORK_PROVIDER, LocationManager.GPS_PROVIDER) class FakeLocationModule(private val context: Context): IFakeLocationModule { companion object { private const val TAG = "FakeLocationModule" } /** * Handy accessor to the locationManager service. Loading @@ -46,18 +47,25 @@ class FakeLocationModule(protected val context: Context) { private val locationManager: LocationManager get() = context.getSystemService(LOCATION_SERVICE) as LocationManager /** * List of all the Location provider that will be mocked. */ private val providers = locationManager.allProviders .intersect(listOf(GPS_PROVIDER, NETWORK_PROVIDER)) /** * @see IFakeLocationModule.startFakeLocation */ @Synchronized fun startFakeLocation() { override fun startFakeLocation() { providers.forEach { provider -> try { locationManager.removeTestProvider(provider) } catch(e: Exception) { Log.d("FakeLocationModule", "Test provider $provider already removed.") Log.w(TAG, "Test provider $provider already removed.") } locationManager.addTestProvider( provider, false, Loading @@ -67,12 +75,17 @@ class FakeLocationModule(protected val context: Context) { false, true, true, Criteria.POWER_LOW, Criteria.ACCURACY_FINE) ProviderProperties.POWER_USAGE_LOW, ProviderProperties.ACCURACY_FINE) try { locationManager.setTestProviderEnabled(provider, true) } catch (e: Exception) { Log.e(TAG, "Can't enable test $provider", e) } } } fun setFakeLocation(latitude: Double, longitude: Double) { override fun setFakeLocation(latitude: Double, longitude: Double) { context.startService(FakeLocationService.buildFakeLocationIntent(context, latitude, longitude)) } Loading @@ -95,22 +108,25 @@ class FakeLocationModule(protected val context: Context) { location.verticalAccuracyMeters = 0.1f location.speedAccuracyMetersPerSecond = 0.01f } try { locationManager.setTestProviderLocation(provider, location) } catch (e: Exception) { Log.e(TAG, "Can't set location for test provider $provider", e) } } } /** * @see IFakeLocationModule.stopFakeLocation */ fun stopFakeLocation() { override fun stopFakeLocation() { context.stopService(FakeLocationService.buildStopIntent(context)) providers.forEach { provider -> try { locationManager.setTestProviderEnabled(provider, false) locationManager.removeTestProvider(provider) } catch (e: Exception) { Log.d("FakeLocationModule", "Test provider $provider already removed.") Log.d(TAG, "Test provider $provider already removed.") } } } Loading Loading
app/src/main/java/foundation/e/privacycentralapp/domain/usecases/FakeLocationStateUseCase.kt +2 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.util.Log import foundation.e.privacycentralapp.data.repositories.LocalStateRepository import foundation.e.privacycentralapp.domain.entities.LocationMode import foundation.e.privacycentralapp.dummy.CityDataSource import foundation.e.privacymodules.fakelocation.FakeLocationModule import foundation.e.privacymodules.location.IFakeLocationModule import foundation.e.privacymodules.permissions.PermissionsPrivacyModule import foundation.e.privacymodules.permissions.data.AppOpModes import foundation.e.privacymodules.permissions.data.ApplicationDescription Loading @@ -39,7 +39,7 @@ import kotlinx.coroutines.launch import kotlin.random.Random class FakeLocationStateUseCase( private val fakeLocationModule: FakeLocationModule, private val fakeLocationModule: IFakeLocationModule, private val permissionsModule: PermissionsPrivacyModule, private val localStateRepository: LocalStateRepository, private val citiesRepository: CityDataSource, Loading
fakelocation/build.gradle +2 −0 Original line number Diff line number Diff line Loading @@ -51,4 +51,6 @@ dependencies { Libs.AndroidX.coreKtx, Libs.Coroutines.core ) implementation project(':privacymodule-api') }
fakelocation/src/main/java/foundation/e/privacymodules/fakelocation/FakeLocationModule.kt +32 −16 Original line number Diff line number Diff line Loading @@ -19,12 +19,15 @@ package foundation.e.privacymodules.fakelocation import android.content.Context import android.content.Context.LOCATION_SERVICE import android.location.Criteria import android.location.Location import android.location.LocationManager import android.location.LocationManager.GPS_PROVIDER import android.location.LocationManager.NETWORK_PROVIDER import android.location.provider.ProviderProperties import android.os.Build import android.os.SystemClock import android.util.Log import foundation.e.privacymodules.location.IFakeLocationModule /** * Implementation of the functionality of fake location. Loading @@ -32,12 +35,10 @@ import android.util.Log * * @param context an Android context, to retrieve system services for example. */ class FakeLocationModule(protected val context: Context) { /** * List of all the Location provider that will be mocked. */ private val providers = listOf(LocationManager.NETWORK_PROVIDER, LocationManager.GPS_PROVIDER) class FakeLocationModule(private val context: Context): IFakeLocationModule { companion object { private const val TAG = "FakeLocationModule" } /** * Handy accessor to the locationManager service. Loading @@ -46,18 +47,25 @@ class FakeLocationModule(protected val context: Context) { private val locationManager: LocationManager get() = context.getSystemService(LOCATION_SERVICE) as LocationManager /** * List of all the Location provider that will be mocked. */ private val providers = locationManager.allProviders .intersect(listOf(GPS_PROVIDER, NETWORK_PROVIDER)) /** * @see IFakeLocationModule.startFakeLocation */ @Synchronized fun startFakeLocation() { override fun startFakeLocation() { providers.forEach { provider -> try { locationManager.removeTestProvider(provider) } catch(e: Exception) { Log.d("FakeLocationModule", "Test provider $provider already removed.") Log.w(TAG, "Test provider $provider already removed.") } locationManager.addTestProvider( provider, false, Loading @@ -67,12 +75,17 @@ class FakeLocationModule(protected val context: Context) { false, true, true, Criteria.POWER_LOW, Criteria.ACCURACY_FINE) ProviderProperties.POWER_USAGE_LOW, ProviderProperties.ACCURACY_FINE) try { locationManager.setTestProviderEnabled(provider, true) } catch (e: Exception) { Log.e(TAG, "Can't enable test $provider", e) } } } fun setFakeLocation(latitude: Double, longitude: Double) { override fun setFakeLocation(latitude: Double, longitude: Double) { context.startService(FakeLocationService.buildFakeLocationIntent(context, latitude, longitude)) } Loading @@ -95,22 +108,25 @@ class FakeLocationModule(protected val context: Context) { location.verticalAccuracyMeters = 0.1f location.speedAccuracyMetersPerSecond = 0.01f } try { locationManager.setTestProviderLocation(provider, location) } catch (e: Exception) { Log.e(TAG, "Can't set location for test provider $provider", e) } } } /** * @see IFakeLocationModule.stopFakeLocation */ fun stopFakeLocation() { override fun stopFakeLocation() { context.stopService(FakeLocationService.buildStopIntent(context)) providers.forEach { provider -> try { locationManager.setTestProviderEnabled(provider, false) locationManager.removeTestProvider(provider) } catch (e: Exception) { Log.d("FakeLocationModule", "Test provider $provider already removed.") Log.d(TAG, "Test provider $provider already removed.") } } } Loading