<?xml version="1.0" ?>
<SmellBaseline>
  <ManuallySuppressedIssues/>
  <CurrentIssues>
    <ID>ComplexCondition:Activity.kt$(hide &amp;&amp; filename.startsWith('.')) || (!hide &amp;&amp; !filename.startsWith('.'))</ID>
    <ID>ComplexCondition:ItemsAdapter.kt$ItemsAdapter$activity.getDoesFilePathExist(source) &amp;&amp; activity.getIsPathDirectory(source) &amp;&amp; sourceFile.list()?.isEmpty() == true &amp;&amp; sourceFile.getProperSize(true) == 0L &amp;&amp; sourceFile.getFileCount(true) == 0</ID>
    <ID>ComplexCondition:ItemsAdapter.kt$ItemsAdapter$hasOTGConnected &amp;&amp; itemToLoad is String &amp;&amp; activity.isPathOnOTG(itemToLoad) &amp;&amp; baseConfig.OTGTreeUri.isNotEmpty() &amp;&amp; baseConfig.OTGPartition.isNotEmpty()</ID>
    <ID>ComplexCondition:MainActivity.kt$MainActivity$!config.wasOTGHandled &amp;&amp; hasPermission(PERMISSION_WRITE_STORAGE) &amp;&amp; hasOTGConnected() &amp;&amp; config.OTGPath.isEmpty()</ID>
    <ID>ComplexCondition:MimeTypesActivity.kt$MimeTypesActivity$mimetype != "image" &amp;&amp; mimetype != "video" &amp;&amp; mimetype != "audio" &amp;&amp; mimetype != "text" &amp;&amp; !extraAudioMimeTypes.contains(fullMimetype) &amp;&amp; !extraDocumentMimeTypes.contains(fullMimetype) &amp;&amp; !archiveMimeTypes.contains(fullMimetype)</ID>
    <ID>ComplexCondition:ReadTextActivity.kt$ReadTextActivity$requestCode == SELECT_SAVE_FILE_INTENT &amp;&amp; resultCode == Activity.RESULT_OK &amp;&amp; resultData != null &amp;&amp; resultData.data != null</ID>
    <ID>CyclomaticComplexMethod:DecompressActivity.kt$DecompressActivity$private fun decompressTo(destination: String)</ID>
    <ID>CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths( sourcePaths: List&lt;String&gt;, targetPath: String, password: String? = null ): Boolean</ID>
    <ID>CyclomaticComplexMethod:ItemsAdapter.kt$ItemsAdapter$override fun actionItemPressed(id: Int)</ID>
    <ID>CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun setupOptionsMenu()</ID>
    <ID>CyclomaticComplexMethod:MimeTypesActivity.kt$MimeTypesActivity$private fun getProperFileDirItems(callback: (ArrayList&lt;FileDirItem&gt;) -&gt; Unit)</ID>
    <ID>CyclomaticComplexMethod:StorageFragment.kt$StorageFragment$private fun getSizesByMimeType(volumeName: String): HashMap&lt;String, Long&gt;</ID>
    <ID>EmptyCatchBlock:MimeTypesActivity.kt$MimeTypesActivity${ }</ID>
    <ID>EmptyCatchBlock:StorageFragment.kt$StorageFragment${ }</ID>
    <ID>EmptyFunctionBlock:DecompressItemsAdapter.kt$DecompressItemsAdapter${}</ID>
    <ID>EmptyFunctionBlock:MainActivity.kt$MainActivity.&lt;no name provided&gt;${}</ID>
    <ID>EmptyFunctionBlock:ManageFavoritesAdapter.kt$ManageFavoritesAdapter${}</ID>
    <ID>EmptyFunctionBlock:MimeTypesActivity.kt$MimeTypesActivity${}</ID>
    <ID>EmptyFunctionBlock:StorageFragment.kt$StorageFragment${}</ID>
    <ID>LargeClass:ItemsAdapter.kt$ItemsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
    <ID>LoopWithTooManyJumpStatements:DecompressActivity.kt$DecompressActivity$while</ID>
    <ID>LoopWithTooManyJumpStatements:StorageFragment.kt$StorageFragment$do</ID>
    <ID>MagicNumber:Config.kt$Config$1.2f</ID>
    <ID>MagicNumber:Config.kt$Config$4</ID>
    <ID>MagicNumber:Config.kt$Config$8</ID>
    <ID>MagicNumber:DecompressActivity.kt$DecompressActivity$1024</ID>
    <ID>MagicNumber:DecompressItemsAdapter.kt$DecompressItemsAdapter$0.8f</ID>
    <ID>MagicNumber:DecompressItemsAdapter.kt$DecompressItemsAdapter$180</ID>
    <ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$0.8f</ID>
    <ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$10</ID>
    <ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$180</ID>
    <ID>MagicNumber:ItemsAdapter.kt$ItemsAdapter$4</ID>
    <ID>MagicNumber:ItemsFragment.kt$ItemsFragment$3</ID>
    <ID>MagicNumber:ReadTextActivity.kt$ReadTextActivity$250</ID>
    <ID>MagicNumber:ReadTextActivity.kt$ReadTextActivity$50</ID>
    <ID>MagicNumber:RecentsFragment.kt$RecentsFragment$3</ID>
    <ID>MagicNumber:RecentsFragment.kt$RecentsFragment$50</ID>
    <ID>MagicNumber:RootHelpers.kt$RootHelpers.&lt;no name provided&gt;$5</ID>
    <ID>MagicNumber:StorageFragment.kt$StorageFragment$100000</ID>
    <ID>MagicNumber:StorageFragment.kt$StorageFragment$2000</ID>
    <ID>MagicNumber:StorageFragment.kt$StorageFragment$3</ID>
    <ID>MagicNumber:StorageFragment.kt$StorageFragment$4096L</ID>
    <ID>MaxLineLength:Activity.kt$fun</ID>
    <ID>MaxLineLength:ChangeViewTypeDialog.kt$ChangeViewTypeDialog$class</ID>
    <ID>MaxLineLength:ChangeViewTypeDialog.kt$ChangeViewTypeDialog$val</ID>
    <ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$FilePickerDialog</ID>
    <ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$class</ID>
    <ID>MaxLineLength:CompressAsDialog.kt$CompressAsDialog$val indexOfDot = if (filename.contains('.') &amp;&amp; !activity.getIsPathDirectory(path)) filename.lastIndexOf(".") else filename.length</ID>
    <ID>MaxLineLength:Config.kt$Config$set(wasStorageAnalysisTabAdded) = prefs.edit().putBoolean(WAS_STORAGE_ANALYSIS_TAB_ADDED, wasStorageAnalysisTabAdded).apply()</ID>
    <ID>MaxLineLength:Context.kt$fun Context.isPathOnRoot(path: String)</ID>
    <ID>MaxLineLength:DecompressActivity.kt$DecompressActivity$updateMaterialActivityViews(decompressCoordinator, decompressList, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
    <ID>MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$class</ID>
    <ID>MaxLineLength:DecompressItemsAdapter.kt$DecompressItemsAdapter$val drawable = fileDrawables.getOrElse(fileName.substringAfterLast(".").lowercase(Locale.getDefault()), { fileDrawable })</ID>
    <ID>MaxLineLength:FavoritesActivity.kt$FavoritesActivity$FilePickerDialog</ID>
    <ID>MaxLineLength:FavoritesActivity.kt$FavoritesActivity$ManageFavoritesAdapter(this@FavoritesActivity, favorites, this@FavoritesActivity, manageFavoritesList) { }</ID>
    <ID>MaxLineLength:FavoritesActivity.kt$FavoritesActivity$updateMaterialActivityViews(manageFavoritesCoordinator, manageFavoritesList, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
    <ID>MaxLineLength:ItemsAdapter.kt$ItemsAdapter$}</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$ItemsAdapter</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$class</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$context</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$if</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$private</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$val sectionTitle = ListItem(it.path, context!!.humanizePath(it.path), true, 0, 0, 0, true, false)</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment$val sectionTitle = ListItem(parent, context!!.humanizePath(parent), false, 0, 0, 0, true, false)</ID>
    <ID>MaxLineLength:ItemsFragment.kt$ItemsFragment.&lt;no name provided&gt;$return</ID>
    <ID>MaxLineLength:ListItem.kt$ListItem$val mPath: String</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$// used at apps that have no file access at all, but need to work with files. For example Simple Calendar uses this at exporting events into a file</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.add_favorite).isVisible = currentFragment is ItemsFragment &amp;&amp; !favorites.contains(currentFragment.currentPath)</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.column_count).isVisible = currentViewType == VIEW_TYPE_GRID &amp;&amp; currentFragment !is StorageFragment</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.go_home).isVisible = currentFragment is ItemsFragment &amp;&amp; currentFragment.currentPath != config.homeFolder</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.remove_favorite).isVisible = currentFragment is ItemsFragment &amp;&amp; favorites.contains(currentFragment.currentPath)</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.set_as_home).isVisible = currentFragment is ItemsFragment &amp;&amp; currentFragment.currentPath != config.homeFolder</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden &amp;&amp; currentFragment !is StorageFragment</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden() &amp;&amp; currentFragment !is StorageFragment</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$findItem(R.id.toggle_filename).isVisible = currentViewType == VIEW_TYPE_GRID &amp;&amp; currentFragment !is StorageFragment</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$getStorageDirectories().firstOrNull { it.trimEnd('/') != internalStoragePath &amp;&amp; it.trimEnd('/') != sdCardPath }</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$if</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$private fun getInactiveTabIndexes(activeIndex: Int)</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$resultIntent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$updateMaterialActivityViews(binding.mainCoordinator, null, useTransparentNavigation = false, useTopSearchMenu = true)</ID>
    <ID>MaxLineLength:MainActivity.kt$MainActivity$val licenses = LICENSE_GLIDE or LICENSE_PATTERN or LICENSE_REPRINT or LICENSE_GESTURE_VIEWS or LICENSE_AUTOFITTEXTVIEW or LICENSE_ZIP4J</ID>
    <ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$!extraAudioMimeTypes.contains(fullMimetype)</ID>
    <ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$if</ID>
    <ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$updateMaterialActivityViews(mimetypesCoordinator, mimetypesList, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
    <ID>MaxLineLength:MimeTypesActivity.kt$MimeTypesActivity$val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor</ID>
    <ID>MaxLineLength:MyViewPagerFragment.kt$MyViewPagerFragment$abstract</ID>
    <ID>MaxLineLength:MyViewPagerFragment.kt$MyViewPagerFragment$val fabIcon = context.resources.getColoredDrawableWithColor(iconId, context.getProperPrimaryColor().getContrastColor())</ID>
    <ID>MaxLineLength:ReadTextActivity.kt$ReadTextActivity$if</ID>
    <ID>MaxLineLength:ReadTextActivity.kt$ReadTextActivity$private</ID>
    <ID>MaxLineLength:ReadTextActivity.kt$ReadTextActivity$updateMaterialActivityViews(readTextCoordinator, readTextView, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
    <ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$ItemsAdapter</ID>
    <ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$binding.recentsSwipeRefresh.isEnabled = lastSearchedText.isEmpty() &amp;&amp; activity?.config?.enablePullToRefresh != false</ID>
    <ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$class</ID>
    <ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$if</ID>
    <ID>MaxLineLength:RecentsFragment.kt$RecentsFragment$val filtered = filesIgnoringSearch.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList&lt;ListItem&gt;</ID>
    <ID>MaxLineLength:RootHelpers.kt$RootHelpers$fun</ID>
    <ID>MaxLineLength:RootHelpers.kt$RootHelpers$private</ID>
    <ID>MaxLineLength:SaveAsActivity.kt$SaveAsActivity$FilePickerDialog</ID>
    <ID>MaxLineLength:SaveAsDialog.kt$SaveAsDialog$val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newFilename)</ID>
    <ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") &amp;&amp; !isTiramisuPlus())</ID>
    <ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$updateMaterialActivityViews(settingsCoordinator, settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$class</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$mainStorageUsageProgressbar</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$mainStorageUsageProgressbar.progress = ((totalStorageSpace - freeStorageSpace) / SIZE_DIVIDER).toInt()</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$totalSpace.text = String.format(context.getString(R.string.total_storage), totalStorageSpace.formatSizeThousand())</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$val filtered = allDeviceListItems.filter { it.mName.contains(text, true) }.toMutableList() as ArrayList&lt;ListItem&gt;</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$val mimeType = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault())</ID>
    <ID>MaxLineLength:StorageFragment.kt$StorageFragment$val storageStatsManager = context.getSystemService(AppCompatActivity.STORAGE_STATS_SERVICE) as StorageStatsManager</ID>
    <ID>NestedBlockDepth:DecompressActivity.kt$DecompressActivity$private fun decompressTo(destination: String)</ID>
    <ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths( sourcePaths: List&lt;String&gt;, targetPath: String, password: String? = null ): Boolean</ID>
    <ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun decompressPaths( paths: List&lt;String&gt;, conflictResolutions: LinkedHashMap&lt;String, Int&gt;, callback: (success: Boolean) -&gt; Unit )</ID>
    <ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun setupView(binding: ItemViewBinding, listItem: ListItem)</ID>
    <ID>NestedBlockDepth:ItemsAdapter.kt$ItemsAdapter$private fun tryDecompressingPaths( sourcePaths: List&lt;String&gt;, callback: (success: Boolean) -&gt; Unit )</ID>
    <ID>NestedBlockDepth:ItemsFragment.kt$ItemsFragment$private fun getRegularItemsOf(path: String, callback: (originalPath: String, items: ArrayList&lt;ListItem&gt;) -&gt; Unit)</ID>
    <ID>NestedBlockDepth:ItemsFragment.kt$ItemsFragment$private fun searchFiles(text: String, path: String): ArrayList&lt;ListItem&gt;</ID>
    <ID>NestedBlockDepth:RecentsFragment.kt$RecentsFragment$private fun getRecents(callback: (recents: ArrayList&lt;ListItem&gt;) -&gt; Unit)</ID>
    <ID>NestedBlockDepth:StorageFragment.kt$StorageFragment$override fun setupFragment(activity: SimpleActivity)</ID>
    <ID>NestedBlockDepth:StorageFragment.kt$StorageFragment$private fun getAllFiles(volumeName: String): ArrayList&lt;FileDirItem&gt;</ID>
    <ID>ReturnCount:ItemsAdapter.kt$ItemsAdapter$@SuppressLint("NewApi") private fun compressPaths( sourcePaths: List&lt;String&gt;, targetPath: String, password: String? = null ): Boolean</ID>
    <ID>SwallowedException:ItemsAdapter.kt$ItemsAdapter$e: Exception</ID>
    <ID>SwallowedException:MimeTypesActivity.kt$MimeTypesActivity$e: Exception</ID>
    <ID>SwallowedException:StorageFragment.kt$StorageFragment$e: Exception</ID>
    <ID>TooGenericExceptionCaught:DecompressActivity.kt$DecompressActivity$e: Exception</ID>
    <ID>TooGenericExceptionCaught:ItemsAdapter.kt$ItemsAdapter$e: Exception</ID>
    <ID>TooGenericExceptionCaught:ItemsAdapter.kt$ItemsAdapter$exception: Exception</ID>
    <ID>TooGenericExceptionCaught:MainActivity.kt$MainActivity$e: Exception</ID>
    <ID>TooGenericExceptionCaught:MimeTypesActivity.kt$MimeTypesActivity$e: Exception</ID>
    <ID>TooGenericExceptionCaught:ReadTextActivity.kt$ReadTextActivity$e: Exception</ID>
    <ID>TooGenericExceptionCaught:RecentsFragment.kt$RecentsFragment$e: Exception</ID>
    <ID>TooGenericExceptionCaught:RootHelpers.kt$RootHelpers$e: Exception</ID>
    <ID>TooGenericExceptionCaught:RootHelpers.kt$RootHelpers$exception: Exception</ID>
    <ID>TooGenericExceptionCaught:SaveAsActivity.kt$SaveAsActivity$e: Exception</ID>
    <ID>TooGenericExceptionCaught:StorageFragment.kt$StorageFragment$e: Exception</ID>
    <ID>TooManyFunctions:DecompressActivity.kt$DecompressActivity : SimpleActivity</ID>
    <ID>TooManyFunctions:DecompressItemsAdapter.kt$DecompressItemsAdapter : MyRecyclerViewAdapter</ID>
    <ID>TooManyFunctions:ItemsAdapter.kt$ItemsAdapter : MyRecyclerViewAdapterOnPopupTextUpdate</ID>
    <ID>TooManyFunctions:ItemsFragment.kt$ItemsFragment : MyViewPagerFragmentItemOperationsListenerBreadcrumbsListener</ID>
    <ID>TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivity</ID>
    <ID>TooManyFunctions:ManageFavoritesAdapter.kt$ManageFavoritesAdapter : MyRecyclerViewAdapter</ID>
    <ID>TooManyFunctions:MimeTypesActivity.kt$MimeTypesActivity : SimpleActivityItemOperationsListener</ID>
    <ID>TooManyFunctions:ReadTextActivity.kt$ReadTextActivity : SimpleActivity</ID>
    <ID>TooManyFunctions:RecentsFragment.kt$RecentsFragment : MyViewPagerFragmentItemOperationsListener</ID>
    <ID>TooManyFunctions:RootHelpers.kt$RootHelpers</ID>
    <ID>TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity</ID>
    <ID>TooManyFunctions:StorageFragment.kt$StorageFragment : MyViewPagerFragmentItemOperationsListener</ID>
    <ID>VariableNaming:ItemsAdapter.kt$ItemsAdapter$val SAFPath = getFirstSelectedItemPath()</ID>
    <ID>VariableNaming:RecentsFragment.kt$RecentsFragment$private val RECENTS_LIMIT = 50</ID>
    <ID>VariableNaming:StorageFragment.kt$StorageFragment$private val SIZE_DIVIDER = 100000</ID>
    <ID>WildcardImport:ChangeSortingDialog.kt$import org.fossify.commons.helpers.*</ID>
    <ID>WildcardImport:CompressAsDialog.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:CreateNewItemDialog.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:InsertFilenameDialog.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:ItemsFragment.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:ItemsFragment.kt$import org.fossify.commons.helpers.*</ID>
    <ID>WildcardImport:ManageFavoritesAdapter.kt$import android.view.*</ID>
    <ID>WildcardImport:MimeTypesActivity.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:MimeTypesActivity.kt$import org.fossify.filemanager.helpers.*</ID>
    <ID>WildcardImport:MyViewPagerFragment.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:ReadTextActivity.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:SaveAsActivity.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:SaveAsDialog.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.*</ID>
    <ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.*</ID>
  </CurrentIssues>
</SmellBaseline>
