(@NonNull Uri uri)
| 214 | } |
| 215 | |
| 216 | static @NonNull |
| 217 | Uri guessScheme(@NonNull Uri uri) { |
| 218 | if (uri.getScheme() != null) |
| 219 | return uri; |
| 220 | |
| 221 | String url = uri.toString(); |
| 222 | if (Helper.EMAIL_ADDRESS.matcher(url).matches()) |
| 223 | return Uri.parse("mailto:" + url); |
| 224 | else if (PatternsCompat.IP_ADDRESS.matcher(url).matches()) |
| 225 | return Uri.parse("https://" + url); |
| 226 | else if (android.util.Patterns.PHONE.matcher(url).matches()) |
| 227 | // Patterns.PHONE (\+[0-9]+[\- \.]*)?(\([0-9]+\)[\- \.]*)?([0-9][0-9\- \.]+[0-9]) |
| 228 | // PhoneNumberUtils.isGlobalPhoneNumber() [\+]?[0-9.-]+ |
| 229 | return Uri.parse("tel:" + url); |
| 230 | else { |
| 231 | Uri g = Uri.parse(URLUtil.guessUrl(url)); |
| 232 | String scheme = g.getScheme(); |
| 233 | if (scheme == null) |
| 234 | return uri; |
| 235 | else if ("http".equals(scheme)) |
| 236 | scheme = "https"; |
| 237 | return Uri.parse(scheme + "://" + url); |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | static int getSuffixCount(Context context) { |
| 242 | ensureSuffixList(context); |
no test coverage detected