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
Merged-In: Ifd988943a3f6e22ec563417eea6f173c02a866e2
This commit is contained in:
Jack Yu
2022-02-11 14:15:55 -08:00
committed by Sarah Chin
parent 90ee4528a3
commit 725f8298b2

View File

@@ -1205,7 +1205,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;
@@ -1237,6 +1245,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;
@@ -1245,15 +1260,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()");