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 final static double INITIAL_ZOOM_LEVEL = 4; | ||||
| 		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_OUTLINE_SIZE = 3; | ||||
| 		public final static long LOCATION_FIX_TIME_DELTA = 1000 * 10; // ms | ||||
|  | ||||
| @ -54,7 +54,7 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod | ||||
| 	} | ||||
| 
 | ||||
| 	boolean isVideoMessage() { | ||||
| 		return this.isVideoMessage; | ||||
| 		return this.isVideoMessage && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2; | ||||
| 	} | ||||
| 
 | ||||
| 	private void processAsFile() { | ||||
| @ -160,7 +160,7 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void run() { | ||||
| 		if (isVideoMessage && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { | ||||
| 		if (this.isVideoMessage()) { | ||||
| 			try { | ||||
| 				processAsVideo(); | ||||
| 			} 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.widget.Marker; | ||||
| import eu.siacs.conversations.ui.widget.MyLocation; | ||||
| import eu.siacs.conversations.utils.LocationProvider; | ||||
| import eu.siacs.conversations.utils.ThemeHelper; | ||||
| 
 | ||||
| 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.widget.Marker; | ||||
| import eu.siacs.conversations.ui.widget.MyLocation; | ||||
| import eu.siacs.conversations.utils.LocationProvider; | ||||
| import eu.siacs.conversations.utils.ThemeHelper; | ||||
| 
 | ||||
| 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); | ||||
| 		setSupportActionBar((Toolbar) binding.toolbar); | ||||
| 		configureActionBar(getSupportActionBar()); | ||||
| 		setupMapView(binding.map, Config.Map.INITIAL_POS); | ||||
| 		setupMapView(binding.map, LocationProvider.getGeoPoint(this)); | ||||
| 
 | ||||
| 		this.binding.cancelButton.setOnClickListener(view -> { | ||||
| 			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.widget.Marker; | ||||
| import eu.siacs.conversations.ui.widget.MyLocation; | ||||
| import eu.siacs.conversations.utils.LocationProvider; | ||||
| 
 | ||||
| 
 | ||||
| public class ShowLocationActivity extends LocationActivity implements LocationListener { | ||||
| 
 | ||||
| 	private GeoPoint loc = Config.Map.INITIAL_POS; | ||||
| 	private GeoPoint loc = LocationProvider.FALLBACK; | ||||
| 	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(); | ||||
|     } | ||||
| 
 | ||||
|     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) { | ||||
|         try { | ||||
|             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 { | ||||
|         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)) { | ||||
|             throw new IllegalArgumentException("Not a valid phone number"); | ||||
|         } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch