diff options
Diffstat (limited to 'java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java')
-rw-r--r-- | java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java index db1dd4ac4..ecd36d359 100644 --- a/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java +++ b/java/com/android/dialer/compat/telephony/TelephonyManagerCompat.java @@ -198,4 +198,34 @@ public class TelephonyManagerCompat { context.sendBroadcast(intent); } } + + /** + * Returns network country iso for given {@code PhoneAccountHandle} for O+ devices and country iso + * for default sim for pre-O devices. + */ + public static String getNetworkCountryIsoForPhoneAccountHandle( + Context context, @Nullable PhoneAccountHandle phoneAccountHandle) { + return getTelephonyManagerForPhoneAccountHandle(context, phoneAccountHandle) + .getNetworkCountryIso(); + } + + /** + * Returns TelephonyManager for given {@code PhoneAccountHandle} for O+ devices and default {@code + * TelephonyManager} for pre-O devices. + */ + public static TelephonyManager getTelephonyManagerForPhoneAccountHandle( + Context context, @Nullable PhoneAccountHandle phoneAccountHandle) { + TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); + if (phoneAccountHandle == null) { + return telephonyManager; + } + if (VERSION.SDK_INT >= VERSION_CODES.O) { + TelephonyManager telephonyManagerForPhoneAccount = + telephonyManager.createForPhoneAccountHandle(phoneAccountHandle); + if (telephonyManagerForPhoneAccount != null) { + return telephonyManagerForPhoneAccount; + } + } + return telephonyManager; + } } |