Add updated search hint text when filter is enabled.

This commit is contained in:
Alex Hart 2023-01-04 13:57:20 -04:00 committed by Greyson Parrelli
parent 54d0df9a05
commit ec3ec969eb
5 changed files with 23 additions and 0 deletions

View file

@ -7,6 +7,7 @@ import android.util.AttributeSet
import android.view.View
import android.view.ViewAnimationUtils
import android.widget.EditText
import androidx.annotation.StringRes
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.animation.addListener
import androidx.core.widget.addTextChangedListener
@ -49,6 +50,10 @@ class Material3SearchToolbar @JvmOverloads constructor(
})
}
fun setSearchInputHint(@StringRes hintStringRes: Int) {
input.setHint(hintStringRes)
}
fun display(x: Float, y: Float) {
if (Build.VERSION.SDK_INT < 21) {
visibility = VISIBLE

View file

@ -114,10 +114,12 @@ import org.thoughtcrime.securesms.components.voice.VoiceNotePlayerView;
import org.thoughtcrime.securesms.contacts.sync.CdsPermanentErrorBottomSheet;
import org.thoughtcrime.securesms.contacts.sync.CdsTemporaryErrorBottomSheet;
import org.thoughtcrime.securesms.conversation.ConversationFragment;
import org.thoughtcrime.securesms.conversationlist.chatfilter.ConversationFilterRequest;
import org.thoughtcrime.securesms.conversationlist.chatfilter.ConversationFilterSource;
import org.thoughtcrime.securesms.conversationlist.chatfilter.ConversationListFilterPullView;
import org.thoughtcrime.securesms.conversationlist.chatfilter.FilterLerp;
import org.thoughtcrime.securesms.conversationlist.model.Conversation;
import org.thoughtcrime.securesms.conversationlist.model.ConversationFilter;
import org.thoughtcrime.securesms.conversationlist.model.UnreadPayments;
import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo;
import org.thoughtcrime.securesms.database.SignalDatabase;
@ -688,6 +690,8 @@ public class ConversationListFragment extends MainFragment implements ActionMode
}
private void initializeSearchListener() {
viewModel.getConversationFilterRequest().observe(getViewLifecycleOwner(), this::updateSearchToolbarHint);
requireCallback().getSearchAction().setOnClickListener(v -> {
fadeOutButtonsAndMegaphone(250);
requireCallback().onSearchOpened();
@ -725,9 +729,16 @@ public class ConversationListFragment extends MainFragment implements ActionMode
fadeInButtonsAndMegaphone(250);
}
});
updateSearchToolbarHint(Objects.requireNonNull(viewModel.getConversationFilterRequest().getValue()));
});
}
private void updateSearchToolbarHint(@NonNull ConversationFilterRequest conversationFilterRequest) {
requireCallback().getSearchToolbar().get().setSearchInputHint(
conversationFilterRequest.getFilter() == ConversationFilter.OFF ? R.string.SearchToolbar_search : R.string.SearchToolbar_search_unread_chats
);
}
private void initializeVoiceNotePlayer() {
mediaControllerOwner.getVoiceNoteMediaController().getVoiceNotePlayerViewState().observe(getViewLifecycleOwner(), state -> {
if (state.isPresent()) {

View file

@ -175,6 +175,10 @@ class ConversationListViewModel extends ViewModel {
return unreadPaymentsLiveData;
}
@NonNull LiveData<ConversationFilterRequest> getConversationFilterRequest() {
return conversationFilterRequest;
}
public int getPinnedCount() {
return pinnedCount;
}

View file

@ -106,6 +106,7 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l
val searchBinder = requireListener<SearchBinder>()
searchBinder.getSearchAction().setOnClickListener {
searchBinder.onSearchOpened()
searchBinder.getSearchToolbar().get().setSearchInputHint(R.string.SearchToolbar_search)
searchBinder.getSearchToolbar().get().listener = object : Material3SearchToolbar.Listener {
override fun onSearchTextChange(text: String) {

View file

@ -2074,6 +2074,8 @@
<!-- SearchToolbar -->
<string name="SearchToolbar_search">Search</string>
<!-- Hint when searching filtered chat content -->
<string name="SearchToolbar_search_unread_chats">Search unread chats</string>
<string name="SearchToolbar_search_for_conversations_contacts_and_messages">Search for conversations, contacts, and messages</string>
<!-- Material3 Search Toolbar -->