diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/conversations/ConversationsAdapter.kt b/presentation/src/main/java/com/moez/QKSMS/feature/conversations/ConversationsAdapter.kt index e9448d7e..b7fcdcda 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/conversations/ConversationsAdapter.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/conversations/ConversationsAdapter.kt @@ -109,16 +109,17 @@ class ConversationsAdapter @Inject constructor( holder.title.collapseEnabled = conversation.recipients.size > 1 holder.title.text = buildSpannedString { append(conversation.getTitle()) - if (conversation.draft.isNotEmpty()) { - color(theme) { append(" " + context.getString(R.string.main_draft)) } - } } holder.date.text = conversation.date.takeIf { it > 0 }?.let(dateFormatter::getConversationTimestamp) holder.snippet.text = when { - conversation.draft.isNotEmpty() -> conversation.draft + conversation.draft.isNotEmpty() -> context.getString(R.string.main_sender_draft, conversation.draft) conversation.me -> context.getString(R.string.main_sender_you, conversation.snippet) else -> conversation.snippet } + + // Make the preview in italics if draft + if (conversation.draft.isNotEmpty()) holder.snippet.setTypeface(null, Typeface.ITALIC) + holder.pinned.isVisible = conversation.pinned holder.unread.setTint(theme) } diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/widget/WidgetAdapter.kt b/presentation/src/main/java/com/moez/QKSMS/feature/widget/WidgetAdapter.kt index 9d355bfc..1a5f91c8 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/widget/WidgetAdapter.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/widget/WidgetAdapter.kt @@ -28,6 +28,7 @@ import android.widget.RemoteViewsService import androidx.core.text.bold import androidx.core.text.buildSpannedString import androidx.core.text.color +import androidx.core.text.italic import dev.octoshrimpy.quik.R import dev.octoshrimpy.quik.common.util.Colors import dev.octoshrimpy.quik.common.util.DateFormatter @@ -142,9 +143,6 @@ class WidgetAdapter(intent: Intent) : RemoteViewsService.RemoteViewsFactory { remoteViews.setTextColor(R.id.name, textPrimary) remoteViews.setTextViewText(R.id.name, boldText(buildSpannedString { append(conversation.getTitle()) - if (conversation.draft.isNotEmpty()) { - color(theme.theme) { append(" " + context.getString(R.string.main_draft)) } - } }, conversation.unread)) // Date @@ -154,12 +152,17 @@ class WidgetAdapter(intent: Intent) : RemoteViewsService.RemoteViewsFactory { // Snippet val snippet = when { - conversation.draft.isNotEmpty() -> conversation.draft + conversation.draft.isNotEmpty() -> context.getString( + R.string.main_sender_draft, + conversation.draft + ) + conversation.me -> context.getString(R.string.main_sender_you, conversation.snippet) else -> conversation.snippet } remoteViews.setTextColor(R.id.snippet, if (conversation.unread) textPrimary else textTertiary) remoteViews.setTextViewText(R.id.snippet, boldText(snippet, conversation.unread)) + remoteViews.setTextViewText(R.id.snippet, italicText(snippet, conversation.draft.isNotEmpty())) // set fill-in intent to be used for current item remoteViews.setOnClickFillInIntent( @@ -190,6 +193,12 @@ class WidgetAdapter(intent: Intent) : RemoteViewsService.RemoteViewsFactory { else -> text } + private fun italicText(text: CharSequence?, shouldBold: Boolean): CharSequence? = when { + shouldBold -> SpannableStringBuilder() + .italic { append(text) } + else -> text + } + override fun getLoadingView(): RemoteViews { val view = RemoteViews(context.packageName, R.layout.widget_loading) view.setTextViewText(R.id.loadingText, context.getText(R.string.widget_loading)) diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index c7a5c4b6..c157c103 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -62,6 +62,7 @@ Rename conversation Syncing messages… You: %s + Draft: %s Draft Results in messages %d messages