From 6bc74d8066b7837f5f0d6ea4a7b1be1218e0e321 Mon Sep 17 00:00:00 2001 From: darthpaul <paulakhamiogu@gmail.com> Date: Wed, 13 Jul 2022 16:16:17 +0100 Subject: [PATCH 1/5] fix warnings in activity_main - add contentDescription attribute on the ImageView icons for accessibility --- app/src/main/res/layout/activity_main.xml | 23 ++++++++++++++++------- app/src/main/res/values/strings.xml | 7 +++++++ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 690e9001..0b5ac725 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:id="@+id/view_holder" android:layout_width="match_parent" android:layout_height="match_parent" @@ -10,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> - <ImageView + <View android:id="@+id/capture_black_screen" android:layout_width="match_parent" android:layout_height="match_parent" @@ -21,7 +22,8 @@ android:id="@+id/settings" android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" + android:contentDescription="@string/settings" android:padding="@dimen/normal_margin" android:src="@drawable/ic_settings_cog_vector" /> @@ -30,7 +32,8 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_below="@+id/settings" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" + android:contentDescription="@string/toggle_photo_video" android:padding="@dimen/normal_margin" android:src="@drawable/ic_video_vector" /> @@ -39,7 +42,8 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_below="@+id/toggle_photo_video" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" + android:contentDescription="@string/resolution" android:padding="@dimen/normal_margin" android:src="@drawable/ic_resolution_vector" /> @@ -48,13 +52,15 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_below="@+id/change_resolution" - android:layout_alignParentRight="true" + android:layout_alignParentEnd="true" + android:contentDescription="@string/view_last_media" android:padding="@dimen/medium_margin" /> <LinearLayout android:id="@+id/btn_holder" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_alignParentBottom="true" android:gravity="center_horizontal|bottom"> @@ -63,6 +69,7 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_weight="1" + android:contentDescription="@string/toggle_camera" android:padding="@dimen/normal_margin" android:src="@drawable/ic_camera_front_vector" /> @@ -71,6 +78,7 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_weight="1" + android:contentDescription="@string/shutter" android:src="@drawable/ic_shutter_vector" /> <ImageView @@ -78,6 +86,7 @@ android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:layout_weight="1" + android:contentDescription="@string/toggle_flash" android:padding="@dimen/normal_margin" android:src="@drawable/ic_flash_off_vector" /> @@ -89,8 +98,8 @@ android:layout_height="wrap_content" android:layout_above="@+id/btn_holder" android:layout_centerHorizontal="true" - android:text="00:00" android:textColor="@android:color/white" - android:visibility="gone" /> + android:visibility="gone" + tools:text="00:00" /> </RelativeLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a8d052e9..88fda290 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,6 +24,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> From 9c021c655b02eb14983c53b2ec086f4022aa71c2 Mon Sep 17 00:00:00 2001 From: darthpaul <paulakhamiogu@gmail.com> Date: Wed, 13 Jul 2022 16:39:18 +0100 Subject: [PATCH 2/5] do some optimisations for pre SDK 29 devices --- .../camera/activities/MainActivity.kt | 44 ++++++++++----- .../camera/activities/SettingsActivity.kt | 14 +++-- .../camera/dialogs/ChangeResolutionDialogX.kt | 2 +- .../camera/helpers/MediaOutputHelper.kt | 55 ++++++++++++++++--- .../camera/helpers/VideoQualityManager.kt | 2 +- .../camera/implementations/CameraXPreview.kt | 6 +- .../camera/models/MediaOutput.kt | 6 ++ 7 files changed, 99 insertions(+), 30 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt index d5679f65..cd06b2da 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt @@ -7,6 +7,7 @@ import android.hardware.SensorManager import android.net.Uri import android.os.Bundle import android.os.Handler +import android.os.Looper import android.provider.MediaStore import android.util.Log import android.view.* @@ -31,9 +32,11 @@ import java.util.concurrent.TimeUnit import kotlinx.android.synthetic.main.activity_main.* class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, CameraXPreviewListener { - private val TAG = "MainActivity" - private val FADE_DELAY = 5000L - private val CAPTURE_ANIMATION_DURATION = 100L + companion object { + private const val TAG = "MainActivity" + private const val FADE_DELAY = 5000L + private const val CAPTURE_ANIMATION_DURATION = 100L + } lateinit var mTimerHandler: Handler private lateinit var mOrientationEventListener: OrientationEventListener @@ -49,14 +52,8 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera private var mCurrVideoRecTimer = 0 var mLastHandledOrientation = 0 + @Suppress("DEPRECATION") override fun onCreate(savedInstanceState: Bundle?) { - window.addFlags( - WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or - WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or - WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or - WindowManager.LayoutParams.FLAG_FULLSCREEN - ) - useDynamicTheme = false super.onCreate(savedInstanceState) appLaunched(BuildConfig.APPLICATION_ID) @@ -67,6 +64,22 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera supportActionBar?.hide() checkWhatsNewDialog() setupOrientationEventListener() + if (isRPlus()) { + setShowWhenLocked(true) + setTurnScreenOn(true) + window.insetsController?.hide(WindowInsets.Type.statusBars()) + } else if (isOreoMr1Plus()) { + setShowWhenLocked(true) + setTurnScreenOn(true) + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + } else { + window.addFlags( + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or + WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or + WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or + WindowManager.LayoutParams.FLAG_FULLSCREEN + ) + } } override fun onResume() { @@ -238,8 +251,8 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera mFocusCircleView = FocusCircleView(applicationContext) view_holder.addView(mFocusCircleView) - mTimerHandler = Handler() - mFadeHandler = Handler() + mTimerHandler = Handler(Looper.getMainLooper()) + mFadeHandler = Handler(Looper.getMainLooper()) setupPreviewImage(true) val initialFlashlightState = FLASH_OFF @@ -439,8 +452,13 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera view.isClickable = value != .0f } + @Suppress("DEPRECATION") private fun hideNavigationBarIcons() { - window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE + if (isRPlus()) { + window.insetsController?.hide(WindowInsets.Type.systemBars()) + } else { + window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE + } } private fun showTimer() { 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 a7114ca3..5b7596e9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt @@ -1,8 +1,10 @@ package com.simplemobiletools.camera.activities +import android.annotation.SuppressLint import android.os.Bundle import android.view.Menu import android.view.MenuItem +import androidx.core.content.res.ResourcesCompat import com.simplemobiletools.camera.BuildConfig import com.simplemobiletools.camera.R import com.simplemobiletools.camera.extensions.config @@ -14,6 +16,7 @@ import com.simplemobiletools.commons.helpers.NavigationIcon import com.simplemobiletools.commons.models.FAQItem import com.simplemobiletools.commons.models.RadioItem import java.util.Locale +import kotlin.system.exitProcess import kotlinx.android.synthetic.main.activity_settings.* class SettingsActivity : SimpleActivity() { @@ -77,7 +80,7 @@ class SettingsActivity : SimpleActivity() { // make sure the corners at ripple fit the stroke rounded corners if (settings_purchase_thank_you_holder.isGone()) { - settings_use_english_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme) + settings_use_english_holder.background = ResourcesCompat.getDrawable(resources, R.drawable.ripple_top_corners, theme) } settings_purchase_thank_you_holder.setOnClickListener { @@ -97,13 +100,13 @@ class SettingsActivity : SimpleActivity() { settings_use_english.isChecked = config.useEnglish if (settings_use_english_holder.isGone() && settings_purchase_thank_you_holder.isGone()) { - settings_keep_settings_visible_holder.background = resources.getDrawable(R.drawable.ripple_all_corners, theme) + settings_keep_settings_visible_holder.background = ResourcesCompat.getDrawable(resources, R.drawable.ripple_all_corners, theme) } settings_use_english_holder.setOnClickListener { settings_use_english.toggle() config.useEnglish = settings_use_english.isChecked - System.exit(0) + exitProcess(0) } } @@ -172,8 +175,8 @@ class SettingsActivity : SimpleActivity() { settings_save_photos_holder.setOnClickListener { FilePickerDialog(this, config.savePhotosFolder, false, showFAB = true) { val path = it - handleSAFDialog(it) { - if (it) { + handleSAFDialog(it) { success -> + if (success) { config.savePhotosFolder = path settings_save_photos.text = getLastPart(config.savePhotosFolder) } @@ -206,6 +209,7 @@ class SettingsActivity : SimpleActivity() { } } + @SuppressLint("SetTextI18n") private fun updatePhotoQuality(quality: Int) { settings_photo_quality.text = "$quality%" } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt index 2e3c8a19..05e25133 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt @@ -90,7 +90,7 @@ class ChangeResolutionDialogX( if (isFrontCamera) { config.frontVideoResIndex = selectionIndex } else { - config.backPhotoResIndex = selectionIndex + config.backVideoResIndex = selectionIndex } dialog?.dismiss() callback.invoke() diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt index 62b29dfd..2e790450 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt @@ -12,6 +12,8 @@ import com.simplemobiletools.camera.extensions.getRandomMediaName import com.simplemobiletools.camera.models.MediaOutput import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.isOreoPlus +import com.simplemobiletools.commons.helpers.isQPlus import java.io.File import java.io.OutputStream @@ -25,6 +27,7 @@ class MediaOutputHelper( companion object { private const val TAG = "MediaOutputHelper" private const val MODE = "rw" + private const val EXTERNAL_VOLUME = "external" private const val IMAGE_MIME_TYPE = "image/jpeg" private const val VIDEO_MIME_TYPE = "video/mp4" } @@ -53,37 +56,56 @@ class MediaOutputHelper( fun getVideoMediaOutput(): MediaOutput { return if (is3rdPartyIntent) { if (outputUri != null) { - val fileDescriptor = openFileDescriptor(outputUri) - if (fileDescriptor != null) { - MediaOutput.FileDescriptorMediaOutput(fileDescriptor, outputUri) + if (isOreoPlus()) { + val fileDescriptor = openFileDescriptor(outputUri) + if (fileDescriptor != null) { + MediaOutput.FileDescriptorMediaOutput(fileDescriptor, outputUri) + } else { + errorHandler.showSaveToInternalStorage() + getMediaStoreOutput(isPhoto = false) + } } else { - errorHandler.showSaveToInternalStorage() - getMediaStoreOutput(isPhoto = false) + val path = activity.getRealPathFromURI(outputUri) + if (path != null) { + MediaOutput.FileMediaOutput(File(path), outputUri) + } else { + errorHandler.showSaveToInternalStorage() + getMediaStoreOutput(isPhoto = false) + } } } else { getMediaStoreOutput(isPhoto = false) } } else { - getFileDescriptorMediaOutput() ?: getMediaStoreOutput(isPhoto = false) + if (isOreoPlus()) { + getFileDescriptorMediaOutput() ?: getMediaStoreOutput(isPhoto = false) + } else { + getFileMediaOutput() ?: getMediaStoreOutput(isPhoto = false) + } } } private fun getMediaStoreOutput(isPhoto: Boolean): MediaOutput.MediaStoreOutput { val contentValues = getContentValues(isPhoto) val contentUri = if (isPhoto) { - MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY) + MediaStore.Images.Media.getContentUri(EXTERNAL_VOLUME) } else { - MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY) + MediaStore.Video.Media.getContentUri(EXTERNAL_VOLUME) } return MediaOutput.MediaStoreOutput(contentValues, contentUri) } + @Suppress("DEPRECATION") private fun getContentValues(isPhoto: Boolean): ContentValues { val mimeType = if (isPhoto) IMAGE_MIME_TYPE else VIDEO_MIME_TYPE return ContentValues().apply { put(MediaStore.MediaColumns.DISPLAY_NAME, getRandomMediaName(isPhoto)) put(MediaStore.MediaColumns.MIME_TYPE, mimeType) - put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM) + if (isQPlus()) { + put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM) + } else { + put(MediaStore.MediaColumns.DATA, Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()) + } } } @@ -131,6 +153,21 @@ class MediaOutputHelper( return mediaOutput } + private fun getFileMediaOutput(): MediaOutput.FileMediaOutput? { + var mediaOutput: MediaOutput.FileMediaOutput? = null + val canWrite = canWriteToFilePath(mediaStorageDir) + Log.i(TAG, "getMediaOutput: canWrite=${canWrite}") + if (canWrite) { + val path = activity.getOutputMediaFile(false) + val uri = getUriForFilePath(path) + if (uri != null) { + mediaOutput = MediaOutput.FileMediaOutput(File(path), uri) + } + } + Log.i(TAG, "FileDescriptorMediaOutput: $mediaOutput") + return mediaOutput + } + private fun openFileDescriptor(uri: Uri): ParcelFileDescriptor? { return try { Log.i(TAG, "uri: $uri") diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt index a2a6948e..d667f1d1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt @@ -51,7 +51,7 @@ class VideoQualityManager( fun getUserSelectedQuality(cameraSelector: CameraSelector): Quality { var selectionIndex = if (cameraSelector == CameraSelector.DEFAULT_FRONT_CAMERA) config.frontVideoResIndex else config.backVideoResIndex selectionIndex = selectionIndex.coerceAtLeast(0) - return getSupportedQualities(cameraSelector)[selectionIndex].toCameraXQuality() + return getSupportedQualities(cameraSelector).getOrElse(selectionIndex) { VideoQuality.HD }.toCameraXQuality() } fun getSupportedQualities(cameraSelector: CameraSelector): List<VideoQuality> { 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 8a12169b..6ebde5ae 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt @@ -431,7 +431,7 @@ class CameraXPreview( } } - @SuppressLint("MissingPermission") + @SuppressLint("MissingPermission", "NewApi") private fun startRecording() { val videoCapture = videoCapture ?: throw IllegalStateException("Camera initialization failed.") @@ -441,6 +441,10 @@ class CameraXPreview( FileDescriptorOutputOptions.Builder(mediaOutput.fileDescriptor).build() .let { videoCapture.output.prepareRecording(activity, it) } } + is MediaOutput.FileMediaOutput -> { + FileOutputOptions.Builder(mediaOutput.file).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) } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/models/MediaOutput.kt b/app/src/main/kotlin/com/simplemobiletools/camera/models/MediaOutput.kt index c4e1e8d0..2bb2edd5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/models/MediaOutput.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/models/MediaOutput.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.camera.models import android.content.ContentValues import android.net.Uri import android.os.ParcelFileDescriptor +import java.io.File import java.io.OutputStream sealed class MediaOutput( @@ -23,5 +24,10 @@ sealed class MediaOutput( override val uri: Uri, ) : MediaOutput(uri) + data class FileMediaOutput( + val file: File, + override val uri: Uri, + ) : MediaOutput(uri) + object BitmapOutput : MediaOutput(null) } From 1929260f8c2960ee6c1af74d4162d0fdc582b913 Mon Sep 17 00:00:00 2001 From: darthpaul <paulakhamiogu@gmail.com> Date: Wed, 13 Jul 2022 16:55:01 +0100 Subject: [PATCH 3/5] add strings in other locales --- app/src/main/res/values-ar/strings.xml | 8 ++++++++ app/src/main/res/values-az/strings.xml | 7 +++++++ app/src/main/res/values-be/strings.xml | 7 +++++++ app/src/main/res/values-bg/strings.xml | 9 ++++++++- app/src/main/res/values-ca/strings.xml | 20 ++++++++++++++------ app/src/main/res/values-cs/strings.xml | 7 +++++++ app/src/main/res/values-cy/strings.xml | 7 +++++++ app/src/main/res/values-da/strings.xml | 8 ++++++++ app/src/main/res/values-de/strings.xml | 10 +++++++++- app/src/main/res/values-el/strings.xml | 7 +++++++ app/src/main/res/values-eo/strings.xml | 7 +++++++ app/src/main/res/values-es/strings.xml | 8 ++++++++ app/src/main/res/values-et/strings.xml | 8 ++++++++ app/src/main/res/values-fi/strings.xml | 10 +++++++++- app/src/main/res/values-fr/strings.xml | 10 +++++++++- app/src/main/res/values-gl/strings.xml | 7 +++++++ app/src/main/res/values-hr/strings.xml | 8 ++++++++ app/src/main/res/values-hu/strings.xml | 7 +++++++ app/src/main/res/values-in/strings.xml | 10 +++++++++- app/src/main/res/values-it/strings.xml | 8 ++++++++ app/src/main/res/values-iw/strings.xml | 8 ++++++++ app/src/main/res/values-ja/strings.xml | 7 +++++++ app/src/main/res/values-ko/strings.xml | 7 +++++++ app/src/main/res/values-lt/strings.xml | 7 +++++++ app/src/main/res/values-ml/strings.xml | 7 +++++++ app/src/main/res/values-nb-rNO/strings.xml | 8 ++++++++ app/src/main/res/values-ne/strings.xml | 7 +++++++ app/src/main/res/values-nl/strings.xml | 8 ++++++++ app/src/main/res/values-pl/strings.xml | 8 ++++++++ app/src/main/res/values-pt-rBR/strings.xml | 8 ++++++++ app/src/main/res/values-pt-rPT/strings.xml | 7 +++++++ app/src/main/res/values-pt/strings.xml | 8 ++++++++ app/src/main/res/values-ro/strings.xml | 7 +++++++ app/src/main/res/values-ru/strings.xml | 8 ++++++++ app/src/main/res/values-sk/strings.xml | 7 +++++++ app/src/main/res/values-sv/strings.xml | 8 ++++++++ app/src/main/res/values-th/strings.xml | 7 +++++++ app/src/main/res/values-tr/strings.xml | 7 +++++++ app/src/main/res/values-uk/strings.xml | 8 ++++++++ app/src/main/res/values-zh-rCN/strings.xml | 8 ++++++++ app/src/main/res/values-zh-rTW/strings.xml | 10 +++++++++- 41 files changed, 321 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 063294a2..fd405290 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">ما هي جودة ضغط الصور التي يجب تعيينها؟</string> <string name="faq_1_text">ذلك يعتمد على هدفك. لأغراض عامة ينصح معظم الناس باستخدام 75٪ -80٪، عندما تكون الصورة لا تزال ذات نوعية جيدة حقا، ولكن يتم تقليل حجم الملف بشكل كبير مقارنة مع 100٪.</string> diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 5c96469c..de07d070 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Şəkli hansı keyfiyyətdə yaddaşa salmalıyam?</string> <string name="faq_1_text">Ümumiyyətlə, özünüzdən asılıdır. Gündəlik istifadə üçün çoxları 75%-80%\'i tövsiyyə edir, hansı ki, bu parametrdə şəkil hələ də yaxşı görünür, amma fayl ölçüsü 100%\'ə nəzərən kiçilmişdir.</string> diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 681cd5dd..4b5fc0ae 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -21,6 +21,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 1367ee6e..19ef6958 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -18,6 +18,13 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> <!-- FAQ --> <string name="faq_1_title">Колко трябва да компресирам качеството на снимките\?</string> <string name="faq_1_text">Зависи. За общо ползване повечето хора съветват да 75%-80%, като изображението все още е с наистина добро качество, но размерът на файла е драстично намален в сравнение със 100%.</string> @@ -42,4 +49,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index d0d1e055..7eff1536 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -12,12 +12,20 @@ <string name="photo_not_saved">No s\'ha pogut desar la foto</string> <string name="setting_resolution_failed">No s\'ha pogut establir la resolució adequada</string> <string name="video_recording_failed">Ha fallat la gravació de vídeo, proveu d\'utilitzar una resolució diferent</string> - <string name="camera_in_use_error">Una altra aplicació està utilitzant la càmera; tanqueu l\'aplicació i torneu-ho a provar</string> - <string name="camera_configure_error">S\'ha produït un error en configurar la càmera</string> - <string name="camera_disabled_by_admin_error">L\'administrador ha desactivat la càmera</string> - <string name="camera_dnd_error">El mode «No molestis» està activat. Desactiveu-lo i torneu-ho a provar</string> - <string name="photo_capture_failed">Ha fallat la captura de la foto</string> - <string name="video_capture_insufficient_storage_error">Ha fallat la gravació del vídeo a causa d\'un emmagatzematge insuficient</string> + <string name="camera_in_use_error">Camera is in use by another app, please close the app and try again</string> + <string name="camera_configure_error">An error occurred while configuring the camera</string> + <string name="camera_disabled_by_admin_error">Camera is disabled by the admin</string> + <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> + <string name="photo_capture_failed">Photo capture failed</string> + <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Quina qualitat de compressió fotogràfica he d\'establir\?</string> <string name="faq_1_text">Depèn del vostre objectiu. Amb finalitats genèriques, la majoria de la gent aconsella utilitzar un 75%-80%, quan la imatge encara és de molt bona qualitat, però la mida del fitxer es redueix dràsticament en comparació amb el 100%.</string> diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index b929544e..a6b789dd 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Jakou kvalitu fotek bych měl použít?</string> <string name="faq_1_text">Záleží to na vášem cíli. Pro obecné účely doporučuje většina lidí 75%-80%, kdy je kvalita fotek stále vysoká, ale výsledný soubor má o mnoho menší velikost v porovnání se 100% kvalitou.</string> diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 50872202..a93955b1 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Pa ansawdd cywasgu llun dylwn ei osod?</string> <string name="faq_1_text">Mae\'n dibynnu ar dy bwrpas. Ar gyfer defnydd cyffredin, argymhellir defnyddio 75%-80% fel bod safon y llun yn dal i fod yn dda iawn ond bydd maint y ffeil yn dipyn llai na 100%.</string> diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index fd0c3973..0f965164 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Hvilken fotokomprimeringskvalitet skal jeg anvende\?</string> <string name="faq_1_text">Det afhænger af dit mål. Til almindelige formål anbefaler de fleste at bruge 75-80 %, hvor billedet stadig har en rigtig god kvalitet, men hvor filstørrelsen er reduceret drastisk i forhold til 100 %.</string> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6d9d2ef2..b4880aba 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Der „Bitte nicht stören“-Modus ist aktiviert. Bitte deaktivieren Sie ihn und versuchen Sie es erneut</string> <string name="photo_capture_failed">Fotoaufnahme fehlgeschlagen</string> <string name="video_capture_insufficient_storage_error">Videoaufzeichnung aufgrund unzureichender Speicherkapazität fehlgeschlagen</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Was für eine Fotokomprimierungsqualität soll ich einstellen?</string> <string name="faq_1_text">Das hängt von deinem Ziel ab. Für allgemeine Zwecke empfehlen die meisten 75 - 80 %, wodurch die Qualität immer noch sehr gut bleibt, aber die Dateigrösse drastisch reduziert ist im Vergleich zu 100 %.</string> @@ -42,4 +50,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 821b885b..9a066e25 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Αποτυχία λήψης φωτογραφιών</string> <string name="video_capture_insufficient_storage_error">Η εγγραφή βίντεο απέτυχε λόγω ανεπαρκούς αποθηκευτικού χώρου</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Ποια ποιότητα συμπίεσης φωτογραφιών πρέπει να ορίσω;</string> <string name="faq_1_text">Εξαρτάται από το στόχο σας. Για γενικούς σκοπούς, οι περισσότεροι συμβουλεύουν τη χρήση του 75%-80%, όταν η εικόνα εξακολουθεί να είναι πραγματικά καλής ποιότητας, αλλά το μέγεθος του αρχείου μειώνεται δραστικά σε σύγκριση με το 100%.</string> diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 52072b06..321a812d 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 098de07f..5f54543f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">¿Qué calidad de compresión de foto debería establecer?</string> <string name="faq_1_text">Depende de tu objetivo. Para propósitos generales, la mayoría de las personas aconsejan usar 75%-80%, y la imagen seguirá siendo de calidad realmente buena, pero el tamaño del archivo es reducido drásticamente comparado con el 100%.</string> diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 1ee7b94d..5b144044 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Ära häiri režiim on sisse lülitatud. Palun lülita see välja ja proovi uuesti</string> <string name="photo_capture_failed">Foto jäädvustamine ei õnnestunud</string> <string name="video_capture_insufficient_storage_error">Video salvestamine ei õnnestunud ebapiisava salvestusruumi tõttu</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Missugust piltide pakkimise kvaliteeti peaksin kasutama\?</string> <string name="faq_1_text">See sõltub sinu eesmärkidest. Üldiselt soovitame 75-80-protsendilist pakkimist, mispuhul piltide kvaliteet on jätkuvalt mõistlik, kuid piltide suurus on 100-protsendilise kvaliteediga võrreldes väiksem.</string> diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index d9d2cb3b..b6b6ba22 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Mitä valokuvan pakkauslaatua minun pitäisi käyttää?</string> <string name="faq_1_text">Se riippuu tarkoituksestasi. Yleisissä tarkoituksissa useimmat ihmiset suosittelevat käyttämään 75-80%, kun kuva on edelleen todella hyvälaatuinen, mutta tiedoston koko pienenee huomattavasti verrattuna 100%:iin.</string> @@ -42,4 +50,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 8f341125..be1eee61 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Le mode Ne pas déranger est activé. Veuillez le désactiver et réessayer</string> <string name="photo_capture_failed">Échec de la prise de photo</string> <string name="video_capture_insufficient_storage_error">L\'enregistrement vidéo a échoué en raison d\'un stockage insuffisant</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Quelle valeur devrais-je mettre pour la qualité des photos \?</string> <string name="faq_1_text">Tout dépend de ce que vous voulez en faire. Pour la plupart des usages, il est recommandé entre 75 et 80 %, ce qui est reste de qualité acceptable, tout en générant un fichier de taille bien inférieure à une photo avec une qualité de 100 %.</string> @@ -42,4 +50,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index de9738fe..4ee14ca3 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Que calidade de compresión debo escoller para a foto?</string> <string name="faq_1_text">Depende do obxectivo. Para uso xeral a maioría das persoas usuarias recomendan entre un 75%-80%, que é un valor bastante bo, pero o tamaño do ficheiro redúcese drasticamente comparado co 100%.</string> diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 06e95361..7a7bd954 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Modus „Ne smetaj” je aktiviran. Deaktiviraj ga i pokušaj ponovo</string> <string name="photo_capture_failed">Snimanje fotografije nije uspjelo</string> <string name="video_capture_insufficient_storage_error">Snimanje videa nije uspjelo zbog nedovoljne memorije</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Koju kvalitetu kompresije fotografija trebam postaviti\?</string> <string name="faq_1_text">Ovisi o tvom cilju. Za opće namjene, većina ljudi savjetuje korištenje 75 do 80 % kad je slika dobre kvalitete, ali se veličina datoteke drastično smanjuje u usporedbi sa 100 %.</string> diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 52072b06..321a812d 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 4c27313f..b8aca346 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Mode Jangan Ganggu diaktifkan. Silakan nonaktifkan dan coba lagi</string> <string name="photo_capture_failed">Gagal mengambil foto</string> <string name="video_capture_insufficient_storage_error">Gagal merekam video karena penyimpanan tidak cukup</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Kualitas kompresi foto mana yang harus saya gunakan?</string> <string name="faq_1_text">Tergantung tujuan anda. Untuk hal-hal yang umum direkomendasikan menggunakan 75%-80%, kualitas gambar masih sangat bagus, tetapi ukuran berkas berkurang signifikan dibandingkan dengan 100%.</string> @@ -42,4 +50,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 89e6745f..56d5e814 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">La modalità non disturbare è abilitata. Disabilitare e riprovare</string> <string name="photo_capture_failed">Acquisizione di foto non riuscita</string> <string name="video_capture_insufficient_storage_error">Registrazione video non riuscita a causa dello spazio d\'archiviazione insufficiente</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Che qualità di compressione dovrei impostare?</string> <string name="faq_1_text">Dipende dal proprio obiettivo. In genere si consiglia di utilizzare una qualità del 75%-80%, in modo che l\'immagine sia ancora di ottima qualità, ma la dimensione del file viene ridotta drasticamente rispetto al 100%.</string> diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index fb892035..b361873a 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">איזו איכות דחיסת תמונה עלי להגדיר\?</string> <string name="faq_1_text">זה תלוי במטרה שלך. למטרות כלליות רוב האנשים ממליצים להשתמש ב-75%-80%, כאשר התמונה עדיין באיכות טובה, אך גודל הקובץ מצטמצם באופן דרסטי בהשוואה ל-100%.</string> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f4f45ce0..ae7e0878 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">写真の圧縮品質はどのように設定すればよいですか?</string> <string name="faq_1_text">これはあなたの求める目標によります。一般的な用途には、75%~80%の使用をおすすめします。この設定でも画像は十分に良い品質ですが、ファイルサイズは100%と比べて大幅に削減することができます。</string> diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 953bed90..8a58789d 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">사진 압축품질을 무엇으로 설정해야 하나요?</string> <string name="faq_1_text">압축품질은 촬영용도에 따라 달라질 수 있지만, 일반적으로 75% -80%를 사용하도록 권고합니다. 75% -80%로 압축 품질을 설정하면 파일 크기는 100%에 비해 크게 줄어듭니다.</string> diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index bb277454..4cccff06 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Kokią nuotraukos suspaudimo kokybę turėčiau nustatyti?</string> <string name="faq_1_text">Tai priklauso nuo Jūsų tikslų. Įprastiems tikslams dauguma žmonių pataria naudoti 75%-80%, kai nuotrauka vistiek yra geros kokybės, bet bylos dydis sumažėja kardinaliai palyginus su 100%.</string> diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index fd770d0f..2f1387fa 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">ഏത് ഫോട്ടോ കംപ്രഷനാണ് ഞാൻ ഉപയോഗിക്കേണ്ടത്?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 5cd346f4..657a2f84 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Hvilket bildekomprimeringsnivå bør jeg bruke\?</string> <string name="faq_1_text">Det avhenger av hva du vil. Til alminnelige formål anbefales 75%-80%. Fremdeles god kvalitet, men vesentlig redusert filstørrelse sammenlignet med 100%.</string> diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 620a4e62..519a8103 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">मैले कस्तो फोटो खदाईको गुणस्तर स्थापित गर्नुपर्छ ?</string> <string name="faq_1_text">यो तपाईको चाहानामा भर पर्छ । सामान्यतया सबैले 75%-80% मा प्रयोग गर्छन, जब तस्बिर राम्रो गुणस्तरको छ, तर 100% को तुलनामा फाईल साईज अस्वभाविक रुपले घट्छ </string> diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index dddbc6ab..7a23b17f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">De modus \"Niet storen\" is ingeschakeld. Schakel deze uit en probeer het nog eens.</string> <string name="photo_capture_failed">Foto-opname mislukt</string> <string name="video_capture_insufficient_storage_error">Video-opname mislukt door onvoldoende opslag</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Welke kwaliteit voor foto\'s moet ik instellen?</string> <string name="faq_1_text">Voor normaal gebruik adviseren de meeste mensen een compressie van 75%-80%. De afbeelding zal dan nog steeds van goede kwaliteit zijn en de bestandsgrootte zal enorm veel kleiner zijn dan met 100%.</string> diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 415434e3..118b7dc0 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Tryb Nie przeszkadzać jest włączony. Wyłącz go i spróbuj ponownie.</string> <string name="photo_capture_failed">Nie udało się zrobić zdjęcia</string> <string name="video_capture_insufficient_storage_error">Nagrywanie wideo nie powiodło się z powodu niewystarczającej ilości miejsca</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Jaką jakość kompresji zdjęć powinienem ustawić\?</string> <string name="faq_1_text">Zależy to od Twojego celu. Do celów ogólnych większość ludzi zaleca poziom 75-80% — wtedy obraz jest nadal w dobrej jakości, ale rozmiar pliku znacznie zmniejsza się w porównaniu do 100%.</string> diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 9e4417c9..431b14a9 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">O modo Não perturbe está ativado. Desative e tente novamente</string> <string name="photo_capture_failed">Erro ao tirar foto</string> <string name="video_capture_insufficient_storage_error">Erro ao gravar vídeo devido a armazenamento insuficiente</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Que qualidade de compressão de imagem devo definir\?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index eef4a5ad..b3283daa 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 38006b42..93559b8f 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Que qualidade de compressão de imagem devo definir?</string> <string name="faq_1_text">Depende de seu objetivo. Para fins genéricos, aconselha-se o uso de 75%-80%, no qual a imagem ainda apresenta boa qualidade, porém tamanho drasticamente reduzido em comparação a 100%.</string> diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 95e5cef8..e09af2aa 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Ce calitate de compresie a fotografiilor ar trebui să setez?</string> <string name="faq_1_text">Depinde de obiectivul dumneavoastră. În general, majoritatea oamenilor recomandă utilizarea a 75%-80%, atunci când calitatea imaginii este foarte bună, dar dimensiunea fișierului este redusă drastic în comparație cu 100%.</string> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8a98819b..b22bb5fa 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Включён режим \"Не беспокоить\", отключите и повторите попытку</string> <string name="photo_capture_failed">Не удалось сделать снимок</string> <string name="video_capture_insufficient_storage_error">Запись видео не удалась из-за нехватки памяти</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Какое качество сжатия фото нужно установить?</string> <string name="faq_1_text">Это зависит от вашей цели. В общем случае большинство людей советуют использовать 75%-80%, тогда изображение всё ещё действительно хорошего качества, но размер файла резко уменьшается по сравнению со 100%.</string> diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 7fc80092..1a461f40 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -19,6 +19,13 @@ <string name="photo_capture_failed">Snímanie fotografie zlyhalo</string> <string name="video_capture_insufficient_storage_error">Nahrávanie videa zlyhalo pre nedostatok miesta</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Akú kvalitu fotiek by som mal použiť?</string> <string name="faq_1_text">Záleží to od vášho cieľa. Pre všeobecné použitie odporúča väčšina ľudí 75%-80% kedy je kvalita fotiek stále vysoká, ale výsledný súbor má oveľa menšiu veľkosť v porovnaní so 100% kvalitou.</string> diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 494f0b7b..ec180796 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">"Do Not Disturb" mode is enabled. Please disable and try again</string> <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Vilken kvalitet för fotokomprimering ska jag ställa in\?</string> <string name="faq_1_text">Det beror på ditt mål. För generiska ändamål rekommenderar de flesta att man använder 75-80 %, då bilden fortfarande har riktigt bra kvalitet, men filstorleken minskar drastiskt jämfört med 100 %.</string> diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 6c27e8a3..0a8c5a06 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -21,6 +21,13 @@ <string name="photo_capture_failed">Photo capture failed</string> <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string> + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">What photo compression quality should I set?</string> <string name="faq_1_text">It depends on your goal. For generic purposes most people advise using 75%-80%, when the image is still really good quality, but the file size is reduced drastically compared to 100%.</string> diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 50b89c47..4feb35ea 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -18,6 +18,13 @@ <string name="camera_dnd_error">Rahatsız Etmeyin modu etkinleştirildi. Lütfen devre dışı bırakın ve tekrar deneyin</string> <string name="photo_capture_failed">Fotoğraf çekimi başarısız oldu</string> <string name="video_capture_insufficient_storage_error">Yetersiz depolama alanı nedeniyle video kaydı başarısız oldu</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> <!-- FAQ --> <string name="faq_1_title">Hangi fotoğraf sıkıştırma kalitesini ayarlamalıyım?</string> <string name="faq_1_text">Hedefinize bağlı. Genel amaçlar için çoğu kişi %75-%80\'i kullanmanızı önerir, görüntü hala gerçekten kaliteliyken, dosya boyutu %100\'e göre büyük ölçüde azalır.</string> diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9167ae0a..faf60717 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">Увімкнено режим «Не турбувати». Будь ласка, вимкніть і спробуйте знову</string> <string name="photo_capture_failed">Не вдалося зняти світлину</string> <string name="video_capture_insufficient_storage_error">Через нестачу пам’яті не вдалося записати відео</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">Який ступінь стиснення фото слід встановити?</string> <string name="faq_1_text">Це залежить від вашої мети. Загалом більшість людей радять використовувати 75%-80%, тоді зображення ще дійсно гарної якості, але розмір файлу істотно зменшується порівняно зі 100%.</string> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 7bf9df70..d072885c 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">勿扰模式处于开启状态。 请禁用并重试</string> <string name="photo_capture_failed">照片拍摄失败</string> <string name="video_capture_insufficient_storage_error">由于存储空间不足,视频录制失败</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">我应该选用怎样的照片压缩率呢?</string> <string name="faq_1_text">这取决于您的目的。对大多数人的一般用途来说,建议使用 75%-80%,此时图片仍有不错的品质,而文件大小相比 100% 时大幅减小。</string> diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 96aa7330..b882d629 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -18,6 +18,14 @@ <string name="camera_dnd_error">零打擾模式已啟用,請將其停用後再試一次</string> <string name="photo_capture_failed">拍照失敗</string> <string name="video_capture_insufficient_storage_error">儲存空間不足,錄影失敗</string> + + <!--Camera Screen Icons Content Description--> + <string name="toggle_photo_video">Toggle photo/video mode</string> + <string name="change_resolution">Change Resolution</string> + <string name="view_last_media">View last captured media</string> + <string name="toggle_camera">Toggle front/back camera</string> + <string name="toggle_flash">Toggle the flashlight mode</string> + <!-- FAQ --> <string name="faq_1_title">我應該設定什麼相片壓縮品質?</string> <string name="faq_1_text">視你目標而定。對大多數一般人而言,建議使用75%-80%,圖片依然是相當高品質,但檔案大小比100%大幅減少很多。</string> @@ -42,4 +50,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> -</resources> \ No newline at end of file +</resources> From d020e4263584a2739bac28171bde2bec548ae1c0 Mon Sep 17 00:00:00 2001 From: darthpaul <paulakhamiogu@gmail.com> Date: Wed, 13 Jul 2022 16:57:24 +0100 Subject: [PATCH 4/5] revert debug applicationIdSuffix and app_name --- app/build.gradle | 2 +- app/src/debug/res/values/strings.xml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b965795a..2287a624 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,7 +34,7 @@ android { buildTypes { debug { - applicationIdSuffix ".debugcamerax" + applicationIdSuffix ".debug" } release { minifyEnabled true diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml index e7e9ee39..37ff84c6 100644 --- a/app/src/debug/res/values/strings.xml +++ b/app/src/debug/res/values/strings.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <!--TODO Revert to Camera_debug --> - <string name="app_launcher_name">CameraX_debug</string> + <string name="app_launcher_name">Camera_debug</string> </resources> From 776e842af5e114101a09bf5cb080cca96ef6ba4a Mon Sep 17 00:00:00 2001 From: darthpaul <paulakhamiogu@gmail.com> Date: Wed, 13 Jul 2022 17:08:20 +0100 Subject: [PATCH 5/5] remove logs --- .../camera/activities/MainActivity.kt | 12 ---------- .../camera/dialogs/ChangeResolutionDialogX.kt | 6 ----- .../camera/helpers/BitmapUtils.kt | 3 --- .../camera/helpers/ImageQualityManager.kt | 15 ++++--------- .../camera/helpers/MediaOutputHelper.kt | 16 ++------------ .../camera/helpers/VideoQualityManager.kt | 7 ++---- .../camera/implementations/CameraXPreview.kt | 22 +------------------ 7 files changed, 9 insertions(+), 72 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt index cd06b2da..a3224934 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt @@ -9,7 +9,6 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.provider.MediaStore -import android.util.Log import android.view.* import android.widget.RelativeLayout import com.bumptech.glide.Glide @@ -33,7 +32,6 @@ import kotlinx.android.synthetic.main.activity_main.* class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, CameraXPreviewListener { companion object { - private const val TAG = "MainActivity" private const val FADE_DELAY = 5000L private const val CAPTURE_ANIMATION_DURATION = 100L } @@ -122,15 +120,12 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera private fun initVariables() { mIsInPhotoMode = if (isVideoCaptureIntent()) { - Log.w(TAG, "initializeCamera: video capture") false } else if (isImageCaptureIntent()) { - Log.w(TAG, "initializeCamera: image capture mode") true } else { config.initPhotoMode } - Log.w(TAG, "initInPhotoMode = $mIsInPhotoMode") mIsCameraAvailable = false mIsHardwareShutterHandled = false mCurrVideoRecTimer = 0 @@ -202,7 +197,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera private fun checkImageCaptureIntent() { if (isImageCaptureIntent()) { - Log.i(TAG, "isImageCaptureIntent: ") hideIntentButtons() val output = intent.extras?.get(MediaStore.EXTRA_OUTPUT) if (output != null && output is Uri) { @@ -213,7 +207,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera private fun checkVideoCaptureIntent() { if (intent?.action == MediaStore.ACTION_VIDEO_CAPTURE) { - Log.i(TAG, "checkVideoCaptureIntent: ") mIsInPhotoMode = false hideIntentButtons() shutter.setImageResource(R.drawable.ic_video_rec) @@ -402,7 +395,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera mPreviewUri = Uri.withAppendedPath(uri, lastMediaId.toString()) - Log.e(TAG, "mPreviewUri= $mPreviewUri") loadLastTakenMedia(mPreviewUri) } @@ -585,7 +577,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera flags = Intent.FLAG_GRANT_READ_URI_PERMISSION setResult(Activity.RESULT_OK, this) } - Log.w(TAG, "onMediaCaptured: exiting uri=$uri") finish() } else if (isVideoCaptureIntent()) { Intent().apply { @@ -593,7 +584,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera flags = Intent.FLAG_GRANT_READ_URI_PERMISSION setResult(Activity.RESULT_OK, this) } - Log.w(TAG, "onMediaCaptured: video exiting uri=$uri") finish() } } @@ -604,7 +594,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera putExtra("data", bitmap) setResult(Activity.RESULT_OK, this) } - Log.w(TAG, "onImageCaptured: exiting bitmap size=${bitmap.byteCount}") finish() } } @@ -663,7 +652,6 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera fun drawFocusCircle(x: Float, y: Float) = mFocusCircleView.drawFocusCircle(x, y) override fun mediaSaved(path: String) { - Log.e(TAG, "mediaSaved: $path") rescanPaths(arrayListOf(path)) { setupPreviewImage(true) Intent(BROADCAST_REFRESH_MEDIA).apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt index 8a7aa72b..92e83085 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialogX.kt @@ -1,7 +1,6 @@ package com.simplemobiletools.camera.dialogs import android.app.Activity -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.appcompat.app.AlertDialog @@ -28,7 +27,6 @@ class ChangeResolutionDialogX( private var dialog: AlertDialog? = null private val config = activity.config - private val TAG = "ChangeResolutionDialogX" init { val view = LayoutInflater.from(activity).inflate(R.layout.dialog_change_resolution, null).apply { setupPhotoResolutionPicker(this) @@ -57,7 +55,6 @@ class ChangeResolutionDialogX( view.change_resolution_photo_holder.setOnClickListener { RadioGroupDialog(activity, ArrayList(items), selectionIndex) { selectionIndex = it as Int - Log.w(TAG, "setupPhotoResolutionPicker: selectionIndex=$it") view.change_resolution_photo.text = items[selectionIndex].title if (isFrontCamera) { config.frontPhotoResIndex = it @@ -80,8 +77,6 @@ class ChangeResolutionDialogX( var selectionIndex = if (isFrontCamera) config.frontVideoResIndex else config.backVideoResIndex selectionIndex = selectionIndex.coerceAtLeast(0) - Log.i(TAG, "videoResolutions=$videoResolutions") - Log.i(TAG, "setupVideoResolutionPicker: selectionIndex=$selectionIndex") view.change_resolution_video_holder.setOnClickListener { RadioGroupDialog(activity, ArrayList(items), selectionIndex) { @@ -99,6 +94,5 @@ class ChangeResolutionDialogX( } val selectedItem = items.getOrNull(selectionIndex) view.change_resolution_video.text = selectedItem?.title - Log.i(TAG, "setupVideoResolutionPicker: selectedItem=$selectedItem") } } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/BitmapUtils.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/BitmapUtils.kt index 6636df95..b7b481eb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/BitmapUtils.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/BitmapUtils.kt @@ -2,14 +2,12 @@ package com.simplemobiletools.camera.helpers import android.graphics.Bitmap import android.graphics.BitmapFactory -import android.util.Log import kotlin.math.ceil import kotlin.math.floor import kotlin.math.sqrt //inspired by https://android.googlesource.com/platform/packages/apps/Camera2/+/refs/heads/master/src/com/android/camera/util/CameraUtil.java#244 object BitmapUtils { - private const val TAG = "BitmapUtils" private const val INLINE_BITMAP_MAX_PIXEL_NUM = 50 * 1024 fun makeBitmap(jpegData: ByteArray, maxNumOfPixels: Int = INLINE_BITMAP_MAX_PIXEL_NUM): Bitmap? { @@ -31,7 +29,6 @@ object BitmapUtils { options ) } catch (ex: OutOfMemoryError) { - Log.e(TAG, "Got oom exception ", ex) null } } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/ImageQualityManager.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/ImageQualityManager.kt index dda22ed7..8c406f45 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/ImageQualityManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/ImageQualityManager.kt @@ -6,20 +6,19 @@ import android.hardware.camera2.CameraCharacteristics import android.hardware.camera2.CameraManager import android.hardware.camera2.params.StreamConfigurationMap import android.media.MediaRecorder -import android.util.Log import android.util.Size import androidx.appcompat.app.AppCompatActivity import androidx.camera.core.CameraSelector import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.camera.models.CameraSelectorImageQualities import com.simplemobiletools.camera.models.MySize +import com.simplemobiletools.commons.extensions.showErrorToast class ImageQualityManager( - activity: AppCompatActivity, + private val activity: AppCompatActivity, ) { companion object { - private const val TAG = "ImageQualityManager" private const val MAX_VIDEO_WIDTH = 4096 private const val MAX_VIDEO_HEIGHT = 2160 private val CAMERA_LENS = arrayOf(CameraCharacteristics.LENS_FACING_FRONT, CameraCharacteristics.LENS_FACING_BACK) @@ -39,11 +38,10 @@ class ImageQualityManager( val imageSizes = configMap.getOutputSizes(ImageFormat.JPEG).map { MySize(it.width, it.height) } val cameraSelector = lens.toCameraSelector() imageQualities.add(CameraSelectorImageQualities(cameraSelector, imageSizes)) - Log.i(TAG, "initQualities: imageSizes=$imageSizes") } } } catch (e: Exception) { - Log.e(TAG, "Camera ID=$cameraId is not supported", e) + activity.showErrorToast(e) } } } @@ -69,12 +67,7 @@ class ImageQualityManager( .sortedByDescending { it.pixels } .distinctBy { it.pixels } .map { Size(it.width, it.height) } - .also { - Log.i(TAG, "Resolutions: $it, index=$index") - } - .getOrNull(index).also { - Log.i(TAG, "getUserSelectedResolution: $it, index=$index") - } + .getOrNull(index) } fun getSupportedResolutions(cameraSelector: CameraSelector): List<MySize> { diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt index 2e790450..cf269521 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/MediaOutputHelper.kt @@ -5,7 +5,6 @@ import android.net.Uri import android.os.Environment import android.os.ParcelFileDescriptor import android.provider.MediaStore -import android.util.Log import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.camera.extensions.getOutputMediaFile import com.simplemobiletools.camera.extensions.getRandomMediaName @@ -25,7 +24,6 @@ class MediaOutputHelper( ) { companion object { - private const val TAG = "MediaOutputHelper" private const val MODE = "rw" private const val EXTERNAL_VOLUME = "external" private const val IMAGE_MIME_TYPE = "image/jpeg" @@ -112,7 +110,6 @@ class MediaOutputHelper( private fun getOutputStreamMediaOutput(): MediaOutput.OutputStreamMediaOutput? { var mediaOutput: MediaOutput.OutputStreamMediaOutput? = null val canWrite = canWriteToFilePath(mediaStorageDir) - Log.i(TAG, "getMediaOutput: canWrite=${canWrite}") if (canWrite) { val path = activity.getOutputMediaFile(true) val uri = getUriForFilePath(path) @@ -121,16 +118,14 @@ class MediaOutputHelper( mediaOutput = MediaOutput.OutputStreamMediaOutput(outputStream, uri) } } - Log.i(TAG, "OutputStreamMediaOutput: $mediaOutput") return mediaOutput } private fun openOutputStream(uri: Uri): OutputStream? { return try { - Log.i(TAG, "uri: $uri") contentResolver.openOutputStream(uri) } catch (e: Exception) { - e.printStackTrace() + activity.showErrorToast(e) null } } @@ -138,7 +133,6 @@ class MediaOutputHelper( private fun getFileDescriptorMediaOutput(): MediaOutput.FileDescriptorMediaOutput? { var mediaOutput: MediaOutput.FileDescriptorMediaOutput? = null val canWrite = canWriteToFilePath(mediaStorageDir) - Log.i(TAG, "getMediaOutput: canWrite=${canWrite}") if (canWrite) { val path = activity.getOutputMediaFile(false) val uri = getUriForFilePath(path) @@ -149,14 +143,12 @@ class MediaOutputHelper( } } } - Log.i(TAG, "FileDescriptorMediaOutput: $mediaOutput") return mediaOutput } private fun getFileMediaOutput(): MediaOutput.FileMediaOutput? { var mediaOutput: MediaOutput.FileMediaOutput? = null val canWrite = canWriteToFilePath(mediaStorageDir) - Log.i(TAG, "getMediaOutput: canWrite=${canWrite}") if (canWrite) { val path = activity.getOutputMediaFile(false) val uri = getUriForFilePath(path) @@ -164,16 +156,14 @@ class MediaOutputHelper( mediaOutput = MediaOutput.FileMediaOutput(File(path), uri) } } - Log.i(TAG, "FileDescriptorMediaOutput: $mediaOutput") return mediaOutput } private fun openFileDescriptor(uri: Uri): ParcelFileDescriptor? { return try { - Log.i(TAG, "uri: $uri") contentResolver.openFileDescriptor(uri, MODE) } catch (e: Exception) { - e.printStackTrace() + activity.showErrorToast(e) null } } @@ -215,7 +205,6 @@ class MediaOutputHelper( documentFile.createFile(path.getMimeType(), path.getFilenameFromPath())?.uri } } catch (e: Exception) { - e.printStackTrace() null } } @@ -224,7 +213,6 @@ class MediaOutputHelper( try { activity.createDocumentUriUsingFirstParentTreeUri(path) } catch (e: Exception) { - e.printStackTrace() null } ?: Uri.fromFile(targetFile) } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt index d667f1d1..7243fc7d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/helpers/VideoQualityManager.kt @@ -1,6 +1,5 @@ package com.simplemobiletools.camera.helpers -import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.camera.core.CameraSelector import androidx.camera.lifecycle.ProcessCameraProvider @@ -11,13 +10,13 @@ import com.simplemobiletools.camera.extensions.toCameraXQuality import com.simplemobiletools.camera.extensions.toVideoQuality import com.simplemobiletools.camera.models.CameraSelectorVideoQualities import com.simplemobiletools.camera.models.VideoQuality +import com.simplemobiletools.commons.extensions.showErrorToast class VideoQualityManager( private val activity: AppCompatActivity, ) { companion object { - private const val TAG = "VideoQualityHelper" private val QUALITIES = listOf(Quality.UHD, Quality.FHD, Quality.HD, Quality.SD) private val CAMERA_SELECTORS = arrayOf(CameraSelector.DEFAULT_BACK_CAMERA, CameraSelector.DEFAULT_FRONT_CAMERA) } @@ -37,12 +36,10 @@ class VideoQualityManager( .also { allQualities -> val qualities = allQualities.map { it.toVideoQuality() } videoQualities.add(CameraSelectorVideoQualities(camSelector, qualities)) - } - Log.i(TAG, "bindCameraUseCases: videoQualities=$videoQualities") } } catch (e: Exception) { - Log.e(TAG, "Camera Face $camSelector is not supported", e) + activity.showErrorToast(e) } } } 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 6ebde5ae..b14d4af3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.content.Context import android.hardware.SensorManager import android.hardware.display.DisplayManager -import android.util.Log import android.util.Size import android.view.* import android.view.GestureDetector.SimpleOnGestureListener @@ -43,7 +42,6 @@ class CameraXPreview( ) : MyPreview, DefaultLifecycleObserver { companion object { - private const val TAG = "CameraXPreview" private const val RATIO_4_3_VALUE = 4.0 / 3.0 private const val RATIO_16_9_VALUE = 16.0 / 9.0 @@ -75,7 +73,6 @@ class CameraXPreview( in 225 until 315 -> Surface.ROTATION_90 else -> Surface.ROTATION_0 } - Log.i(TAG, "onOrientationChanged: rotation=$rotation") preview?.targetRotation = rotation imageCapture?.targetRotation = rotation videoCapture?.targetRotation = rotation @@ -91,9 +88,7 @@ class CameraXPreview( private var recordingState: VideoRecordEvent? = null private var cameraSelector = config.lastUsedCameraLens.toCameraSelector() private var flashMode = FLASH_MODE_OFF - private var isPhotoCapture = initInPhotoMode.also { - Log.i(TAG, "initInPhotoMode= $it") - } + private var isPhotoCapture = initInPhotoMode init { bindToLifeCycle() @@ -108,7 +103,6 @@ class CameraXPreview( } private fun startCamera(switching: Boolean = false) { - Log.i(TAG, "startCamera: ") imageQualityManager.initSupportedQualities() val cameraProviderFuture = ProcessCameraProvider.getInstance(activity) @@ -120,7 +114,6 @@ class CameraXPreview( bindCameraUseCases() setupCameraObservers() } catch (e: Exception) { - Log.e(TAG, "startCamera: ", e) val errorMessage = if (switching) R.string.camera_switch_error else R.string.camera_open_error activity.toast(errorMessage) } @@ -197,9 +190,6 @@ class CameraXPreview( .apply { imageQualityManager.getUserSelectedResolution(cameraSelector)?.let { resolution -> val rotatedResolution = getRotatedResolution(rotation, resolution) - Log.i(TAG, "buildImageCapture: rotation=$rotation") - Log.i(TAG, "buildImageCapture: resolution=$resolution") - Log.i(TAG, "buildImageCapture: rotatedResolution=$rotatedResolution") setTargetResolution(rotatedResolution) } ?: setTargetAspectRatio(aspectRatio) } @@ -255,7 +245,6 @@ class CameraXPreview( @SuppressLint("ClickableViewAccessibility") // source: https://stackoverflow.com/a/60095886/10552591 private fun setupZoomAndFocus() { - Log.i(TAG, "camera controller: ${previewView.controller}") val scaleGesture = camera?.let { ScaleGestureDetector(activity, PinchToZoomOnScaleGestureListener(it.cameraInfo, it.cameraControl)) } val gestureDetector = GestureDetector(activity, object : SimpleOnGestureListener() { override fun onSingleTapConfirmed(event: MotionEvent): Boolean { @@ -263,7 +252,6 @@ class CameraXPreview( val display = displayManager.getDisplay(Display.DEFAULT_DISPLAY) val width = previewView.width.toFloat() val height = previewView.height.toFloat() - Log.i(TAG, "onSingleTapConfirmed: width=$width,height=$height") val factory = DisplayOrientedMeteringPointFactory(display, it, width, height) val xPos = event.x val yPos = event.y @@ -275,13 +263,11 @@ class CameraXPreview( .build() camera?.cameraControl?.startFocusAndMetering(focusMeteringAction) listener.onFocusCamera(xPos, yPos) - Log.i(TAG, "start focus") true } ?: false } }) previewView.setOnTouchListener { _, event -> - Log.i(TAG, "setOnTouchListener: x=${event.x}, y=${event.y}") gestureDetector.onTouchEvent(event) scaleGesture?.onTouchEvent(event) true @@ -405,7 +391,6 @@ class CameraXPreview( } private fun handleImageCaptureError(exception: ImageCaptureException) { - Log.e(TAG, "Error", exception) listener.toggleBottomButtons(false) cameraErrorHandler.handleImageCaptureError(exception.imageCaptureError) } @@ -421,13 +406,11 @@ class CameraXPreview( } override fun toggleRecording() { - Log.d(TAG, "toggleRecording: currentRecording=$currentRecording, recordingState=$recordingState") if (currentRecording == null || recordingState is VideoRecordEvent.Finalize) { startRecording() } else { currentRecording?.stop() currentRecording = null - Log.d(TAG, "Recording stopped") } } @@ -454,7 +437,6 @@ class CameraXPreview( currentRecording = recording.withAudioEnabled() .start(mainExecutor) { recordEvent -> - Log.d(TAG, "recordEvent=$recordEvent ") recordingState = recordEvent when (recordEvent) { is VideoRecordEvent.Start -> { @@ -470,7 +452,6 @@ class CameraXPreview( playStopVideoRecordingSoundIfEnabled() listener.onVideoRecordingStopped() if (recordEvent.hasError()) { - Log.e(TAG, "recording failed:", recordEvent.cause) cameraErrorHandler.handleVideoRecordingError(recordEvent.error) } else { listener.onMediaSaved(mediaOutput.uri ?: recordEvent.outputResults.outputUri) @@ -478,7 +459,6 @@ class CameraXPreview( } } } - Log.d(TAG, "Recording started") } private fun playShutterSoundIfEnabled() {