diff --git a/.github/workflows/update-lint-baselines.yml b/.github/workflows/update-lint-baselines.yml new file mode 100644 index 00000000..17043a58 --- /dev/null +++ b/.github/workflows/update-lint-baselines.yml @@ -0,0 +1,11 @@ +name: Update lint baselines + +on: + workflow_dispatch: + schedule: + - cron: "0 0 1 * *" + +jobs: + update-lint-baselines: + uses: FossifyOrg/.github/.github/workflows/update-lint-baselines.yml@main + secrets: inherit diff --git a/.gitignore b/.gitignore index d209458c..72ae8c3b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ keystore.jks keystore.properties fastlane/fastlane.json fastlane/report.xml +.kotlin/ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 487e59c0..5c263790 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,3 +1,4 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.konan.properties.Properties import java.io.FileInputStream @@ -99,7 +100,9 @@ android { } tasks.withType { - kotlinOptions.jvmTarget = project.libs.versions.app.build.kotlinJVMTarget.get() + compilerOptions.jvmTarget.set( + JvmTarget.fromTarget(project.libs.versions.app.build.kotlinJVMTarget.get()) + ) } namespace = project.property("APP_ID").toString() @@ -107,8 +110,9 @@ android { lint { checkReleaseBuilds = false abortOnError = true - warningsAsErrors = true + warningsAsErrors = false baseline = file("lint-baseline.xml") + lintConfig = rootProject.file("lint.xml") } bundle { diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index cd356a98..fabad69a 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -1,359 +1,150 @@ - - - ComplexCondition:MainActivity.kt$MainActivity$!mIsHardwareShutterHandled && - config.volumeButtonsAsShutter && (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || - keyCode == KeyEvent.KEYCODE_VOLUME_UP) - - - CyclomaticComplexMethod:CameraXPreview.kt$CameraXPreview$@SuppressLint("MissingPermission", - "NewApi") private fun startRecording() - - CyclomaticComplexMethod:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private - fun saveImageToTempFile(): File? - - CyclomaticComplexMethod:PhotoProcessor.kt$PhotoProcessor$override fun - doInBackground(vararg params: ByteArray): String - - EmptyFunctionBlock:FocusCircleView.kt$FocusCircleView${} - FunctionNaming:ImageUtil.kt$ImageUtil$private fun yuv_420_888toNv21(image: ImageProxy): - ByteArray - - ImplicitDefaultLocale:MySize.kt$MySize$String.format("%.1f", (width * height.toFloat()) - / ONE_MEGA_PIXEL) - - ImplicitDefaultLocale:VideoQuality.kt$VideoQuality$String.format("%.1f", (width * - height.toFloat()) / VideoQuality.ONE_MEGA_PIXEL) - - LargeClass:MainActivity.kt$MainActivity : - SimpleActivityMediaSavedListenerCameraXPreviewListener - - LongMethod:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun - saveImageToTempFile(): File? - - LongMethod:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: - ByteArray): String - - LongMethod:ShadowDrawable.kt$ShadowDrawable$override fun draw(canvas: Canvas) - LongParameterList:CameraXInitializer.kt$CameraXInitializer$( previewView: PreviewView, - listener: CameraXPreviewListener, mediaSoundHelper: MediaSoundHelper, outputUri: Uri?, - isThirdPartyIntent: Boolean, initInPhotoMode: Boolean, ) - - LongParameterList:CameraXPreview.kt$CameraXPreview$( private val activity: - BaseSimpleActivity, private val previewView: PreviewView, private val mediaSoundHelper: - MediaSoundHelper, private val mediaOutputHelper: MediaOutputHelper, private val - cameraErrorHandler: CameraErrorHandler, private val listener: CameraXPreviewListener, - private val isThirdPartyIntent: Boolean, initInPhotoMode: Boolean, ) - - LongParameterList:ImageSaver.kt$ImageSaver$( private val contentResolver: - ContentResolver, private val image: ImageProxy, private val mediaOutput: - MediaOutput.ImageCaptureOutput, private val metadata: Metadata, private val jpegQuality: - Int, private val saveExifAttributes: Boolean, private val onImageSaved: (Uri) -> - Unit, private val onError: (ImageCaptureException) -> Unit, ) - - LongParameterList:ImageSaver.kt$ImageSaver.Companion$( contentResolver: ContentResolver, - image: ImageProxy, mediaOutput: MediaOutput.ImageCaptureOutput, metadata: Metadata, - jpegQuality: Int, saveExifAttributes: Boolean, onImageSaved: (Uri) -> Unit, onError: - (ImageCaptureException) -> Unit, ) - - LoopWithTooManyJumpStatements:ImageQualityManager.kt$ImageQualityManager$for - LoopWithTooManyJumpStatements:MediaActionSound.kt$MediaActionSound$for - MagicNumber:BitmapUtils.kt$BitmapUtils$128 - MagicNumber:BitmapUtils.kt$BitmapUtils$7 - MagicNumber:BitmapUtils.kt$BitmapUtils$8 - MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$135 - MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$225 - MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$315 - MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$45 - MagicNumber:Config.kt$Config$80 - MagicNumber:Constants.kt$270 - MagicNumber:Constants.kt$90 - MagicNumber:FocusCircleView.kt$FocusCircleView$500L - MagicNumber:FocusCircleView.kt$FocusCircleView$50f - MagicNumber:MainActivity.kt$MainActivity$33 - MagicNumber:MainActivity.kt$MainActivity$35 - MagicNumber:MainActivity.kt$MainActivity$39 - MagicNumber:MainActivity.kt$MainActivity$44 - MagicNumber:MainActivity.kt$MainActivity$46 - MagicNumber:MainActivity.kt$MainActivity$52 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$1000 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$134 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$225 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$289 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$75 - MagicNumber:MainActivity.kt$MainActivity.<no name provided>$90 - MagicNumber:MySize.kt$MySize$1.9f - MagicNumber:MySize.kt$MySize$16 - MagicNumber:MySize.kt$MySize$19 - MagicNumber:MySize.kt$MySize$3 - MagicNumber:MySize.kt$MySize$3f - MagicNumber:MySize.kt$MySize$4 - MagicNumber:MySize.kt$MySize$4f - MagicNumber:MySize.kt$MySize$5 - MagicNumber:MySize.kt$MySize$5f - MagicNumber:MySize.kt$MySize$6 - MagicNumber:MySize.kt$MySize$8f - MagicNumber:MySize.kt$MySize$9f - MagicNumber:PhotoProcessor.kt$PhotoProcessor$360 - MagicNumber:SettingsActivity.kt$SettingsActivity$100 - MagicNumber:SettingsActivity.kt$SettingsActivity$50 - MagicNumber:SettingsActivity.kt$SettingsActivity$55 - MagicNumber:SettingsActivity.kt$SettingsActivity$60 - MagicNumber:SettingsActivity.kt$SettingsActivity$65 - MagicNumber:SettingsActivity.kt$SettingsActivity$70 - MagicNumber:SettingsActivity.kt$SettingsActivity$75 - MagicNumber:SettingsActivity.kt$SettingsActivity$80 - MagicNumber:SettingsActivity.kt$SettingsActivity$85 - MagicNumber:SettingsActivity.kt$SettingsActivity$90 - MagicNumber:SettingsActivity.kt$SettingsActivity$95 - MagicNumber:ShadowDrawable.kt$ShadowDrawable$255.0f - MagicNumber:TimerMode.kt$TimerMode.TIMER_10$10000 - MagicNumber:TimerMode.kt$TimerMode.TIMER_3$3000 - MagicNumber:TimerMode.kt$TimerMode.TIMER_5$5000 - MagicNumber:VideoQuality.kt$VideoQuality$1.9f - MagicNumber:VideoQuality.kt$VideoQuality$16 - MagicNumber:VideoQuality.kt$VideoQuality$19 - MagicNumber:VideoQuality.kt$VideoQuality$3 - MagicNumber:VideoQuality.kt$VideoQuality$3f - MagicNumber:VideoQuality.kt$VideoQuality$4 - MagicNumber:VideoQuality.kt$VideoQuality$4f - MagicNumber:VideoQuality.kt$VideoQuality$5 - MagicNumber:VideoQuality.kt$VideoQuality$5f - MagicNumber:VideoQuality.kt$VideoQuality$6 - MagicNumber:VideoQuality.kt$VideoQuality$8f - MagicNumber:VideoQuality.kt$VideoQuality$9f - MagicNumber:VideoQuality.kt$VideoQuality.FHD$1080 - MagicNumber:VideoQuality.kt$VideoQuality.FHD$1920 - MagicNumber:VideoQuality.kt$VideoQuality.HD$1280 - MagicNumber:VideoQuality.kt$VideoQuality.HD$720 - MagicNumber:VideoQuality.kt$VideoQuality.SD$480 - MagicNumber:VideoQuality.kt$VideoQuality.SD$720 - MagicNumber:VideoQuality.kt$VideoQuality.UHD$2160 - MagicNumber:VideoQuality.kt$VideoQuality.UHD$3840 - MaxLineLength:BitmapUtils.kt$BitmapUtils$val upperBound = if (minSideLength < 0) 128 - else floor(w / minSideLength).coerceAtMost(floor(h / minSideLength)).toInt() - - - MaxLineLength:CameraErrorHandler.kt$CameraErrorHandler$VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE - -> context.toast(R.string.video_capture_insufficient_storage_error) - - MaxLineLength:CameraXPreview.kt$CameraXPreview$private - MaxLineLength:CameraXPreview.kt$CameraXPreview$val scaleGesture = camera?.let { - ScaleGestureDetector(activity, PinchToZoomOnScaleGestureListener(it.cameraInfo, - it.cameraControl)) } - - MaxLineLength:Config.kt$Config$var path = prefs.getString(SAVE_PHOTOS, - Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()) - - MaxLineLength:ImageQualityManager.kt$ImageQualityManager$val configMap = - characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP) ?: continue - - MaxLineLength:ImageQualityManager.kt$ImageQualityManager.Companion$private val - CAMERA_LENS = arrayOf(CameraCharacteristics.LENS_FACING_FRONT, - CameraCharacteristics.LENS_FACING_BACK) - - MaxLineLength:ImageUtil.kt$ImageUtil$require(image.format == ImageFormat.YUV_420_888) { - "Incorrect image format of the input image proxy: " + image.format } - - MaxLineLength:ImageUtil.kt$ImageUtil.CodecFailedException$class - MaxLineLength:MainActivity.kt$MainActivity$binding.toggleCamera.setImageResource(if - (frontCamera) R.drawable.ic_camera_rear_vector else R.drawable.ic_camera_front_vector) - - MaxLineLength:MainActivity.kt$MainActivity$constraintSet.connect(previewView.id, - ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM) - - MaxLineLength:MainActivity.kt$MainActivity$hasPermission(PERMISSION_WRITE_STORAGE) && - hasPermission(PERMISSION_CAMERA) && hasPermission(PERMISSION_RECORD_AUDIO) - - MaxLineLength:MainActivity.kt$MainActivity$if - MaxLineLength:MainActivity.kt$MainActivity$layoutParams = - ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT) - - MaxLineLength:MainActivity.kt$MainActivity$private - MaxLineLength:MainActivity.kt$MainActivity$private fun isImageCaptureIntent(): Boolean - - MaxLineLength:MainActivity.kt$MainActivity$val iconColors = - intArrayOf(ContextCompat.getColor(this, org.fossify.commons.R.color.md_grey_white), - primaryColor) - - MaxLineLength:MainActivity.kt$MainActivity$val marginBottom = safeInsetBottom + - navigationBarHeight + - resources.getDimensionPixelSize(org.fossify.commons.R.dimen.bigger_margin) - - MaxLineLength:MainActivity.kt$MainActivity$val uri = if (isPhoto) - MediaStore.Images.Media.EXTERNAL_CONTENT_URI else - MediaStore.Video.Media.EXTERNAL_CONTENT_URI - - MaxLineLength:MainActivity.kt$MainActivity$var hasMediaPermission = - hasPermission(PERMISSION_READ_MEDIA_IMAGES) || - hasPermission(PERMISSION_READ_MEDIA_VIDEO) - - MaxLineLength:MainActivity.kt$MainActivity$window.decorView.systemUiVisibility = - View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - - MaxLineLength:MainActivity.kt$MainActivity$} - MaxLineLength:MainActivity.kt$MainActivity.<no name provided>$override - MaxLineLength:MediaActionSound.kt$MediaActionSound$else -> Log.e(TAG, - "OnLoadCompleteListener() called in wrong state: ${sound.state} for sound: - ${sound.mediaSound}") - - MaxLineLength:MediaActionSound.kt$MediaActionSound.Companion$private val SOUNDS = - arrayOf(SHUTTER_CLICK, FOCUS_COMPLETE, START_VIDEO_RECORDING, STOP_VIDEO_RECORDING, - TIMER_COUNTDOWN, TIMER_COUNTDOWN_2_SECONDS) - - MaxLineLength:MediaOutputHelper.kt$MediaOutputHelper$put(MediaStore.MediaColumns.DATA, - Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()) - - MaxLineLength:PhotoProcessor.kt$PhotoProcessor$activity.config.savePhotosFolder = - Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() - - MaxLineLength:PhotoProcessor.kt$PhotoProcessor$document = document?.createFile("", - path.substring(path.lastIndexOf('/') + 1)) ?: activity.getDocumentFile(path) - - MaxLineLength:PhotoProcessor.kt$PhotoProcessor$val activity: MainActivity - MaxLineLength:SettingsActivity.kt$SettingsActivity$OpenDeviceSettingsDialog(activity = - this@SettingsActivity, message = - getString(org.fossify.commons.R.string.allow_location_permission)) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, - org.fossify.commons.R.string.faq_2_text_commons)) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_6_title_commons, - org.fossify.commons.R.string.faq_6_text_commons)) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$findItem(R.id.more_apps_from_us).isVisible - = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$it.beGoneIf(settingsUseEnglishHolder.isGone() - && settingsPurchaseThankYouHolder.isGone() && - settingsLanguageHolder.isGone()) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled - || Locale.getDefault().language != "en") && !isTiramisuPlus()) - - - MaxLineLength:SettingsActivity.kt$SettingsActivity$updateMaterialActivityViews(settingsCoordinator, - settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false) - - MaxLineLength:ShadowDrawable.kt$ShadowDrawable$if - - MaxLineLength:ShadowDrawable.kt$ShadowDrawable$obtainStyledAttributes.getColor(R.styleable.ShadowDrawable_android_shadowColor, - ContextCompat.getColor(context, org.fossify.commons.R.color.md_grey_400_dark)) - - MaxLineLength:ShadowDrawable.kt$ShadowDrawable$sharedBitmap = - Bitmap.createBitmap(SHARED_BITMAP_BUFFER_SIZE, SHARED_BITMAP_BUFFER_SIZE, - Bitmap.Config.ARGB_8888) - - MaxLineLength:ShadowDrawable.kt$ShadowDrawable$val shadowRadius = - obtainStyledAttributes.getFloat(R.styleable.ShadowDrawable_android_shadowRadius, - 0.0f).coerceAtLeast(0.0f) - - MaxLineLength:VideoQualityManager.kt$VideoQualityManager$val selectionIndex = - mediaSizeStore.getCurrentSizeIndex(isPhotoCapture = false, isFrontCamera = - isFrontCamera).coerceAtLeast(0) - - NestedBlockDepth:ImageQualityManager.kt$ImageQualityManager$fun - initSupportedQualities() - - NestedBlockDepth:ImageSaver.kt$ImageSaver$private fun - copyTempFileToDestination(tempFile: File) - - NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$fun getImageMediaOutput(): - MediaOutput.ImageCaptureOutput - - NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$fun getVideoMediaOutput(): - MediaOutput.VideoCaptureOutput - - NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$private fun - getUriForFilePath(path: String): Uri? - - NestedBlockDepth:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg - params: ByteArray): String - - NestedBlockDepth:VideoQualityManager.kt$VideoQualityManager$fun - initSupportedQualities(cameraProvider: ProcessCameraProvider) - - ReturnCount:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun - saveImageToTempFile(): File? - - ReturnCount:MediaActionSound.kt$MediaActionSound$private fun loadSound(sound: - SoundState): Int - - ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun - getFileDescriptorMediaOutput(): MediaOutput.FileDescriptorMediaOutput? - - ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun getUriForFilePath(path: - String): Uri? - - ReturnCount:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: - ByteArray): String - - ReturnCount:PhotoProcessor.kt$PhotoProcessor$private fun rotate(bitmap: Bitmap, degree: - Int): Bitmap? - - SwallowedException:BitmapUtils.kt$BitmapUtils$ex: OutOfMemoryError - SwallowedException:CameraXPreview.kt$CameraXPreview$e: Exception - SwallowedException:ImageUtil.kt$ImageUtil$e: IOException - SwallowedException:MediaOutputHelper.kt$MediaOutputHelper$e: Exception - SwallowedException:PhotoProcessor.kt$PhotoProcessor$e: Exception - SwallowedException:PhotoProcessor.kt$PhotoProcessor$e: OutOfMemoryError - ThrowsCount:ImageUtil.kt$ImageUtil$@Throws(CodecFailedException::class) private fun - cropJpegByteArray( data: ByteArray, cropRect: Rect, @IntRange(from = 1, to = 100) - jpegQuality: Int, ): ByteArray - - TooGenericExceptionCaught:CameraXPreview.kt$CameraXPreview$e: Exception - TooGenericExceptionCaught:ImageQualityManager.kt$ImageQualityManager$e: Exception - TooGenericExceptionCaught:MediaOutputHelper.kt$MediaOutputHelper$e: Exception - TooGenericExceptionCaught:PhotoProcessor.kt$PhotoProcessor$e: Exception - TooGenericExceptionCaught:VideoQualityManager.kt$VideoQualityManager$e: Exception - TooManyFunctions:CameraXPreview.kt$CameraXPreview : MyPreviewDefaultLifecycleObserver - - TooManyFunctions:CameraXPreviewListener.kt$CameraXPreviewListener - TooManyFunctions:MainActivity.kt$MainActivity : - SimpleActivityMediaSavedListenerCameraXPreviewListener - - TooManyFunctions:MediaOutputHelper.kt$MediaOutputHelper - TooManyFunctions:MySize.kt$MySize - TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity - TooManyFunctions:ShadowDrawable.kt$ShadowDrawable : Drawable - TooManyFunctions:VideoQuality.kt$VideoQuality - UnusedPrivateProperty:ImageUtil.kt$ImageUtil$col - UnusedPrivateProperty:ImageUtil.kt$ImageUtil$row - UseCheckOrError:CameraXPreview.kt$CameraXPreview$throw IllegalStateException("Camera - initialization failed.") - - UseCheckOrError:MainActivity.kt$MainActivity.<no name provided>$throw - IllegalStateException("Unsupported tab position ${tab.position}") - - VariableNaming:FocusCircleView.kt$FocusCircleView$private val CIRCLE_DURATION = 500L - - VariableNaming:FocusCircleView.kt$FocusCircleView$private val CIRCLE_RADIUS = 50f - WildcardImport:CameraXPreview.kt$import android.view.* - WildcardImport:CameraXPreview.kt$import androidx.camera.core.* - WildcardImport:CameraXPreview.kt$import androidx.camera.core.ImageCapture.* - WildcardImport:CameraXPreview.kt$import androidx.camera.video.* - WildcardImport:CameraXPreview.kt$import org.fossify.camera.extensions.* - WildcardImport:CameraXPreview.kt$import org.fossify.camera.helpers.* - WildcardImport:ImageSaver.kt$import java.io.* - WildcardImport:ImageUtil.kt$import android.graphics.* - WildcardImport:MainActivity.kt$import android.view.* - WildcardImport:MainActivity.kt$import androidx.core.view.* - WildcardImport:MainActivity.kt$import androidx.transition.* - WildcardImport:MainActivity.kt$import org.fossify.camera.helpers.* - WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.* - WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.* - WildcardImport:MediaOutputHelper.kt$import org.fossify.commons.extensions.* - WildcardImport:PhotoProcessor.kt$import org.fossify.commons.extensions.* - WildcardImport:SettingsActivity.kt$import org.fossify.commons.dialogs.* - WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.* - WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.* - WildcardImport:ShadowDrawable.kt$import android.graphics.* - + + + ComplexCondition:MainActivity.kt$MainActivity$!mIsHardwareShutterHandled && config.volumeButtonsAsShutter && (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) + CyclomaticComplexMethod:CameraXPreview.kt$CameraXPreview$@SuppressLint("MissingPermission", "NewApi") private fun startRecording() + CyclomaticComplexMethod:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun saveImageToTempFile(): File? + CyclomaticComplexMethod:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String + EmptyFunctionBlock:FocusCircleView.kt$FocusCircleView${} + FunctionNaming:ImageUtil.kt$ImageUtil$private fun yuv_420_888toNv21(image: ImageProxy): ByteArray + ImplicitDefaultLocale:MySize.kt$MySize$String.format("%.1f", (width * height.toFloat()) / ONE_MEGA_PIXEL) + ImplicitDefaultLocale:VideoQuality.kt$VideoQuality$String.format("%.1f", (width * height.toFloat()) / ONE_MEGA_PIXEL) + LargeClass:MainActivity.kt$MainActivity : SimpleActivityMediaSavedListenerCameraXPreviewListener + LongMethod:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun saveImageToTempFile(): File? + LongMethod:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String + LongMethod:ShadowDrawable.kt$ShadowDrawable$override fun draw(canvas: Canvas) + LongParameterList:CameraXInitializer.kt$CameraXInitializer$( previewView: PreviewView, listener: CameraXPreviewListener, mediaSoundHelper: MediaSoundHelper, outputUri: Uri?, isThirdPartyIntent: Boolean, initInPhotoMode: Boolean, ) + LongParameterList:CameraXPreview.kt$CameraXPreview$( private val activity: BaseSimpleActivity, private val previewView: PreviewView, private val mediaSoundHelper: MediaSoundHelper, private val mediaOutputHelper: MediaOutputHelper, private val cameraErrorHandler: CameraErrorHandler, private val listener: CameraXPreviewListener, private val isThirdPartyIntent: Boolean, initInPhotoMode: Boolean, ) + LongParameterList:ImageSaver.kt$ImageSaver$( private val contentResolver: ContentResolver, private val image: ImageProxy, private val mediaOutput: MediaOutput.ImageCaptureOutput, private val metadata: Metadata, private val jpegQuality: Int, private val saveExifAttributes: Boolean, private val onImageSaved: (Uri) -> Unit, private val onError: (ImageCaptureException) -> Unit, ) + LongParameterList:ImageSaver.kt$ImageSaver.Companion$( contentResolver: ContentResolver, image: ImageProxy, mediaOutput: MediaOutput.ImageCaptureOutput, metadata: Metadata, jpegQuality: Int, saveExifAttributes: Boolean, onImageSaved: (Uri) -> Unit, onError: (ImageCaptureException) -> Unit, ) + LoopWithTooManyJumpStatements:ImageQualityManager.kt$ImageQualityManager$for + LoopWithTooManyJumpStatements:MediaActionSound.kt$MediaActionSound$for + MagicNumber:BitmapUtils.kt$BitmapUtils$128 + MagicNumber:BitmapUtils.kt$BitmapUtils$7 + MagicNumber:BitmapUtils.kt$BitmapUtils$8 + MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$135 + MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$225 + MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$315 + MagicNumber:CameraXPreview.kt$CameraXPreview.<no name provided>$45 + MagicNumber:Config.kt$Config$80 + MagicNumber:Constants.kt$270 + MagicNumber:Constants.kt$90 + MagicNumber:FocusCircleView.kt$FocusCircleView$500L + MagicNumber:FocusCircleView.kt$FocusCircleView$50f + MagicNumber:MainActivity.kt$MainActivity$90 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$1000 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$134 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$225 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$289 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$75 + MagicNumber:MainActivity.kt$MainActivity.<no name provided>$90 + MagicNumber:MySize.kt$MySize$1.9f + MagicNumber:MySize.kt$MySize$16 + MagicNumber:MySize.kt$MySize$19 + MagicNumber:MySize.kt$MySize$3 + MagicNumber:MySize.kt$MySize$3f + MagicNumber:MySize.kt$MySize$4 + MagicNumber:MySize.kt$MySize$4f + MagicNumber:MySize.kt$MySize$5 + MagicNumber:MySize.kt$MySize$5f + MagicNumber:MySize.kt$MySize$6 + MagicNumber:MySize.kt$MySize$8f + MagicNumber:MySize.kt$MySize$9f + MagicNumber:PhotoProcessor.kt$PhotoProcessor$360 + MagicNumber:SettingsActivity.kt$SettingsActivity$100 + MagicNumber:SettingsActivity.kt$SettingsActivity$50 + MagicNumber:SettingsActivity.kt$SettingsActivity$55 + MagicNumber:SettingsActivity.kt$SettingsActivity$60 + MagicNumber:SettingsActivity.kt$SettingsActivity$65 + MagicNumber:SettingsActivity.kt$SettingsActivity$70 + MagicNumber:SettingsActivity.kt$SettingsActivity$75 + MagicNumber:SettingsActivity.kt$SettingsActivity$80 + MagicNumber:SettingsActivity.kt$SettingsActivity$85 + MagicNumber:SettingsActivity.kt$SettingsActivity$90 + MagicNumber:SettingsActivity.kt$SettingsActivity$95 + MagicNumber:ShadowDrawable.kt$ShadowDrawable$255.0f + MagicNumber:TimerMode.kt$TimerMode.TIMER_10$10000 + MagicNumber:TimerMode.kt$TimerMode.TIMER_3$3000 + MagicNumber:TimerMode.kt$TimerMode.TIMER_5$5000 + MagicNumber:VideoQuality.kt$VideoQuality$1.9f + MagicNumber:VideoQuality.kt$VideoQuality$16 + MagicNumber:VideoQuality.kt$VideoQuality$19 + MagicNumber:VideoQuality.kt$VideoQuality$3 + MagicNumber:VideoQuality.kt$VideoQuality$3f + MagicNumber:VideoQuality.kt$VideoQuality$4 + MagicNumber:VideoQuality.kt$VideoQuality$4f + MagicNumber:VideoQuality.kt$VideoQuality$5 + MagicNumber:VideoQuality.kt$VideoQuality$5f + MagicNumber:VideoQuality.kt$VideoQuality$6 + MagicNumber:VideoQuality.kt$VideoQuality$8f + MagicNumber:VideoQuality.kt$VideoQuality$9f + MagicNumber:VideoQuality.kt$VideoQuality.FHD$1080 + MagicNumber:VideoQuality.kt$VideoQuality.FHD$1920 + MagicNumber:VideoQuality.kt$VideoQuality.HD$1280 + MagicNumber:VideoQuality.kt$VideoQuality.HD$720 + MagicNumber:VideoQuality.kt$VideoQuality.SD$480 + MagicNumber:VideoQuality.kt$VideoQuality.SD$720 + MagicNumber:VideoQuality.kt$VideoQuality.UHD$2160 + MagicNumber:VideoQuality.kt$VideoQuality.UHD$3840 + MaxLineLength:CameraErrorHandler.kt$CameraErrorHandler$VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE -> context.toast(R.string.video_capture_insufficient_storage_error) + MaxLineLength:ImageUtil.kt$ImageUtil$require(image.format == ImageFormat.YUV_420_888) { "Incorrect image format of the input image proxy: " + image.format } + MaxLineLength:MainActivity.kt$MainActivity$binding.toggleCamera.setImageResource(if (frontCamera) R.drawable.ic_camera_rear_vector else R.drawable.ic_camera_front_vector) + MaxLineLength:MainActivity.kt$MainActivity$if + MaxLineLength:MainActivity.kt$MainActivity$safeInsetBottom + navigationBarHeight + resources.getDimensionPixelSize(org.fossify.commons.R.dimen.bigger_margin) + MaxLineLength:MainActivity.kt$MainActivity$} + MaxLineLength:SettingsActivity.kt$SettingsActivity$it.beGoneIf(settingsUseEnglishHolder.isGone() && settingsPurchaseThankYouHolder.isGone() && settingsLanguageHolder.isGone()) + MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus()) + MaxLineLength:ShadowDrawable.kt$ShadowDrawable$if + NestedBlockDepth:ImageQualityManager.kt$ImageQualityManager$fun initSupportedQualities() + NestedBlockDepth:ImageSaver.kt$ImageSaver$private fun copyTempFileToDestination(tempFile: File) + NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$fun getImageMediaOutput(): MediaOutput.ImageCaptureOutput + NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$fun getVideoMediaOutput(): MediaOutput.VideoCaptureOutput + NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$private fun getUriForFilePath(path: String): Uri? + NestedBlockDepth:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String + NestedBlockDepth:VideoQualityManager.kt$VideoQualityManager$fun initSupportedQualities(cameraProvider: ProcessCameraProvider) + ReturnCount:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun saveImageToTempFile(): File? + ReturnCount:MediaActionSound.kt$MediaActionSound$private fun loadSound(sound: SoundState): Int + ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun getFileDescriptorMediaOutput(): MediaOutput.FileDescriptorMediaOutput? + ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun getUriForFilePath(path: String): Uri? + ReturnCount:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String + ReturnCount:PhotoProcessor.kt$PhotoProcessor$private fun rotate(bitmap: Bitmap, degree: Int): Bitmap? + SwallowedException:BitmapUtils.kt$BitmapUtils$ex: OutOfMemoryError + SwallowedException:CameraXPreview.kt$CameraXPreview$e: Exception + SwallowedException:ImageUtil.kt$ImageUtil$e: IOException + SwallowedException:MediaOutputHelper.kt$MediaOutputHelper$e: Exception + SwallowedException:PhotoProcessor.kt$PhotoProcessor$e: Exception + SwallowedException:PhotoProcessor.kt$PhotoProcessor$e: OutOfMemoryError + ThrowsCount:ImageUtil.kt$ImageUtil$@Throws(CodecFailedException::class) private fun cropJpegByteArray( data: ByteArray, cropRect: Rect, @IntRange(from = 1, to = 100) jpegQuality: Int, ): ByteArray + TooGenericExceptionCaught:CameraXPreview.kt$CameraXPreview$e: Exception + TooGenericExceptionCaught:ImageQualityManager.kt$ImageQualityManager$e: Exception + TooGenericExceptionCaught:MediaOutputHelper.kt$MediaOutputHelper$e: Exception + TooGenericExceptionCaught:PhotoProcessor.kt$PhotoProcessor$e: Exception + TooGenericExceptionCaught:VideoQualityManager.kt$VideoQualityManager$e: Exception + TooManyFunctions:CameraXPreview.kt$CameraXPreview : MyPreviewDefaultLifecycleObserver + TooManyFunctions:CameraXPreviewListener.kt$CameraXPreviewListener + TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivityMediaSavedListenerCameraXPreviewListener + TooManyFunctions:MediaOutputHelper.kt$MediaOutputHelper + TooManyFunctions:MySize.kt$MySize + TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity + TooManyFunctions:ShadowDrawable.kt$ShadowDrawable : Drawable + TooManyFunctions:VideoQuality.kt$VideoQuality + UnusedPrivateProperty:ImageUtil.kt$ImageUtil$col + UnusedPrivateProperty:ImageUtil.kt$ImageUtil$row + UseCheckOrError:CameraXPreview.kt$CameraXPreview$throw IllegalStateException("Camera initialization failed.") + UseCheckOrError:MainActivity.kt$MainActivity.<no name provided>$throw IllegalStateException("Unsupported tab position ${tab.position}") + VariableNaming:FocusCircleView.kt$FocusCircleView$private val CIRCLE_DURATION = 500L + VariableNaming:FocusCircleView.kt$FocusCircleView$private val CIRCLE_RADIUS = 50f + WildcardImport:ImageSaver.kt$import java.io.* + WildcardImport:ImageUtil.kt$import android.graphics.* + WildcardImport:MainActivity.kt$import android.view.* + WildcardImport:MainActivity.kt$import androidx.core.view.* + WildcardImport:MainActivity.kt$import androidx.transition.* + WildcardImport:MainActivity.kt$import org.fossify.camera.helpers.* + WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.* + WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.* + WildcardImport:SettingsActivity.kt$import org.fossify.commons.dialogs.* + WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.* + WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.* + diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 2761f5a1..c027337b 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -1,906 +1,1257 @@ - + - - + message="WRITE_EXTERNAL_STORAGE no longer provides write access when targeting Android 11+, even when using `requestLegacyExternalStorage`" + errorLine1=" android:name="android.permission.WRITE_EXTERNAL_STORAGE"" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" + errorLine1=" val megaPixels: String = String.format("%.1f", (width * height.toFloat()) / ONE_MEGA_PIXEL)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Implicitly using the default locale is a common source of bugs: Use `String.format(Locale, ...)` instead" + errorLine1=" String.format("%.1f", (width * height.toFloat()) / ONE_MEGA_PIXEL)" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - - + + - - + - - + + - - + + - + id="CustomSplashScreen" + message="The application should not provide its own launch screen" + errorLine1="class SplashActivity : BaseSplashActivity() {" + errorLine2=" ~~~~~~~~~~~~~~"> + - + message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)" + errorLine1=" timerText.setFactory { layoutInflater.inflate(R.layout.timer_text, null) }" + errorLine2=" ~~~~"> + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="InflateParams" + message="Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)" + errorLine1=" return (layoutInflater.inflate(R.layout.layout_button, null) as MaterialButton).apply {" + errorLine2=" ~~~~"> + - - + + - - + + - - + message="A newer version of androidx.lifecycle:lifecycle-runtime-ktx than 2.8.6 is available: 2.9.1" + errorLine1="androidx-ktx = "2.8.6"" + errorLine2=" ~~~~~~~"> + - - + message="A newer version of org.fossify:commons than 3.0.5 is available: 3.1.0" + errorLine1="commons = "3.0.5"" + errorLine2=" ~~~~~~~"> + - - - - - - + message="A newer version of `compileSdkVersion` than 34 is available: 35" + errorLine1="app-build-compileSDKVersion = "34"" + errorLine2=" ~~~~"> + - - + + - - + + - - + + - - + + - - + + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message=""video_capture_insufficient_storage_error" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "eu" (Basque), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "bn" (Bangla), "br" (Breton), "bs" (Bosnian), "si" (Sinhala), "zgh" (Standard Moroccan Tamazight), "ltg", "kn" (Kannada), "or" (Odia), "kr" (Kanuri), "sat" (Santali), "ta" (Tamil), "cr" (Cree), "pa" (Punjabi), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb"" + errorLine1=" <string name="video_capture_insufficient_storage_error">Video recording failed due to insufficient storage</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - - + + - + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - - + + - - + + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message=""flip_front_camera_photos_horizontally" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "eu" (Basque), "ne" (Nepali), "fa" (Persian), "bn" (Bangla), "br" (Breton), "bs" (Bosnian), "si" (Sinhala), "zgh" (Standard Moroccan Tamazight), "ltg", "kn" (Kannada), "or" (Odia), "kr" (Kanuri), "sat" (Santali), "ta" (Tamil), "cr" (Cree), "pa" (Punjabi), "te" (Telugu), "th" (Thai), "ckb"" + errorLine1=" <string name="flip_front_camera_photos_horizontally">Flip front camera photos horizontally</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - - - - - - - - - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + id="MissingTranslation" + message=""shutter" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "eu" (Basque), "fa" (Persian), "bn" (Bangla), "br" (Breton), "bs" (Bosnian), "si" (Sinhala), "zgh" (Standard Moroccan Tamazight), "ltg", "kn" (Kannada), "or" (Odia), "kr" (Kanuri), "sat" (Santali), "ta" (Tamil), "cr" (Cree), "pa" (Punjabi), "te" (Telugu), "th" (Thai), "ckb"" + errorLine1=" <string name="shutter">Shutter</string>" + errorLine2=" ~~~~~~~~~~~~~~"> + - + id="ObsoleteSdkInt" + message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 29. Merge all the resources in this folder into `mipmap-anydpi`."> + - + id="StaticFieldLeak" + message="This field leaks a context object" + errorLine1=" val activity: MainActivity," + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - - - - - - - - - + id="VectorPath" + message="Very long vector path (1695 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="#FFFFFFFF" android:pathData="M189.53 7.64c2.76-0.51 6.41-1.08 8.48 1.31 1.9 1.79 2.76 4.44 2.53 7.02-0.18 12.02 0.07 24.05 0.02 36.07 0.32 5.22-5.71 9.02-10.39 7.06-3.29-1.12-5.26-4.63-5.01-8.01 0.03-12.04 0.36-24.08 0.05-36.12-0.27-3.08 1.7-5.88 4.32-7.33zm51.71 22.53c5.97-1.28 10.56 6.39 7.18 11.26-4.62 8.01-9.07 16.13-13.97 23.97-3.44 4.97-12.13 3.22-13.34-2.69-1.28-3.31 1.07-6.32 2.56-9.08 3.95-6.74 7.72-13.59 11.78-20.26 1.18-2.06 3.38-3.41 5.79-3.2zM139.51 31.4c1.73-1.65 4.37-1.14 6.54-1.05 2.47 0.2 3.91 2.59 5.15 4.46 4.07 7.21 8.31 14.34 12.43 21.51 2.05 3.26 1.71 8.29-1.64 10.58-3.34 2.71-8.73 1.73-10.95-1.93-4.38-7.07-8.19-14.47-12.54-21.55-2.82-3.55-3.06-9.3 1.01-12.02zm-7.77 60.19c15.57-6.43 32.54-8.54 49.25-9.3 14.27-1.27 28.62-0.06 42.82 1.45 11.87 1.9 24.01 4.03 34.72 9.76 4.37 2.28 9.08 5.56 10.17 10.68 0.11 28.37-15.19 56.9-40.37 70.59 0.91 4.09 2.5 8.06 2.37 12.32 0.11 13.63-0.07 27.27 0.1 40.91 0.25 15.33-0.43 30.67 0.37 45.99 0.37 13.01-0.97 26.01 0 39-0.17 11.64 0.46 23.31-0.76 34.92-1.84 11.36-9.39 21.51-19.54 26.85-10.02 5.23-22.41 5.43-32.78 1.07-13.54-5.77-22.82-20.07-22.57-34.79-0.05-50.69-0.03-101.37-0.06-152.05-0.26-4.72 1.17-9.25 2.38-13.74-11-6.67-20.69-15.57-27.64-26.43-8.37-13.28-12.76-29.01-12.97-44.66 1.81-6.69 8.74-9.88 14.51-12.57m12.69 8.16c-4.63 1.31-9.43 2.74-13.18 5.89 13.5 7.02 28.92 8.8 43.81 10.59 17.2 0.86 34.59 0.96 51.6-2.08 9.27-1.92 18.81-3.62 27.18-8.29l-0.24-1.48c-6.25-3.1-12.94-5.31-19.79-6.63-29.43-5.87-60.28-5.6-89.38 2m47.82 104.84c-6.92 0.6-13.12 6.33-13.61 13.37-0.15 6.35 0.04 12.71 0 19.06-0.18 5 1.79 10.45 6.2 13.18 4.78 3.31 11.55 3.29 16.41 0.15 4.16-2.61 6.4-7.64 6.33-12.46 0.04-6.56 0.19-13.14 0.04-19.7-0.38-7.7-7.85-13.81-15.37-13.6z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + id="VectorPath" + message="Very long vector path (1198 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="#ffffff" android:pathData="M261.5 223q-3.03 0-4.68-2.75t0-5.5l32.17-55.83q2.2-3.58 5.5-4.26 3.3-0.69 7.15 1.24 18.98 8.53 33.55 23.79 14.58 15.26 22.55 34.51 1.38 3.58-0.41 6.19-1.79 2.61-5.64 2.61zm-39.32 13.47l-33-57.2q-2.2-3.58-1.1-7.15 1.1-3.58 4.4-5.78 13.2-9.35 29.29-14.85t34.24-5.5q4.13 0 9.07 0.41 4.95 0.41 8.25 0.96 3.85 0.55 5.09 3.3 1.24 2.75-0.69 6.05l-45.92 79.75q-1.65 2.75-4.81 2.75-3.16 0-4.81-2.75zM155.35 278q-3.03 0-5.5-2.06-2.48-2.06-3.03-5.09-0.55-3.03-0.69-6.6-0.14-3.58-0.14-8.25 0-17.33 5.64-34.51 5.64-17.19 17.47-32.59 3.03-3.85 7.01-3.85 3.99 0 6.19 4.13l46.2 80.58q1.65 2.75-0.14 5.5t-4.81 2.75zm55 78.1q-18.15-8.8-33.28-23.93-15.13-15.13-22.83-34.38-1.38-3.58 0.55-6.19 1.93-2.61 5.78-2.61h89.65q3.03 0 4.68 2.75t0 5.5l-31.63 55.28q-2.2 3.58-5.5 4.68-3.3 1.1-7.43-1.1zM256 366q-3.85 0-8.66-0.41-4.81-0.42-8.39-0.96-3.85-0.55-5.22-3.3-1.38-2.75 0.55-6.05l45.38-79.2q1.65-2.75 5.5-2.75t5.5 2.75l32.45 56.38q1.93 3.03 1.24 6.6-0.69 3.58-4.54 6.6-12.65 9.35-29.56 14.85Q273.33 366 256 366zm74.52-42.62l-46.75-81.13q-1.65-2.75 0.14-5.5t4.81-2.75h67.93q3.03 0 5.5 2.06 2.48 2.06 3.03 5.09 0.55 3.03 0.69 6.6 0.14 3.58 0.14 8.25 0 17.33-5.64 34.79t-17.47 32.59q-2.2 3.03-6.33 3.16-4.13 0.14-6.05-3.16z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Very long vector path (1198 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="#ffffff" android:pathData="M261.5 223q-3.03 0-4.68-2.75t0-5.5l32.17-55.83q2.2-3.58 5.5-4.26 3.3-0.69 7.15 1.24 18.98 8.53 33.55 23.79 14.58 15.26 22.55 34.51 1.38 3.58-0.41 6.19-1.79 2.61-5.64 2.61zm-39.32 13.47l-33-57.2q-2.2-3.58-1.1-7.15 1.1-3.58 4.4-5.78 13.2-9.35 29.29-14.85t34.24-5.5q4.13 0 9.07 0.41 4.95 0.41 8.25 0.96 3.85 0.55 5.09 3.3 1.24 2.75-0.69 6.05l-45.92 79.75q-1.65 2.75-4.81 2.75-3.16 0-4.81-2.75zM155.35 278q-3.03 0-5.5-2.06-2.48-2.06-3.03-5.09-0.55-3.03-0.69-6.6-0.14-3.58-0.14-8.25 0-17.33 5.64-34.51 5.64-17.19 17.47-32.59 3.03-3.85 7.01-3.85 3.99 0 6.19 4.13l46.2 80.58q1.65 2.75-0.14 5.5t-4.81 2.75zm55 78.1q-18.15-8.8-33.28-23.93-15.13-15.13-22.83-34.38-1.38-3.58 0.55-6.19 1.93-2.61 5.78-2.61h89.65q3.03 0 4.68 2.75t0 5.5l-31.63 55.28q-2.2 3.58-5.5 4.68-3.3 1.1-7.43-1.1zM256 366q-3.85 0-8.66-0.41-4.81-0.42-8.39-0.96-3.85-0.55-5.22-3.3-1.38-2.75 0.55-6.05l45.38-79.2q1.65-2.75 5.5-2.75t5.5 2.75l32.45 56.38q1.93 3.03 1.24 6.6-0.69 3.58-4.54 6.6-12.65 9.35-29.56 14.85Q273.33 366 256 366zm74.52-42.62l-46.75-81.13q-1.65-2.75 0.14-5.5t4.81-2.75h67.93q3.03 0 5.5 2.06 2.48 2.06 3.03 5.09 0.55 3.03 0.69 6.6 0.14 3.58 0.14 8.25 0 17.33-5.64 34.79t-17.47 32.59q-2.2 3.03-6.33 3.16-4.13 0.14-6.05-3.16z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Very long vector path (2896 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="@color/camera_option_color" android:pathData="M14.5 10c0.828 0 1.5-0.672 1.5-1.5S15.328 7 14.5 7 13 7.672 13 8.5s0.672 1.5 1.5 1.5zm0 6c0.828 0 1.5-0.672 1.5-1.5S15.328 13 14.5 13 13 13.672 13 14.5s0.672 1.5 1.5 1.5zm9.5-5.007c0 0.393-0.031 0.782-0.092 1.168-0.058 0.386-0.162 0.75-0.31 1.092-0.149 0.34-0.357 0.642-0.625 0.906-0.268 0.262-0.609 0.467-1.022 0.617C21.537 14.925 21.037 15 20.449 15c-0.139 0-0.302-0.006-0.49-0.019-0.187-0.009-0.342-0.025-0.465-0.046v-1.159c0.129 0.032 0.267 0.057 0.412 0.075 0.145 0.016 0.292 0.024 0.441 0.024 0.591 0 1.046-0.091 1.366-0.271 0.323-0.181 0.549-0.431 0.679-0.752 0.132-0.321 0.208-0.691 0.227-1.111h-0.058c-0.094 0.149-0.205 0.284-0.334 0.406-0.126 0.118-0.288 0.213-0.485 0.285-0.197 0.068-0.447 0.102-0.751 0.102-0.404 0-0.755-0.084-1.056-0.252-0.297-0.171-0.528-0.417-0.693-0.738C19.081 11.221 19 10.83 19 10.372c0-0.495 0.097-0.918 0.291-1.27 0.197-0.355 0.476-0.627 0.838-0.817C20.491 8.095 20.917 8 21.408 8c0.362 0 0.699 0.061 1.012 0.182 0.314 0.118 0.588 0.301 0.824 0.546 0.239 0.246 0.425 0.558 0.557 0.934C23.934 10.039 24 10.483 24 10.993zm-2.563-1.835c-0.291 0-0.528 0.097-0.712 0.29-0.184 0.193-0.276 0.495-0.276 0.906 0 0.33 0.079 0.591 0.237 0.784 0.158 0.193 0.399 0.29 0.722 0.29 0.223 0 0.417-0.047 0.581-0.14 0.165-0.097 0.293-0.217 0.383-0.36 0.094-0.146 0.141-0.296 0.141-0.448 0-0.159-0.023-0.316-0.068-0.472-0.046-0.156-0.113-0.297-0.204-0.425-0.09-0.128-0.203-0.23-0.339-0.308-0.132-0.078-0.287-0.117-0.465-0.117zM4 15H2.721v-4.051c0-0.111 0.002-0.249 0.005-0.411 0.002-0.166 0.006-0.335 0.012-0.508l0.016-0.474c-0.03 0.042-0.092 0.113-0.186 0.216C2.477 9.87 2.392 9.96 2.312 10.04l-0.695 0.646L1 9.795 2.949 8H4v7zm1-2.993c0-0.393 0.029-0.78 0.087-1.163 0.062-0.386 0.167-0.749 0.315-1.088 0.149-0.343 0.357-0.645 0.625-0.906 0.268-0.265 0.609-0.472 1.022-0.621C7.463 8.076 7.964 8 8.551 8 8.69 8 8.852 8.006 9.036 8.019 9.223 8.028 9.378 8.045 9.501 8.07v1.153C9.372 9.195 9.233 9.174 9.084 9.158 8.939 9.139 8.794 9.13 8.648 9.13c-0.588 0-1.043 0.09-1.366 0.271-0.32 0.181-0.546 0.431-0.678 0.752-0.13 0.317-0.205 0.688-0.228 1.111h0.063c0.09-0.152 0.203-0.288 0.339-0.406 0.139-0.118 0.307-0.212 0.504-0.28 0.197-0.072 0.428-0.108 0.693-0.108 0.413 0 0.772 0.086 1.075 0.257 0.304 0.168 0.538 0.413 0.703 0.733C9.918 11.781 10 12.172 10 12.632c0 0.492-0.099 0.916-0.296 1.271-0.197 0.354-0.476 0.627-0.838 0.817C8.508 14.907 8.081 15 7.587 15c-0.362 0-0.699-0.059-1.012-0.177-0.314-0.122-0.588-0.306-0.824-0.552-0.236-0.245-0.42-0.555-0.552-0.929C5.066 12.965 5 12.52 5 12.007zm2.558 1.84c0.294 0 0.533-0.097 0.717-0.29 0.184-0.193 0.276-0.495 0.276-0.906 0-0.333-0.08-0.594-0.242-0.784-0.158-0.193-0.399-0.29-0.722-0.29-0.219 0-0.413 0.048-0.581 0.145-0.165 0.093-0.292 0.213-0.383 0.359-0.09 0.144-0.136 0.292-0.136 0.444 0 0.159 0.023 0.316 0.068 0.472 0.045 0.155 0.113 0.297 0.204 0.425 0.09 0.127 0.202 0.23 0.334 0.308 0.136 0.078 0.291 0.117 0.465 0.117z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Very long vector path (1515 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="@color/camera_option_color" android:pathData="M12.577 11c0.828 0 1.5-0.672 1.5-1.5S13.405 8 12.577 8c-0.829 0-1.5 0.672-1.5 1.5s0.671 1.5 1.5 1.5zm0 5c0.828 0 1.5-0.672 1.5-1.5s-0.672-1.5-1.5-1.5c-0.829 0-1.5 0.672-1.5 1.5s0.671 1.5 1.5 1.5zM8 14.342H7.042V16H5.397v-1.658H2v-1.177L5.49 8h1.552v5.029H8v1.313zm-2.603-1.313v-1.357c0-0.128 0.002-0.279 0.006-0.455l0.022-0.525 0.021-0.465c0.011-0.138 0.019-0.235 0.022-0.29H5.425c-0.069 0.15-0.142 0.296-0.218 0.438-0.076 0.139-0.165 0.284-0.267 0.438l-1.459 2.216h1.916zm16.348-3.177c0 0.359-0.083 0.669-0.249 0.932-0.166 0.262-0.391 0.477-0.676 0.644-0.281 0.167-0.597 0.289-0.948 0.367v0.032c0.695 0.078 1.223 0.27 1.583 0.575C21.818 12.707 22 13.115 22 13.626c0 0.454-0.125 0.861-0.374 1.219-0.245 0.358-0.624 0.641-1.138 0.846C19.974 15.897 19.312 16 18.502 16c-0.478 0-0.925-0.035-1.34-0.106-0.411-0.068-0.798-0.173-1.162-0.314v-1.4c0.372 0.17 0.761 0.299 1.168 0.388 0.407 0.085 0.787 0.128 1.138 0.128 0.656 0 1.115-0.101 1.376-0.304 0.265-0.205 0.397-0.493 0.397-0.862 0-0.216-0.061-0.399-0.184-0.548-0.122-0.149-0.336-0.263-0.64-0.341-0.3-0.078-0.721-0.117-1.263-0.117h-0.658v-1.261h0.67c0.534 0 0.939-0.044 1.215-0.133 0.281-0.092 0.471-0.217 0.569-0.373 0.103-0.16 0.155-0.34 0.155-0.543 0-0.277-0.095-0.493-0.285-0.649-0.19-0.156-0.506-0.234-0.949-0.234-0.276 0-0.529 0.032-0.758 0.095-0.226 0.061-0.429 0.135-0.611 0.224-0.182 0.085-0.342 0.169-0.48 0.25l-0.848-1.134c0.34-0.22 0.737-0.402 1.192-0.548C17.662 8.073 18.208 8 18.84 8c0.893 0 1.601 0.161 2.122 0.484 0.522 0.323 0.783 0.779 0.783 1.368z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Very long vector path (829 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="@color/camera_option_color" android:pathData="M19.5 12c0-0.23-0.01-0.45-0.03-0.68l1.86-1.41c0.4-0.3 0.51-0.86 0.26-1.3l-1.87-3.23c-0.25-0.44-0.79-0.62-1.25-0.42l-2.15 0.91c-0.37-0.26-0.76-0.49-1.17-0.68l-0.29-2.31C14.8 2.38 14.37 2 13.87 2h-3.73c-0.51 0-0.94 0.38-1 0.88L8.85 5.19c-0.41 0.19-0.8 0.42-1.17 0.68L5.53 4.96c-0.46-0.2-1-0.02-1.25 0.42L2.41 8.62c-0.25 0.44-0.14 0.99 0.26 1.3l1.86 1.41C4.51 11.55 4.5 11.77 4.5 12s0.01 0.45 0.03 0.68l-1.86 1.41c-0.4 0.3-0.51 0.86-0.26 1.3l1.87 3.23c0.25 0.44 0.79 0.62 1.25 0.42l2.15-0.91c0.37 0.26 0.76 0.49 1.17 0.68l0.29 2.31C9.2 21.62 9.63 22 10.13 22h3.73c0.5 0 0.93-0.38 0.99-0.88l0.29-2.31c0.41-0.19 0.8-0.42 1.17-0.68l2.15 0.91c0.46 0.2 1 0.02 1.25-0.42l1.87-3.23c0.25-0.44 0.14-0.99-0.26-1.3l-1.86-1.41c0.03-0.23 0.04-0.45 0.04-0.68zm-7.46 3.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Very long vector path (1625 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="@color/camera_option_color" android:pathData="M12.096 13.733c0 0.461-0.112 0.862-0.337 1.203-0.224 0.34-0.552 0.603-0.984 0.787C10.348 15.908 9.827 16 9.214 16c-0.271 0-0.537-0.018-0.797-0.053-0.257-0.036-0.504-0.087-0.743-0.155-0.236-0.071-0.46-0.158-0.674-0.26v-1.533c0.371 0.163 0.756 0.31 1.155 0.442 0.399 0.131 0.795 0.196 1.187 0.196 0.271 0 0.489-0.035 0.653-0.106 0.167-0.071 0.288-0.169 0.363-0.293 0.075-0.124 0.113-0.266 0.113-0.426 0-0.195-0.066-0.362-0.198-0.5s-0.314-0.268-0.546-0.388c-0.228-0.121-0.486-0.251-0.775-0.389-0.182-0.085-0.38-0.188-0.594-0.309-0.214-0.124-0.417-0.275-0.609-0.452-0.193-0.178-0.351-0.392-0.476-0.644-0.121-0.256-0.182-0.561-0.182-0.916 0-0.465 0.107-0.862 0.321-1.192 0.214-0.33 0.518-0.582 0.914-0.756C8.725 8.089 9.196 8 9.738 8c0.406 0 0.793 0.048 1.16 0.144 0.371 0.092 0.758 0.227 1.161 0.404l-0.535 1.283c-0.36-0.145-0.683-0.257-0.968-0.335-0.285-0.082-0.576-0.123-0.872-0.123-0.206 0-0.383 0.034-0.529 0.101-0.146 0.064-0.257 0.157-0.331 0.277-0.075 0.117-0.113 0.254-0.113 0.41 0 0.184 0.054 0.341 0.161 0.468 0.11 0.125 0.274 0.245 0.492 0.362 0.221 0.117 0.495 0.254 0.823 0.41 0.4 0.188 0.74 0.385 1.022 0.591 0.285 0.202 0.504 0.442 0.657 0.719 0.154 0.273 0.23 0.614 0.23 1.022zM20 11.928c0 0.877-0.169 1.609-0.508 2.198-0.335 0.586-0.822 1.028-1.46 1.326-0.638 0.294-1.406 0.442-2.305 0.442h-2.214V8.112h2.455c0.82 0 1.531 0.145 2.134 0.436 0.602 0.288 1.069 0.715 1.401 1.283C19.834 10.395 20 11.094 20 11.928zm-1.722 0.043c0-0.575-0.086-1.047-0.257-1.416-0.167-0.373-0.417-0.648-0.748-0.825-0.328-0.178-0.735-0.266-1.22-0.266h-0.882v5.067h0.711c0.81 0 1.41-0.215 1.802-0.644 0.396-0.429 0.594-1.068 0.594-1.916z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - - - - - + message="Very long vector path (874 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector." + errorLine1=" <path android:fillColor="@color/camera_option_color" android:pathData="M9.425 8v5.107c0 0.543-0.082 1.034-0.247 1.473-0.162 0.436-0.409 0.781-0.741 1.037C8.107 15.872 7.692 16 7.19 16c-0.713 0-1.256-0.266-1.629-0.799C5.187 14.668 5 13.963 5 13.085V8h1.139v4.831c0 0.652 0.091 1.109 0.273 1.371 0.182 0.263 0.451 0.395 0.808 0.395 0.251 0 0.453-0.064 0.608-0.189 0.158-0.126 0.273-0.321 0.347-0.583 0.074-0.263 0.111-0.598 0.111-1.004V8h1.139zm5.738 7.892h-1.14v-3.406h-2.135v3.406h-1.143V8h1.143v3.093h2.135V8h1.14v7.892zM21 11.87c0 0.889-0.117 1.632-0.35 2.23-0.231 0.594-0.567 1.042-1.007 1.344-0.44 0.299-0.97 0.448-1.589 0.448h-1.527V8h1.693c0.565 0 1.055 0.148 1.471 0.443 0.415 0.291 0.737 0.725 0.966 1.301C20.886 10.316 21 11.025 21 11.87zm-1.187 0.044c0-0.583-0.059-1.062-0.177-1.436-0.116-0.378-0.288-0.657-0.517-0.837-0.226-0.18-0.506-0.27-0.84-0.27H17.67v5.139h0.491c0.558 0 0.972-0.218 1.242-0.653 0.273-0.435 0.41-1.083 0.41-1.943z"/>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - - + + - - + + - - + + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Replace "-" with an "en dash" character (–, &#8211;) ?" + errorLine1=" <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>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Replace "-" with an "en dash" character (–, &#8211;) ?" + errorLine1=" <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>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Replace "-" with an "en dash" character (–, &#8211;) ?" + errorLine1=" <string name="faq_1_text">Me råder til å nytte 75 - 80 %. Bilete vil framleis sjå bra ut, men dei vil nytte mindre rom enn ved 100 %.</string>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Replace "-" with an "en dash" character (–, &#8211;) ?" + errorLine1=" <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>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + message="Replace "-" with an "en dash" character (–, &#8211;) ?" + errorLine1=" <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>" + errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> + - + id="UseKtx" + message="Use the KTX extension function `SharedPreferences.edit` instead?" + errorLine1=" set(path) = prefs.edit().putString(SAVE_PHOTOS, path).apply()" + errorLine2=" ~~~~~~~~~~~~"> + - + id="UseKtx" + message="Use the KTX extension function `SharedPreferences.edit` instead?" + errorLine1=" set(enabled) = prefs.edit().putBoolean(SOUND, enabled).apply()" + errorLine2=" ~~~~~~~~~~~~"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/lint.xml b/lint.xml new file mode 100644 index 00000000..05685cd8 --- /dev/null +++ b/lint.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +