From 4e0a3a7967be34a4b2c3ff03ec5b42072d45002d Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Tue, 11 May 2021 20:16:42 +0200 Subject: Try to force real location (failed) --- .../features/location/FakeLocationFeature.kt | 2 +- .../features/location/FakeLocationFragment.kt | 1 + .../features/location/LocationApiDelegate.kt | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFeature.kt index 59f56c8..fe9359a 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFeature.kt @@ -179,7 +179,7 @@ class FakeLocationFeature( } } is Action.UseRealLocationAction -> { - action.locationApiDelegate.stopFakeLocation() + action.locationApiDelegate.startRealLocation() val success = DummyDataSource.setLocationMode(LocationMode.REAL_LOCATION) if (success) { flowOf( diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFragment.kt index ff15e31..c11a7ea 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFragment.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/location/FakeLocationFragment.kt @@ -185,6 +185,7 @@ class FakeLocationFragment : } } } + locationApiDelegate.startRealLocation() } override fun onAttach(context: Context) { diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/location/LocationApiDelegate.kt b/app/src/main/java/foundation/e/privacycentralapp/features/location/LocationApiDelegate.kt index efacae2..dd2e5c1 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/location/LocationApiDelegate.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/location/LocationApiDelegate.kt @@ -50,6 +50,10 @@ class LocationApiDelegate( fun stopFakeLocation() { try { + permissionsModule.setAppOpMode( + appDesc, AppOpsManager.OPSTR_MOCK_LOCATION, + AppOpModes.IGNORED + ) permissionsModule.setAppOpMode( appDesc, AppOpsManager.OPSTR_MOCK_LOCATION, AppOpModes.IGNORED @@ -59,4 +63,19 @@ class LocationApiDelegate( Log.e(TAG, "Can't stop FakeLocation", e) } } + fun startRealLocation() { + stopFakeLocation() + try { + permissionsModule.setAppOpMode( + appDesc, AppOpsManager.OPSTR_COARSE_LOCATION, + AppOpModes.ALLOWED + ) + permissionsModule.setAppOpMode( + appDesc, AppOpsManager.OPSTR_FINE_LOCATION, + AppOpModes.ALLOWED + ) + } catch (e: Exception) { + Log.e(TAG, "Can't start RealLocation", e) + } + } } -- cgit v1.2.1