diff --git a/app/build.gradle b/app/build.gradle
index fcd06a89..0591c0a4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -63,7 +63,7 @@ android {
}
dependencies {
- implementation 'com.github.SimpleMobileTools:Simple-Commons:4c83ec8740'
+ implementation 'com.github.SimpleMobileTools:Simple-Commons:a113438b6b'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation "androidx.exifinterface:exifinterface:1.3.5"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5037bff3..053bf145 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,6 +23,9 @@
+
+
+
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt
index cf77ea1b..6f3f44eb 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt
@@ -4,15 +4,12 @@ import android.annotation.SuppressLint
import android.os.Bundle
import com.simplemobiletools.camera.BuildConfig
import com.simplemobiletools.camera.R
+import com.simplemobiletools.camera.extensions.checkLocationPermission
import com.simplemobiletools.camera.extensions.config
import com.simplemobiletools.camera.models.CaptureMode
-import com.simplemobiletools.commons.dialogs.FeatureLockedDialog
-import com.simplemobiletools.commons.dialogs.FilePickerDialog
-import com.simplemobiletools.commons.dialogs.RadioGroupDialog
+import com.simplemobiletools.commons.dialogs.*
import com.simplemobiletools.commons.extensions.*
-import com.simplemobiletools.commons.helpers.LICENSE_GLIDE
-import com.simplemobiletools.commons.helpers.NavigationIcon
-import com.simplemobiletools.commons.helpers.isTiramisuPlus
+import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.FAQItem
import com.simplemobiletools.commons.models.RadioItem
import kotlinx.android.synthetic.main.activity_settings.*
@@ -43,6 +40,7 @@ class SettingsActivity : SimpleActivity() {
setupVolumeButtonsAsShutter()
setupFlipPhotos()
setupSavePhotoMetadata()
+ setupSavePhotoVideoLocation()
setupSavePhotosFolder()
setupPhotoQuality()
setupCaptureMode()
@@ -165,6 +163,34 @@ class SettingsActivity : SimpleActivity() {
}
}
+ private fun setupSavePhotoVideoLocation() {
+ settings_save_photo_video_location.isChecked = config.savePhotoVideoLocation
+ settings_save_photo_video_location_holder.setOnClickListener {
+ val willEnableSavePhotoVideoLocation = !config.savePhotoVideoLocation
+
+ if (willEnableSavePhotoVideoLocation) {
+ if (checkLocationPermission()) {
+ updateSavePhotoVideoLocationConfig(true)
+ } else {
+ handlePermission(PERMISSION_ACCESS_FINE_LOCATION) { _ ->
+ if (checkLocationPermission()) {
+ updateSavePhotoVideoLocationConfig(true)
+ } else {
+ OpenDeviceSettingsDialog(activity = this@SettingsActivity, message = getString(R.string.allow_location_permission))
+ }
+ }
+ }
+ } else {
+ updateSavePhotoVideoLocationConfig(false)
+ }
+ }
+ }
+
+ private fun updateSavePhotoVideoLocationConfig(enabled: Boolean) {
+ settings_save_photo_video_location.isChecked = enabled
+ config.savePhotoVideoLocation = enabled
+ }
+
private fun setupSavePhotosFolder() {
settings_save_photos_label.text = addLockedLabelIfNeeded(R.string.save_photos)
settings_save_photos.text = getLastPart(config.savePhotosFolder)
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/camera/extensions/Context.kt
index 4587a5c0..90fa434f 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/extensions/Context.kt
@@ -2,9 +2,13 @@ package com.simplemobiletools.camera.extensions
import android.content.Context
import com.simplemobiletools.camera.helpers.Config
+import com.simplemobiletools.commons.extensions.hasPermission
+import com.simplemobiletools.commons.helpers.PERMISSION_ACCESS_COARSE_LOCATION
+import com.simplemobiletools.commons.helpers.PERMISSION_ACCESS_FINE_LOCATION
import java.io.File
import java.text.SimpleDateFormat
-import java.util.*
+import java.util.Date
+import java.util.Locale
val Context.config: Config get() = Config.newInstance(applicationContext)
@@ -41,3 +45,7 @@ fun getRandomMediaName(isPhoto: Boolean): String {
"VID_$timestamp"
}
}
+
+fun Context.checkLocationPermission(): Boolean {
+ return hasPermission(PERMISSION_ACCESS_FINE_LOCATION) || hasPermission(PERMISSION_ACCESS_COARSE_LOCATION)
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Config.kt
index 01b80789..0f0bfd39 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Config.kt
@@ -68,6 +68,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(SAVE_PHOTO_METADATA, true)
set(savePhotoMetadata) = prefs.edit().putBoolean(SAVE_PHOTO_METADATA, savePhotoMetadata).apply()
+ var savePhotoVideoLocation: Boolean
+ get() = prefs.getBoolean(SAVE_PHOTO_VIDEO_LOCATION, false)
+ set(savePhotoVideoLocation) = prefs.edit().putBoolean(SAVE_PHOTO_VIDEO_LOCATION, savePhotoVideoLocation).apply()
+
var photoQuality: Int
get() = prefs.getInt(PHOTO_QUALITY, 80)
set(photoQuality) = prefs.edit().putInt(PHOTO_QUALITY, photoQuality).apply()
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Constants.kt
index 2850e250..0a245e1a 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/Constants.kt
@@ -18,6 +18,7 @@ const val BACK_VIDEO_RESOLUTION_INDEX = "back_video_resolution_index_3"
const val FRONT_PHOTO_RESOLUTION_INDEX = "front_photo_resolution_index_3"
const val FRONT_VIDEO_RESOLUTION_INDEX = "front_video_resolution_index_3"
const val SAVE_PHOTO_METADATA = "save_photo_metadata"
+const val SAVE_PHOTO_VIDEO_LOCATION = "save_photo_video_location"
const val PHOTO_QUALITY = "photo_quality"
const val CAPTURE_MODE = "capture_mode"
const val TIMER_MODE = "timer_mode"
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt
new file mode 100644
index 00000000..a39327f5
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/SimpleLocationManager.kt
@@ -0,0 +1,63 @@
+package com.simplemobiletools.camera.helpers
+
+import android.Manifest
+import android.location.Location
+import android.location.LocationListener
+import android.location.LocationManager
+import androidx.annotation.RequiresPermission
+import com.simplemobiletools.camera.extensions.checkLocationPermission
+import com.simplemobiletools.commons.activities.BaseSimpleActivity
+
+class SimpleLocationManager(private val activity: BaseSimpleActivity) {
+
+ companion object {
+ private const val LOCATION_UPDATE_MIN_TIME_INTERVAL_MS = 5000L
+ private const val LOCATION_UPDATE_MIN_DISTANCE_M = 10F
+ }
+
+ private val locationManager = activity.getSystemService(LocationManager::class.java)!!
+ private val locationListener = LocationListener { location ->
+ this@SimpleLocationManager.location = location
+ }
+
+ private var location: Location? = null
+
+ fun getLocation(): Location? {
+ if (location == null) {
+ location = getLastKnownLocation()
+ }
+
+ return location
+ }
+
+ private fun getLastKnownLocation(): Location? {
+ return if (activity.checkLocationPermission()) {
+ var accurateLocation: Location? = null
+ for (provider in locationManager.allProviders) {
+ val location = locationManager.getLastKnownLocation(provider) ?: continue
+ if (accurateLocation == null || location.accuracy < accurateLocation.accuracy) {
+ accurateLocation = location
+ }
+ }
+ accurateLocation
+ } else {
+ null
+ }
+ }
+
+ @RequiresPermission(anyOf = [Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION])
+ fun requestLocationUpdates() {
+ locationManager.allProviders.forEach { provider ->
+ locationManager.requestLocationUpdates(
+ provider,
+ LOCATION_UPDATE_MIN_TIME_INTERVAL_MS,
+ LOCATION_UPDATE_MIN_DISTANCE_M,
+ locationListener
+ )
+ }
+ }
+
+ fun dropLocationUpdates() {
+ locationManager.removeUpdates(locationListener)
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
index b4ad662a..b80cf496 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
@@ -10,8 +10,6 @@ import android.util.Rational
import android.util.Size
import android.view.*
import android.view.GestureDetector.SimpleOnGestureListener
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
import androidx.camera.core.*
import androidx.camera.core.ImageCapture.*
import androidx.camera.lifecycle.ProcessCameraProvider
@@ -34,11 +32,13 @@ import com.simplemobiletools.camera.models.CaptureMode
import com.simplemobiletools.camera.models.MediaOutput
import com.simplemobiletools.camera.models.MySize
import com.simplemobiletools.camera.models.ResolutionOption
+import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.toast
+import com.simplemobiletools.commons.helpers.PERMISSION_ACCESS_FINE_LOCATION
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
class CameraXPreview(
- private val activity: AppCompatActivity,
+ private val activity: BaseSimpleActivity,
private val previewView: PreviewView,
private val mediaSoundHelper: MediaSoundHelper,
private val mediaOutputHelper: MediaOutputHelper,
@@ -122,6 +122,7 @@ class CameraXPreview(
private var isPhotoCapture = initInPhotoMode
private var lastRotation = 0
private var lastCameraStartTime = 0L
+ private var simpleLocationManager: SimpleLocationManager? = null
init {
bindToLifeCycle()
@@ -351,6 +352,37 @@ class CameraXPreview(
}
}
+ override fun onResume(owner: LifecycleOwner) {
+ super.onResume(owner)
+ if (config.savePhotoVideoLocation) {
+ if (simpleLocationManager == null) {
+ simpleLocationManager = SimpleLocationManager(activity)
+ }
+ requestLocationUpdates()
+ }
+ }
+
+ private fun requestLocationUpdates() {
+ activity.apply {
+ if (checkLocationPermission()) {
+ simpleLocationManager?.requestLocationUpdates()
+ } else {
+ handlePermission(PERMISSION_ACCESS_FINE_LOCATION) { _ ->
+ if (checkLocationPermission()) {
+ simpleLocationManager?.requestLocationUpdates()
+ } else {
+ config.savePhotoVideoLocation = false
+ }
+ }
+ }
+ }
+ }
+
+ override fun onPause(owner: LifecycleOwner) {
+ super.onPause(owner)
+ simpleLocationManager?.dropLocationUpdates()
+ }
+
override fun onStop(owner: LifecycleOwner) {
orientationEventListener.disable()
}
@@ -473,6 +505,9 @@ class CameraXPreview(
val metadata = Metadata().apply {
isReversedHorizontal = isFrontCameraInUse() && config.flipPhotos
+ if (config.savePhotoVideoLocation) {
+ location = simpleLocationManager?.getLocation()
+ }
}
val mediaOutput = mediaOutputHelper.getImageMediaOutput()
@@ -572,16 +607,26 @@ class CameraXPreview(
val recording = when (val mediaOutput = mediaOutputHelper.getVideoMediaOutput()) {
is MediaOutput.FileDescriptorMediaOutput -> {
- FileDescriptorOutputOptions.Builder(mediaOutput.fileDescriptor).build()
- .let { videoCapture!!.output.prepareRecording(activity, it) }
+ FileDescriptorOutputOptions.Builder(mediaOutput.fileDescriptor).apply {
+ if (config.savePhotoVideoLocation) {
+ setLocation(simpleLocationManager?.getLocation())
+ }
+ }.build().let { videoCapture!!.output.prepareRecording(activity, it) }
}
is MediaOutput.FileMediaOutput -> {
- FileOutputOptions.Builder(mediaOutput.file).build()
- .let { videoCapture!!.output.prepareRecording(activity, it) }
+ FileOutputOptions.Builder(mediaOutput.file).apply {
+ if (config.savePhotoVideoLocation) {
+ setLocation(simpleLocationManager?.getLocation())
+ }
+ }.build().let { videoCapture!!.output.prepareRecording(activity, it) }
}
is MediaOutput.MediaStoreOutput -> {
- MediaStoreOutputOptions.Builder(contentResolver, mediaOutput.contentUri).setContentValues(mediaOutput.contentValues).build()
- .let { videoCapture!!.output.prepareRecording(activity, it) }
+ MediaStoreOutputOptions.Builder(contentResolver, mediaOutput.contentUri).apply {
+ setContentValues(mediaOutput.contentValues)
+ if (config.savePhotoVideoLocation) {
+ setLocation(simpleLocationManager?.getLocation())
+ }
+ }.build().let { videoCapture!!.output.prepareRecording(activity, it) }
}
}
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 60e0b3aa..25aa66bd 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -204,6 +204,21 @@
+
+
+
+
+
+
إبقاء أزرار الإعداد مرئيا
افتح التطبيق دائمًا بالكاميرا الخلفية
حفظ بيانات الصورة الوصفية
- حفظ موقع الصورة
Save photo and video location
جودة ضغط الصور
الغالق
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index ec8aad37..0097b0a3 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -50,10 +50,10 @@
Parametrlər düyməsini göstər
Tətbiqi həmişə Arxa kamerada başlat
Şəklin haqqında əlavələri saxla
- Save photo location
Save photo and video location
Şəkil sıxışdırma keyfiyyəti
Çəkən
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 2f7ee359..3e790008 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -47,12 +47,12 @@
Neskrývat tlačítka nastavení
Aplikaci vždy otevřít s aktivním zadním fotoaparátem
Ukládat exif metadata fotografií
- Save photo location
Save photo and video location
Úroveň komprese fotografií
Spoušť
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index 688cbe40..04667c0c 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -47,12 +47,12 @@
Cadw\'r botymau gosodiadau mewn golwg
Agor yr ap gyda\'r camera cefn bob tro
Cadw metaddata lluniau
- Save photo location
Save photo and video location
Ansawdd cywasgiad lluniau
Caead
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 4e18c0a1..12056550 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -47,10 +47,10 @@
Lad indstillingsknapperne være synlige
Åbn altid appen med kameraet på bagsiden
Gem Exif-metadata i fotos
- Save photo location
Save photo and video location
Fotokomprimeringskvalitet
Lukker
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index fc77b08a..826ad44c 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -50,10 +50,10 @@
Διατήρηση εμφανών κουμπιών ρύθμισης
Πάντα άνοιγμα της εφαρμογής με την πίσω κάμερα
Αποθήκευση μεταδεδομένων exif φωτογραφίας
- Αποθήκευση τοποθεσίας φωτογραφίας
Save photo and video location
Ποιότητα συμπίεσης φωτογραφιών
Κλείστρο
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index a778cf51..3cff72e5 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -47,12 +47,12 @@
Hoia seadistusnupud nähtaval
Rakenduse käivitamisel kasuta esmalt tagakaamerat
Salvesta fotofaili EXIF-metateave
- Foto salvestamise asukoht
Save photo and video location
Fotode pakkimise tase
Katik
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 8f02d2c4..cad7bd99 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -47,12 +47,12 @@
Pidä asetuspainikkeet näkyvissä
Avaa sovellus aina takakamera aktiivisena
Tallenna valokuvien Exif-metatiedot
- Save photo location
Save photo and video location
Valokuvien pakkauslaatu
Suljin
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 9cf63a4c..2ff821be 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -47,12 +47,12 @@
Garder visible les boutons de réglage
Toujours ouvrir l\'application avec l\'appareil photo arrière
Enregistrer les métadonnées Exif dans les photos
- Enregistrer l’emplacement de la photo
Save photo and video location
Qualité des photos
Obturateur
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index ed42fdad..d969b876 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -47,12 +47,12 @@
Manter visibles os botóns dos axustes
Abrir sempre o aplicativo coa cámara traseira
Gardar metadatos EXIF da foto
- Save photo location
Save photo and video location
Calidade da compresión da foto
Obturador
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 7cb681e2..e8ad7f4c 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -47,12 +47,12 @@
Ostavi gumbe postavki vidljivima
Otvori aplikaciju uvijek pomoću stražnje kamere
Spremi exif metapodatke fotografije
- Save photo location
Save photo and video location
Kvaliteta kompresije fotografije
Otvor objektiva
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index bdc16558..ca3687d9 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -47,12 +47,12 @@
Tartsa láthatóvá a beállítási gombokat
Mindig a Hátsó kamerával nyissa meg az alkalmazást
Fotó adatok mentése
- Save photo location
Save photo and video location
Fotó tömörítés minősége
Záró
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index f2eff3c4..64d8877b 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -47,12 +47,12 @@
Selalu tampilkan tombol pengaturan
Selalu buka aplikasi dengan kamera belakang
Simpan metadata exif foto
- Lokasi penyimpanan foto
Save photo and video location
Kualitas kompresi foto
Rana
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 67aeec98..9bb6f0ba 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -47,12 +47,12 @@
Mantieni il pulsante delle impostazioni visibile
Apri sempre l\'app con la fotocamera posteriore
Salva i metadati Exif nelle foto
- Salva la posizione della foto
Save photo and video location
Qualità della compressione delle foto
Otturatore
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 91cdf81a..9c7ed152 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -49,10 +49,10 @@
השאר את לחצני ההגדרה גלויים
פתח את האפליקציה תמיד עם המצלמה האחורית
שמור מטא נתונים של Exif של תמונה
- Save photo location
Save photo and video location
איכות דחיסת תמונה
תריס
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 99d5a1f6..76f7ff26 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -47,10 +47,10 @@
설정 버튼 표시 유지
항상 후면카메라로 실행
사진 exif 메타 데이터 저장
- Save photo location
Save photo and video location
사진 압축 품질
Shutter
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index cfd7e561..a042fbd7 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -47,10 +47,10 @@
ക്രമീകരണ ബട്ടൺ ദൃശ്യമാക്കുക
എല്ലായ്പ്പോഴും പുറകിലെ ക്യാമറ ഉപയോഗിച്ച് അപ്ലിക്കേഷൻ തുറക്കുക
ഫോട്ടോ exif മെറ്റാഡാറ്റ സംരക്ഷിക്കുക
- Save photo location
Save photo and video location
ഫോട്ടോ കംപ്രഷൻ ക്വാളിറ്റി
ഷട്ടർ
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml
index d52dc362..216c3c82 100644
--- a/app/src/main/res/values-nn/strings.xml
+++ b/app/src/main/res/values-nn/strings.xml
@@ -47,12 +47,12 @@
Held innstillingknappen synleg
Byt til kameraet bak når appen vert opna
Gøym Exif-metadata i bilete
- Save photo location
Save photo and video location
Biletekvalitet (Merk: høgre % tek au meir rom)
Opptak
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml
index 83455786..35467bec 100644
--- a/app/src/main/res/values-pa-rPK/strings.xml
+++ b/app/src/main/res/values-pa-rPK/strings.xml
@@ -47,8 +47,8 @@
Keep the setting buttons visible
Always open the app with the Back camera
ایکسیف میٹاڈیٹا سامبھو
- Save photo location
Save photo and video location
Photo compression quality
Shutter
+ You must allow Camera accessing location, else it cannot complete this action.
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index db4451b8..2c06ca0f 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -47,12 +47,12 @@
Pozostawiaj przyciski ustawień widoczne
Zawsze otwieraj aplikację z włączonym tylnym aparatem
Zapisuj metadane EXIF w zdjęciach
- Zapisuj lokalizację zdjęcia
Save photo and video location
Jakość kompresji zdjęć
Migawka
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 765da9d0..4b50666d 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -47,12 +47,12 @@
Mantenha os botões de configuração visíveis
Sempre abra o aplicativo com a câmera traseira
Salvar metadados exif da foto
- Save photo location
Save photo and video location
Qualidade de compresão de imagem
Obturador
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 61f563eb..f124bfbb 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -47,12 +47,12 @@
Botão de definições sempre visível
Abrir a aplicação sempre com a câmara traseira
Guardar dados exif das fotos
- Save photo location
Save photo and video location
Qualidade da compressão
Obturador
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index ea2a0b42..5bf01c93 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -47,12 +47,12 @@
Manter botão de definições visível
Abrir sempre a aplicação com a câmera traseira
Guardar dados exif com a foto
- Local para guardar as fotos
Save photo and video location
Qualidade de compressão da foto
Obturador
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index d1d6e14a..835142a0 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -47,10 +47,10 @@
Păstrați vizibile butoanele de setări
Deschideți întotdeauna aplicația cu camera din spate
Salvați metadatele exif ale fotografiilor
- Save photo location
Save photo and video location
Calitatea comprimării fotografiilor
Declanșator
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index f1954a34..726597fc 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -50,10 +50,10 @@
Neskrývať tlačidlá nastavení
Stále otvárať aplikáciu s aktívnou zadnou kamerou
Ukladať exif metadáta fotografií
- Ukladať údaje o polohe
Ukladať údaje o polohe fotiek a videí
Kvalita kompresie fotiek
Spúšť
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml
index b45ba441..e18ad110 100644
--- a/app/src/main/res/values-th/strings.xml
+++ b/app/src/main/res/values-th/strings.xml
@@ -51,10 +51,10 @@
Keep the setting buttons visible
Always open the app with the Back camera
Save photo exif metadata
- Save photo location
Save photo and video location
Photo compression quality
Shutter
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 690b0e22..3fa04e8a 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -47,12 +47,12 @@
Завжди показувати панель налаштувань
Завжди активувати задню камеру під час запуску додатка
Зберігати метадані EXIF
- Зберігати розташування фото
Save photo and video location
Якість фото після стиснення
Затвор
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 3d91c576..820f62d6 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -47,12 +47,12 @@
设置按钮保持可见
打开应用时切换到后置相机
保存照片 EXIF 元数据
- 保存照片位置
Save photo and video location
照片压缩品质
快门
+ You must allow Camera accessing location, else it cannot complete this action.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 4d2bcaa2..32cd305b 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -49,10 +49,10 @@
設定按鈕不消失
開啟程式總是用後鏡頭
儲存相片EXIF資訊
- Save photo location
Save photo and video location
相片壓縮品質
快門
+ You must allow Camera accessing location, else it cannot complete this action.