From 55833f0481a80ecbf9b65840714dd2f3ba16412d Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 7 Mar 2022 15:14:45 -0500 Subject: [PATCH] Parse phone numbers using local settings before asking gateway --- .../eu/siacs/conversations/ui/EnterJidDialog.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java index e0cb5cd48..e1d7a27b6 100644 --- a/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java +++ b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java @@ -29,6 +29,8 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; + +import io.michaelrocks.libphonenumber.android.NumberParseException; import org.solovyev.android.views.llm.LinearLayoutManager; import eu.siacs.conversations.Config; @@ -42,6 +44,7 @@ import eu.siacs.conversations.entities.ServiceDiscoveryResult; import eu.siacs.conversations.ui.adapter.KnownHostsAdapter; import eu.siacs.conversations.ui.interfaces.OnBackendConnected; import eu.siacs.conversations.ui.util.DelayedHintHelper; +import eu.siacs.conversations.utils.PhoneNumberUtilWrapper; import eu.siacs.conversations.xmpp.Jid; import eu.siacs.conversations.xmpp.OnGatewayResult; @@ -265,6 +268,14 @@ public class EnterJidDialog extends DialogFragment implements OnBackendConnected }; Pair> p = gatewayListAdapter.getSelected(); + final String type = gatewayListAdapter.getSelectedType(); + + // Resolve based on local settings before submission + if (type.equals("pstn") || type.equals("sms")) { + try { + binding.jid.setText(PhoneNumberUtilWrapper.normalize(getActivity(), binding.jid.getText().toString())); + } catch (NumberParseException | NullPointerException e) { } + } if (p == null) { finish.onGatewayResult(binding.jid.getText().toString(), null); @@ -472,6 +483,10 @@ public class EnterJidDialog extends DialogFragment implements OnBackendConnected return null; } + public String getSelectedType() { + return getType(selected); + } + public Pair> getSelected() { if(this.selected == 0) { return null; // No gateway, just use direct JID entry