kopia lustrzana https://github.com/ryukoposting/Signal-Android
rodzic
41585699d2
commit
07a6942ea8
|
@ -19,8 +19,6 @@ package org.thoughtcrime.securesms.conversation;
|
|||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
|
@ -167,7 +165,6 @@ import org.thoughtcrime.securesms.wallpaper.ChatWallpaper;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -871,24 +868,21 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
|
|||
}
|
||||
|
||||
private void handleCopyMessage(final Set<MultiselectPart> multiselectParts) {
|
||||
List<MultiselectPart> multiselectPartList = new ArrayList<>(multiselectParts);
|
||||
Collections.sort(multiselectPartList, (lhs, rhs) -> Long.compare(lhs.getMessageRecord().getDateReceived(), rhs.getMessageRecord().getDateReceived()));
|
||||
CharSequence bodies = Stream.of(multiselectParts)
|
||||
.sortBy(m -> m.getMessageRecord().getDateReceived())
|
||||
.map(MultiselectPart::getConversationMessage)
|
||||
.distinct()
|
||||
.map(m -> m.getDisplayBody(requireContext()))
|
||||
.filterNot(TextUtils::isEmpty)
|
||||
.collect(SpannableStringBuilder::new, (bodyBuilder, body) -> {
|
||||
if (bodyBuilder.length() > 0) {
|
||||
bodyBuilder.append('\n');
|
||||
}
|
||||
bodyBuilder.append(body);
|
||||
});
|
||||
|
||||
SpannableStringBuilder bodyBuilder = new SpannableStringBuilder();
|
||||
ClipboardManager clipboard = (ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
|
||||
for (MultiselectPart part : multiselectPartList) {
|
||||
CharSequence body = part.getConversationMessage().getDisplayBody(requireContext());
|
||||
if (!TextUtils.isEmpty(body)) {
|
||||
if (bodyBuilder.length() > 0) {
|
||||
bodyBuilder.append('\n');
|
||||
}
|
||||
bodyBuilder.append(body);
|
||||
}
|
||||
}
|
||||
|
||||
if (!TextUtils.isEmpty(bodyBuilder)) {
|
||||
clipboard.setPrimaryClip(ClipData.newPlainText(null, bodyBuilder));
|
||||
if (!TextUtils.isEmpty(bodies)) {
|
||||
Util.copyToClipboard(requireContext(), bodies);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -483,7 +483,7 @@ public class Util {
|
|||
return MemoryUnitFormat.formatBytes(sizeBytes);
|
||||
}
|
||||
|
||||
public static void copyToClipboard(@NonNull Context context, @NonNull String text) {
|
||||
public static void copyToClipboard(@NonNull Context context, @NonNull CharSequence text) {
|
||||
ServiceUtil.getClipboardManager(context).setPrimaryClip(ClipData.newPlainText("text", text));
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue