move config logic from location manager to keep it lazy

This commit is contained in:
fatih ergin
2023-07-24 22:51:32 +03:00
parent 90c6b3193b
commit b64d5374f6
3 changed files with 20 additions and 22 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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
}
}
}
}
}