diff options
author | Seweryn Fornalik <s3w3ryn@e.email> | 2021-05-11 20:16:42 +0200 |
---|---|---|
committer | Seweryn Fornalik <s3w3ryn@e.email> | 2021-05-11 20:33:25 +0200 |
commit | 4e0a3a7967be34a4b2c3ff03ec5b42072d45002d (patch) | |
tree | 2413fb1ed6412c26975dabb842b23f3f335e45fb /app/src/main | |
parent | d9684ff06329a9e1607d1fb7f9908ba90b25e3f8 (diff) |
Try to force real location (failed)
Diffstat (limited to 'app/src/main')
4 files changed, 28 insertions, 1 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 74c226c..5fe282d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,9 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" package="foundation.e.privacycentralapp"> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> + <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" + tools:ignore="ProtectedPermissions" + /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" + tools:ignore="ProtectedPermissions" + /> <application android:name=".PrivacyCentralApplication" 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 @@ -54,9 +54,28 @@ class LocationApiDelegate( appDesc, AppOpsManager.OPSTR_MOCK_LOCATION, AppOpModes.IGNORED ) + permissionsModule.setAppOpMode( + appDesc, AppOpsManager.OPSTR_MOCK_LOCATION, + AppOpModes.IGNORED + ) fakeLocationModule.stopFakeLocation() } catch (e: Exception) { 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) + } + } } |