Prevent overlapping contact refreshes.

Fixes #13852
Resolves #13874
This commit is contained in:
Sagar 2025-01-03 19:30:20 +05:30 committed by Greyson Parrelli
parent 6d7247ec03
commit dcddab0992
3 changed files with 17 additions and 4 deletions

View file

@ -370,7 +370,7 @@ public final class ContactSelectionListFragment extends LoggingFragment {
@Override @Override
public void onRefreshContactsClicked() { public void onRefreshContactsClicked() {
if (onRefreshListener != null) { if (onRefreshListener != null && !isRefreshing()) {
setRefreshing(true); setRefreshing(true);
onRefreshListener.onRefresh(); onRefreshListener.onRefresh();
} }
@ -570,6 +570,10 @@ public final class ContactSelectionListFragment extends LoggingFragment {
swipeRefresh.setRefreshing(refreshing); swipeRefresh.setRefreshing(refreshing);
} }
public boolean isRefreshing() {
return swipeRefresh.isRefreshing();
}
public void reset() { public void reset() {
contactSearchMediator.clearSelection(); contactSearchMediator.clearSelection();
fastScroller.setVisibility(View.GONE); fastScroller.setVisibility(View.GONE);

View file

@ -204,9 +204,11 @@ public class NewConversationActivity extends ContactSelectionActivity
} }
private void handleManualRefresh() { private void handleManualRefresh() {
if (!contactsFragment.isRefreshing()) {
contactsFragment.setRefreshing(true); contactsFragment.setRefreshing(true);
onRefresh(); onRefresh();
} }
}
private void handleCreateGroup() { private void handleCreateGroup() {
createGroupLauncher.launch(CreateGroupActivity.newIntent(this)); createGroupLauncher.launch(CreateGroupActivity.newIntent(this));

View file

@ -114,6 +114,13 @@ class NewCallActivity : ContactSelectionActivity(), ContactSelectionListFragment
startActivity(Intent(this, InviteActivity::class.java)) startActivity(Intent(this, InviteActivity::class.java))
} }
private fun handleManualRefresh() {
if (!contactsFragment.isRefreshing) {
contactsFragment.isRefreshing = true
onRefresh()
}
}
private inner class NewCallMenuProvider : MenuProvider { private inner class NewCallMenuProvider : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.new_call_menu, menu) menuInflater.inflate(R.menu.new_call_menu, menu)
@ -122,7 +129,7 @@ class NewCallActivity : ContactSelectionActivity(), ContactSelectionListFragment
override fun onMenuItemSelected(menuItem: MenuItem): Boolean { override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
when (menuItem.itemId) { when (menuItem.itemId) {
android.R.id.home -> ActivityCompat.finishAfterTransition(this@NewCallActivity) android.R.id.home -> ActivityCompat.finishAfterTransition(this@NewCallActivity)
R.id.menu_refresh -> onRefresh() R.id.menu_refresh -> handleManualRefresh()
R.id.menu_invite -> startActivity(Intent(this@NewCallActivity, InviteActivity::class.java)) R.id.menu_invite -> startActivity(Intent(this@NewCallActivity, InviteActivity::class.java))
} }