From 37c22975dca2e9cd0eeda3e197b19d9c15076af0 Mon Sep 17 00:00:00 2001 From: SpiritualAdviser Date: Sun, 9 Mar 2025 08:39:13 +0300 Subject: [PATCH 1/2] add code need ip key --- app/src/main/AndroidManifest.xml | 8 +++ .../sample/otuslocationmapshw/MapsActivity.kt | 6 +- .../camera/CameraActivity.kt | 68 +++++++++++++++++-- 3 files changed, 75 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7a1883f..03f8769 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,14 @@ + + + + + + Unit) { // TODO("Добавить получение местоположения от fusedLocationClient и передать результат в callback после получения") + fusedLocationClient.getCurrentLocation(CurrentLocationRequest.Builder().build(), null) + .addOnCompleteListener { callback.invoke(it.result) } } private fun startCamera() { @@ -168,9 +220,13 @@ 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("Добавить требуемые разрешения") + ACCESS_COARSE_LOCATION, + ACCESS_FINE_LOCATION, + CAMERA ).toTypedArray() const val SUCCESS_RESULT_CODE = 15 From a9856e0e94279d4f4a55467b646457d779b36fca Mon Sep 17 00:00:00 2001 From: SpiritualAdviser Date: Mon, 10 Mar 2025 18:03:10 +0300 Subject: [PATCH 2/2] add ip key and -- comments --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 12 +---------- .../sample/otuslocationmapshw/MapsActivity.kt | 7 ++----- .../camera/CameraActivity.kt | 21 ++----------------- build.gradle | 7 +++++++ 5 files changed, 13 insertions(+), 35 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3e76c3d..8b2ce2d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,7 @@ android { } buildFeatures { viewBinding true + buildConfig true } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 03f8769..df3a472 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,20 +20,10 @@ android:supportsRtl="true" android:theme="@style/Theme.OTUSLocationMapsHW" tools:targetApi="31"> - + android:value="${MAPS_API_KEY}" /> , @@ -139,19 +133,10 @@ class CameraActivity : AppCompatActivity() { val filePath = folderPath + SimpleDateFormat(FILENAME_FORMAT, Locale.getDefault()).format(Date()) -// val imageCapture = ImageCapture.Metadata() -// imageCapture.location = location - - // TODO("4. Добавить установку местоположения в метаданные фото") val outputFileOptions = ImageCapture.OutputFileOptions.Builder(File(filePath)) -// .setMetadata(imageCapture) .setMetadata(ImageCapture.Metadata().apply { this.location = location }) .build() - // TODO("Добавить вызов CameraX для фото") - // TODO("Вывести Toast о том, что фото успешно сохранено и закрыть текущее активити c указанием кода результата SUCCESS_RESULT_CODE") - // imageCapture... - imageCapture.takePicture( outputFileOptions, ContextCompat.getMainExecutor(this), @@ -179,7 +164,7 @@ class CameraActivity : AppCompatActivity() { @SuppressLint("MissingPermission") private fun getLastLocation(callback: (location: Location?) -> Unit) { - // TODO("Добавить получение местоположения от fusedLocationClient и передать результат в callback после получения") + fusedLocationClient.getCurrentLocation(CurrentLocationRequest.Builder().build(), null) .addOnCompleteListener { callback.invoke(it.result) } } @@ -221,9 +206,7 @@ class CameraActivity : AppCompatActivity() { 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("Добавить требуемые разрешения") ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, CAMERA diff --git a/build.gradle b/build.gradle index 2938249..3dca589 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,11 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + dependencies { + classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") + } +} + plugins { id 'com.android.application' version '8.7.3' apply false id 'com.android.library' version '8.7.3' apply false