summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/assisteddialing/LocationDetector.java
diff options
context:
space:
mode:
authorerfanian <erfanian@google.com>2017-10-31 11:24:48 -0700
committerzachh <zachh@google.com>2017-11-01 22:00:13 +0000
commitf994261b7c1372778bf1f05b1d32427738e84a7a (patch)
treec074119b54f0669083c7e4898765ebd8efeee89e /java/com/android/dialer/assisteddialing/LocationDetector.java
parent5c2d992ba8bb325eec435bef97684317fb800cc6 (diff)
Add country code support to ad settings.
This allows users to override our automatically selected country code. Bug: 63994464 Test: unit tests PiperOrigin-RevId: 174064853 Change-Id: I12bd770300b041f3c7d5b8d5f5c0b75c4945492e
Diffstat (limited to 'java/com/android/dialer/assisteddialing/LocationDetector.java')
-rw-r--r--java/com/android/dialer/assisteddialing/LocationDetector.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/java/com/android/dialer/assisteddialing/LocationDetector.java b/java/com/android/dialer/assisteddialing/LocationDetector.java
index 684068912..8e7535c1b 100644
--- a/java/com/android/dialer/assisteddialing/LocationDetector.java
+++ b/java/com/android/dialer/assisteddialing/LocationDetector.java
@@ -19,7 +19,9 @@ package com.android.dialer.assisteddialing;
import android.annotation.TargetApi;
import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import java.util.Locale;
import java.util.Optional;
@@ -32,12 +34,16 @@ import java.util.Optional;
final class LocationDetector {
private final TelephonyManager telephonyManager;
+ private final String userProvidedHomeCountry;
- public LocationDetector(@NonNull TelephonyManager telephonyManager) {
+ public LocationDetector(
+ @NonNull TelephonyManager telephonyManager, @Nullable String userProvidedHomeCountry) {
if (telephonyManager == null) {
throw new NullPointerException("Provided TelephonyManager was null");
}
+
this.telephonyManager = telephonyManager;
+ this.userProvidedHomeCountry = userProvidedHomeCountry;
}
// TODO(erfanian): confirm this is based on ISO 3166-1 alpha-2. libphonenumber expects Unicode's
@@ -50,8 +56,16 @@ final class LocationDetector {
@SuppressWarnings("AndroidApiChecker") // Use of optional
@TargetApi(VERSION_CODES.N)
public Optional<String> getUpperCaseUserHomeCountry() {
+
+ if (!TextUtils.isEmpty(userProvidedHomeCountry)) {
+ LogUtil.i(
+ "LocationDetector.getUpperCaseUserRoamingCountry", "user provided home country code");
+ return Optional.of(userProvidedHomeCountry.toUpperCase(Locale.US));
+ }
+
String simCountryIso = telephonyManager.getSimCountryIso();
if (simCountryIso != null) {
+ LogUtil.i("LocationDetector.getUpperCaseUserRoamingCountry", "using sim country iso");
return Optional.of(telephonyManager.getSimCountryIso().toUpperCase(Locale.US));
}
LogUtil.i("LocationDetector.getUpperCaseUserHomeCountry", "user home country was null");