From 6aa0024aa98f1295d13a9c8b397b2f38c09ad386 Mon Sep 17 00:00:00 2001 From: ThomasSession Date: Tue, 1 Apr 2025 13:35:26 +1030 Subject: [PATCH] Searching for "Note to self" should show note to self in search results (#1070) --- .../org/thoughtcrime/securesms/home/HomeActivity.kt | 7 ++++++- .../securesms/home/search/GlobalSearchResult.kt | 3 ++- .../securesms/home/search/GlobalSearchViewModel.kt | 12 +++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt index d8d32cf5c8..a5a6713912 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt @@ -269,7 +269,12 @@ class HomeActivity : ScreenLockActionBarActivity(), addAll(result.groupedContacts) } else -> buildList { - result.contactAndGroupList.takeUnless { it.isEmpty() }?.let { + val conversations = result.contactAndGroupList.toMutableList() + if(result.showNoteToSelf){ + conversations.add(GlobalSearchAdapter.Model.SavedMessages(publicKey)) + } + + conversations.takeUnless { it.isEmpty() }?.let { add(GlobalSearchAdapter.Model.Header(R.string.sessionConversations)) addAll(it) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchResult.kt b/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchResult.kt index 29e11067a0..c2c5f01a20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchResult.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchResult.kt @@ -9,7 +9,8 @@ data class GlobalSearchResult( val query: String, val contacts: List = emptyList(), val threads: List = emptyList(), - val messages: List = emptyList() + val messages: List = emptyList(), + val showNoteToSelf: Boolean = false ) { val isEmpty: Boolean get() = contacts.isEmpty() && threads.isEmpty() && messages.isEmpty() diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchViewModel.kt index dd94bf04d7..1afd54f92e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/search/GlobalSearchViewModel.kt @@ -28,6 +28,7 @@ import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.launch import kotlinx.coroutines.plus import kotlinx.coroutines.withContext +import network.loki.messenger.R import org.session.libsignal.utilities.Log import org.thoughtcrime.securesms.database.DatabaseContentProviders import org.thoughtcrime.securesms.dependencies.ConfigFactory @@ -56,6 +57,8 @@ class GlobalSearchViewModel @Inject constructor( configFactory.configUpdateNotifications ) + val noteToSelfString by lazy { application.getString(R.string.noteToSelf).lowercase() } + val result = combine( _queryText, observeChangesAffectingSearch().onStart { emit(Unit) } @@ -73,7 +76,14 @@ class GlobalSearchViewModel @Inject constructor( ) } } else { - searchRepository.suspendQuery(query).toGlobalSearchResult() + val results = searchRepository.suspendQuery(query).toGlobalSearchResult() + + // show "Note to Self" is the user searches for parts of"Note to Self" + if(noteToSelfString.contains(query.lowercase())){ + results.copy(showNoteToSelf = true) + } else { + results + } } } catch (e: Exception) { Log.e("GlobalSearchViewModel", "Error searching len = ${query.length}", e)