diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 3cdddcc1ca..c88b48f2f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -320,6 +320,7 @@ import org.thoughtcrime.securesms.util.hasNonTextSlide import org.thoughtcrime.securesms.util.isValidReactionTarget import org.thoughtcrime.securesms.util.padding import org.thoughtcrime.securesms.util.savedStateViewModel +import org.thoughtcrime.securesms.util.setIncognitoKeyboardEnabled import org.thoughtcrime.securesms.util.toMillis import org.thoughtcrime.securesms.util.viewModel import org.thoughtcrime.securesms.util.views.Stub @@ -3255,6 +3256,7 @@ class ConversationFragment : searchMenuItem!!.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { override fun onMenuItemActionExpand(item: MenuItem): Boolean { + searchView.setIncognitoKeyboardEnabled(TextSecurePreferences.isIncognitoKeyboardEnabled(requireContext())) searchView.setOnQueryTextListener(queryListener) isSearchRequested = true searchViewModel.onSearchOpened() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt index ef39be49e2..c91968ccc1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/EditTextExtensions.kt @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.util import android.widget.EditText +import androidx.appcompat.widget.SearchView /** * Since this value is only supported on API26+ we hard-code it here @@ -14,7 +15,19 @@ private const val INCOGNITO_KEYBOARD = 16777216 * be respected by all IMEs. */ fun EditText.setIncognitoKeyboardEnabled(isIncognitoKeyboardEnabled: Boolean) { - imeOptions = if (isIncognitoKeyboardEnabled) { + imeOptions = setIncognitoFlag(imeOptions, isIncognitoKeyboardEnabled) +} + +/** + * Enables or disables incognito-mode for the keyboard. Note that this might not + * be respected by all IMEs. + */ +fun SearchView.setIncognitoKeyboardEnabled(isIncognitoKeyboardEnabled: Boolean) { + imeOptions = setIncognitoFlag(imeOptions, isIncognitoKeyboardEnabled) +} + +private fun setIncognitoFlag(imeOptions: Int, isIncognitoKeyboardEnabled: Boolean): Int { + return if (isIncognitoKeyboardEnabled) { imeOptions or INCOGNITO_KEYBOARD } else { imeOptions and INCOGNITO_KEYBOARD.inv()