mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-06-27 09:02:59 +02:00
move config logic from location manager to keep it lazy
This commit is contained in:
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user