From 00f62172c10ec78d2f0dfbb1341da64624a5f796 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 30 Mar 2018 22:32:08 +0200 Subject: [PATCH] Several minor bugfixes --- .../ui/chat/messages/MessageAdapter.kt | 2 +- .../ui/chat/messages/MessageListFragment.kt | 39 ++++++++++++++++--- .../chat/messages/QuasselMessageRenderer.kt | 4 +- .../main/res/values-de/strings_messages.xml | 2 +- app/src/main/res/values/strings_messages.xml | 2 +- 5 files changed, 39 insertions(+), 10 deletions(-) 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 2a4310464..a336d0f25 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 75fa1faf8..fe5e21bec 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 105c4ed2b..aa2880588 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 a5d25ede6..7680a2ff3 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 ede83a7f7..1e28f646a 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> -- GitLab