From ee3886285b807c96a25af8fd5b088984c0d3487b Mon Sep 17 00:00:00 2001 From: wch423 Date: Mon, 19 Jan 2026 15:46:00 +0100 Subject: [PATCH] Show "No results found for" during Contact search if results are empty --- CHANGELOG.md | 1 + .../securesms/ContactSelectionListFragment.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3293e4ae2..1ad674463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Mark external links with " ↗" to make them clear * Make QR code larger on "Add Second Device" screen * Add indication for blocked contacts in user profile +* Show hint for empty contact search results * Fix: Show dialog if pasted QR codes are invalid * Fix: Refresh chat list when returning from conversation if selected profile changed * Update to core 2.36.0 diff --git a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index e7918ca01..e23979b28 100644 --- a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -29,6 +29,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; @@ -84,6 +85,7 @@ public class ContactSelectionListFragment extends Fragment private OnContactSelectedListener onContactSelectedListener; private String cursorFilter; private RecyclerView recyclerView; + private TextView emptyView; private ActionMode actionMode; private ActionMode.Callback actionModeCallback; @@ -113,6 +115,7 @@ public class ContactSelectionListFragment extends Fragment View view = inflater.inflate(R.layout.contact_selection_list_fragment, container, false); recyclerView = ViewUtil.findById(view, R.id.recycler_view); + emptyView = ViewUtil.findById(view, android.R.id.empty); // add padding to avoid content hidden behind system bars ViewUtil.applyWindowInsets(recyclerView, true, false, true, true); @@ -266,7 +269,17 @@ public class ContactSelectionListFragment extends Fragment @Override public void onLoadFinished(Loader loader, DcContactsLoader.Ret data) { - ((ContactSelectionListAdapter) recyclerView.getAdapter()).changeData(data); + ContactSelectionListAdapter adapter = (ContactSelectionListAdapter) recyclerView.getAdapter(); + adapter.changeData(data); + if (emptyView != null) { + if (adapter.getItemCount() > 0) { + emptyView.setVisibility(View.GONE); + emptyView.setText(""); + } else { + emptyView.setVisibility(View.VISIBLE); + emptyView.setText(getString(R.string.search_no_result_for_x, cursorFilter)); + } + } } @Override