From 1c0a7a16c14e97c7c6428e57ef3ee8955ea2d509 Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 17 May 2019 10:48:00 -0700 Subject: [PATCH] Fix the default sub id returned by SmsManager. SmsManager.getDefaultSmsSubscriptionId() did not handle the case of no default set with a single SIM present. This CL adds the handling for that. Test: manual SMS sanity on single sim and DSDS devices Bug: 132259056 Change-Id: I72ee7af9f0b2662e1ac26b7d3db60c667d06c471 --- .../java/android/telephony/SmsManager.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index 3b117414826cf..68602354d3b08 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -1962,16 +1962,22 @@ public final class SmsManager { } /** - * Get default sms subscription id + * Get default sms subscription id. * - * @return the user-defined default SMS subscription id or - * {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} if no default is set. + *

Note:This returns a value different from + * {@link SubscriptionManager#getDefaultSmsSubscriptionId} if the user has not chosen a default. + * In this case it returns the active subscription id if there's only one active subscription + * available. + * + * @return the user-defined default SMS subscription id, or the active subscription id if + * there's only one active subscription available, otherwise + * {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID}. */ public static int getDefaultSmsSubscriptionId() { try { - return SubscriptionManager.getDefaultSmsSubscriptionId(); - } catch (NullPointerException ex) { - return -1; + return getISmsServiceOrThrow().getPreferredSmsSubscription(); + } catch (RemoteException e) { + return SubscriptionManager.INVALID_SUBSCRIPTION_ID; } }