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

Commit 6d94e1c2 authored by Jack Yu's avatar Jack Yu
Browse files

Fixed service state changed event

Added a new registrant for service state changed event.
Also added service state non-legacy mode initialization
support.

Fix: 217985293
Test: Manual
Change-Id: Ifd988943a3f6e22ec563417eea6f173c02a866e2
parent 6583413a
Loading
Loading
Loading
Loading
+35 −3
Original line number Diff line number Diff line
@@ -1168,7 +1168,15 @@ public class ServiceState implements Parcelable {
        }
    }

    private void init() {
    /**
     * Initialize the service state. Set everything to the default value.
     *
     * @param legacyMode {@code true} if the device is on IWLAN legacy mode, where IWLAN is
     * considered as a RAT on WWAN {@link NetworkRegistrationInfo}. {@code false} if the device
     * is on AP-assisted mode, where IWLAN should be reported through WLAN.
     * {@link NetworkRegistrationInfo}.
     */
    private void init(boolean legacyMode) {
        if (DBG) Rlog.d(LOG_TAG, "init");
        mVoiceRegState = STATE_OUT_OF_SERVICE;
        mDataRegState = STATE_OUT_OF_SERVICE;
@@ -1200,6 +1208,13 @@ public class ServiceState implements Parcelable {
                    .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                    .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN)
                    .build());
            if (!legacyMode) {
                addNetworkRegistrationInfo(new NetworkRegistrationInfo.Builder()
                        .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WLAN)
                        .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN)
                        .build());
            }
        }
        mOperatorAlphaLongRaw = null;
        mOperatorAlphaShortRaw = null;
@@ -1208,15 +1223,32 @@ public class ServiceState implements Parcelable {
    }

    public void setStateOutOfService() {
        init();
        init(true);
    }

    public void setStateOff() {
        init();
        init(true);
        mVoiceRegState = STATE_POWER_OFF;
        mDataRegState = STATE_POWER_OFF;
    }

    /**
     * Set the service state to out-of-service
     *
     * @param legacyMode {@code true} if the device is on IWLAN legacy mode, where IWLAN is
     * considered as a RAT on WWAN {@link NetworkRegistrationInfo}. {@code false} if the device
     * is on AP-assisted mode, where IWLAN should be reported through WLAN.
     * @param powerOff {@code true} if this is a power off case (i.e. Airplane mode on).
     * @hide
     */
    public void setOutOfService(boolean legacyMode, boolean powerOff) {
        init(legacyMode);
        if (powerOff) {
            mVoiceRegState = STATE_POWER_OFF;
            mDataRegState = STATE_POWER_OFF;
        }
    }

    public void setState(int state) {
        setVoiceRegState(state);
        if (DBG) Rlog.e(LOG_TAG, "[ServiceState] setState deprecated use setVoiceRegState()");