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 android.location.LocationManager
|
||||||
import androidx.annotation.RequiresPermission
|
import androidx.annotation.RequiresPermission
|
||||||
import com.simplemobiletools.camera.extensions.checkLocationPermission
|
import com.simplemobiletools.camera.extensions.checkLocationPermission
|
||||||
import com.simplemobiletools.camera.extensions.config
|
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_ACCESS_FINE_LOCATION
|
|
||||||
|
|
||||||
class SimpleLocationManager(private val activity: BaseSimpleActivity) {
|
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])
|
@RequiresPermission(anyOf = [Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION])
|
||||||
private fun registerLocationUpdateListener() {
|
fun requestLocationUpdates() {
|
||||||
locationManager.allProviders.forEach { provider ->
|
locationManager.allProviders.forEach { provider ->
|
||||||
locationManager.requestLocationUpdates(
|
locationManager.requestLocationUpdates(
|
||||||
provider,
|
provider,
|
||||||
|
@ -2,12 +2,12 @@ package com.simplemobiletools.camera.implementations
|
|||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.camera.view.PreviewView
|
import androidx.camera.view.PreviewView
|
||||||
import com.simplemobiletools.camera.activities.MainActivity
|
|
||||||
import com.simplemobiletools.camera.helpers.CameraErrorHandler
|
import com.simplemobiletools.camera.helpers.CameraErrorHandler
|
||||||
import com.simplemobiletools.camera.helpers.MediaOutputHelper
|
import com.simplemobiletools.camera.helpers.MediaOutputHelper
|
||||||
import com.simplemobiletools.camera.helpers.MediaSoundHelper
|
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(
|
fun createCameraXPreview(
|
||||||
previewView: PreviewView,
|
previewView: PreviewView,
|
||||||
|
@ -358,7 +358,23 @@ class CameraXPreview(
|
|||||||
if (simpleLocationManager == null) {
|
if (simpleLocationManager == null) {
|
||||||
simpleLocationManager = SimpleLocationManager(activity)
|
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