Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c1e8a2a authored by Hall Liu's avatar Hall Liu
Browse files

Update PhoneStateListener#onOutgoingEmergencySms

Update the callback for emergency SMS to follow the same pattern as for
emergency calls for API consistency.

Fixes: 168269065
Test: atest CtsTelephonyTestCases:PhoneStateListenerTest
Change-Id: If27771aef1858ea92dd620b56368d1a6a4f61ab3
parent b5671dc8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -10902,7 +10902,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 public void onPhysicalChannelConfigurationChanged(@NonNull java.util.List<android.telephony.PhysicalChannelConfig>);
    method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState);
    method public void onRadioPowerStateChanged(int);
+2 −1
Original line number Diff line number Diff line
@@ -4137,7 +4137,8 @@ package android.telephony {
  public class PhoneStateListener {
    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);
    field @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public static final int LISTEN_OUTGOING_EMERGENCY_CALL = 268435456; // 0x10000000
    field @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public static final int LISTEN_OUTGOING_EMERGENCY_SMS = 536870912; // 0x20000000
  }
+30 −2
Original line number Diff line number Diff line
@@ -1001,15 +1001,42 @@ 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
@@ -1399,13 +1426,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) {
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,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,
+2 −1
Original line number Diff line number Diff line
@@ -9766,7 +9766,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 public void onPhysicalChannelConfigurationChanged(@NonNull java.util.List<android.telephony.PhysicalChannelConfig>);
    method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState);
    method public void onRadioPowerStateChanged(int);
Loading