CastToNullableType:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$as
CastToNullableType:MessageList.kt$MessageList$as
CastToNullableType:MessageViewFragment.kt$MessageViewFragment$as
CastToNullableType:VibrationPreference.kt$VibrationPreference$as
CyclomaticComplexMethod:AccountSettingsDataStore.kt$AccountSettingsDataStore$override fun getBoolean(key: String, defValue: Boolean): Boolean
CyclomaticComplexMethod:AccountSettingsDataStore.kt$AccountSettingsDataStore$override fun getString(key: String, defValue: String?): String?
CyclomaticComplexMethod:AccountSettingsDataStore.kt$AccountSettingsDataStore$override fun putBoolean(key: String, value: Boolean)
CyclomaticComplexMethod:AccountSettingsDataStore.kt$AccountSettingsDataStore$override fun putString(key: String, value: String?)
CyclomaticComplexMethod:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$private fun acceptKeyDialog(msgResId: Int, exception: CertificateValidationException)
CyclomaticComplexMethod:GeneralSettingsDataStore.kt$GeneralSettingsDataStore$override fun getBoolean(key: String, defValue: Boolean): Boolean
CyclomaticComplexMethod:GeneralSettingsDataStore.kt$GeneralSettingsDataStore$override fun getString(key: String, defValue: String?): String?
CyclomaticComplexMethod:GeneralSettingsDataStore.kt$GeneralSettingsDataStore$override fun getStringSet(key: String, defValues: Set<String>?): Set<String>?
CyclomaticComplexMethod:GeneralSettingsDataStore.kt$GeneralSettingsDataStore$override fun putBoolean(key: String, value: Boolean)
CyclomaticComplexMethod:GeneralSettingsDataStore.kt$GeneralSettingsDataStore$override fun putString(key: String, value: String?)
CyclomaticComplexMethod:MessageList.kt$MessageList$private fun decodeExtrasToLaunchData(intent: Intent): LaunchData
CyclomaticComplexMethod:MessageList.kt$MessageList$private fun onCustomKeyDown(event: KeyEvent): Boolean
CyclomaticComplexMethod:MessageListAdapter.kt$MessageListAdapter$private fun bindMessageViewHolder(holder: MessageViewHolder, messageListItem: MessageListItem)
CyclomaticComplexMethod:MessageListFragment.kt$MessageListFragment$override fun onOptionsItemSelected(item: MenuItem): Boolean
CyclomaticComplexMethod:MessageViewFragment.kt$MessageViewFragment$override fun onOptionsItemSelected(item: MenuItem): Boolean
CyclomaticComplexMethod:SettingsImportFragment.kt$SettingsImportFragment$private fun ViewHolder.updateUi(model: SettingsImportUiModel)
CyclomaticComplexMethod:SortTypeToastProvider.kt$SortTypeToastProvider$fun getToast(sortType: SortType, ascending: Boolean): Int
CyclomaticComplexMethod:TouchInterceptView.kt$TouchInterceptView$private fun handleOnInterceptTouchEvent(event: MotionEvent)
ForbiddenComment:AccountSetupCheckSettings.kt$AccountSetupCheckSettings.CheckAccountTask$* FIXME: Don't use an AsyncTask to perform network operations. * See also discussion in https://github.com/thunderbird/thunderbird-android/pull/560
ForbiddenComment:MessageDetailsFragment.kt$MessageDetailsFragment$// FIXME: Replace this with a mechanism that survives process death
ForbiddenComment:MessageListFragment.kt$MessageListFragment$// FIXME: Don't save the changes in the UI thread
ImplicitDefaultLocale:MessageListAdapter.kt$MessageListAdapter$String.format("%d", threadCount)
LargeClass:MessageList.kt$MessageList : K9ActivityMessageListFragmentListenerMessageViewFragmentListenerMessageViewContainerListenerOnBackStackChangedListenerOnSwitchCompleteListener
LargeClass:MessageListFragment.kt$MessageListFragment : FragmentConfirmationDialogFragmentListenerMessageListItemActionListener
LongMethod:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$private fun acceptKeyDialog(msgResId: Int, exception: CertificateValidationException)
LongMethod:MessageContainerView.kt$MessageContainerView$private fun createImageMenu(menu: ContextMenu, imageUrl: String?)
LongMethod:MessageList.kt$MessageList$private fun decodeExtrasToLaunchData(intent: Intent): LaunchData
LongMethod:MessageList.kt$MessageList$private fun onCustomKeyDown(event: KeyEvent): Boolean
LongMethod:MessageList.kt$MessageList$public override fun onCreate(savedInstanceState: Bundle?)
LongMethod:MessageListAdapter.kt$MessageListAdapter$private fun bindMessageViewHolder(holder: MessageViewHolder, messageListItem: MessageListItem)
LongMethod:MessageViewFragment.kt$MessageViewFragment$override fun onPrepareOptionsMenu(menu: Menu)
LongMethod:RecipientNamesView.kt$RecipientNamesView$override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int)
LongParameterList:MessageDetailsViewModel.kt$MessageDetailsViewModel$( private val resources: Resources, private val messageRepository: MessageRepository, private val folderRepository: FolderRepository, private val contactSettingsProvider: ContactSettingsProvider, private val contactRepository: ContactRepository, private val contactPermissionResolver: ContactPermissionResolver, private val clipboardManager: ClipboardManager, private val accountManager: AccountManager, private val participantFormatter: MessageDetailsParticipantFormatter, private val folderNameFormatter: FolderNameFormatter, )
LongParameterList:PasswordPromptDialogFragment.kt$PasswordPromptDialogFragment.Companion$( accountUuid: String, accountName: String, inputIncomingServerPassword: Boolean, incomingServerName: String?, inputOutgoingServerPassword: Boolean, outgoingServerName: String?, targetFragment: Fragment, requestCode: Int, )
LongParameterList:RecipientPresenter.kt$RecipientPresenter$( private val context: Context, loaderManager: LoaderManager, private val openPgpApiManager: OpenPgpApiManager, private val recipientMvpView: RecipientMvpView, account: Account, private val composePgpInlineDecider: ComposePgpInlineDecider, private val composePgpEnableByDefaultDecider: ComposePgpEnableByDefaultDecider, private val autocryptStatusInteractor: AutocryptStatusInteractor, private val replyToParser: ReplyToParser, private val draftStateHeaderParser: AutocryptDraftStateHeaderParser, )
LongParameterList:SettingsImportViewModel.kt$SavedAccountState$( val accountIndex: Int, val displayName: String, val accountUuid: String, val selected: Boolean, val importStatus: ImportStatus, val incomingServerName: String?, val outgoingServerName: String?, val incomingServerPasswordNeeded: Boolean, val outgoingServerPasswordNeeded: Boolean, )
LoopWithTooManyJumpStatements:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$for
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$110
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$143
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$465
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$587
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$993
MagicNumber:AccountCreatorHelper.kt$AccountCreatorHelper$995
MagicNumber:AccountItem.kt$AccountItem$200L
MagicNumber:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$3
MagicNumber:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$4
MagicNumber:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$5
MagicNumber:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$6
MagicNumber:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$7
MagicNumber:AutocryptSetupTransferLiveEvent.kt$AutocryptSetupTransferLiveEvent$2000
MagicNumber:ContactLetterBitmapCreator.kt$ContactLetterBitmapCreator$0.65f
MagicNumber:ContactLetterBitmapCreator.kt$ContactLetterBitmapCreator$255
MagicNumber:GeneralSettingsFragment.kt$GeneralSettingsFragment$28
MagicNumber:K9Drawer.kt$K9Drawer$0x22000000
MagicNumber:K9Drawer.kt$K9Drawer$0xffffff
MagicNumber:MessageContainerView.kt$MessageContainerView$29
MagicNumber:MessageContainerView.kt$MessageContainerView$3
MagicNumber:MessageListItemAnimator.kt$MessageListItemAnimator$120
MagicNumber:MessageListItemMapper.kt$MessageListItemMapper$52
MagicNumber:RecipientLayoutCreator.kt$RecipientLayoutCreator$10
MagicNumber:RecipientMvpView.kt$RecipientMvpView$100.0f
MagicNumber:RecipientMvpView.kt$RecipientMvpView$15
MagicNumber:RecipientNamesView.kt$RecipientNamesView$8
MagicNumber:ReplyToView.kt$ReplyToView$15
MagicNumber:SettingsImportListItems.kt$ImportListItem$3
MagicNumber:SettingsImportListItems.kt$ImportListItem$4
MagicNumber:SettingsViewModel.kt$SettingsViewModel$500
MagicNumber:SimpleHighlightView.kt$SimpleHighlightView$0xFFFFFF
MagicNumber:SimpleHighlightView.kt$SimpleHighlightView$100
MagicNumber:SimpleHighlightView.kt$SimpleHighlightView$128
MagicNumber:SimpleHighlightView.kt$SimpleHighlightView$80
MagicNumber:SizeFormatter.kt$SizeFormatter$1000L
MagicNumber:SizeFormatter.kt$SizeFormatter$1000f
MagicNumber:SizeFormatter.kt$SizeFormatter$1_000_000L
MagicNumber:SizeFormatter.kt$SizeFormatter$999_950L
MagicNumber:SizeFormatter.kt$SizeFormatter$999_950_000L
MemberNameEqualsClassName:ReplyToView.kt$ReplyToView$private val replyToView: RecipientSelectView = activity.findViewById(R.id.reply_to)
NestedBlockDepth:MessageList.kt$MessageList$override fun onBackPressed()
NestedBlockDepth:MessageList.kt$MessageList$override fun onOptionsItemSelected(item: MenuItem): Boolean
NestedBlockDepth:MessageList.kt$MessageList$private fun decodeExtrasToLaunchData(intent: Intent): LaunchData
ReturnCount:AccountSetupCheckSettings.kt$AccountSetupCheckSettings.CheckAccountTask$private fun isCanceled(): Boolean
ReturnCount:ChooseFolderActivity.kt$ChooseFolderActivity$private fun decodeArguments(savedInstanceState: Bundle?): Boolean
ReturnCount:EditIdentity.kt$EditIdentity$override fun onOptionsItemSelected(item: MenuItem): Boolean
ReturnCount:MessageList.kt$MessageList$private fun decodeExtrasToLaunchData(intent: Intent): LaunchData
ReturnCount:MessageList.kt$MessageList$private fun onCustomKeyDown(event: KeyEvent): Boolean
ReturnCount:MessageList.kt$MessageList$public override fun onCreate(savedInstanceState: Bundle?)
ReturnCount:MessageList.kt$MessageList$public override fun onNewIntent(intent: Intent)
ReturnCount:MessageListAdapter.kt$MessageListAdapter$private fun buildStatusHolder(forwarded: Boolean, answered: Boolean): Drawable?
ReturnCount:MessageListAdapter.kt$MessageListAdapter$private fun calculateSelectionCount(): Int
ReturnCount:MessageListFragment.kt$MessageListFragment$override fun onFooterClicked()
ReturnCount:MessageListFragment.kt$MessageListFragment$private fun checkCopyOrMovePossible(messages: List<MessageReference>, operation: FolderOperation): Boolean
ReturnCount:MessageListFragment.kt$MessageListFragment$private fun isSpecialFolder(specialFolderId: Long?): Boolean
ReturnCount:MessageListFragment.kt$MessageListFragment$private fun rememberSortOverride(messageReference: MessageReference?)
ReturnCount:MessageListFragment.kt$MessageListFragment$private fun scrollToMessage(messageReference: MessageReference)
ReturnCount:MessageListSwipeCallback.kt$MessageListSwipeCallback$override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: ViewHolder): Int
ReturnCount:MessageTopView.kt$MessageTopView$private fun shouldShowPicturesFromSender(showPicturesSetting: ShowPictures, message: Message): Boolean
ReturnCount:MessageViewFragment.kt$MessageViewFragment$override fun onOptionsItemSelected(item: MenuItem): Boolean
ReturnCount:RecipientLayoutCreator.kt$RecipientLayoutCreator$fun createRecipientLayout( recipientNames: List<CharSequence>, totalNumberOfRecipients: Int, availableWidth: Int, ): RecipientLayoutData
ReturnCount:RecipientLayoutCreator.kt$RecipientLayoutCreator$private fun doesTextFitAvailableWidth( displayRecipients: CharSequence, additionalRecipients: CharSequence, availableWidth: Int, ): Boolean
ReturnCount:RecipientPresenter.kt$RecipientPresenter$fun checkRecipientsOkForSending(): Boolean
ReturnCount:RecipientPresenter.kt$RecipientPresenter$private fun toggleEncryptionState(showGotIt: Boolean)
ReturnCount:ShareIntentBuilder.kt$ShareIntentBuilder$private fun extractBodyText(message: LocalMessage): String
ReturnCount:TouchInterceptView.kt$TouchInterceptView$private fun handleOnInterceptTouchEvent(event: MotionEvent)
SpreadOperator:K9Drawer.kt$K9Drawer$(*accountItems)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*Address.parse(trustId))
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*bccAddresses)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*ccAddresses)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*mailTo.bcc)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*mailTo.cc)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*mailTo.to)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*message.getRecipients(RecipientType.BCC))
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*message.getRecipients(RecipientType.CC))
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*message.getRecipients(RecipientType.TO))
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*replyToAddresses.cc)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*replyToAddresses.to)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter$(*toAddresses)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter.<no name provided>$(*recipientArray)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter.<no name provided>$(context, account.openPgpProvider, *alwaysBccAddresses)
SpreadOperator:RecipientPresenter.kt$RecipientPresenter.<no name provided>$(recipientType, *recipientArray)
SpreadOperator:ReplyToView.kt$ReplyToView$(*recipients)
SwallowedException:AboutFragment.kt$e: ActivityNotFoundException
SwallowedException:AuthViewModel.kt$AuthViewModel$e: ActivityNotFoundException
SwallowedException:ContactPictureLoader.kt$ContactPictureLoader$e: Exception
SwallowedException:MessageContainerView.kt$MessageContainerView$e: ActivityNotFoundException
SwallowedException:MessageDetailsViewModel.kt$MessageDetailsViewModel$e: Exception
SwallowedException:MessageListFragment.kt$MessageListFragment$e: ClassCastException
SwallowedException:MessageListFragment.kt$MessageListFragment$e: MessagingException
SwallowedException:MessageViewContainerFragment.kt$MessageViewContainerFragment$e: ClassCastException
SwallowedException:MessageViewFragment.kt$MessageViewFragment$e: ActivityNotFoundException
SwallowedException:MessageViewFragment.kt$MessageViewFragment$e: ClassCastException
SwallowedException:PushInfoFragment.kt$PushInfoFragment$e: ActivityNotFoundException
SwallowedException:SettingsListFragment.kt$SettingsListFragment$e: ActivityNotFoundException
TooGenericExceptionCaught:AccountRemover.kt$AccountRemover$e: Exception
TooGenericExceptionCaught:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$e: Exception
TooGenericExceptionCaught:AccountSetupCheckSettings.kt$AccountSetupCheckSettings.CheckAccountTask$e: Exception
TooGenericExceptionCaught:AuthViewModel.kt$AuthViewModel$e: Exception
TooGenericExceptionCaught:AutocryptSetupTransferLiveEvent.kt$AutocryptSetupTransferLiveEvent$e: Exception
TooGenericExceptionCaught:ContactPhotoLoader.kt$ContactPhotoLoader$e: Exception
TooGenericExceptionCaught:ContactPictureLoader.kt$ContactPictureLoader$e: Exception
TooGenericExceptionCaught:GeneralSettingsViewModel.kt$GeneralSettingsViewModel$e: Exception
TooGenericExceptionCaught:MessageDetailsViewModel.kt$MessageDetailsViewModel$e: Exception
TooGenericExceptionCaught:MessageListFragment.kt$MessageListFragment$e: Exception
TooGenericExceptionCaught:MessageListLoader.kt$MessageListLoader$e: Exception
TooGenericExceptionCaught:SettingsExportViewModel.kt$SettingsExportViewModel$e: Exception
TooGenericExceptionCaught:SettingsImportViewModel.kt$SettingsImportViewModel$e: Exception
TooGenericExceptionThrown:AccountSettingsActivity.kt$AccountSettingsActivity$throw RuntimeException("getSupportActionBar() == null")
TooGenericExceptionThrown:AccountSetupCheckSettings.kt$AccountSetupCheckSettings$throw RuntimeException("Called showDialog(int) with unknown dialog id.")
TooGenericExceptionThrown:GeneralSettingsActivity.kt$GeneralSettingsActivity$throw RuntimeException("getSupportActionBar() == null")
TooGenericExceptionThrown:MessageListFragment.kt$MessageListFragment$throw RuntimeException("Called showDialog(int) with unknown dialog id.")
TooGenericExceptionThrown:MessageViewFragment.kt$MessageViewFragment$throw RuntimeException("Called showDialog(int) with unknown dialog id.")
TooManyFunctions:AccountSettingsDataStore.kt$AccountSettingsDataStore : PreferenceDataStore
TooManyFunctions:AccountSettingsFragment.kt$AccountSettingsFragment : PreferenceFragmentCompatConfirmationDialogFragmentListener
TooManyFunctions:AccountSetupCheckSettings.kt$AccountSetupCheckSettings : K9ActivityConfirmationDialogFragmentListener
TooManyFunctions:AuthViewModel.kt$AuthViewModel : AndroidViewModel
TooManyFunctions:AutocryptKeyTransferActivity.kt$AutocryptKeyTransferActivity : K9Activity
TooManyFunctions:ChooseFolderActivity.kt$ChooseFolderActivity : K9Activity
TooManyFunctions:FolderSettingsFragment.kt$FolderSettingsFragment : PreferenceFragmentCompatConfirmationDialogFragmentListener
TooManyFunctions:GeneralSettingsDataStore.kt$GeneralSettingsDataStore : PreferenceDataStore
TooManyFunctions:GeneralSettingsFragment.kt$GeneralSettingsFragment : PreferenceFragmentCompat
TooManyFunctions:K9Drawer.kt$K9Drawer : KoinComponent
TooManyFunctions:ManageFoldersFragment.kt$ManageFoldersFragment : Fragment
TooManyFunctions:MessageContainerView.kt$MessageContainerView : LinearLayoutOnCreateContextMenuListenerKoinComponent
TooManyFunctions:MessageDetailsFragment.kt$MessageDetailsFragment : ToolbarBottomSheetDialogFragment
TooManyFunctions:MessageList.kt$MessageList : K9ActivityMessageListFragmentListenerMessageViewFragmentListenerMessageViewContainerListenerOnBackStackChangedListenerOnSwitchCompleteListener
TooManyFunctions:MessageList.kt$MessageList$Companion : KoinComponent
TooManyFunctions:MessageListAdapter.kt$MessageListAdapter : Adapter
TooManyFunctions:MessageListFragment.kt$MessageListFragment : FragmentConfirmationDialogFragmentListenerMessageListItemActionListener
TooManyFunctions:MessageListFragment.kt$MessageListFragment$MessageListActivityListener : SimpleMessagingListener
TooManyFunctions:MessageListSwipeCallback.kt$MessageListSwipeCallback : Callback
TooManyFunctions:MessageTopView.kt$MessageTopView : LinearLayoutKoinComponent
TooManyFunctions:MessageViewContainerFragment.kt$MessageViewContainerFragment : Fragment
TooManyFunctions:MessageViewFragment.kt$MessageViewFragment : FragmentConfirmationDialogFragmentListenerAttachmentViewCallback
TooManyFunctions:RecipientMvpView.kt$RecipientMvpView : OnFocusChangeListenerOnClickListener
TooManyFunctions:RecipientPresenter.kt$RecipientPresenter
TooManyFunctions:ReplyToView.kt$ReplyToView
TooManyFunctions:SettingsExportViewModel.kt$SettingsExportViewModel : ViewModel
TooManyFunctions:SettingsImportFragment.kt$SettingsImportFragment : Fragment
TooManyFunctions:SettingsImportUiModel.kt$SettingsImportUiModel
TooManyFunctions:SettingsImportViewModel.kt$SettingsImportViewModel : ViewModel
TooManyFunctions:SettingsListFragment.kt$SettingsListFragment : FragmentItemTouchCallback
TooManyFunctions:SimpleHighlightView.kt$SimpleHighlightView : FrameLayout
TooManyFunctions:VibrationDialogFragment.kt$VibrationDialogFragment$VibrationPatternAdapter : BaseAdapter
UnusedParameter:MessageViewFragment.kt$MessageViewFragment$requestKey: String
UseCheckOrError:ThemeExtensions.kt$throw IllegalStateException("Couldn't resolve attribute ($attrId)")