diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt index 2a4310464029221148384483a8ba59c73b6adf7d..a336d0f2506e654d6dc1028362304d215ee9639e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt @@ -85,7 +85,7 @@ class MessageAdapter( const val SHIFT_FOLLOWUP = SHIFT_HIGHLIGHT - 1 const val MASK_HIGHLIGHT = 0x01 shl SHIFT_HIGHLIGHT const val MASK_FOLLOWUP = 0x01 shl SHIFT_FOLLOWUP - const val MASK_TYPE = 0xFFFF + const val MASK_TYPE = 0xFFFFFF } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): QuasselMessageViewHolder { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt index 75fa1faf8e7aea77b71384bad84b3ea1ff82c491..fe5e21becf4eb1e251ced2e92f6ff93ea55cc8b9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt @@ -15,10 +15,15 @@ import android.text.SpannableStringBuilder import android.view.* import butterknife.BindView import butterknife.ButterKnife +import com.bumptech.glide.Glide +import com.bumptech.glide.ListPreloader +import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader +import com.bumptech.glide.util.FixedPreloadSizeProvider import de.kuschku.libquassel.protocol.BufferId import de.kuschku.libquassel.protocol.MsgId import de.kuschku.libquassel.quassel.syncables.BufferSyncer import de.kuschku.libquassel.util.helpers.value +import de.kuschku.quasseldroid.GlideApp import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.persistence.QuasselDatabase import de.kuschku.quasseldroid.persistence.findByBufferIdPagedWithDayChange @@ -72,14 +77,26 @@ class MessageListFragment : ServiceBoundFragment() { viewModel.selectedMessages.value.values.sortedBy { it.id }.map { - SpanFormatter.format(getString(R.string.message_format_copy), it.time, it.content) + if (it.name != null && it.content != null) { + SpanFormatter.format(getString(R.string.message_format_copy_complex), + it.time, + it.name, + it.content) + } else { + SpanFormatter.format(getString(R.string.message_format_copy), it.time, it.combined) + } }.forEach { builder.append(it) builder.append("\n") } + val data = if (builder.endsWith('\n')) + builder.subSequence(0, builder.length - 1) + else + builder + val clipboard = requireActivity().systemService<ClipboardManager>() - val clip = ClipData.newPlainText(null, builder) + val clip = ClipData.newPlainText(null, data) clipboard.primaryClip = clip actionMode?.finish() true @@ -89,15 +106,27 @@ class MessageListFragment : ServiceBoundFragment() { viewModel.selectedMessages.value.values.sortedBy { it.id }.map { - SpanFormatter.format(getString(R.string.message_format_copy), it.time, it.content) + if (it.name != null && it.content != null) { + SpanFormatter.format(getString(R.string.message_format_copy_complex), + it.time, + it.name, + it.content) + } else { + SpanFormatter.format(getString(R.string.message_format_copy), it.time, it.combined) + } }.forEach { builder.append(it) builder.append("\n") } + val data = if (builder.endsWith('\n')) + builder.subSequence(0, builder.length - 1) + else + builder + val intent = Intent(Intent.ACTION_SEND) intent.type = "text/plain" - intent.putExtra(Intent.EXTRA_TEXT, builder) + intent.putExtra(Intent.EXTRA_TEXT, data) requireContext().startActivity( Intent.createChooser( intent, @@ -311,7 +340,6 @@ class MessageListFragment : ServiceBoundFragment() { messageList.layoutManager.onRestoreInstanceState(getParcelable(KEY_STATE_LIST)) } - /* val avatar_size = resources.getDimensionPixelSize(R.dimen.avatar_size) val sizeProvider = FixedPreloadSizeProvider<String>(avatar_size, avatar_size) @@ -328,7 +356,6 @@ class MessageListFragment : ServiceBoundFragment() { val preloader = RecyclerViewPreloader(Glide.with(this), preloadModelProvider, sizeProvider, 10) messageList.addOnScrollListener(preloader) - */ return view } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt index 105c4ed2bcbac82c1e46591ed54804fbfb5c8804..aa288058870281229368e2289fd220c6447229b9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt @@ -359,7 +359,7 @@ class QuasselMessageRenderer @Inject constructor( val split = message.content.content.split("#:#") val (server1, server2) = split.last().split(' ') val usersAffected = split.size - 1 - FormattedMessage( + val it = FormattedMessage( id = message.content.messageId, time = timeFormatter.format(message.content.time.atZone(zoneId)), combined = context.resources.getQuantityString( @@ -369,6 +369,8 @@ class QuasselMessageRenderer @Inject constructor( isExpanded = message.isExpanded, isSelected = message.isSelected ) + println("hi") + it } Message_Type.Server, Message_Type.Info, diff --git a/app/src/main/res/values-de/strings_messages.xml b/app/src/main/res/values-de/strings_messages.xml index a5d25ede6faec1e74a0a598eaf98ec2bfc84ef3a..7680a2ff3abc2cb6e37e506f42ac51966dd93647 100644 --- a/app/src/main/res/values-de/strings_messages.xml +++ b/app/src/main/res/values-de/strings_messages.xml @@ -8,8 +8,8 @@ <string name="message_type_topic">Themenänderungen</string> <string name="message_format_copy">[%1$s] %2$s</string> + <string name="message_format_copy_complex">[%1$s] <%2$s> %3$s</string> - <string name="message_format_plain">%1$s%2$s: %3$s</string> <string name="message_format_action">— %1$s%2$s %3$s</string> <string name="message_format_notice">[%1$s%2$s] %3$s</string> <string name="message_format_nick">%1$s%2$s heißt jetzt %3$s%4$s</string> diff --git a/app/src/main/res/values/strings_messages.xml b/app/src/main/res/values/strings_messages.xml index ede83a7f7e7009b3adc0bc5c1afcd70b4ce299f3..1e28f646ae3d797ef660a12d355cd8804bf09401 100644 --- a/app/src/main/res/values/strings_messages.xml +++ b/app/src/main/res/values/strings_messages.xml @@ -16,8 +16,8 @@ </string-array> <string name="message_format_copy">[%1$s] %2$s</string> + <string name="message_format_copy_complex">[%1$s] <%2$s> %3$s</string> - <string name="message_format_plain">%1$s%2$s: %3$s</string> <string name="message_format_action">— %1$s%2$s %3$s</string> <string name="message_format_notice">[%1$s%2$s] %3$s</string> <string name="message_format_nick">%1$s%2$s is now known as %3$s%4$s</string>