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

Commit c4c26581 authored by Libin.Tang@motorola.com's avatar Libin.Tang@motorola.com Committed by Ravi Paluri
Browse files

IMS: add the api to get IMS registration information.

Conflicts:
	src/java/com/android/internal/telephony/Phone.java
	src/java/com/android/internal/telephony/PhoneProxy.java
	src/java/com/android/internal/telephony/imsphone/ImsPhone.java
	src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java

Bug: 18668325
Change-Id: Id5b0ed420990bde44b3525c7ec22eb37827d649c
parent 897664d3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2064,4 +2064,11 @@ public interface Phone {
    public boolean isImsVtCallPresent();

    public void notifyCallForwardingIndicator();

    /**
     * Query the IMS Registration Status.
     *
     * @return true if IMS is Registered
     */
    public boolean isImsRegistered();
}
+19 −0
Original line number Diff line number Diff line
@@ -2172,6 +2172,25 @@ public abstract class PhoneBase extends Handler implements Phone {
                Integer.toString(SID));
    }

    /**
     * Get IMS Registration Status
     */
    @Override
    public boolean isImsRegistered() {
        ImsPhone imsPhone = mImsPhone;
        boolean isImsRegistered = false;
        if (imsPhone != null) {
            isImsRegistered = imsPhone.isImsRegistered();
        } else {
            ServiceStateTracker sst = getServiceStateTracker();
            if (sst != null) {
                isImsRegistered = sst.isImsRegistered();
            }
        }
        Rlog.d(LOG_TAG, "isImsRegistered =" + isImsRegistered);
        return isImsRegistered;
    }

    private boolean getRoamingOverrideHelper(String prefix, String key) {
        String iccId = getIccSerialNumber();
        if (TextUtils.isEmpty(iccId) || TextUtils.isEmpty(key)) {
+4 −0
Original line number Diff line number Diff line
@@ -1561,6 +1561,10 @@ public class PhoneProxy extends Handler implements Phone {
        mActivePhone.notifyCallForwardingIndicator();
    }

    public boolean isImsRegistered() {
        return mActivePhone.isImsRegistered();
    }

    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        try {
            ((PhoneBase)mActivePhone).dump(fd, pw, args);
+19 −0
Original line number Diff line number Diff line
@@ -173,6 +173,8 @@ public abstract class ServiceStateTracker extends Handler {
    protected static final int EVENT_GET_CELL_INFO_LIST                = 43;
    protected static final int EVENT_UNSOL_CELL_INFO_LIST              = 44;
    protected static final int EVENT_CHANGE_IMS_STATE                  = 45;
    protected static final int EVENT_IMS_STATE_CHANGED                 = 46;
    protected static final int EVENT_IMS_STATE_DONE                    = 47;

    protected static final String TIMEZONE_PROPERTY = "persist.sys.timezone";

@@ -221,6 +223,7 @@ public abstract class ServiceStateTracker extends Handler {
    protected static final String ACTION_RADIO_OFF = "android.intent.action.ACTION_RADIO_OFF";
    protected boolean mPowerOffDelayNeed = true;
    protected boolean mDeviceShuttingDown = false;
    private boolean mImsRegistered = false;

    protected SubscriptionManager mSubscriptionManager;
    protected final OnSubscriptionsChangedListener mOnSubscriptionsChangedListener =
@@ -285,6 +288,7 @@ public abstract class ServiceStateTracker extends Handler {

        mPhoneBase.setSystemProperty(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE,
            ServiceState.rilRadioTechnologyToString(ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN));
        mCi.registerForImsNetworkStateChanged(this, EVENT_IMS_STATE_CHANGED, null);
    }

    void requestShutdown() {
@@ -522,6 +526,18 @@ public abstract class ServiceStateTracker extends Handler {
                break;
            }

            case  EVENT_IMS_STATE_CHANGED: // received unsol
                mCi.getImsRegistrationState(this.obtainMessage(EVENT_IMS_STATE_DONE));
                break;

            case EVENT_IMS_STATE_DONE:
                AsyncResult ar = (AsyncResult) msg.obj;
                if (ar.exception == null) {
                    int[] responseArray = (int[])ar.result;
                    mImsRegistered = (responseArray[0] == 1) ? true : false;
                }
                break;

            default:
                log("Unhandled message with number: " + msg.what);
                break;
@@ -884,6 +900,9 @@ public abstract class ServiceStateTracker extends Handler {
        pw.flush();
    }

    public boolean isImsRegistered() {
        return mImsRegistered;
    }
    /**
     * Verifies the current thread is the same as the thread originally
     * used in the initialization of this instance. Throws RuntimeException
+8 −0
Original line number Diff line number Diff line
@@ -136,6 +136,7 @@ public class ImsPhone extends ImsPhoneBase {
    // this information is getting lost.
    private boolean mIsVideoCapable = false;

    private boolean mImsRegistered = false;
    // A runnable which is used to automatically exit from Ecm after a period of time.
    private Runnable mExitEcmRunnable = new Runnable() {
        @Override
@@ -1416,4 +1417,11 @@ public class ImsPhone extends ImsPhoneBase {
    public boolean isUtEnabled() {
        return mCT.isUtEnabled();
    }

    public boolean isImsRegistered() {
        return mImsRegistered;
    }
    public void setImsRegistered(boolean value) {
        mImsRegistered = value;
    }
}
Loading