From 7c24e836feaff863ee6274244a6aa9ebf046e15b Mon Sep 17 00:00:00 2001 From: adbenitez Date: Thu, 19 Feb 2026 02:26:09 +0100 Subject: [PATCH] avoid deprecated `ContactSelectionListFragment.onActivityResult()` --- .../ContactSelectionListFragment.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index ff45edbae..fde94c9e0 100644 --- a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -32,6 +32,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -79,7 +81,6 @@ public class ContactSelectionListFragment extends Fragment public static final String SELECT_UNENCRYPTED_EXTRA = "select_unencrypted_extra"; public static final String ALLOW_CREATION = "allow_creation"; public static final String PRESELECTED_CONTACTS = "preselected_contacts"; - public static final int CONTACT_ADDR_RESULT_CODE = 61123; private DcContext dcContext; @@ -91,11 +92,26 @@ public class ContactSelectionListFragment extends Fragment private TextView emptyView; private ActionMode actionMode; private ActionMode.Callback actionModeCallback; + private ActivityResultLauncher newContactLauncher; @Override public void onActivityCreated(Bundle icicle) { super.onActivityCreated(icicle); + newContactLauncher = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) { + int contactId = result.getData().getIntExtra(NewContactActivity.CONTACT_ID_EXTRA, 0); + if (contactId != 0) { + selectedContacts.add(contactId); + deselectedContacts.remove(contactId); + } + getLoaderManager().restartLoader(0, null, ContactSelectionListFragment.this); + } + } + ); + dcContext = DcHelper.getContext(getActivity()); DcHelper.getEventCenter(getActivity()).addObserver(DcContext.DC_EVENT_CONTACTS_CHANGED, this); initializeCursor(); @@ -314,7 +330,7 @@ public class ContactSelectionListFragment extends Fragment intent.putExtra(NewContactActivity.ADDR_EXTRA, cursorFilter); } if (isMulti()) { - startActivityForResult(intent, CONTACT_ADDR_RESULT_CODE); + newContactLauncher.launch(intent); } else { requireContext().startActivity(intent); } @@ -363,16 +379,4 @@ public class ContactSelectionListFragment extends Fragment } } - @Override - public void onActivityResult(int reqCode, int resultCode, final Intent data) { - super.onActivityResult(reqCode, resultCode, data); - if (resultCode == Activity.RESULT_OK && reqCode == CONTACT_ADDR_RESULT_CODE) { - int contactId = data.getIntExtra(NewContactActivity.CONTACT_ID_EXTRA, 0); - if (contactId != 0) { - selectedContacts.add(contactId); - deselectedContacts.remove(contactId); - } - getLoaderManager().restartLoader(0, null, ContactSelectionListFragment.this); - } - } }