| ChatRoomFragment |   | 41% |   | 26% | 370 | 439 | 429 | 793 | 60 | 117 | 0 | 1 |
| DialogKt |  | 0% |  | 0% | 11 | 11 | 53 | 53 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showTypingStatus..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 11 | 11 | 33 | 33 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showNewMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 17 | 17 | 23 | 23 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showConnectionState..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 15 | 15 | 17 | 17 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.dispatchUpdateMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 14 | 14 | 16 | 16 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showEditingAction..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 11 | 11 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.sendMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 12 | 12 | 11 | 11 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showReplyingAction..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 10 | 10 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.deleteMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 11 | 11 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.onJoined..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 12 | 12 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.clearMessageComposition..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 10 | 10 | 10 | 10 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showFileSelection..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 10 | 10 | 11 | 11 | 4 | 4 | 1 | 1 |
| ChatRoomActivity |   | 70% |   | 38% | 25 | 37 | 6 | 52 | 9 | 19 | 0 | 1 |
| ChatRoomFragment.enableSendMessageButton..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 7 | 7 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showReactionsPopup..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 8 | 8 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.copyToClipboard..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 10 | 10 | 7 | 7 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showLoading..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 7 | 7 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.hideLoading..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 7 | 7 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.hideTypingStatusView..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 7 | 7 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.setupRecyclerView.touchCallback.new ItemTouchHelper.SimpleCallback() {...} |  | 7% |  | 0% | 10 | 11 | 13 | 14 | 3 | 4 | 0 | 1 |
| ChatRoomFragment.populateRoomSuggestions..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.populateEmojiSuggestions..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.layoutChangeListener.1.1..special..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.populatePeopleSuggestions..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.populateCommandSuggestions..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.dispatchDeleteMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 6 | 6 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.layoutChangeListener.1.1..special..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.showGenericErrorMessage..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| ChatRoomFragment.disableSendMessageButton..inlined.ui.new Function2() {...} |  | 0% |  | 0% | 9 | 9 | 5 | 5 | 4 | 4 | 1 | 1 |
| DialogKt.showFileAttachmentDialog.new View.OnClickListener() {...} |  | 0% |  | 0% | 6 | 6 | 10 | 10 | 2 | 2 | 1 | 1 |
| MenuKt.setupSearchViewTextListener.new Function1() {...} |  | 10% |  | 0% | 6 | 7 | 6 | 6 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.onScrollListener.new RecyclerView.OnScrollListener() {...} |  | 27% |  | 12% | 8 | 10 | 8 | 12 | 3 | 5 | 0 | 1 |
| DialogKt.showFileAttachmentDialog.2.new Function0() {...} |  | 0% | | 0% | 4 | 4 | 6 | 6 | 2 | 2 | 1 | 1 |
| StrikethroughDelimiterProcessor |  | 15% |  | 0% | 6 | 10 | 11 | 15 | 2 | 6 | 0 | 1 |
| DialogKt.showDrawAttachmentDialog.new View.OnClickListener() {...} |  | 0% | | 0% | 4 | 4 | 6 | 6 | 2 | 2 | 1 | 1 |
| ChatRoomFragment_MembersInjector |  | 25% | | n/a | 3 | 7 | 12 | 20 | 3 | 7 | 0 | 1 |
| ChatRoomActivity_MembersInjector |  | 25% | | n/a | 3 | 7 | 13 | 21 | 3 | 7 | 0 | 1 |
| ChatRoomFragment.fabScrollListener.new RecyclerView.OnScrollListener() {...} |  | 47% |  | 25% | 5 | 8 | 5 | 14 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new ComposerEditText.ComposerEditTextListener() {...} |  | 11% | | 0% | 4 | 5 | 9 | 10 | 2 | 3 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} |  | 11% | | 0% | 3 | 4 | 8 | 8 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 11% | | 0% | 3 | 4 | 8 | 8 | 1 | 2 | 0 | 1 |
| ActionSnackbar.CallbackImpl | | 17% | | n/a | 3 | 4 | 12 | 13 | 3 | 4 | 0 | 1 |
| ChatRoomFragment.setupFab.new View.OnClickListener() {...} | | 13% | | n/a | 1 | 2 | 8 | 8 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupActionSnackbar.new View.OnClickListener() {...} | | 13% | | 0% | 3 | 4 | 4 | 4 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.layoutChangeListener.1.new Runnable() {...} |  | 76% |   | 54% | 11 | 14 | 2 | 16 | 0 | 2 | 0 | 1 |
| DialogKt.showFileAttachmentDialog..inlined.let.lambda.new SimpleTarget() {...} | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.alertDialog.new Function0() {...} | | 20% | | 0% | 2 | 3 | 3 | 3 | 1 | 2 | 0 | 1 |
| ActionSnackbar |  | 76% |  | 40% | 8 | 16 | 0 | 16 | 3 | 11 | 0 | 1 |
| ChatRoomFragment.setupSuggestionsView.new Function1() {...} | | 23% | | 0% | 3 | 4 | 3 | 3 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 20% | | n/a | 1 | 2 | 5 | 5 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.dismissEmojiKeyboard.new MutablePropertyReference0() {...} | | 0% | | n/a | 6 | 6 | 1 | 1 | 6 | 6 | 1 | 1 |
| ChatRoomFragment.onRoomUpdated..inlined.ui.new Function2() {...} |  | 83% |   | 43% | 9 | 12 | 0 | 11 | 1 | 4 | 0 | 1 |
| ChatRoomFragment.showReactionsPopup..inlined.ui.1.lambda.new EmojiKeyboardListener() {...} | | 0% | | n/a | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 |
| ChatRoomFragment.max.new Function0() {...} | | 25% | | n/a | 1 | 2 | 4 | 4 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.deleteMessage..inlined.ui.lambda.new DialogInterface.OnClickListener() {...} | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.setupSuggestionsView.new Function1() {...} | | 25% | | 0% | 3 | 4 | 3 | 3 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.showMessages..inlined.ui.new Function2() {...} |  | 93% |   | 85% | 7 | 24 | 1 | 35 | 1 | 4 | 0 | 1 |
| ChatRoomFragment.deleteMessage..inlined.ui.1.lambda.new DialogInterface.OnClickListener() {...} | | 0% | | n/a | 2 | 2 | 4 | 4 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.dismissConnectionState.new Function0() {...} | | 30% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| DialogKt.showDrawAttachmentDialog.new View.OnClickListener() {...} | | 0% | | 0% | 3 | 3 | 1 | 1 | 2 | 2 | 1 | 1 |
| DialogKt.showFileAttachmentDialog.new View.OnClickListener() {...} | | 0% | | 0% | 3 | 3 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showReactionsPopup..inlined.ui.lambda.new EmojiKeyboardListener() {...} | | 39% | | n/a | 2 | 3 | 2 | 3 | 2 | 3 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showConnectionState..inlined.ui.lambda.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showConnectionState..inlined.ui.lambda.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showConnectionState..inlined.ui.1.lambda.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.showConnectionState..inlined.ui.1.lambda.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.setupMessageComposer.9.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.setupMessageComposer.10.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.setupMessageComposer.8.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ChatRoomFragment.setupMessageComposer.9.new Runnable() {...} | | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| MenuKt.setupSearchMessageMenuItem.searchItem.new MenuItem.OnActionExpandListener() {...} | | 37% | | n/a | 2 | 3 | 4 | 5 | 2 | 3 | 0 | 1 |
| ChatRoomFragment.deleteMessage.1.new DialogInterface.OnClickListener() {...} | | 0% | | n/a | 3 | 3 | 1 | 1 | 3 | 3 | 1 | 1 |
| ChatRoomFragment.setupSuggestionsView.new Function1() {...} | | 46% | | n/a | 1 | 2 | 2 | 2 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupSuggestionsView.new Function1() {...} | | 46% | | n/a | 1 | 2 | 2 | 2 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.dialogView.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.audioVideoAttachment.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.sendButton.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.textFile.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.cancelButton.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.imagePreview.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.description.new Function0() {...} | | 50% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 82% | | 50% | 1 | 3 | 1 | 4 | 0 | 2 | 0 | 1 |
| ChatRoomActivity.setupToolbar.new View.OnClickListener() {...} | | 60% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 60% | | n/a | 1 | 2 | 1 | 1 | 1 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 60% | | n/a | 1 | 2 | 2 | 2 | 1 | 2 | 0 | 1 |
| MenuKt |  | 97% | | 50% | 3 | 7 | 0 | 27 | 0 | 4 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new View.OnClickListener() {...} | | 97% | | 50% | 1 | 3 | 0 | 4 | 0 | 2 | 0 | 1 |
| ActionSnackbar.Companion |  | 100% | | n/a | 0 | 2 | 0 | 18 | 0 | 2 | 0 | 1 |
| ChatRoomFragmentKt |  | 100% | | n/a | 0 | 1 | 0 | 13 | 0 | 1 | 0 | 1 |
| ChatRoomActivityKt |  | 100% | | n/a | 0 | 1 | 0 | 11 | 0 | 1 | 0 | 1 |
| ChatRoomActivity.onCreate.1.new Function0() {...} |  | 100% | | n/a | 0 | 2 | 0 | 11 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.layoutChangeListener.new View.OnLayoutChangeListener() {...} | | 100% | | 75% | 1 | 4 | 0 | 4 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.onViewCreated..inlined.with.lambda.new Function1() {...} | | 100% | | n/a | 0 | 2 | 0 | 7 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.hypotenuse.new Function0() {...} | | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.setupRecyclerView.new EndlessRecyclerViewScrollListener() {...} | | 100% | | n/a | 0 | 2 | 0 | 4 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.setupMessageComposer.new FragmentManager.FragmentLifecycleCallbacks() {...} | | 100% | | 100% | 0 | 3 | 0 | 4 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.centerY.new Function0() {...} | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.centerX.new Function0() {...} | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| ChatRoomActivity.setupExpandMoreForToolbar.new View.OnClickListener() {...} | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.subscribeComposeTypingStatus.new Consumer() {...} | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| ChatRoomFragment.subscribeComposeButtons.new Consumer() {...} | | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |