From 8a38d78de025fa06a47292f9329bc94b5be8610d Mon Sep 17 00:00:00 2001 From: Sergei Korotaev Date: Sat, 12 Jul 2025 17:15:39 +0300 Subject: [PATCH] Initial commit: all tasks completed. --- app/src/main/AndroidManifest.xml | 12 +++- .../sample/otuslocationmapshw/MapsActivity.kt | 22 +++--- .../camera/CameraActivity.kt | 70 +++++++++++++++---- 3 files changed, 76 insertions(+), 28 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7a1883f..6857d40 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,14 @@ + + + + + + + android:value="${MAPS_API_KEY}" /> Unit) { - // TODO("Добавить получение местоположения от fusedLocationClient и передать результат в callback после получения") + fusedLocationClient.getCurrentLocation(CurrentLocationRequest.Builder().build(), null) + .addOnCompleteListener { + callback.invoke(it.result) + } } private fun startCamera() { @@ -140,7 +179,7 @@ class CameraActivity : AppCompatActivity() { val preview = Preview.Builder() .build() .also { - it.setSurfaceProvider(binding.cameraPreview.surfaceProvider) + it.surfaceProvider = binding.cameraPreview.surfaceProvider } imageCapture = ImageCapture.Builder().build() @@ -150,7 +189,7 @@ class CameraActivity : AppCompatActivity() { try { cameraProvider.unbindAll() cameraProvider.bindToLifecycle( - this, cameraSelector, preview, imageCapture + this, cameraSelector, preview, imageCapture ) } catch (exc: Exception) { Log.e(TAG, "Use case binding failed", exc) @@ -168,9 +207,10 @@ class CameraActivity : AppCompatActivity() { private const val TAG = "CameraXApp" private const val FILENAME_FORMAT = "yyyy-MM-dd-HH-mm-ss-SSS" private const val REQUEST_CODE_PERMISSIONS = 10 - // TODO("Указать набор требуемых разрешений") - private val REQUIRED_PERMISSIONS: Array = mutableListOf( - // TODO("Добавить требуемые разрешения") + private val REQUIRED_PERMISSIONS: Array = mutableListOf( + ACCESS_COARSE_LOCATION, + ACCESS_FINE_LOCATION, + CAMERA ).toTypedArray() const val SUCCESS_RESULT_CODE = 15