Add reusable workflows for PRs and testing builds
This commit is contained in:
parent
0faad4c4d4
commit
bd0743d625
9
.github/workflows/pr.yml
vendored
Normal file
9
.github/workflows/pr.yml
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
name: PR
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
call-pr-workflow:
|
||||||
|
uses: FossifyOrg/.github/.github/workflows/pr.yml@main
|
10
.github/workflows/testing-build.yml
vendored
Normal file
10
.github/workflows/testing-build.yml
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
name: Testing build (on PR)
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
types: [ labeled, opened, synchronize, reopened ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
call-testing-build-workflow:
|
||||||
|
uses: FossifyOrg/.github/.github/workflows/testing-build.yml@main
|
@ -6,6 +6,7 @@ plugins {
|
|||||||
alias(libs.plugins.android)
|
alias(libs.plugins.android)
|
||||||
alias(libs.plugins.kotlinAndroid)
|
alias(libs.plugins.kotlinAndroid)
|
||||||
alias(libs.plugins.ksp)
|
alias(libs.plugins.ksp)
|
||||||
|
alias(libs.plugins.detekt)
|
||||||
}
|
}
|
||||||
|
|
||||||
val keystorePropertiesFile: File = rootProject.file("keystore.properties")
|
val keystorePropertiesFile: File = rootProject.file("keystore.properties")
|
||||||
@ -88,10 +89,16 @@ android {
|
|||||||
|
|
||||||
lint {
|
lint {
|
||||||
checkReleaseBuilds = false
|
checkReleaseBuilds = false
|
||||||
abortOnError = false
|
abortOnError = true
|
||||||
|
warningsAsErrors = true
|
||||||
|
baseline = file("lint-baseline.xml")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detekt {
|
||||||
|
baseline = file("detekt-baseline.xml")
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.fossify.commons)
|
implementation(libs.fossify.commons)
|
||||||
implementation(libs.eventbus)
|
implementation(libs.eventbus)
|
||||||
|
119
app/detekt-baseline.xml
Normal file
119
app/detekt-baseline.xml
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<SmellBaseline>
|
||||||
|
<ManuallySuppressedIssues></ManuallySuppressedIssues>
|
||||||
|
<CurrentIssues>
|
||||||
|
<ID>EmptyCatchBlock:Activity.kt${ }</ID>
|
||||||
|
<ID>EmptyCatchBlock:RecorderFragment.kt$RecorderFragment${ }</ID>
|
||||||
|
<ID>EmptyFunctionBlock:Mp3Recorder.kt$Mp3Recorder${}</ID>
|
||||||
|
<ID>EmptyFunctionBlock:PlayerFragment.kt$PlayerFragment.<no name provided>${}</ID>
|
||||||
|
<ID>EmptyFunctionBlock:RecordingsAdapter.kt$RecordingsAdapter${}</ID>
|
||||||
|
<ID>EmptyFunctionBlock:TrashAdapter.kt$TrashAdapter${}</ID>
|
||||||
|
<ID>EmptyFunctionBlock:TrashFragment.kt$TrashFragment${}</ID>
|
||||||
|
<ID>EmptyFunctionBlock:WidgetRecordDisplayConfigureActivity.kt$WidgetRecordDisplayConfigureActivity.<no name provided>${}</ID>
|
||||||
|
<ID>FunctionParameterNaming:Config.kt$Config$audio_source: Int</ID>
|
||||||
|
<ID>MagicNumber:Activity.kt$1000</ID>
|
||||||
|
<ID>MagicNumber:Activity.kt$1000L</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$128000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$160000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$192000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$256000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$32000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$320000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$64000</ID>
|
||||||
|
<ID>MagicNumber:Constants.kt$96000</ID>
|
||||||
|
<ID>MagicNumber:Context.kt$1000</ID>
|
||||||
|
<ID>MagicNumber:Context.kt$60</ID>
|
||||||
|
<ID>MagicNumber:Mp3Recorder.kt$Mp3Recorder$1.25</ID>
|
||||||
|
<ID>MagicNumber:Mp3Recorder.kt$Mp3Recorder$1000</ID>
|
||||||
|
<ID>MagicNumber:Mp3Recorder.kt$Mp3Recorder$7200</ID>
|
||||||
|
<ID>MagicNumber:Mp3Recorder.kt$Mp3Recorder$8</ID>
|
||||||
|
<ID>MagicNumber:PlayerFragment.kt$PlayerFragment$1000</ID>
|
||||||
|
<ID>MagicNumber:PlayerFragment.kt$PlayerFragment$10000</ID>
|
||||||
|
<ID>MagicNumber:PlayerFragment.kt$PlayerFragment.<no name provided>$1000</ID>
|
||||||
|
<ID>MagicNumber:RecorderFragment.kt$RecorderFragment$500</ID>
|
||||||
|
<ID>MagicNumber:RecorderService.kt$RecorderService$1000</ID>
|
||||||
|
<ID>MagicNumber:RecorderService.kt$RecorderService$75L</ID>
|
||||||
|
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$1000</ID>
|
||||||
|
<ID>MagicNumber:ViewPagerAdapter.kt$ViewPagerAdapter$3</ID>
|
||||||
|
<ID>MagicNumber:WidgetRecordDisplayConfigureActivity.kt$WidgetRecordDisplayConfigureActivity$100</ID>
|
||||||
|
<ID>MaxLineLength:Activity.kt$fileDirItems = recordingsToMove.map { File(it.path).toFileDirItem(this) }.toMutableList() as ArrayList<FileDirItem></ID>
|
||||||
|
<ID>MaxLineLength:Activity.kt$fileDirItems = recordingsToRestore.map { File(it.path).toFileDirItem(this) }.toMutableList() as ArrayList<FileDirItem></ID>
|
||||||
|
<ID>MaxLineLength:Activity.kt$fun</ID>
|
||||||
|
<ID>MaxLineLength:Activity.kt$val recordingsToRemove = getLegacyRecordings(trashed = true).filter { it.timestamp < System.currentTimeMillis() - MONTH_SECONDS * 1000L }</ID>
|
||||||
|
<ID>MaxLineLength:BackgroundRecordActivity.kt$BackgroundRecordActivity$PermissionRequiredDialog(this, org.fossify.commons.R.string.allow_notifications_voice_recorder, { openNotificationSettings() })</ID>
|
||||||
|
<ID>MaxLineLength:MainActivity.kt$MainActivity$customView?.findViewById<ImageView>(org.fossify.commons.R.id.tab_item_icon)?.setImageDrawable(getDrawable(drawableId))</ID>
|
||||||
|
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, org.fossify.commons.R.string.faq_2_text_commons))</ID>
|
||||||
|
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_6_title_commons, org.fossify.commons.R.string.faq_6_text_commons))</ID>
|
||||||
|
<ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(org.fossify.commons.R.bool.hide_google_relations)</ID>
|
||||||
|
<ID>MaxLineLength:MainActivity.kt$MainActivity$updateMaterialActivityViews(binding.mainCoordinator, binding.mainHolder, useTransparentNavigation = false, useTopSearchMenu = true)</ID>
|
||||||
|
<ID>MaxLineLength:MyViewPagerFragment.kt$MyViewPagerFragment$abstract</ID>
|
||||||
|
<ID>MaxLineLength:MyWidgetRecordDisplayProvider.kt$MyWidgetRecordDisplayProvider$PendingIntent.getActivity(context, OPEN_APP_INTENT_ID, this, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)</ID>
|
||||||
|
<ID>MaxLineLength:MyWidgetRecordDisplayProvider.kt$MyWidgetRecordDisplayProvider$val drawable = context.resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_microphone_vector, color, alpha)</ID>
|
||||||
|
<ID>MaxLineLength:PlayerFragment.kt$PlayerFragment$class</ID>
|
||||||
|
<ID>MaxLineLength:PlayerFragment.kt$PlayerFragment$if</ID>
|
||||||
|
<ID>MaxLineLength:PlayerFragment.kt$PlayerFragment$val drawable = if (isPlaying) org.fossify.commons.R.drawable.ic_pause_vector else org.fossify.commons.R.drawable.ic_play_vector</ID>
|
||||||
|
<ID>MaxLineLength:PlayerFragment.kt$PlayerFragment$val filtered = itemsIgnoringSearch.filter { it.title.contains(text, true) }.toMutableList() as ArrayList<Recording></ID>
|
||||||
|
<ID>MaxLineLength:RecorderFragment.kt$RecorderFragment$PermissionRequiredDialog</ID>
|
||||||
|
<ID>MaxLineLength:RecorderFragment.kt$RecorderFragment$if (status == RECORDING_RUNNING || status == RECORDING_PAUSED) org.fossify.commons.R.drawable.ic_stop_vector else org.fossify.commons.R.drawable.ic_microphone_vector</ID>
|
||||||
|
<ID>MaxLineLength:RecorderFragment.kt$RecorderFragment$setImageDrawable(resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_pause_vector, properPrimaryColor.getContrastColor()))</ID>
|
||||||
|
<ID>MaxLineLength:RecorderService.kt$RecorderService$return PendingIntent.getActivity(this, RECORDER_RUNNING_NOTIF_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE)</ID>
|
||||||
|
<ID>MaxLineLength:RecorderService.kt$RecorderService$val importance = if (hideNotification) NotificationManager.IMPORTANCE_MIN else NotificationManager.IMPORTANCE_DEFAULT</ID>
|
||||||
|
<ID>MaxLineLength:Recording.kt$Recording</ID>
|
||||||
|
<ID>MaxLineLength:RecordingsAdapter.kt$RecordingsAdapter$private</ID>
|
||||||
|
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$arrayOf(binding.settingsColorCustomizationSectionLabel, binding.settingsGeneralSettingsLabel, binding.settingsRecycleBinLabel)</ID>
|
||||||
|
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$binding.settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus())</ID>
|
||||||
|
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$updateMaterialActivityViews(binding.settingsCoordinator, binding.settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
|
||||||
|
<ID>MaxLineLength:TrashFragment.kt$TrashFragment$class</ID>
|
||||||
|
<ID>MaxLineLength:TrashFragment.kt$TrashFragment$val filtered = itemsIgnoringSearch.filter { it.title.contains(text, true) }.toMutableList() as ArrayList<Recording></ID>
|
||||||
|
<ID>MaxLineLength:WidgetRecordDisplayConfigureActivity.kt$WidgetRecordDisplayConfigureActivity$mWidgetColorWithoutTransparency = Color.rgb(Color.red(mWidgetColor), Color.green(mWidgetColor), Color.blue(mWidgetColor))</ID>
|
||||||
|
<ID>PrintStackTrace:Mp3Recorder.kt$Mp3Recorder$e</ID>
|
||||||
|
<ID>SwallowedException:Activity.kt$e: Exception</ID>
|
||||||
|
<ID>SwallowedException:Context.kt$e: Exception</ID>
|
||||||
|
<ID>SwallowedException:RecorderFragment.kt$RecorderFragment$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:Activity.kt$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:Context.kt$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:Mp3Recorder.kt$Mp3Recorder$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:PlayerFragment.kt$PlayerFragment$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:RecorderFragment.kt$RecorderFragment$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:RecorderService.kt$RecorderService$e: Exception</ID>
|
||||||
|
<ID>TooGenericExceptionCaught:RenameRecordingDialog.kt$RenameRecordingDialog$e: Exception</ID>
|
||||||
|
<ID>TooManyFunctions:Context.kt$org.fossify.voicerecorder.extensions.Context.kt</ID>
|
||||||
|
<ID>TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivity</ID>
|
||||||
|
<ID>TooManyFunctions:PlayerFragment.kt$PlayerFragment : MyViewPagerFragmentRefreshRecordingsListener</ID>
|
||||||
|
<ID>TooManyFunctions:RecorderFragment.kt$RecorderFragment : MyViewPagerFragment</ID>
|
||||||
|
<ID>TooManyFunctions:RecorderService.kt$RecorderService : Service</ID>
|
||||||
|
<ID>TooManyFunctions:RecordingsAdapter.kt$RecordingsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
|
||||||
|
<ID>TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity</ID>
|
||||||
|
<ID>TooManyFunctions:TrashAdapter.kt$TrashAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
|
||||||
|
<ID>TooManyFunctions:TrashFragment.kt$TrashFragment : MyViewPagerFragmentRefreshRecordingsListener</ID>
|
||||||
|
<ID>UnusedParameter:PlayerFragment.kt$PlayerFragment$event: Events.RecordingCompleted</ID>
|
||||||
|
<ID>UnusedParameter:PlayerFragment.kt$PlayerFragment$event: Events.RecordingTrashUpdated</ID>
|
||||||
|
<ID>UnusedParameter:TrashFragment.kt$TrashFragment$event: Events.RecordingTrashUpdated</ID>
|
||||||
|
<ID>UnusedPrivateMember:TrashAdapter.kt$TrashAdapter$private fun getItemWithKey(key: Int): Recording?</ID>
|
||||||
|
<ID>VariableNaming:MyWidgetRecordDisplayProvider.kt$MyWidgetRecordDisplayProvider$private val OPEN_APP_INTENT_ID = 1</ID>
|
||||||
|
<ID>VariableNaming:PlayerFragment.kt$PlayerFragment$private val FAST_FORWARD_SKIP_MS = 10000</ID>
|
||||||
|
<ID>VariableNaming:RecorderService.kt$RecorderService$private val AMPLITUDE_UPDATE_MS = 75L</ID>
|
||||||
|
<ID>WildcardImport:Activity.kt$import org.fossify.commons.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:Context.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:Context.kt$import org.fossify.voicerecorder.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:Mp3Recorder.kt$import java.io.*</ID>
|
||||||
|
<ID>WildcardImport:PlayerFragment.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:RecorderFragment.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:RecorderFragment.kt$import org.fossify.voicerecorder.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:RecorderService.kt$import android.app.*</ID>
|
||||||
|
<ID>WildcardImport:RecorderService.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:RecorderService.kt$import org.fossify.voicerecorder.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:RecordingsAdapter.kt$import android.view.*</ID>
|
||||||
|
<ID>WildcardImport:RecordingsAdapter.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:RenameRecordingDialog.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.dialogs.*</ID>
|
||||||
|
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.*</ID>
|
||||||
|
<ID>WildcardImport:TrashAdapter.kt$import android.view.*</ID>
|
||||||
|
<ID>WildcardImport:TrashAdapter.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:TrashFragment.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
<ID>WildcardImport:WidgetRecordDisplayConfigureActivity.kt$import org.fossify.commons.extensions.*</ID>
|
||||||
|
</CurrentIssues>
|
||||||
|
</SmellBaseline>
|
704
app/lint-baseline.xml
Normal file
704
app/lint-baseline.xml
Normal file
@ -0,0 +1,704 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<issues format="6" by="lint 8.2.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.2.2)" variant="all" version="8.2.2">
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="InlinedApi"
|
||||||
|
message="Field requires API level 29 (current min is 23): `android.media.MediaRecorder.OutputFormat#OGG`"
|
||||||
|
errorLine1=" EXTENSION_OGG -> MediaRecorder.OutputFormat.OGG"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/helpers/Config.kt"
|
||||||
|
line="67"
|
||||||
|
column="26"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="InlinedApi"
|
||||||
|
message="Field requires API level 29 (current min is 23): `android.media.MediaRecorder.AudioEncoder#OPUS`"
|
||||||
|
errorLine1=" EXTENSION_OGG -> MediaRecorder.AudioEncoder.OPUS"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/helpers/Config.kt"
|
||||||
|
line="72"
|
||||||
|
column="26"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="NewApi"
|
||||||
|
message="Call requires API level 33 (current min is 23): `launchChangeAppLanguageIntent`"
|
||||||
|
errorLine1=" launchChangeAppLanguageIntent()"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/activities/SettingsActivity.kt"
|
||||||
|
line="100"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="UnusedAttribute"
|
||||||
|
message="Attribute `appCategory` is only used in API level 26 and higher (current min is 23)"
|
||||||
|
errorLine1=" android:appCategory="audio""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/AndroidManifest.xml"
|
||||||
|
line="26"
|
||||||
|
column="9"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="UnusedAttribute"
|
||||||
|
message="Attribute `localeConfig` is only used in API level 33 and higher (current min is 23)"
|
||||||
|
errorLine1=" android:localeConfig="@xml/locale_config""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/AndroidManifest.xml"
|
||||||
|
line="29"
|
||||||
|
column="9"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="CustomSplashScreen"
|
||||||
|
message="The application should not provide its own launch screen"
|
||||||
|
errorLine1="class SplashActivity : BaseSplashActivity() {"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/activities/SplashActivity.kt"
|
||||||
|
line="6"
|
||||||
|
column="7"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="GradleDependency"
|
||||||
|
message="A newer version of org.jetbrains.kotlin.android than 1.9.21 is available: 1.9.25"
|
||||||
|
errorLine1="kotlin = "1.9.21""
|
||||||
|
errorLine2=" ~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="$HOME/Projects/Community/FossifyOrg/Voice-Recorder/gradle/libs.versions.toml"
|
||||||
|
line="3"
|
||||||
|
column="10"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="GradleDependency"
|
||||||
|
message="A newer version of com.google.devtools.ksp than 1.9.21-1.0.16 is available: 1.9.25-1.0.20"
|
||||||
|
errorLine1="ksp = "1.9.21-1.0.16""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="$HOME/Projects/Community/FossifyOrg/Voice-Recorder/gradle/libs.versions.toml"
|
||||||
|
line="5"
|
||||||
|
column="7"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="GradleDependency"
|
||||||
|
message="A newer version of com.android.application than 8.2.2 is available: 8.6.1"
|
||||||
|
errorLine1="gradlePlugins-agp = "8.2.2""
|
||||||
|
errorLine2=" ~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="$HOME/Projects/Community/FossifyOrg/Voice-Recorder/gradle/libs.versions.toml"
|
||||||
|
line="23"
|
||||||
|
column="21"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="LockedOrientationActivity"
|
||||||
|
message="Expecting `android:screenOrientation="unspecified"` or `"fullSensor"` for this activity so the user can use the application in any orientation and provide a great experience on Chrome OS devices"
|
||||||
|
errorLine1=" android:screenOrientation="portrait""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/AndroidManifest.xml"
|
||||||
|
line="39"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="UseCompatLoadingForDrawables"
|
||||||
|
message="Use `AppCompatResources.getDrawable()`"
|
||||||
|
errorLine1=" customView?.findViewById<ImageView>(org.fossify.commons.R.id.tab_item_icon)?.setImageDrawable(getDrawable(drawableId))"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/activities/MainActivity.kt"
|
||||||
|
line="173"
|
||||||
|
column="111"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingQuantity"
|
||||||
|
message="For locale "lt" (Lithuanian) the following quantity should also be defined: `many` (e.g. "1.1 obuolio")"
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ^">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values-lt/strings.xml"
|
||||||
|
line="13"
|
||||||
|
column="5"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingQuantity"
|
||||||
|
message="For locale "cs" (Czech) the following quantity should also be defined: `many` (e.g. "10.0 dne")"
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ^">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values-cs/strings.xml"
|
||||||
|
line="14"
|
||||||
|
column="5"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingQuantity"
|
||||||
|
message="For locale "pt" (Portuguese) the following quantity should also be defined: `many`"
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ^">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values-pt-rBR/strings.xml"
|
||||||
|
line="14"
|
||||||
|
column="5"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingQuantity"
|
||||||
|
message="For locale "sk" (Slovak) the following quantity should also be defined: `many` (e.g. "10.0 dňa")"
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ^">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values-sk/strings.xml"
|
||||||
|
line="14"
|
||||||
|
column="5"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""app_launcher_name" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ar" (Arabic), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="app_launcher_name">Voice Recorder_debug</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/debug/res/values/strings.xml"
|
||||||
|
line="3"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""app_launcher_name" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ar" (Arabic), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="app_launcher_name">Voice Recorder</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="3"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""recording_saved_successfully" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="recording_saved_successfully">Recording saved successfully</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="4"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""recording" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ml" (Malayalam), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="recording">Recording</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="5"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""no_recordings_found" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="no_recordings_found">No recordings created by this app\nhave been found</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="6"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""no_recordings_in_folder_found" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="no_recordings_in_folder_found">No recordings have been found\nin the selected folder</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="7"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""paused" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="paused">Paused</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="8"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""recorder" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ml" (Malayalam), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "ar" (Arabic), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "bn" (Bangla), "br" (Breton), "bs" (Bosnian), "si" (Sinhala), "zgh" (Standard Moroccan Tamazight), "ltg", "kn" (Kannada), "or" (Odia), "gl" (Galician), "kr" (Kanuri), "sat" (Santali), "ta" (Tamil), "cr" (Cree), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="recorder">Recorder</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="9"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""player" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ml" (Malayalam), "ms" (Malay), "el" (Greek), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="player">Player</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="10"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""delete_recordings_confirmation" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ar" (Arabic), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="delete_recordings_confirmation">Delete %s\?</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="13"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""delete_recordings" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ml" (Malayalam), "ms" (Malay), "en" (English), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="14"
|
||||||
|
column="14"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""try_hiding_notification" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="try_hiding_notification">Try hiding the recording notification</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="19"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""save_recordings_in" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="save_recordings_in">Save recordings in</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="20"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source">Audio source</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="21"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""bitrate" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ar" (Arabic), "vi" (Vietnamese), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "bn" (Bangla), "br" (Breton), "bs" (Bosnian), "si" (Sinhala), "sk" (Slovak), "zgh" (Standard Moroccan Tamazight), "ltg", "kn" (Kannada), "or" (Odia), "gl" (Galician), "kr" (Kanuri), "sat" (Santali), "ta" (Tamil), "cr" (Cree), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="bitrate">Bitrate</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="22"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""record_after_launch" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ml" (Malayalam), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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), "te" (Telugu), "th" (Thai), "cy" (Welsh), "ckb""
|
||||||
|
errorLine1=" <string name="record_after_launch">Start recording automatically after launching the app</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="23"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_camcorder" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_camcorder">Camera</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="25"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_default" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_default">Android default</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="26"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_unprocessed" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_unprocessed">Unprocessed</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="27"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_microphone" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_microphone">Microphone</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="28"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_voice_recognition" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_voice_recognition">Voice recognition</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="29"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_voice_communication" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_voice_communication">Voice communication</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="30"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""audio_source_voice_performance" is not translated in "fil" (Filipino; Pilipino), "lt" (Lithuanian), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "iw" (Hebrew), "nb" (Norwegian Bokmål), "ne" (Nepali), "az" (Azerbaijani), "fa" (Persian), "ro" (Romanian), "nn" (Norwegian Nynorsk), "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="audio_source_voice_performance">Voice performance</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="31"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""faq_1_title" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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="faq_1_title">Can I hide the notification icon during recording?</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="33"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="MissingTranslation"
|
||||||
|
message=""faq_1_text" is not translated in "fil" (Filipino; Pilipino), "lv" (Latvian), "ia" (Interlingua), "mk" (Macedonian), "ms" (Malay), "en" (English), "eo" (Esperanto), "is" (Icelandic), "my" (Burmese), "ne" (Nepali), "az" (Azerbaijani), "nn" (Norwegian Nynorsk), "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="faq_1_text">Well, it depends. While you use your device it is no longer possible to fully hide the notifications of apps like this."
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/strings.xml"
|
||||||
|
line="34"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="UnusedQuantity"
|
||||||
|
message="For language "iw" (Hebrew) the following quantities are not relevant: `many`"
|
||||||
|
errorLine1=" <plurals name="delete_recordings">"
|
||||||
|
errorLine2=" ^">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values-iw/strings.xml"
|
||||||
|
line="12"
|
||||||
|
column="5"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="NotifyDataSetChanged"
|
||||||
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
|
||||||
|
errorLine1=" notifyDataSetChanged()"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/adapters/RecordingsAdapter.kt"
|
||||||
|
line="95"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="NotifyDataSetChanged"
|
||||||
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
|
||||||
|
errorLine1=" notifyDataSetChanged()"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/adapters/RecordingsAdapter.kt"
|
||||||
|
line="252"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="NotifyDataSetChanged"
|
||||||
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
|
||||||
|
errorLine1=" notifyDataSetChanged()"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/adapters/TrashAdapter.kt"
|
||||||
|
line="81"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="NotifyDataSetChanged"
|
||||||
|
message="It will always be more efficient to use more specific change events if you can. Rely on `notifyDataSetChanged` as a last resort."
|
||||||
|
errorLine1=" notifyDataSetChanged()"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/adapters/TrashAdapter.kt"
|
||||||
|
line="181"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="Recycle"
|
||||||
|
message="This `InputStream` should be freed up after use with `#close()`"
|
||||||
|
errorLine1=" contentResolver.openInputStream(recordingUri)?.available() ?: 0"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/extensions/Context.kt"
|
||||||
|
line="226"
|
||||||
|
column="25"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="Recycle"
|
||||||
|
message="This `ParcelFileDescriptor` should be freed up after use with `#close()`"
|
||||||
|
errorLine1=" val outputFileDescriptor = contentResolver.openFileDescriptor(fileUri, "w")!!.fileDescriptor"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/services/RecorderService.kt"
|
||||||
|
line="102"
|
||||||
|
column="60"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="Recycle"
|
||||||
|
message="This `ParcelFileDescriptor` should be freed up after use with `#close()`"
|
||||||
|
errorLine1=" val outputFileDescriptor = contentResolver.openFileDescriptor(document!!.uri, "w")!!.fileDescriptor"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/services/RecorderService.kt"
|
||||||
|
line="108"
|
||||||
|
column="60"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="Recycle"
|
||||||
|
message="This `OutputStream` should be freed up after use with `#close()`"
|
||||||
|
errorLine1=" val outputStream = contentResolver.openOutputStream(newUri)"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/kotlin/org/fossify/voicerecorder/services/RecorderService.kt"
|
||||||
|
line="204"
|
||||||
|
column="48"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="VectorPath"
|
||||||
|
message="Very long vector path (2173 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
|
||||||
|
errorLine1=" <path android:fillColor="#FFFFFF" android:pathData="M91.733 31.071c-4.979-9.404-12.539-16.042-22.496-20.098-7.629-2.7-15.376-3.938-23.049-2.582-7.192 0.922-13.461 3.687-19.178 7.929-9.035 6.822-14.566 15.857-16.78 26.736-0.583 2.82-0.552 5.371-0.552 8.298v20.652c-0.038 3.077-0.153 7.01 0.369 9.589 2.028 7.745 6.638 12.908 14.382 14.936h0.184v0.553c0.184 0.922 0.553 2.212 2.212 3.135l0.369 0.184h7.007l0.369-0.184c2.397-0.922 2.397-3.319 2.397-4.426V56.886c0-2.582-1.291-3.872-3.872-3.872h-4.241c-0.922 0-3.688 0-4.056 3.135l-0.184 0.737c-3.688 0.922-6.823 2.582-9.589 5.347-0.184-3.503 0-7.007 0-10.51h0.369c1.475 0 1.475 0 1.475-1.475s0-2.766 0.184-4.056c0.737-4.61 2.212-8.851 4.426-12.723l1.107 0.737c0.922 0.553 2.028 1.291 2.951 2.028 0.737 0.553 2.028 1.107 3.503 0 1.107-0.737 1.844-1.66 2.582-2.582 0.184-0.369 0.553-0.553 0.737-0.922 6.823-7.375 15.489-10.326 25.446-8.666 6.454 0.922 11.986 4.241 16.596 9.589 0.737 0.922 1.66 1.844 2.582 2.397 0.553 0.369 1.107 0.737 1.844 0.737 0.553 0 1.107-0.184 1.66-0.553 1.107-0.737 2.028-1.291 3.135-2.028l1.291-0.737c1.291 2.212 2.212 4.61 3.135 7.007 1.107 3.319 1.66 6.823 1.66 10.51 0 0.737 0.369 0.922 0.922 0.922 0.369 0 0.553-0.184 0.922-0.184V62.42c-1.293-1.291-2.584-2.398-4.244-3.319-1.659-0.922-3.503-1.845-5.347-2.029v-0.369c-0.186-2.03-1.661-3.321-3.689-3.321h-4.979c-2.397 0.185-3.503 1.291-3.503 3.688v39.46c0.662 2.292 0.534 3.039 2.212 4.241h7.376l0.369-0.184c0.737-0.369 2.212-1.291 2.028-3.319v-0.184c4.61-1.107 8.298-3.503 11.064-7.375 3.41-5.99 3.834-11.996 3.688-17.886v-19.73c0.231-6.875-1.744-15.078-4.793-21.022zM28.117 76.063V56.701h4.61v0.369c0.184 8.298 0 16.78 0 24.894V96.9h-4.794v-6.27c0.184-4.979 0.184-9.773 0.184-14.567zM78.826 32.73c-0.553-0.368-1.107-0.922-1.476-1.659-5.163-6.085-11.432-9.773-18.808-10.879-11.248-1.844-21.02 1.475-28.765 9.773-0.369 0.369-0.553 0.553-0.737 0.922-0.553 0.737-1.107 1.291-1.66 1.844-0.737-0.553-1.66-1.107-2.582-1.66 0.737-1.107 1.66-2.028 2.397-2.951 5.347-5.716 11.801-9.404 19.177-10.879 6.007-0.691 11.228-0.476 16.78 0.922 7.375 2.397 13.461 6.823 18.071 12.908-0.553 0.553-1.475 1.107-2.397 1.66zm-0.923 46.099v17.886h-4.61V56.701h3.688l1.107 0.185v0.737c-0.184 6.823-0.184 14.014-0.184 21.205z"/>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/drawable/ic_headset_vector.xml"
|
||||||
|
line="2"
|
||||||
|
column="57"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="VectorPath"
|
||||||
|
message="Very long vector path (828 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
|
||||||
|
errorLine1=" <path android:fillColor="#ffffff" android:pathData="M203 309V203q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.04 3.05 7.55v106q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05Q203 313.51 203 309zm42.4 42.4V160.6q0-4.51 3.05-7.55Q251.49 150 256 150t7.55 3.05q3.05 3.05 3.05 7.55v190.8q0 4.51-3.05 7.55Q260.51 362 256 362t-7.55-3.05q-3.05-3.05-3.05-7.55zm-84.8-84.8v-21.2q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.05 3.05 7.55v21.2q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55zM287.8 309V203q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05Q309 198.49 309 203v106q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55zm42.4-42.4v-21.2q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.05 3.05 7.55v21.2q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55z" android:strokeWidth="0.265"/>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/drawable/ic_launcher_foreground.xml"
|
||||||
|
line="2"
|
||||||
|
column="57"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="VectorPath"
|
||||||
|
message="Very long vector path (828 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
|
||||||
|
errorLine1=" <path android:fillColor="#ffffff" android:pathData="M203 309V203q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.04 3.05 7.55v106q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05Q203 313.51 203 309zm42.4 42.4V160.6q0-4.51 3.05-7.55Q251.49 150 256 150t7.55 3.05q3.05 3.05 3.05 7.55v190.8q0 4.51-3.05 7.55Q260.51 362 256 362t-7.55-3.05q-3.05-3.05-3.05-7.55zm-84.8-84.8v-21.2q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.05 3.05 7.55v21.2q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55zM287.8 309V203q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05Q309 198.49 309 203v106q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55zm42.4-42.4v-21.2q0-4.51 3.05-7.55 3.05-3.05 7.55-3.05 4.51 0 7.55 3.05 3.05 3.05 3.05 7.55v21.2q0 4.51-3.05 7.55-3.05 3.05-7.55 3.05-4.51 0-7.55-3.05-3.05-3.04-3.05-7.55z" android:strokeWidth="0.265"/>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/drawable/ic_launcher_monochrome.xml"
|
||||||
|
line="2"
|
||||||
|
column="57"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="UnusedResources"
|
||||||
|
message="The resource `R.string.package_name` appears to be unused"
|
||||||
|
errorLine1=" <string name="package_name">org.fossify.voicerecorder</string>"
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/values/donottranslate.xml"
|
||||||
|
line="2"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="IconLocation"
|
||||||
|
message="Found bitmap drawable `res/drawable/ic_empty.png` in densityless folder">
|
||||||
|
<location
|
||||||
|
file="src/main/res/drawable/ic_empty.png"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1=" <ImageView"
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/fragment_recorder.xml"
|
||||||
|
line="36"
|
||||||
|
column="6"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1=" <ImageView"
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/fragment_recorder.xml"
|
||||||
|
line="48"
|
||||||
|
column="6"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1=" <ImageView"
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/item_recording.xml"
|
||||||
|
line="76"
|
||||||
|
column="10"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1="<ImageView xmlns:android="http://schemas.android.com/apk/res/android""
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/widget_record_display.xml"
|
||||||
|
line="2"
|
||||||
|
column="2"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1=" <ImageView"
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/widget_record_display_config.xml"
|
||||||
|
line="22"
|
||||||
|
column="14"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="ContentDescription"
|
||||||
|
message="Missing `contentDescription` attribute on image"
|
||||||
|
errorLine1=" <ImageView"
|
||||||
|
errorLine2=" ~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/widget_record_display_config.xml"
|
||||||
|
line="29"
|
||||||
|
column="10"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="RtlSymmetry"
|
||||||
|
message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
|
||||||
|
errorLine1=" android:paddingStart="@dimen/small_margin""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/dialog_delete_confirmation.xml"
|
||||||
|
line="14"
|
||||||
|
column="9"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="RtlSymmetry"
|
||||||
|
message="When you define `paddingStart` you should probably also define `paddingEnd` for right-to-left symmetry"
|
||||||
|
errorLine1=" android:paddingStart="@dimen/activity_margin""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/item_recording.xml"
|
||||||
|
line="14"
|
||||||
|
column="9"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="RtlSymmetry"
|
||||||
|
message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
|
||||||
|
errorLine1=" android:paddingEnd="@dimen/activity_margin""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/item_recording.xml"
|
||||||
|
line="25"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
<issue
|
||||||
|
id="RtlSymmetry"
|
||||||
|
message="When you define `paddingEnd` you should probably also define `paddingStart` for right-to-left symmetry"
|
||||||
|
errorLine1=" android:paddingEnd="@dimen/activity_margin""
|
||||||
|
errorLine2=" ~~~~~~~~~~~~~~~~~~">
|
||||||
|
<location
|
||||||
|
file="src/main/res/layout/item_recording.xml"
|
||||||
|
line="42"
|
||||||
|
column="13"/>
|
||||||
|
</issue>
|
||||||
|
|
||||||
|
</issues>
|
@ -2,4 +2,5 @@ plugins {
|
|||||||
alias(libs.plugins.android).apply(false)
|
alias(libs.plugins.android).apply(false)
|
||||||
alias(libs.plugins.kotlinAndroid).apply(false)
|
alias(libs.plugins.kotlinAndroid).apply(false)
|
||||||
alias(libs.plugins.ksp).apply(false)
|
alias(libs.plugins.ksp).apply(false)
|
||||||
|
alias(libs.plugins.detekt).apply(false)
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
kotlin = "1.9.21"
|
kotlin = "1.9.21"
|
||||||
#KSP
|
#KSP
|
||||||
ksp = "1.9.21-1.0.16"
|
ksp = "1.9.21-1.0.16"
|
||||||
|
#Detekt
|
||||||
|
detekt = "1.23.3"
|
||||||
#AndroidX
|
#AndroidX
|
||||||
androidx-constraintlayout = "2.1.4"
|
androidx-constraintlayout = "2.1.4"
|
||||||
androidx-documentfile = "1.0.1"
|
androidx-documentfile = "1.0.1"
|
||||||
@ -48,3 +50,4 @@ autofittextview = { module = "me.grantland:autofittextview", version.ref = "auto
|
|||||||
android = { id = "com.android.application", version.ref = "gradlePlugins-agp" }
|
android = { id = "com.android.application", version.ref = "gradlePlugins-agp" }
|
||||||
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||||
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
||||||
|
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user