diff --git a/presentation/src/main/java/com/moez/QKSMS/common/base/QkRealmAdapter.kt b/presentation/src/main/java/com/moez/QKSMS/common/base/QkRealmAdapter.kt index 8312e765..c4e016a8 100644 --- a/presentation/src/main/java/com/moez/QKSMS/common/base/QkRealmAdapter.kt +++ b/presentation/src/main/java/com/moez/QKSMS/common/base/QkRealmAdapter.kt @@ -50,7 +50,7 @@ abstract class QkRealmAdapter : RealmRecyclerViewAdapter> = BehaviorSubject.create() - private var selection = listOf() + private var selection = mutableListOf() /** * Mark this message as highlighted @@ -69,20 +69,16 @@ abstract class QkRealmAdapter : RealmRecyclerViewAdapter selection - id - false -> selection + id + when (selection.contains(id)) { + true -> selection -= id + false -> selection += id } - if (useChangeEvent) - selectionChanges.onNext(selection) + selectionChanges.onNext(selection) + return true } @@ -91,32 +87,21 @@ abstract class QkRealmAdapter : RealmRecyclerViewAdapter val messages = messageIds.mapNotNull(messageRepo::getMessage).sortedBy { it.date } - val text = when (messages.size) { - 1 -> messages.first().getText() - else -> messages.foldIndexed("") { index, acc, message -> + ClipboardUtils.copy( + context, + messages.foldIndexed(StringBuilder()) { index, acc, message -> when { - index == 0 -> message.getText() - messages[index - 1].compareSender(message) -> "$acc\n${message.getText()}" - else -> "$acc\n\n${message.getText()}" + index == 0 -> + acc.append(message.getText()) + messages[index - 1].compareSender(message) -> + acc.appendLine().append(message.getText()) + else -> + acc.appendLine().appendLine().append(message.getText()) } - } - } - - ClipboardUtils.copy(context, text) + }.toString()) } .autoDisposable(view.scope()) .subscribe { view.clearSelection() } diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 54407e87..4ee4d6da 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -237,6 +237,9 @@ Finished! Backup and restore + Data size exceeds clipboard limit + Unable to copy to the clipboard + Scheduled Automatically send a message, at the exact moment you\'d like Hey! When was your birthday again?