mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-24 16:57:50 +00:00
parent
0c75e652eb
commit
21f04605c6
@ -27,6 +27,11 @@ import android.telephony.PhoneNumberUtils;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.google.i18n.phonenumbers.NumberParseException;
|
||||||
|
import com.google.i18n.phonenumbers.PhoneNumberUtil;
|
||||||
|
import com.google.i18n.phonenumbers.Phonenumber;
|
||||||
|
import com.google.i18n.phonenumbers.ShortNumberInfo;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.util.GroupUtil;
|
import org.thoughtcrime.securesms.util.GroupUtil;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.thoughtcrime.securesms.util.VisibleForTesting;
|
import org.thoughtcrime.securesms.util.VisibleForTesting;
|
||||||
@ -144,7 +149,11 @@ public class CanonicalAddressDatabase {
|
|||||||
long canonicalAddressId;
|
long canonicalAddressId;
|
||||||
|
|
||||||
if (isNumberAddress(address) && TextSecurePreferences.isPushRegistered(context)) {
|
if (isNumberAddress(address) && TextSecurePreferences.isPushRegistered(context)) {
|
||||||
address = PhoneNumberFormatter.formatNumber(address, TextSecurePreferences.getLocalNumber(context));
|
String localNumber = TextSecurePreferences.getLocalNumber(context);
|
||||||
|
|
||||||
|
if (!isShortCode(localNumber, address)) {
|
||||||
|
address = PhoneNumberFormatter.formatNumber(address, localNumber);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((canonicalAddressId = getCanonicalAddressFromCache(address)) != -1) {
|
if ((canonicalAddressId = getCanonicalAddressFromCache(address)) != -1) {
|
||||||
@ -228,6 +237,19 @@ public class CanonicalAddressDatabase {
|
|||||||
return PhoneNumberUtils.isWellFormedSmsAddress(number);
|
return PhoneNumberUtils.isWellFormedSmsAddress(number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isShortCode(@NonNull String localNumber, @NonNull String number) {
|
||||||
|
try {
|
||||||
|
PhoneNumberUtil util = PhoneNumberUtil.getInstance();
|
||||||
|
Phonenumber.PhoneNumber localNumberObject = util.parse(localNumber, null);
|
||||||
|
String localCountryCode = util.getRegionCodeForNumber(localNumberObject);
|
||||||
|
|
||||||
|
return ShortNumberInfo.getInstance().isValidShortNumberForRegion(number, localCountryCode);
|
||||||
|
} catch (NumberParseException e) {
|
||||||
|
Log.w(TAG, e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class DatabaseHelper extends SQLiteOpenHelper {
|
private static class DatabaseHelper extends SQLiteOpenHelper {
|
||||||
|
|
||||||
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
|
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user