Compare commits

...

2 Commits
v ... v3.3.3

Author SHA1 Message Date
Moxie Marlinspike
8796dda8df Bump version to 3.3.3
// FREEBIE
2015-11-13 11:23:06 -08:00
Moxie Marlinspike
fbc1ec5c2e Don't E164 shortcodes
Fixes #4478
// FREEBIE
2015-11-13 10:49:11 -08:00
2 changed files with 25 additions and 3 deletions

View File

@@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.thoughtcrime.securesms"
android:versionCode="165"
android:versionName="3.3.2">
android:versionCode="166"
android:versionName="3.3.3">
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat"/>

View File

@@ -27,6 +27,11 @@ import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
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.TextSecurePreferences;
import org.thoughtcrime.securesms.util.VisibleForTesting;
@@ -144,7 +149,11 @@ public class CanonicalAddressDatabase {
long canonicalAddressId;
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) {
@@ -228,6 +237,19 @@ public class CanonicalAddressDatabase {
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 {
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {