ComplexCondition:Activity.kt$contact.rawId > 1000000 && contact.contactId > 1000000 && contact.rawId == contact.contactId && (isPackageInstalled(simpleContacts) || isPackageInstalled(simpleContactsDebug)) ComplexCondition:NewConversationActivity.kt$NewConversationActivity$contact.phoneNumbers.any { it.normalizedNumber.contains(searchString, true) } || contact.name.contains(searchString, true) || contact.name.contains(searchString.normalizeString(), true) || contact.name.normalizeString().contains(searchString, true) CyclomaticComplexMethod:Context.kt$fun Context.getConversations( threadId: Long? = null, privateContacts: ArrayList<SimpleContact> = ArrayList(), ): ArrayList<Conversation> CyclomaticComplexMethod:ConversationsAdapter.kt$ConversationsAdapter$override fun actionItemPressed(id: Int) CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun getNewConversations(cachedConversations: ArrayList<Conversation>) CyclomaticComplexMethod:MessagesImporter.kt$MessagesImporter$private fun InputStream.importXml() CyclomaticComplexMethod:NotificationHelper.kt$NotificationHelper$@SuppressLint("NewApi") fun showMessageNotification( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false ) CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$@SuppressLint("MissingPermission") private fun getThreadItems(): ArrayList<ThreadItem> CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun refreshMenuItems() CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun setupButtons() CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun setupThread(callback: () -> Unit) EmptyCatchBlock:MessagesWriter.kt$MessagesWriter${ } EmptyFunctionBlock:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter${} EmptyFunctionBlock:BaseConversationsAdapter.kt$BaseConversationsAdapter${} EmptyFunctionBlock:ContactsAdapter.kt$ContactsAdapter${} EmptyFunctionBlock:ManageBlockedKeywordsAdapter.kt$ManageBlockedKeywordsAdapter${} EmptyFunctionBlock:RecycleBinConversationsAdapter.kt$RecycleBinConversationsAdapter${} EmptyFunctionBlock:SearchResultsAdapter.kt$SearchResultsAdapter${} EmptyFunctionBlock:ThreadAdapter.kt$ThreadAdapter${} ForbiddenComment:MainActivity.kt$MainActivity$// FIXME: Scheduled message date is being reset here. Conversations with ForbiddenComment:ShortcutHelper.kt$ShortcutHelper$// TODO: verify that thread isn't in recycle bin ForbiddenComment:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$// TODO: Need to check whether SC still trying to deliver the SMS to destination and will send the report again? FunctionParameterNaming:Config.kt$Config$SIMId: Int LargeClass:ThreadActivity.kt$ThreadActivity : SimpleActivity LongMethod:NotificationHelper.kt$NotificationHelper$@SuppressLint("NewApi") fun showMessageNotification( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false ) LongParameterList:SmsReceiver.kt$SmsReceiver$( context: Context, address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int, status: Int ) MagicNumber:Activity.kt$1000000 MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.7f MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.8f MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.9f MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$1.2f MagicNumber:ContactsAdapter.kt$ContactsAdapter$1.2f MagicNumber:Context.kt$10 MagicNumber:Context.kt$500L MagicNumber:ImageCompressor.kt$ImageCompressor$0.6f MagicNumber:ImageCompressor.kt$ImageCompressor$100 MagicNumber:ImageCompressor.kt$ImageCompressor$180f MagicNumber:ImageCompressor.kt$ImageCompressor$270f MagicNumber:ImageCompressor.kt$ImageCompressor$3 MagicNumber:ImageCompressor.kt$ImageCompressor$30 MagicNumber:ImageCompressor.kt$ImageCompressor$56 MagicNumber:ImageCompressor.kt$ImageCompressor$6 MagicNumber:ImageCompressor.kt$ImageCompressor$8 MagicNumber:ImageCompressor.kt$ImageCompressor$90f MagicNumber:MainActivity.kt$MainActivity$30 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$3 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$4 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$5 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$6 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$7 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$8 MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$9 MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$23 MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$5 MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$59 MagicNumber:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$3000 MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$0.8f MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$0.9f MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$1.2f MagicNumber:SettingsActivity.kt$SettingsActivity$3 MagicNumber:SettingsActivity.kt$SettingsActivity$4 MagicNumber:SettingsActivity.kt$SettingsActivity$5 MagicNumber:SettingsActivity.kt$SettingsActivity$6 MagicNumber:SettingsActivity.kt$SettingsActivity$7 MagicNumber:ShortcutHelper.kt$ShortcutHelper$99 MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x03 MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x3f MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$16 MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$24 MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$3 MagicNumber:ThreadActivity.kt$ThreadActivity$0.4f MagicNumber:ThreadActivity.kt$ThreadActivity$0.9f MagicNumber:ThreadActivity.kt$ThreadActivity$150 MagicNumber:ThreadActivity.kt$ThreadActivity$2 MagicNumber:ThreadActivity.kt$ThreadActivity$30 MagicNumber:ThreadActivity.kt$ThreadActivity$500L MagicNumber:ThreadAdapter.kt$ThreadAdapter$0.8f MagicNumber:ThreadAdapter.kt$ThreadAdapter$4 MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardContactViewHolder$1.1f MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardPropertyViewHolder$1.1f MatchingDeclarationName:ThreadItems.kt$ThreadItem MaxLineLength:AddBlockedKeywordDialog.kt$AddBlockedKeywordDialog$class MaxLineLength:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter$val conversationsToRemove = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation> MaxLineLength:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter$val conversationsToUnarchive = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation> MaxLineLength:AttachmentPreviews.kt$vcardAttachmentHolder MaxLineLength:AttachmentPreviews.kt$vcardSubtitle.text = context.resources.getQuantityString(R.plurals.and_other_contacts, quantity, quantity) MaxLineLength:AttachmentsAdapter.kt$AttachmentsAdapter$onClick = { activity.launchViewIntent(attachment.uri, attachment.mimetype, attachment.filename) } MaxLineLength:AttachmentsAdapter.kt$AttachmentsAdapter.<no name provided>$override MaxLineLength:AutoCompleteTextViewAdapter.kt$AutoCompleteTextViewAdapter$class MaxLineLength:Constants.kt$/** Not to be used with real messages persisted in the telephony db. This is for internal use only (e.g. scheduled messages, notification ids etc). */ MaxLineLength:ContactsAdapter.kt$ContactsAdapter$activity: SimpleActivity MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE (SELECT COUNT(*) FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id) > 0") MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 0") MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 1") MaxLineLength:ExportBlockedKeywordsDialog.kt$ExportBlockedKeywordsDialog$exportBlockedKeywordsFilename.setText("${activity.getString(R.string.blocked_keywords)}_${activity.getCurrentFormattedDateTime()}") MaxLineLength:Gson.kt$private val gsonBuilder = GsonBuilder().registerTypeAdapter(object : TypeToken<Map<String, Any>>() {}.type, MapDeserializerDoubleAsIntFix()) MaxLineLength:HeadlessSmsSendService.kt$HeadlessSmsSendService$val number = Uri.decode(intent.dataString!!.removePrefix("sms:").removePrefix("smsto:").removePrefix("mms").removePrefix("mmsto:").trim()) MaxLineLength:ImageCompressor.kt$ImageCompressor$fun MaxLineLength:ImageCompressor.kt$ImageCompressor$private MaxLineLength:ImageCompressor.kt$ImageCompressor$var imageFile = File(outputDirectory, System.currentTimeMillis().toString().plus(mimeType.getExtensionFromMimeType())) MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND recycle_bin_messages.deleted_ts < :timestamp") MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND thread_id = :threadId") MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL") MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId AND is_scheduled = 1") MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$"INSERT OR IGNORE INTO conversations_new (thread_id, snippet, date, read, title, photo_uri, is_group_conversation, phone_number) " MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$"SELECT thread_id, snippet, date, read, title, photo_uri, is_group_conversation, phone_number FROM conversations" MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE IF NOT EXISTS `attachments` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `message_id` INTEGER NOT NULL, `uri_string` TEXT NOT NULL, `mimetype` TEXT NOT NULL, `width` INTEGER NOT NULL, `height` INTEGER NOT NULL, `filename` TEXT NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE IF NOT EXISTS `drafts` (`thread_id` INTEGER NOT NULL PRIMARY KEY, `body` TEXT NOT NULL, `date` INTEGER NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE IF NOT EXISTS `message_attachments` (`id` INTEGER PRIMARY KEY NOT NULL, `text` TEXT NOT NULL, `attachments` TEXT NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE IF NOT EXISTS `messages` (`id` INTEGER PRIMARY KEY NOT NULL, `body` TEXT NOT NULL, `type` INTEGER NOT NULL, `participants` TEXT NOT NULL, `date` INTEGER NOT NULL, `read` INTEGER NOT NULL, `thread_id` INTEGER NOT NULL, `is_mms` INTEGER NOT NULL, `attachment` TEXT, `sender_name` TEXT NOT NULL, `sender_photo_uri` TEXT NOT NULL, `subscription_id` INTEGER NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE IF NOT EXISTS `recycle_bin_messages` (`id` INTEGER NOT NULL PRIMARY KEY, `deleted_ts` INTEGER NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE TABLE conversations_new (`thread_id` INTEGER NOT NULL PRIMARY KEY, `snippet` TEXT NOT NULL, `date` INTEGER NOT NULL, `read` INTEGER NOT NULL, `title` TEXT NOT NULL, `photo_uri` TEXT NOT NULL, `is_group_conversation` INTEGER NOT NULL, `phone_number` TEXT NOT NULL)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_conversations_id` ON `conversations` (`thread_id`)") MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.<no name provided>$execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_recycle_bin_messages_id` ON `recycle_bin_messages` (`id`)") MaxLineLength:MessagesWriter.kt$MessagesWriter$// 2. write parts - parts depend on the msg id, check if part exist before writing, write data if it is a non-text part MaxLineLength:MessagesWriter.kt$MessagesWriter$val selection = "${Mms.Part.CONTENT_LOCATION} = ? AND ${Mms.Part.CONTENT_TYPE} = ? AND ${Mms.Part.MSG_ID} = ? AND ${Mms.Part.CONTENT_ID} = ?" MaxLineLength:Messaging.kt$* MaxLineLength:MessagingUtils.kt$MessagingUtils$context.showErrorToast(e.localizedMessage ?: context.getString(org.fossify.commons.R.string.unknown_error_occurred)) MaxLineLength:MmsPart.kt$MmsPart$return !(text != null || contentType.lowercase().startsWith("text") || contentType.lowercase() == "application/smil") MaxLineLength:NewConversationActivity.kt$NewConversationActivity$// READ_CONTACTS permission is not mandatory, but without it we won't be able to show any suggestions during typing MaxLineLength:RecycleBinConversationsAdapter.kt$RecycleBinConversationsAdapter$val conversationsToRemove = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation> MaxLineLength:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$context.showErrorToast(e.localizedMessage ?: context.getString(org.fossify.commons.R.string.unknown_error_occurred)) MaxLineLength:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$val wakelock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "simple.messenger:scheduled.message.receiver") MaxLineLength:SearchResult.kt$SearchResult MaxLineLength:SearchResultsAdapter.kt$SearchResultsAdapter$SimpleContactsHelper(activity).loadContactImage(searchResult.photoUri, searchResultImage, searchResult.title) MaxLineLength:SearchResultsAdapter.kt$SearchResultsAdapter$activity: SimpleActivity MaxLineLength:SmsReceiver.kt$SmsReceiver$handleMessage(context, address, subject, body, date, read, threadId, type, subscriptionId, status) MaxLineLength:SmsReceiver.kt$SmsReceiver$val newMessageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) MaxLineLength:SmsReceiver.kt$SmsReceiver$val participant = SimpleContact(0, 0, senderName, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList()) MaxLineLength:SmsSender.kt$SmsSender$val intent = Intent(SendStatusReceiver.SMS_DELIVERED_ACTION, requestUri, app, SmsStatusDeliveredReceiver::class.java) MaxLineLength:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$// TODO: Need to check whether SC still trying to deliver the SMS to destination and will send the report again? MaxLineLength:ThreadActivity.kt$ThreadActivity$// do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS, MaxLineLength:ThreadActivity.kt$ThreadActivity$if MaxLineLength:ThreadActivity.kt$ThreadActivity$privateContacts.firstOrNull { it.doesHavePhoneNumber(participant.phoneNumbers.first().normalizedNumber) } MaxLineLength:ThreadAdapter.kt$ThreadAdapter$// not sure how we can get UnknownFormatConversionException here, so show the error and hope that someone reports it MaxLineLength:ThreadAdapter.kt$ThreadAdapter$mimetype.isImageMimeType() || mimetype.isVideoMimeType() -> setupImageView(holder, binding = this, message, attachment) MaxLineLength:ThreadAdapter.kt$ThreadAdapter$mimetype.isVCardMimeType() -> setupVCardView(holder, threadMessageAttachmentsHolder, message, attachment) MaxLineLength:ThreadAdapter.kt$ThreadAdapter$private MaxLineLength:ThreadAdapter.kt$ThreadAdapter$threadSuccess.setImageResource(if (isDelivered) R.drawable.ic_check_double_vector else org.fossify.commons.R.drawable.ic_check_vector) MaxLineLength:ThreadAdapter.kt$ThreadAdapter$val MaxLineLength:ThreadAdapter.kt$ThreadAdapter.<no name provided>$override MaxLineLength:ThreadAdapter.kt$ThreadAdapter.<no name provided>$override fun onResourceReady(dr: Drawable, a: Any, t: Target<Drawable>, d: DataSource, i: Boolean) MaxLineLength:VCard.kt$Telephone::class.java MaxLineLength:VCard.kt$VCardPropertyWrapper.Companion$is Note -> VCardPropertyWrapper(value, context.getString(org.fossify.commons.R.string.notes), property) MaxLineLength:VCard.kt$VCardPropertyWrapper.Companion$is Telephone -> VCardPropertyWrapper(text.normalizePhoneNumber(), getPropertyTypeString(context), property) MaxLineLength:VCard.kt$VCardWrapper$data MaxLineLength:VCardViewerActivity.kt$VCardViewerActivity$updateMaterialActivityViews(binding.vcardViewerCoordinator, binding.contactsList, useTransparentNavigation = true, useTopSearchMenu = false) MaxLineLength:VCardViewerAdapter.kt$VCardViewerAdapter.VCardPropertyViewHolder$inner NestedBlockDepth:AttachmentUtils.kt$AttachmentUtils$private fun readBody(parser: XmlPullParser): List<String> NestedBlockDepth:Context.kt$fun Context.getThreadParticipants( threadId: Long, contactsMap: HashMap<Int, SimpleContact>?, ): ArrayList<SimpleContact> NestedBlockDepth:MessagesImporter.kt$MessagesImporter$private fun InputStream.importXml() NestedBlockDepth:MessagesWriter.kt$MessagesWriter$@SuppressLint("NewApi") private fun writeMmsPart(mmsPart: MmsPart, messageId: Long) NestedBlockDepth:Messaging.kt$fun Context.sendMessageCompat( text: String, addresses: List<String>, subId: Int?, attachments: List<Attachment>, messageId: Long? = null ) NestedBlockDepth:MessagingUtils.kt$MessagingUtils$@Deprecated("TODO: Move/rewrite MMS code into the app.") fun sendMmsMessage( text: String, addresses: List<String>, attachment: Attachment?, settings: Settings, messageId: Long? = null ) NestedBlockDepth:MessagingUtils.kt$MessagingUtils$fun updateSmsMessageSendingStatus(messageUri: Uri?, type: Int) NestedBlockDepth:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$override fun updateAndroidDatabase(context: Context, intent: Intent, receiverResultCode: Int) NestedBlockDepth:ThreadActivity.kt$ThreadActivity$private fun setupButtons() NestedBlockDepth:ThreadAdapter.kt$ThreadAdapter$private fun setupSentMessageView(messageBinding: ItemMessageBinding, message: Message) NestedBlockDepth:ThreadAdapter.kt$ThreadAdapter$private fun setupView(holder: ViewHolder, view: View, message: Message) PrintStackTrace:Context.kt$e PrintStackTrace:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e PrintStackTrace:SmsManager.kt$e ReturnCount:MapDeserializerDoubleAsIntFix.kt$MapDeserializerDoubleAsIntFix$fun read(element: JsonElement): Any? SpreadOperator:Context.kt$(*scheduledMessages) SpreadOperator:MainActivity.kt$MainActivity$(*currentMessages.toTypedArray()) SpreadOperator:ThreadActivity.kt$ThreadActivity$(*currentMessages.toTypedArray()) SwallowedException:ArchivedConversationsActivity.kt$ArchivedConversationsActivity$e: Exception SwallowedException:AttachmentPreviews.kt$e: Exception SwallowedException:BlockedKeywordsExporter.kt$BlockedKeywordsExporter$e: Exception SwallowedException:ImageCompressor.kt$ImageCompressor$e: Exception SwallowedException:JsonElement.kt$e: Exception SwallowedException:MessagesReader.kt$MessagesReader$e: IOException SwallowedException:MessagesWriter.kt$MessagesWriter$e: Exception SwallowedException:MmsReceiver.kt$MmsReceiver$e: Exception SwallowedException:NewConversationActivity.kt$NewConversationActivity$e: Exception SwallowedException:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity$e: Exception SwallowedException:SimpleContact.kt$e: Exception SwallowedException:SmsIntentParser.kt$SmsIntentParser$e: UnsupportedEncodingException SwallowedException:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$e: NullPointerException SwallowedException:ThreadActivity.kt$ThreadActivity$e: ActivityNotFoundException SwallowedException:ThreadActivity.kt$ThreadActivity$e: Exception SwallowedException:VCardParser.kt$e: Exception ThrowingExceptionsWithoutMessageOrCause:AttachmentUtils.kt$AttachmentUtils$IllegalStateException() ThrowingExceptionsWithoutMessageOrCause:MessagesImporter.kt$MessagesImporter$IllegalStateException() ThrowsCount:SmsSender.kt$SmsSender$fun sendMessage( subId: Int, destination: String, body: String, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri ) TooGenericExceptionCaught:Activity.kt$e: Exception TooGenericExceptionCaught:ArchivedConversationsActivity.kt$ArchivedConversationsActivity$e: Exception TooGenericExceptionCaught:AttachmentPreviews.kt$e: Exception TooGenericExceptionCaught:BlockedKeywordsExporter.kt$BlockedKeywordsExporter$e: Exception TooGenericExceptionCaught:BlockedKeywordsImporter.kt$BlockedKeywordsImporter$e: Exception TooGenericExceptionCaught:Context.kt$e: Exception TooGenericExceptionCaught:DirectReplyReceiver.kt$DirectReplyReceiver$e: Exception TooGenericExceptionCaught:ExportMessagesDialog.kt$ExportMessagesDialog$e: Throwable TooGenericExceptionCaught:ImageCompressor.kt$ImageCompressor$e: Exception TooGenericExceptionCaught:JsonElement.kt$e: Exception TooGenericExceptionCaught:ManageBlockedKeywordsActivity.kt$ManageBlockedKeywordsActivity$e: Exception TooGenericExceptionCaught:MessagesImporter.kt$MessagesImporter$e: Exception TooGenericExceptionCaught:MessagesImporter.kt$MessagesImporter$e: Throwable TooGenericExceptionCaught:MessagesWriter.kt$MessagesWriter$e: Exception TooGenericExceptionCaught:Messaging.kt$e: Exception TooGenericExceptionCaught:MessagingUtils.kt$MessagingUtils$e: Error TooGenericExceptionCaught:MessagingUtils.kt$MessagingUtils$e: Exception TooGenericExceptionCaught:MmsReceiver.kt$MmsReceiver$e: Exception TooGenericExceptionCaught:NewConversationActivity.kt$NewConversationActivity$e: Exception TooGenericExceptionCaught:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity$e: Exception TooGenericExceptionCaught:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e: Error TooGenericExceptionCaught:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e: Exception TooGenericExceptionCaught:SimpleContact.kt$e: Exception TooGenericExceptionCaught:SmsManager.kt$e: Exception TooGenericExceptionCaught:SmsSender.kt$SmsSender$e: Exception TooGenericExceptionCaught:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$e: NullPointerException TooGenericExceptionCaught:ThreadActivity.kt$ThreadActivity$e: Error TooGenericExceptionCaught:ThreadActivity.kt$ThreadActivity$e: Exception TooGenericExceptionCaught:ThreadAdapter.kt$ThreadAdapter$e: Exception TooGenericExceptionCaught:VCardParser.kt$e: Exception TooManyFunctions:ArchivedConversationsActivity.kt$ArchivedConversationsActivity : SimpleActivity TooManyFunctions:BaseConversationsAdapter.kt$BaseConversationsAdapter : MyRecyclerViewListAdapterOnPopupTextUpdate TooManyFunctions:ContactsAdapter.kt$ContactsAdapter : MyRecyclerViewAdapter TooManyFunctions:Context.kt$org.fossify.messages.extensions.Context.kt TooManyFunctions:ConversationsAdapter.kt$ConversationsAdapter : BaseConversationsAdapter TooManyFunctions:ConversationsDao.kt$ConversationsDao TooManyFunctions:JsonObject.kt$org.fossify.messages.extensions.gson.JsonObject.kt TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivity TooManyFunctions:ManageBlockedKeywordsActivity.kt$ManageBlockedKeywordsActivity : SimpleActivityRefreshRecyclerViewListener TooManyFunctions:ManageBlockedKeywordsAdapter.kt$ManageBlockedKeywordsAdapter : MyRecyclerViewAdapter TooManyFunctions:MessagesDao.kt$MessagesDao TooManyFunctions:MessagesWriter.kt$MessagesWriter TooManyFunctions:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity : SimpleActivity TooManyFunctions:SearchResultsAdapter.kt$SearchResultsAdapter : MyRecyclerViewAdapter TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity TooManyFunctions:ShortcutHelper.kt$ShortcutHelper TooManyFunctions:ThreadActivity.kt$ThreadActivity : SimpleActivity TooManyFunctions:ThreadAdapter.kt$ThreadAdapter : MyRecyclerViewListAdapter UseCheckOrError:AttachmentUtils.kt$AttachmentUtils$throw IllegalStateException() UseCheckOrError:MessagesImporter.kt$MessagesImporter$throw IllegalStateException() UseRequire:SmsSender.kt$SmsSender$throw IllegalArgumentException("SmsSender: empty text message") VariableNaming:MainActivity.kt$MainActivity$private val MAKE_DEFAULT_APP_REQUEST = 1 VariableNaming:MessagesWriter.kt$MessagesWriter$private val INVALID_ID = -1L WildcardImport:AttachmentPreviews.kt$import org.fossify.commons.extensions.* WildcardImport:AttachmentPreviews.kt$import org.fossify.messages.extensions.* WildcardImport:AttachmentsAdapter.kt$import org.fossify.commons.extensions.* WildcardImport:AttachmentsAdapter.kt$import org.fossify.messages.extensions.* WildcardImport:AttachmentsAdapter.kt$import org.fossify.messages.helpers.* WildcardImport:DirectReplyReceiver.kt$import org.fossify.messages.extensions.* WildcardImport:JsonElement.kt$import com.google.gson.* WildcardImport:ManageBlockedKeywordsAdapter.kt$import android.view.* WildcardImport:MessagesDao.kt$import androidx.room.* WildcardImport:VCard.kt$import ezvcard.property.* WildcardImport:VCardViewerAdapter.kt$import org.fossify.commons.extensions.*