@@ -35,8 +35,10 @@ import com.moez.QKSMS.common.util.Colors
3535import com.moez.QKSMS.common.util.DateFormatter
3636import com.moez.QKSMS.common.util.extensions.resolveThemeColor
3737import com.moez.QKSMS.common.util.extensions.setTint
38+ import com.moez.QKSMS.encryption.Encryptor
3839import com.moez.QKSMS.model.Conversation
3940import com.moez.QKSMS.util.PhoneNumberUtils
41+ import com.moez.QKSMS.util.Preferences
4042import kotlinx.android.synthetic.main.conversation_list_item.*
4143import kotlinx.android.synthetic.main.conversation_list_item.view.*
4244import javax.inject.Inject
@@ -46,7 +48,8 @@ class ConversationsAdapter @Inject constructor(
4648 private val context : Context ,
4749 private val dateFormatter : DateFormatter ,
4850 private val navigator : Navigator ,
49- private val phoneNumberUtils : PhoneNumberUtils
51+ private val phoneNumberUtils : PhoneNumberUtils ,
52+ private val prefs : Preferences
5053) : QkRealmAdapter<Conversation>() {
5154
5255 init {
@@ -114,10 +117,19 @@ class ConversationsAdapter @Inject constructor(
114117 }
115118 }
116119 holder.date.text = conversation.date.takeIf { it > 0 }?.let (dateFormatter::getConversationTimestamp)
120+
121+ val snippetText = if (conversation != null && ! conversation!! .encryptionKey.isEmpty()) {
122+ Encryptor ().tryDecode(conversation.snippet.toString(), conversation!! .encryptionKey)
123+ } else if (prefs.globalEncryptionKey.get().isNotEmpty()) {
124+ Encryptor ().tryDecode(conversation.snippet.toString(), prefs.globalEncryptionKey.get())
125+ } else {
126+ conversation.snippet
127+ }
128+
117129 holder.snippet.text = when {
118130 conversation.draft.isNotEmpty() -> conversation.draft
119- conversation.me -> context.getString(R .string.main_sender_you, conversation.snippet )
120- else -> conversation.snippet
131+ conversation.me -> context.getString(R .string.main_sender_you, snippetText )
132+ else -> snippetText
121133 }
122134 holder.pinned.isVisible = conversation.pinned
123135 holder.unread.setTint(theme)
0 commit comments