From 2bc637ecb96f9c7e9845b29a7d6d53d2af587ccb Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 17 May 2019 10:48:00 -0700 Subject: [PATCH 1/2] 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 Merged-in: I72ee7af9f0b2662e1ac26b7d3db60c667d06c471 Change-Id: I72ee7af9f0b2662e1ac26b7d3db60c667d06c471 (cherry picked from commit 1c0a7a16c14e97c7c6428e57ef3ee8955ea2d509) --- .../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 f9e7fec721ee1..803bcc53bf991 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -1958,16 +1958,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; } } From 15fbc626624736c52412c33a68733b011cfebe76 Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 7 Jun 2019 10:40:09 -0700 Subject: [PATCH 2/2] Avoid UnsupportedOperationException from getDefaultSmsSubscriptionId() This is basically reverting to earlier behavior. Test: basic sanity Bug: 134375393 Merged-in: I44dc66f9f3d5d4dfcab95220d7a6a6be0ed5a825 Change-Id: I44dc66f9f3d5d4dfcab95220d7a6a6be0ed5a825 (cherry picked from commit 900aad99247f81c8f8c5724108c5c64a6f465caa) --- telephony/java/android/telephony/SmsManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index 803bcc53bf991..63e3801a9b4fc 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -1971,9 +1971,11 @@ public final class SmsManager { */ public static int getDefaultSmsSubscriptionId() { try { - return getISmsServiceOrThrow().getPreferredSmsSubscription(); + return getISmsService().getPreferredSmsSubscription(); } catch (RemoteException e) { return SubscriptionManager.INVALID_SUBSCRIPTION_ID; + } catch (NullPointerException e) { + return SubscriptionManager.INVALID_SUBSCRIPTION_ID; } }