try to guess inital location in ShareLocation based on sim card
This commit is contained in:
parent
ae9bfe1643
commit
8f27a177b0
|
@ -173,7 +173,6 @@ public final class Config {
|
||||||
public static final class Map {
|
public static final class Map {
|
||||||
public final static double INITIAL_ZOOM_LEVEL = 4;
|
public final static double INITIAL_ZOOM_LEVEL = 4;
|
||||||
public final static double FINAL_ZOOM_LEVEL = 15;
|
public final static double FINAL_ZOOM_LEVEL = 15;
|
||||||
public final static GeoPoint INITIAL_POS = new GeoPoint(33.805278, -84.171389);
|
|
||||||
public final static int MY_LOCATION_INDICATOR_SIZE = 10;
|
public final static int MY_LOCATION_INDICATOR_SIZE = 10;
|
||||||
public final static int MY_LOCATION_INDICATOR_OUTLINE_SIZE = 3;
|
public final static int MY_LOCATION_INDICATOR_OUTLINE_SIZE = 3;
|
||||||
public final static long LOCATION_FIX_TIME_DELTA = 1000 * 10; // ms
|
public final static long LOCATION_FIX_TIME_DELTA = 1000 * 10; // ms
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isVideoMessage() {
|
boolean isVideoMessage() {
|
||||||
return this.isVideoMessage;
|
return this.isVideoMessage && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processAsFile() {
|
private void processAsFile() {
|
||||||
|
@ -160,7 +160,7 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (isVideoMessage && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
if (this.isVideoMessage()) {
|
||||||
try {
|
try {
|
||||||
processAsVideo();
|
processAsVideo();
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
|
|
|
@ -39,6 +39,7 @@ import eu.siacs.conversations.services.QuickConversationsService;
|
||||||
import eu.siacs.conversations.ui.util.LocationHelper;
|
import eu.siacs.conversations.ui.util.LocationHelper;
|
||||||
import eu.siacs.conversations.ui.widget.Marker;
|
import eu.siacs.conversations.ui.widget.Marker;
|
||||||
import eu.siacs.conversations.ui.widget.MyLocation;
|
import eu.siacs.conversations.ui.widget.MyLocation;
|
||||||
|
import eu.siacs.conversations.utils.LocationProvider;
|
||||||
import eu.siacs.conversations.utils.ThemeHelper;
|
import eu.siacs.conversations.utils.ThemeHelper;
|
||||||
|
|
||||||
public abstract class LocationActivity extends ActionBarActivity implements LocationListener {
|
public abstract class LocationActivity extends ActionBarActivity implements LocationListener {
|
||||||
|
|
|
@ -22,6 +22,7 @@ import eu.siacs.conversations.databinding.ActivityShareLocationBinding;
|
||||||
import eu.siacs.conversations.ui.util.LocationHelper;
|
import eu.siacs.conversations.ui.util.LocationHelper;
|
||||||
import eu.siacs.conversations.ui.widget.Marker;
|
import eu.siacs.conversations.ui.widget.Marker;
|
||||||
import eu.siacs.conversations.ui.widget.MyLocation;
|
import eu.siacs.conversations.ui.widget.MyLocation;
|
||||||
|
import eu.siacs.conversations.utils.LocationProvider;
|
||||||
import eu.siacs.conversations.utils.ThemeHelper;
|
import eu.siacs.conversations.utils.ThemeHelper;
|
||||||
|
|
||||||
public class ShareLocationActivity extends LocationActivity implements LocationListener {
|
public class ShareLocationActivity extends LocationActivity implements LocationListener {
|
||||||
|
@ -55,7 +56,7 @@ public class ShareLocationActivity extends LocationActivity implements LocationL
|
||||||
this.binding = DataBindingUtil.setContentView(this,R.layout.activity_share_location);
|
this.binding = DataBindingUtil.setContentView(this,R.layout.activity_share_location);
|
||||||
setSupportActionBar((Toolbar) binding.toolbar);
|
setSupportActionBar((Toolbar) binding.toolbar);
|
||||||
configureActionBar(getSupportActionBar());
|
configureActionBar(getSupportActionBar());
|
||||||
setupMapView(binding.map, Config.Map.INITIAL_POS);
|
setupMapView(binding.map, LocationProvider.getGeoPoint(this));
|
||||||
|
|
||||||
this.binding.cancelButton.setOnClickListener(view -> {
|
this.binding.cancelButton.setOnClickListener(view -> {
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
|
|
|
@ -30,11 +30,12 @@ import eu.siacs.conversations.ui.util.LocationHelper;
|
||||||
import eu.siacs.conversations.ui.util.UriHelper;
|
import eu.siacs.conversations.ui.util.UriHelper;
|
||||||
import eu.siacs.conversations.ui.widget.Marker;
|
import eu.siacs.conversations.ui.widget.Marker;
|
||||||
import eu.siacs.conversations.ui.widget.MyLocation;
|
import eu.siacs.conversations.ui.widget.MyLocation;
|
||||||
|
import eu.siacs.conversations.utils.LocationProvider;
|
||||||
|
|
||||||
|
|
||||||
public class ShowLocationActivity extends LocationActivity implements LocationListener {
|
public class ShowLocationActivity extends LocationActivity implements LocationListener {
|
||||||
|
|
||||||
private GeoPoint loc = Config.Map.INITIAL_POS;
|
private GeoPoint loc = LocationProvider.FALLBACK;
|
||||||
private ActivityShowLocationBinding binding;
|
private ActivityShowLocationBinding binding;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
package eu.siacs.conversations.utils;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.telephony.TelephonyManager;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import org.osmdroid.util.GeoPoint;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import eu.siacs.conversations.Config;
|
||||||
|
import eu.siacs.conversations.R;
|
||||||
|
|
||||||
|
public class LocationProvider {
|
||||||
|
|
||||||
|
public static final GeoPoint FALLBACK = new GeoPoint(0.0,0.0);
|
||||||
|
|
||||||
|
public static String getUserCountry(Context context) {
|
||||||
|
try {
|
||||||
|
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
|
final String simCountry = tm.getSimCountryIso();
|
||||||
|
if (simCountry != null && simCountry.length() == 2) { // SIM country code is available
|
||||||
|
return simCountry.toUpperCase(Locale.US);
|
||||||
|
} else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable)
|
||||||
|
String networkCountry = tm.getNetworkCountryIso();
|
||||||
|
if (networkCountry != null && networkCountry.length() == 2) { // network country code is available
|
||||||
|
return networkCountry.toUpperCase(Locale.US);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// fallthrough
|
||||||
|
}
|
||||||
|
Locale locale = Locale.getDefault();
|
||||||
|
return locale.getCountry();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GeoPoint getGeoPoint(Context context) {
|
||||||
|
return getGeoPoint(context, getUserCountry(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static synchronized GeoPoint getGeoPoint(Context context, String country) {
|
||||||
|
try {
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(context.getResources().openRawResource(R.raw.countries)));
|
||||||
|
String line;
|
||||||
|
while((line = reader.readLine()) != null) {
|
||||||
|
String[] parts = line.split("\\s+",4);
|
||||||
|
if (parts.length == 4) {
|
||||||
|
if (country.equalsIgnoreCase(parts[0])) {
|
||||||
|
try {
|
||||||
|
return new GeoPoint(Double.parseDouble(parts[1]), Double.parseDouble(parts[2]));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return FALLBACK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.d(Config.LOGTAG,"unable to parse line="+line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.d(Config.LOGTAG,e.getMessage());
|
||||||
|
}
|
||||||
|
return FALLBACK;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
245
src/main/res/raw/countries
Normal file
245
src/main/res/raw/countries
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
AD 42.546245 1.601554 Andorra
|
||||||
|
AE 23.424076 53.847818 United Arab Emirates
|
||||||
|
AF 33.93911 67.709953 Afghanistan
|
||||||
|
AG 17.060816 -61.796428 Antigua and Barbuda
|
||||||
|
AI 18.220554 -63.068615 Anguilla
|
||||||
|
AL 41.153332 20.168331 Albania
|
||||||
|
AM 40.069099 45.038189 Armenia
|
||||||
|
AN 12.226079 -69.060087 Netherlands Antilles
|
||||||
|
AO -11.202692 17.873887 Angola
|
||||||
|
AQ -75.250973 -0.071389 Antarctica
|
||||||
|
AR -38.416097 -63.616672 Argentina
|
||||||
|
AS -14.270972 -170.132217 American Samoa
|
||||||
|
AT 47.516231 14.550072 Austria
|
||||||
|
AU -25.274398 133.775136 Australia
|
||||||
|
AW 12.52111 -69.968338 Aruba
|
||||||
|
AZ 40.143105 47.576927 Azerbaijan
|
||||||
|
BA 43.915886 17.679076 Bosnia and Herzegovina
|
||||||
|
BB 13.193887 -59.543198 Barbados
|
||||||
|
BD 23.684994 90.356331 Bangladesh
|
||||||
|
BE 50.503887 4.469936 Belgium
|
||||||
|
BF 12.238333 -1.561593 Burkina Faso
|
||||||
|
BG 42.733883 25.48583 Bulgaria
|
||||||
|
BH 25.930414 50.637772 Bahrain
|
||||||
|
BI -3.373056 29.918886 Burundi
|
||||||
|
BJ 9.30769 2.315834 Benin
|
||||||
|
BM 32.321384 -64.75737 Bermuda
|
||||||
|
BN 4.535277 114.727669 Brunei
|
||||||
|
BO -16.290154 -63.588653 Bolivia
|
||||||
|
BR -14.235004 -51.92528 Brazil
|
||||||
|
BS 25.03428 -77.39628 Bahamas
|
||||||
|
BT 27.514162 90.433601 Bhutan
|
||||||
|
BV -54.423199 3.413194 Bouvet Island
|
||||||
|
BW -22.328474 24.684866 Botswana
|
||||||
|
BY 53.709807 27.953389 Belarus
|
||||||
|
BZ 17.189877 -88.49765 Belize
|
||||||
|
CA 56.130366 -106.346771 Canada
|
||||||
|
CC -12.164165 96.870956 Cocos [Keeling] Islands
|
||||||
|
CD -4.038333 21.758664 Congo [DRC]
|
||||||
|
CF 6.611111 20.939444 Central African Republic
|
||||||
|
CG -0.228021 15.827659 Congo [Republic]
|
||||||
|
CH 46.818188 8.227512 Switzerland
|
||||||
|
CI 7.539989 -5.54708 Côte d'Ivoire
|
||||||
|
CK -21.236736 -159.777671 Cook Islands
|
||||||
|
CL -35.675147 -71.542969 Chile
|
||||||
|
CM 7.369722 12.354722 Cameroon
|
||||||
|
CN 35.86166 104.195397 China
|
||||||
|
CO 4.570868 -74.297333 Colombia
|
||||||
|
CR 9.748917 -83.753428 Costa Rica
|
||||||
|
CU 21.521757 -77.781167 Cuba
|
||||||
|
CV 16.002082 -24.013197 Cape Verde
|
||||||
|
CX -10.447525 105.690449 Christmas Island
|
||||||
|
CY 35.126413 33.429859 Cyprus
|
||||||
|
CZ 49.817492 15.472962 Czech Republic
|
||||||
|
DE 51.165691 10.451526 Germany
|
||||||
|
DJ 11.825138 42.590275 Djibouti
|
||||||
|
DK 56.26392 9.501785 Denmark
|
||||||
|
DM 15.414999 -61.370976 Dominica
|
||||||
|
DO 18.735693 -70.162651 Dominican Republic
|
||||||
|
DZ 28.033886 1.659626 Algeria
|
||||||
|
EC -1.831239 -78.183406 Ecuador
|
||||||
|
EE 58.595272 25.013607 Estonia
|
||||||
|
EG 26.820553 30.802498 Egypt
|
||||||
|
EH 24.215527 -12.885834 Western Sahara
|
||||||
|
ER 15.179384 39.782334 Eritrea
|
||||||
|
ES 40.463667 -3.74922 Spain
|
||||||
|
ET 9.145 40.489673 Ethiopia
|
||||||
|
FI 61.92411 25.748151 Finland
|
||||||
|
FJ -16.578193 179.414413 Fiji
|
||||||
|
FK -51.796253 -59.523613 Falkland Islands [Islas Malvinas]
|
||||||
|
FM 7.425554 150.550812 Micronesia
|
||||||
|
FO 61.892635 -6.911806 Faroe Islands
|
||||||
|
FR 46.227638 2.213749 France
|
||||||
|
GA -0.803689 11.609444 Gabon
|
||||||
|
GB 55.378051 -3.435973 United Kingdom
|
||||||
|
GD 12.262776 -61.604171 Grenada
|
||||||
|
GE 42.315407 43.356892 Georgia
|
||||||
|
GF 3.933889 -53.125782 French Guiana
|
||||||
|
GG 49.465691 -2.585278 Guernsey
|
||||||
|
GH 7.946527 -1.023194 Ghana
|
||||||
|
GI 36.137741 -5.345374 Gibraltar
|
||||||
|
GL 71.706936 -42.604303 Greenland
|
||||||
|
GM 13.443182 -15.310139 Gambia
|
||||||
|
GN 9.945587 -9.696645 Guinea
|
||||||
|
GP 16.995971 -62.067641 Guadeloupe
|
||||||
|
GQ 1.650801 10.267895 Equatorial Guinea
|
||||||
|
GR 39.074208 21.824312 Greece
|
||||||
|
GS -54.429579 -36.587909 South Georgia and the South Sandwich Islands
|
||||||
|
GT 15.783471 -90.230759 Guatemala
|
||||||
|
GU 13.444304 144.793731 Guam
|
||||||
|
GW 11.803749 -15.180413 Guinea-Bissau
|
||||||
|
GY 4.860416 -58.93018 Guyana
|
||||||
|
GZ 31.354676 34.308825 Gaza Strip
|
||||||
|
HK 22.396428 114.109497 Hong Kong
|
||||||
|
HM -53.08181 73.504158 Heard Island and McDonald Islands
|
||||||
|
HN 15.199999 -86.241905 Honduras
|
||||||
|
HR 45.1 15.2 Croatia
|
||||||
|
HT 18.971187 -72.285215 Haiti
|
||||||
|
HU 47.162494 19.503304 Hungary
|
||||||
|
ID -0.789275 113.921327 Indonesia
|
||||||
|
IE 53.41291 -8.24389 Ireland
|
||||||
|
IL 31.046051 34.851612 Israel
|
||||||
|
IM 54.236107 -4.548056 Isle of Man
|
||||||
|
IN 20.593684 78.96288 India
|
||||||
|
IO -6.343194 71.876519 British Indian Ocean Territory
|
||||||
|
IQ 33.223191 43.679291 Iraq
|
||||||
|
IR 32.427908 53.688046 Iran
|
||||||
|
IS 64.963051 -19.020835 Iceland
|
||||||
|
IT 41.87194 12.56738 Italy
|
||||||
|
JE 49.214439 -2.13125 Jersey
|
||||||
|
JM 18.109581 -77.297508 Jamaica
|
||||||
|
JO 30.585164 36.238414 Jordan
|
||||||
|
JP 36.204824 138.252924 Japan
|
||||||
|
KE -0.023559 37.906193 Kenya
|
||||||
|
KG 41.20438 74.766098 Kyrgyzstan
|
||||||
|
KH 12.565679 104.990963 Cambodia
|
||||||
|
KI -3.370417 -168.734039 Kiribati
|
||||||
|
KM -11.875001 43.872219 Comoros
|
||||||
|
KN 17.357822 -62.782998 Saint Kitts and Nevis
|
||||||
|
KP 40.339852 127.510093 North Korea
|
||||||
|
KR 35.907757 127.766922 South Korea
|
||||||
|
KW 29.31166 47.481766 Kuwait
|
||||||
|
KY 19.513469 -80.566956 Cayman Islands
|
||||||
|
KZ 48.019573 66.923684 Kazakhstan
|
||||||
|
LA 19.85627 102.495496 Laos
|
||||||
|
LB 33.854721 35.862285 Lebanon
|
||||||
|
LC 13.909444 -60.978893 Saint Lucia
|
||||||
|
LI 47.166 9.555373 Liechtenstein
|
||||||
|
LK 7.873054 80.771797 Sri Lanka
|
||||||
|
LR 6.428055 -9.429499 Liberia
|
||||||
|
LS -29.609988 28.233608 Lesotho
|
||||||
|
LT 55.169438 23.881275 Lithuania
|
||||||
|
LU 49.815273 6.129583 Luxembourg
|
||||||
|
LV 56.879635 24.603189 Latvia
|
||||||
|
LY 26.3351 17.228331 Libya
|
||||||
|
MA 31.791702 -7.09262 Morocco
|
||||||
|
MC 43.750298 7.412841 Monaco
|
||||||
|
MD 47.411631 28.369885 Moldova
|
||||||
|
ME 42.708678 19.37439 Montenegro
|
||||||
|
MG -18.766947 46.869107 Madagascar
|
||||||
|
MH 7.131474 171.184478 Marshall Islands
|
||||||
|
MK 41.608635 21.745275 Macedonia [FYROM]
|
||||||
|
ML 17.570692 -3.996166 Mali
|
||||||
|
MM 21.913965 95.956223 Myanmar [Burma]
|
||||||
|
MN 46.862496 103.846656 Mongolia
|
||||||
|
MO 22.198745 113.543873 Macau
|
||||||
|
MP 17.33083 145.38469 Northern Mariana Islands
|
||||||
|
MQ 14.641528 -61.024174 Martinique
|
||||||
|
MR 21.00789 -10.940835 Mauritania
|
||||||
|
MS 16.742498 -62.187366 Montserrat
|
||||||
|
MT 35.937496 14.375416 Malta
|
||||||
|
MU -20.348404 57.552152 Mauritius
|
||||||
|
MV 3.202778 73.22068 Maldives
|
||||||
|
MW -13.254308 34.301525 Malawi
|
||||||
|
MX 23.634501 -102.552784 Mexico
|
||||||
|
MY 4.210484 101.975766 Malaysia
|
||||||
|
MZ -18.665695 35.529562 Mozambique
|
||||||
|
NA -22.95764 18.49041 Namibia
|
||||||
|
NC -20.904305 165.618042 New Caledonia
|
||||||
|
NE 17.607789 8.081666 Niger
|
||||||
|
NF -29.040835 167.954712 Norfolk Island
|
||||||
|
NG 9.081999 8.675277 Nigeria
|
||||||
|
NI 12.865416 -85.207229 Nicaragua
|
||||||
|
NL 52.132633 5.291266 Netherlands
|
||||||
|
NO 60.472024 8.468946 Norway
|
||||||
|
NP 28.394857 84.124008 Nepal
|
||||||
|
NR -0.522778 166.931503 Nauru
|
||||||
|
NU -19.054445 -169.867233 Niue
|
||||||
|
NZ -40.900557 174.885971 New Zealand
|
||||||
|
OM 21.512583 55.923255 Oman
|
||||||
|
PA 8.537981 -80.782127 Panama
|
||||||
|
PE -9.189967 -75.015152 Peru
|
||||||
|
PF -17.679742 -149.406843 French Polynesia
|
||||||
|
PG -6.314993 143.95555 Papua New Guinea
|
||||||
|
PH 12.879721 121.774017 Philippines
|
||||||
|
PK 30.375321 69.345116 Pakistan
|
||||||
|
PL 51.919438 19.145136 Poland
|
||||||
|
PM 46.941936 -56.27111 Saint Pierre and Miquelon
|
||||||
|
PN -24.703615 -127.439308 Pitcairn Islands
|
||||||
|
PR 18.220833 -66.590149 Puerto Rico
|
||||||
|
PS 31.952162 35.233154 Palestinian Territories
|
||||||
|
PT 39.399872 -8.224454 Portugal
|
||||||
|
PW 7.51498 134.58252 Palau
|
||||||
|
PY -23.442503 -58.443832 Paraguay
|
||||||
|
QA 25.354826 51.183884 Qatar
|
||||||
|
RE -21.115141 55.536384 Réunion
|
||||||
|
RO 45.943161 24.96676 Romania
|
||||||
|
RS 44.016521 21.005859 Serbia
|
||||||
|
RU 61.52401 105.318756 Russia
|
||||||
|
RW -1.940278 29.873888 Rwanda
|
||||||
|
SA 23.885942 45.079162 Saudi Arabia
|
||||||
|
SB -9.64571 160.156194 Solomon Islands
|
||||||
|
SC -4.679574 55.491977 Seychelles
|
||||||
|
SD 12.862807 30.217636 Sudan
|
||||||
|
SE 60.128161 18.643501 Sweden
|
||||||
|
SG 1.352083 103.819836 Singapore
|
||||||
|
SH -24.143474 -10.030696 Saint Helena
|
||||||
|
SI 46.151241 14.995463 Slovenia
|
||||||
|
SJ 77.553604 23.670272 Svalbard and Jan Mayen
|
||||||
|
SK 48.669026 19.699024 Slovakia
|
||||||
|
SL 8.460555 -11.779889 Sierra Leone
|
||||||
|
SM 43.94236 12.457777 San Marino
|
||||||
|
SN 14.497401 -14.452362 Senegal
|
||||||
|
SO 5.152149 46.199616 Somalia
|
||||||
|
SR 3.919305 -56.027783 Suriname
|
||||||
|
ST 0.18636 6.613081 São Tomé and Príncipe
|
||||||
|
SV 13.794185 -88.89653 El Salvador
|
||||||
|
SY 34.802075 38.996815 Syria
|
||||||
|
SZ -26.522503 31.465866 Swaziland
|
||||||
|
TC 21.694025 -71.797928 Turks and Caicos Islands
|
||||||
|
TD 15.454166 18.732207 Chad
|
||||||
|
TF -49.280366 69.348557 French Southern Territories
|
||||||
|
TG 8.619543 0.824782 Togo
|
||||||
|
TH 15.870032 100.992541 Thailand
|
||||||
|
TJ 38.861034 71.276093 Tajikistan
|
||||||
|
TK -8.967363 -171.855881 Tokelau
|
||||||
|
TL -8.874217 125.727539 Timor-Leste
|
||||||
|
TM 38.969719 59.556278 Turkmenistan
|
||||||
|
TN 33.886917 9.537499 Tunisia
|
||||||
|
TO -21.178986 -175.198242 Tonga
|
||||||
|
TR 38.963745 35.243322 Turkey
|
||||||
|
TT 10.691803 -61.222503 Trinidad and Tobago
|
||||||
|
TV -7.109535 177.64933 Tuvalu
|
||||||
|
TW 23.69781 120.960515 Taiwan
|
||||||
|
TZ -6.369028 34.888822 Tanzania
|
||||||
|
UA 48.379433 31.16558 Ukraine
|
||||||
|
UG 1.373333 32.290275 Uganda
|
||||||
|
UM U.S. Minor Outlying Islands
|
||||||
|
US 37.09024 -95.712891 United States
|
||||||
|
UY -32.522779 -55.765835 Uruguay
|
||||||
|
UZ 41.377491 64.585262 Uzbekistan
|
||||||
|
VA 41.902916 12.453389 Vatican City
|
||||||
|
VC 12.984305 -61.287228 Saint Vincent and the Grenadines
|
||||||
|
VE 6.42375 -66.58973 Venezuela
|
||||||
|
VG 18.420695 -64.639968 British Virgin Islands
|
||||||
|
VI 18.335765 -64.896335 U.S. Virgin Islands
|
||||||
|
VN 14.058324 108.277199 Vietnam
|
||||||
|
VU -15.376706 166.959158 Vanuatu
|
||||||
|
WF -13.768752 -177.156097 Wallis and Futuna
|
||||||
|
WS -13.759029 -172.104629 Samoa
|
||||||
|
XK 42.602636 20.902977 Kosovo
|
||||||
|
YE 15.552727 48.516388 Yemen
|
||||||
|
YT -12.8275 45.166244 Mayotte
|
||||||
|
ZA -30.559482 22.937506 South Africa
|
||||||
|
ZM -13.133897 27.849332 Zambia
|
||||||
|
ZW -19.015438 29.154857 Zimbabwe
|
|
@ -22,25 +22,6 @@ public class PhoneNumberUtilWrapper {
|
||||||
return locale.getDisplayCountry();
|
return locale.getDisplayCountry();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getUserCountry(Context context) {
|
|
||||||
try {
|
|
||||||
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
|
||||||
final String simCountry = tm.getSimCountryIso();
|
|
||||||
if (simCountry != null && simCountry.length() == 2) { // SIM country code is available
|
|
||||||
return simCountry.toUpperCase(Locale.US);
|
|
||||||
} else if (tm.getPhoneType() != TelephonyManager.PHONE_TYPE_CDMA) { // device is not 3G (would be unreliable)
|
|
||||||
String networkCountry = tm.getNetworkCountryIso();
|
|
||||||
if (networkCountry != null && networkCountry.length() == 2) { // network country code is available
|
|
||||||
return networkCountry.toUpperCase(Locale.US);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
// fallthrough
|
|
||||||
}
|
|
||||||
Locale locale = Locale.getDefault();
|
|
||||||
return locale.getCountry();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String toFormattedPhoneNumber(Context context, Jid jid) {
|
public static String toFormattedPhoneNumber(Context context, Jid jid) {
|
||||||
try {
|
try {
|
||||||
return getInstance(context).format(toPhoneNumber(context, jid), PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
|
return getInstance(context).format(toPhoneNumber(context, jid), PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
|
||||||
|
@ -54,7 +35,7 @@ public class PhoneNumberUtilWrapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String normalize(Context context, String input) throws IllegalArgumentException, NumberParseException {
|
public static String normalize(Context context, String input) throws IllegalArgumentException, NumberParseException {
|
||||||
final Phonenumber.PhoneNumber number = getInstance(context).parse(input, getUserCountry(context));
|
final Phonenumber.PhoneNumber number = getInstance(context).parse(input, LocationProvider.getUserCountry(context));
|
||||||
if (!getInstance(context).isValidNumber(number)) {
|
if (!getInstance(context).isValidNumber(number)) {
|
||||||
throw new IllegalArgumentException("Not a valid phone number");
|
throw new IllegalArgumentException("Not a valid phone number");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue