Loading presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView { && state.query.isEmpty() toolbar.menu.findItem(R.id.info)?.isVisible = !state.editingMode && state.selectedMessages == 0 && state.query.isEmpty() toolbar.menu.findItem(R.id.copy)?.isVisible = !state.editingMode && state.selectedMessages == 1 toolbar.menu.findItem(R.id.copy)?.isVisible = !state.editingMode && state.selectedMessages > 0 toolbar.menu.findItem(R.id.details)?.isVisible = !state.editingMode && state.selectedMessages == 1 toolbar.menu.findItem(R.id.delete)?.isVisible = !state.editingMode && state.selectedMessages > 0 toolbar.menu.findItem(R.id.forward)?.isVisible = !state.editingMode && state.selectedMessages == 1 Loading presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt +13 −4 Original line number Diff line number Diff line Loading @@ -300,12 +300,21 @@ class ComposeViewModel @Inject constructor( // Copy the message contents view.optionsItemIntent .filter { it == R.id.copy } .withLatestFrom(view.messagesSelectedIntent) { _, messages -> messages?.firstOrNull()?.let { messageRepo.getMessage(it) }?.let { message -> ClipboardUtils.copy(context, message.getText()) context.makeToast(R.string.toast_copied) .withLatestFrom(view.messagesSelectedIntent) { _, messageIds -> val messages = messageIds.mapNotNull(messageRepo::getMessage).sortedBy { it.date } val text = when (messages.size) { 1 -> messages.first().getText() else -> messages.foldIndexed("") { index, acc, message -> when { index == 0 -> message.getText() messages[index - 1].compareSender(message) -> "$acc\n${message.getText()}" else -> "$acc\n\n${message.getText()}" } } } ClipboardUtils.copy(context, text) } .autoDisposable(view.scope()) .subscribe { view.clearSelection() } Loading Loading
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ class ComposeActivity : QkThemedActivity(), ComposeView { && state.query.isEmpty() toolbar.menu.findItem(R.id.info)?.isVisible = !state.editingMode && state.selectedMessages == 0 && state.query.isEmpty() toolbar.menu.findItem(R.id.copy)?.isVisible = !state.editingMode && state.selectedMessages == 1 toolbar.menu.findItem(R.id.copy)?.isVisible = !state.editingMode && state.selectedMessages > 0 toolbar.menu.findItem(R.id.details)?.isVisible = !state.editingMode && state.selectedMessages == 1 toolbar.menu.findItem(R.id.delete)?.isVisible = !state.editingMode && state.selectedMessages > 0 toolbar.menu.findItem(R.id.forward)?.isVisible = !state.editingMode && state.selectedMessages == 1 Loading
presentation/src/main/java/com/moez/QKSMS/feature/compose/ComposeViewModel.kt +13 −4 Original line number Diff line number Diff line Loading @@ -300,12 +300,21 @@ class ComposeViewModel @Inject constructor( // Copy the message contents view.optionsItemIntent .filter { it == R.id.copy } .withLatestFrom(view.messagesSelectedIntent) { _, messages -> messages?.firstOrNull()?.let { messageRepo.getMessage(it) }?.let { message -> ClipboardUtils.copy(context, message.getText()) context.makeToast(R.string.toast_copied) .withLatestFrom(view.messagesSelectedIntent) { _, messageIds -> val messages = messageIds.mapNotNull(messageRepo::getMessage).sortedBy { it.date } val text = when (messages.size) { 1 -> messages.first().getText() else -> messages.foldIndexed("") { index, acc, message -> when { index == 0 -> message.getText() messages[index - 1].compareSender(message) -> "$acc\n${message.getText()}" else -> "$acc\n\n${message.getText()}" } } } ClipboardUtils.copy(context, text) } .autoDisposable(view.scope()) .subscribe { view.clearSelection() } Loading