diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt index c3b3df03..c27d35ea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt @@ -6,9 +6,7 @@ import android.location.LocationListener import android.location.LocationManager import androidx.annotation.RequiresPermission import com.simplemobiletools.camera.extensions.checkLocationPermission -import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.commons.activities.BaseSimpleActivity -import com.simplemobiletools.commons.helpers.PERMISSION_ACCESS_FINE_LOCATION class SimpleLocationManager(private val activity: BaseSimpleActivity) { @@ -47,24 +45,8 @@ class SimpleLocationManager(private val activity: BaseSimpleActivity) { } } - fun requestLocationUpdates() { - activity.apply { - if (checkLocationPermission()) { - registerLocationUpdateListener() - } else { - handlePermission(PERMISSION_ACCESS_FINE_LOCATION) { _ -> - if (checkLocationPermission()) { - registerLocationUpdateListener() - } else { - config.saveMediaLocation = false - } - } - } - } - } - @RequiresPermission(anyOf = [Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION]) - private fun registerLocationUpdateListener() { + fun requestLocationUpdates() { locationManager.allProviders.forEach { provider -> locationManager.requestLocationUpdates( provider, diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXInitializer.kt b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXInitializer.kt index 4ce3c40f..88b01e69 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXInitializer.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXInitializer.kt @@ -2,12 +2,12 @@ package com.simplemobiletools.camera.implementations import android.net.Uri import androidx.camera.view.PreviewView -import com.simplemobiletools.camera.activities.MainActivity import com.simplemobiletools.camera.helpers.CameraErrorHandler import com.simplemobiletools.camera.helpers.MediaOutputHelper import com.simplemobiletools.camera.helpers.MediaSoundHelper +import com.simplemobiletools.commons.activities.BaseSimpleActivity -class CameraXInitializer(private val activity: MainActivity) { +class CameraXInitializer(private val activity: BaseSimpleActivity) { fun createCameraXPreview( previewView: PreviewView, diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt index 5221b2e8..b80cf496 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt @@ -358,7 +358,23 @@ class CameraXPreview( if (simpleLocationManager == null) { simpleLocationManager = SimpleLocationManager(activity) } - simpleLocationManager?.requestLocationUpdates() + requestLocationUpdates() + } + } + + private fun requestLocationUpdates() { + activity.apply { + if (checkLocationPermission()) { + simpleLocationManager?.requestLocationUpdates() + } else { + handlePermission(PERMISSION_ACCESS_FINE_LOCATION) { _ -> + if (checkLocationPermission()) { + simpleLocationManager?.requestLocationUpdates() + } else { + config.savePhotoVideoLocation = false + } + } + } } }