Do country code detection if we can't get the full number off SIM.

This commit is contained in:
Moxie Marlinspike 2014-06-03 19:16:27 -07:00
parent db356a0ec9
commit df1c96a662

View File

@ -1,9 +1,11 @@
package org.thoughtcrime.securesms;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
@ -104,17 +106,23 @@ public class RegistrationActivity extends SherlockActivity {
}
private void initializeNumber() {
String localNumber = org.whispersystems.textsecure.util.Util.getDeviceE164Number(this);
PhoneNumberUtil numberUtil = PhoneNumberUtil.getInstance();
String localNumber = org.whispersystems.textsecure.util.Util.getDeviceE164Number(this);
try {
if (!Util.isEmpty(localNumber)) {
PhoneNumberUtil numberUtil = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber localNumberObject = numberUtil.parse(localNumber, null);
if (localNumberObject != null) {
this.countryCode.setText(localNumberObject.getCountryCode()+"");
this.number.setText(localNumberObject.getNationalNumber()+"");
}
} else {
String simCountryIso = ((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getSimCountryIso();
if (!Util.isEmpty(simCountryIso)) {
this.countryCode.setText(numberUtil.getCountryCodeForRegion(simCountryIso.toUpperCase())+"");
}
}
} catch (NumberParseException npe) {
Log.w("CreateAccountActivity", npe);