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

Commit f0bfdf1c authored by chen xu's avatar chen xu
Browse files

new API to notify ImsDisconnectCause

Bug: 119890559
Test: atest CtsTelephonyTestCases:PhoneStateListenerTest
Change-Id: I378abf8bf976f7dd5c4b43904c707bd441cc850a
parent a992cd0d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.telephony;

import android.annotation.NonNull;
import android.net.LinkProperties;
import android.net.NetworkCapabilities;
import android.os.Bundle;
@@ -33,6 +34,7 @@ import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
import android.telephony.ims.ImsReasonInfo;

import java.util.List;

@@ -288,6 +290,15 @@ public class DefaultPhoneNotifier implements PhoneNotifier {
        }
    }

    @Override
    public void notifyImsDisconnectCause(@NonNull Phone sender, ImsReasonInfo imsReasonInfo) {
        try {
            mRegistry.notifyImsDisconnectCause(sender.getSubId(), imsReasonInfo);
        } catch (RemoteException ex) {
            // system process is dead
        }
    }

    public void notifyPreciseDataConnectionFailed(Phone sender, String apnType,
            String apn, @DataFailCause.FailCause int failCause) {
        // FIXME: subId?
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.telephony.DataFailCause;
import android.telephony.PhoneCapability;
import android.telephony.PhysicalChannelConfig;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsReasonInfo;

import java.util.List;

@@ -61,6 +62,8 @@ public interface PhoneNotifier {

    void notifyDisconnectCause(int cause, int preciseCause);

    void notifyImsDisconnectCause(Phone sender, ImsReasonInfo imsReasonInfo);

    public void notifyPreciseDataConnectionFailed(Phone sender, String apnType, String apn,
                                                  @DataFailCause.FailCause int failCause);

+6 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.telephony.NetworkScanRequest;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.ims.ImsReasonInfo;
import android.util.Pair;

import com.android.internal.annotations.VisibleForTesting;
@@ -212,6 +213,11 @@ abstract class ImsPhoneBase extends Phone {

    public void notifyDisconnect(Connection cn) {
        mDisconnectRegistrants.notifyResult(cn);

    }

    public void notifyImsReason(ImsReasonInfo imsReasonInfo) {
        mNotifier.notifyImsDisconnectCause(this, imsReasonInfo);
    }

    void notifyUnknownConnection() {
+2 −0
Original line number Diff line number Diff line
@@ -2182,6 +2182,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {

            mMetrics.writeOnImsCallTerminated(mPhone.getPhoneId(), imsCall.getCallSession(),
                    reasonInfo);
            mPhone.notifyImsReason(reasonInfo);

            if (reasonInfo.getCode() == ImsReasonInfo.CODE_SIP_ALTERNATE_EMERGENCY_CALL
                    && mAutoRetryFailedWifiEmergencyCall) {
@@ -2942,6 +2943,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        int cause = getDisconnectCauseFromReasonInfo(reasonInfo, callState);

        processCallStateChange(imsCall, ImsPhoneCall.State.DISCONNECTED, cause);
        mPhone.notifyImsReason(reasonInfo);
    }

    public ImsUtInterface getUtInterface() throws ImsException {
+6 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.telephony.PhysicalChannelConfig;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsReasonInfo;

import com.android.internal.telephony.IOnSubscriptionsChangedListener;
import com.android.internal.telephony.IPhoneStateListener;
@@ -433,4 +434,9 @@ public class TelephonyRegistryMock extends ITelephonyRegistry.Stub {
    public void notifyRadioPowerStateChanged(int subId) {
        throw new RuntimeException("Not implemented");
    }

    @Override
    public void notifyImsDisconnectCause(int subId, ImsReasonInfo imsReasonInfo)  {
        throw new RuntimeException("Not implemented");
    }
}