diff options
author | 2020-10-23 21:03:16 +0000 | |
---|---|---|
committer | 2020-10-23 21:03:16 +0000 | |
commit | 22244c8ed3961c92ae11e8c0d372230677060e70 (patch) | |
tree | 9c693589261b0f5aff57a5a8bcf1b39f6ba74e3a | |
parent | 8500c90d5c2223b914f4f49fea63939878ba54ee (diff) | |
parent | 75c5434ddd905f8ab14515954ff32b38a69218f2 (diff) |
Merge "Update PhoneStateListener#onOutgoingEmergencySms" am: c5d02da0f6 am: b37753c29a am: 75c5434ddd
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1470691
Change-Id: I830b4bc2db3c53c5c2f21ba1f099af8eaccbfe70
-rwxr-xr-x | api/system-current.txt | 3 | ||||
-rw-r--r-- | api/test-current.txt | 2 | ||||
-rw-r--r-- | core/java/android/telephony/PhoneStateListener.java | 33 | ||||
-rw-r--r-- | core/java/com/android/internal/telephony/IPhoneStateListener.aidl | 2 | ||||
-rw-r--r-- | non-updatable-api/system-current.txt | 3 | ||||
-rw-r--r-- | services/core/java/com/android/server/TelephonyRegistry.java | 6 |
6 files changed, 41 insertions, 8 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 68a4f340fb20..483a48a1ec52 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -10828,7 +10828,8 @@ package android.telephony { method public void onCallAttributesChanged(@NonNull android.telephony.CallAttributes); method @Deprecated public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber); method public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber, int); - method public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber); + method @Deprecated public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber); + method public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber, int); method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState); method public void onRadioPowerStateChanged(int); method public void onSrvccStateChanged(int); diff --git a/api/test-current.txt b/api/test-current.txt index ca031f70f00b..c9d8723bd14c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1630,6 +1630,8 @@ package android.telephony { public class PhoneStateListener { method public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber, int); + method @Deprecated public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber); + method public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber, int); } public final class PreciseDataConnectionState implements android.os.Parcelable { diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java index 1ef52e21d652..0896f574cc46 100644 --- a/core/java/android/telephony/PhoneStateListener.java +++ b/core/java/android/telephony/PhoneStateListener.java @@ -991,15 +991,43 @@ public class PhoneStateListener { /** * Callback invoked when an outgoing SMS is placed to an emergency number. * + * This method will be called when an emergency sms is sent on any subscription. * @param sentEmergencyNumber the emergency number {@link EmergencyNumber} the SMS is sent to. + * + * @deprecated Use {@link #onOutgoingEmergencySms(EmergencyNumber, int)}. * @hide */ @SystemApi + @TestApi + @Deprecated public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber) { // default implementation empty } /** + * Smsback invoked when an outgoing sms is sent to an emergency number. + * + * This method will be called when an emergency sms is sent on any subscription, + * regardless of which subscription this listener was registered on. + * + * The default implementation of this method calls + * {@link #onOutgoingEmergencySms(EmergencyNumber)} for backwards compatibility purposes. Do + * not call {@code super(...)} from within your implementation unless you want + * {@link #onOutgoingEmergencySms(EmergencyNumber)} to be called as well. + * + * @param sentEmergencyNumber The {@link EmergencyNumber} the emergency sms was sent to. + * @param subscriptionId The subscription ID used to send the emergency sms. + * @hide + */ + @SystemApi + @TestApi + public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber, + int subscriptionId) { + // Default implementation for backwards compatibility + onOutgoingEmergencySms(sentEmergencyNumber); + } + + /** * Callback invoked when OEM hook raw event is received on the registered subscription. * Note, the registration subId comes from {@link TelephonyManager} object which registers * PhoneStateListener by {@link TelephonyManager#listen(PhoneStateListener, int)}. @@ -1376,13 +1404,14 @@ public class PhoneStateListener { subscriptionId))); } - public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber) { + public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber, + int subscriptionId) { PhoneStateListener psl = mPhoneStateListenerWeakRef.get(); if (psl == null) return; Binder.withCleanCallingIdentity( () -> mExecutor.execute( - () -> psl.onOutgoingEmergencySms(sentEmergencyNumber))); + () -> psl.onOutgoingEmergencySms(sentEmergencyNumber, subscriptionId))); } public void onPhoneCapabilityChanged(PhoneCapability capability) { diff --git a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl index d41d30735d7d..d2dc7c283ff7 100644 --- a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl +++ b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl @@ -62,7 +62,7 @@ oneway interface IPhoneStateListener { void onCallAttributesChanged(in CallAttributes callAttributes); void onEmergencyNumberListChanged(in Map emergencyNumberList); void onOutgoingEmergencyCall(in EmergencyNumber placedEmergencyNumber, int subscriptionId); - void onOutgoingEmergencySms(in EmergencyNumber sentEmergencyNumber); + void onOutgoingEmergencySms(in EmergencyNumber sentEmergencyNumber, int subscriptionId); void onCallDisconnectCauseChanged(in int disconnectCause, in int preciseDisconnectCause); void onImsCallDisconnectCauseChanged(in ImsReasonInfo imsReasonInfo); void onRegistrationFailed(in CellIdentity cellIdentity, diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt index 900270aa2704..8d6031bb552c 100644 --- a/non-updatable-api/system-current.txt +++ b/non-updatable-api/system-current.txt @@ -9710,7 +9710,8 @@ package android.telephony { method public void onCallAttributesChanged(@NonNull android.telephony.CallAttributes); method @Deprecated public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber); method public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber, int); - method public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber); + method @Deprecated public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber); + method public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber, int); method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState); method public void onRadioPowerStateChanged(int); method public void onSrvccStateChanged(int); diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java index ef3e8ac0d302..f86ef23b45e2 100644 --- a/services/core/java/com/android/server/TelephonyRegistry.java +++ b/services/core/java/com/android/server/TelephonyRegistry.java @@ -2130,11 +2130,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { if (validatePhoneId(phoneId)) { mOutgoingSmsEmergencyNumber[phoneId] = emergencyNumber; for (Record r : mRecords) { + // Send to all listeners regardless of subscription if (r.matchPhoneStateListenerEvent( - PhoneStateListener.LISTEN_OUTGOING_EMERGENCY_SMS) - && idMatch(r.subId, subId, phoneId)) { + PhoneStateListener.LISTEN_OUTGOING_EMERGENCY_SMS)) { try { - r.callback.onOutgoingEmergencySms(emergencyNumber); + r.callback.onOutgoingEmergencySms(emergencyNumber, subId); } catch (RemoteException ex) { mRemoveList.add(r.binder); } |