Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e1c091e authored by Abhishek Aggarwal's avatar Abhishek Aggarwal
Browse files

privacycentralapp: properly set specific location

parent 7be179d6
Loading
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -68,8 +68,8 @@ class FakeLocationStateUseCase(
        )
    }

    private fun applySettings(isQuickPrivacyEnabled: Boolean, fakeLocation: Pair<Float, Float>?) {
        _configuredLocationMode.value = computeLocationMode(fakeLocation)
    private fun applySettings(isQuickPrivacyEnabled: Boolean, fakeLocation: Pair<Float, Float>?, isSpecificLocation: Boolean = false) {
        _configuredLocationMode.value = computeLocationMode(fakeLocation, isSpecificLocation)

        if (isQuickPrivacyEnabled && fakeLocation != null) {
            if (permissionsModule.getAppOpMode(appDesc, AppOpsManager.OPSTR_MOCK_LOCATION) != AppOpModes.ALLOWED) {
@@ -89,7 +89,7 @@ class FakeLocationStateUseCase(
            localStateRepository.setShowQuickPrivacyDisabledMessage(true)
        }

        setFakeLocation(latitude to longitude)
        setFakeLocation(latitude to longitude, true)
    }

    fun setRandomLocation() {
@@ -103,9 +103,9 @@ class FakeLocationStateUseCase(
        setFakeLocation(location)
    }

    private fun setFakeLocation(location: Pair<Float, Float>) {
    private fun setFakeLocation(location: Pair<Float, Float>, isSpecificLocation: Boolean = false) {
        localStateRepository.fakeLocation = location
        applySettings(localStateRepository.isQuickPrivacyEnabled, location)
        applySettings(localStateRepository.isQuickPrivacyEnabled, location ,isSpecificLocation)
    }

    fun stopFakeLocation() {
@@ -117,11 +117,11 @@ class FakeLocationStateUseCase(
        applySettings(localStateRepository.isQuickPrivacyEnabled, null)
    }

    private fun computeLocationMode(fakeLocation: Pair<Float, Float>?): Triple<LocationMode, Float?, Float?> {
    private fun computeLocationMode(fakeLocation: Pair<Float, Float>?, isSpecificLocation: Boolean = false): Triple<LocationMode, Float?, Float?> {
        return Triple(
            when {
                fakeLocation == null -> LocationMode.REAL_LOCATION
                fakeLocation in citiesRepository.citiesLocationsList -> LocationMode.RANDOM_LOCATION
                fakeLocation in citiesRepository.citiesLocationsList && !isSpecificLocation -> LocationMode.RANDOM_LOCATION
                else -> LocationMode.SPECIFIC_LOCATION
            },
            fakeLocation?.first, fakeLocation?.second