After analyzing Composables using Layout Inspector, the following problems/opportunities were found:
SentenceDialog
When audio is playing this causes 2 recompositions to the play button, this is expected because the icon changes 2 times. However, it's also causing all the other elements to recompose, both texts and spinners and more critically the surface. Only the play button should recompose.
The same thing also happens when a sentence is clicked in the bottom text. Only both texts should be recomposed.
The same thing happens when clicking a word, the first time this is expected because of the layout changes, however, once the word bar is shown the other elements shouldn't recompose.
When the ExternalLinksDialog is shown, if a list element is selected this causes the recomposition for the SentenceDialog.
Opening and closing the spinner only recomposes the spinner themselves, however, changing the top spinner causes 4 recompositions to all elements (except the surface and play button which had 3) while changing the bottom spinner caused 3 recompositions to all elements. The expectation is only 1 recomposition.
The EditWordDialog and DeleteDialog cause the SentenceDialog to recompose every time they are hidden/shown. Investigate if this is the expected behavior.
EditWordDialog
No major issues found
ExternalLinksDialog
The LazyColumn recomposes every time an item is selected, check if this is the expected behavior.
WebReaderBottomBar
The only problem was the language spinner gets recomposed after hiding/showing the bar menu.
AddNoteDialog
Clicking the colors causes the text and save/cancel to recompose.
Editing the text causes the save/cancel to recompose.
After analyzing Composables using Layout Inspector, the following problems/opportunities were found:
SentenceDialog
EditWordDialog No major issues found
ExternalLinksDialog
WebReaderBottomBar
AddNoteDialog