summaryrefslogtreecommitdiff
path: root/java/com/android/voicemail/impl/CarrierIdentifier.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/voicemail/impl/CarrierIdentifier.java')
-rw-r--r--java/com/android/voicemail/impl/CarrierIdentifier.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/java/com/android/voicemail/impl/CarrierIdentifier.java b/java/com/android/voicemail/impl/CarrierIdentifier.java
index 82b6a2440..76576e7ad 100644
--- a/java/com/android/voicemail/impl/CarrierIdentifier.java
+++ b/java/com/android/voicemail/impl/CarrierIdentifier.java
@@ -19,14 +19,16 @@ package com.android.voicemail.impl;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build.VERSION_CODES;
+import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import com.google.auto.value.AutoValue;
+import java.util.Optional;
/** Identifies a carrier. */
@AutoValue
@TargetApi(VERSION_CODES.O)
-@SuppressWarnings("missingpermission")
+@SuppressWarnings({"missingpermission", "AndroidApiChecker"})
public abstract class CarrierIdentifier {
public abstract String mccMnc();
@@ -52,20 +54,25 @@ public abstract class CarrierIdentifier {
return new AutoValue_CarrierIdentifier.Builder().setGid1("");
}
- public static CarrierIdentifier forHandle(
- Context context, PhoneAccountHandle phoneAccountHandle) {
+ /** Create a identifier for a {@link PhoneAccountHandle}. Absent if the handle is not valid. */
+ public static Optional<CarrierIdentifier> forHandle(
+ Context context, @Nullable PhoneAccountHandle phoneAccountHandle) {
+ if (phoneAccountHandle == null) {
+ return Optional.empty();
+ }
TelephonyManager telephonyManager =
context
.getSystemService(TelephonyManager.class)
.createForPhoneAccountHandle(phoneAccountHandle);
if (telephonyManager == null) {
- throw new IllegalArgumentException("Invalid PhoneAccountHandle");
+ return Optional.empty();
}
String gid1 = telephonyManager.getGroupIdLevel1();
if (gid1 == null) {
gid1 = "";
}
- return builder().setMccMnc(telephonyManager.getSimOperator()).setGid1(gid1).build();
+ return Optional.of(
+ builder().setMccMnc(telephonyManager.getSimOperator()).setGid1(gid1).build());
}
}