Re-expose raw data roaming state

Re-expose raw data roaming state from modem
Revert logic in getDataRoamingFromRegistration and make @SystemApi

Test: atest ServiceStateTest, ServiceStateTrackerTest
Bug: 146000674
Change-Id: Ibe52c06a4a42bce0f83548355907459a5b152d9a
This commit is contained in:
Sarah Chin
2020-01-07 16:32:39 -08:00
parent ee209e1194
commit d4b4da2b0d
2 changed files with 30 additions and 11 deletions

View File

@@ -10278,6 +10278,7 @@ package android.telephony {
method @NonNull public android.telephony.ServiceState createLocationInfoSanitizedCopy(boolean);
method public void fillInNotifierBundle(@NonNull android.os.Bundle);
method public int getDataRegistrationState();
method public boolean getDataRoamingFromRegistration();
method @Nullable public android.telephony.NetworkRegistrationInfo getNetworkRegistrationInfo(int, int);
method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList();
method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForDomain(int);

View File

@@ -16,8 +16,6 @@
package android.telephony;
import com.android.telephony.Rlog;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -36,6 +34,8 @@ import android.telephony.NetworkRegistrationInfo.Domain;
import android.telephony.NetworkRegistrationInfo.NRState;
import android.text.TextUtils;
import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -353,6 +353,7 @@ public class ServiceState implements Parcelable {
private String mOperatorAlphaLongRaw;
private String mOperatorAlphaShortRaw;
private boolean mIsDataRoamingFromRegistration;
private boolean mIsIwlanPreferred;
/**
@@ -438,6 +439,7 @@ public class ServiceState implements Parcelable {
mNrFrequencyRange = s.mNrFrequencyRange;
mOperatorAlphaLongRaw = s.mOperatorAlphaLongRaw;
mOperatorAlphaShortRaw = s.mOperatorAlphaShortRaw;
mIsDataRoamingFromRegistration = s.mIsDataRoamingFromRegistration;
mIsIwlanPreferred = s.mIsIwlanPreferred;
}
@@ -472,6 +474,7 @@ public class ServiceState implements Parcelable {
mNrFrequencyRange = in.readInt();
mOperatorAlphaLongRaw = in.readString();
mOperatorAlphaShortRaw = in.readString();
mIsDataRoamingFromRegistration = in.readBoolean();
mIsIwlanPreferred = in.readBoolean();
}
@@ -499,6 +502,7 @@ public class ServiceState implements Parcelable {
out.writeInt(mNrFrequencyRange);
out.writeString(mOperatorAlphaLongRaw);
out.writeString(mOperatorAlphaShortRaw);
out.writeBoolean(mIsDataRoamingFromRegistration);
out.writeBoolean(mIsIwlanPreferred);
}
@@ -649,7 +653,9 @@ public class ServiceState implements Parcelable {
}
/**
* Get current data network roaming type
* Get whether the current data network is roaming.
* This value may be overwritten by resource overlay or carrier configuration.
* @see #getDataRoamingFromRegistration() to get the value from the network registration.
* @return roaming type
* @hide
*/
@@ -659,18 +665,25 @@ public class ServiceState implements Parcelable {
}
/**
* Get whether data network registration state is roaming
* Set whether the data network registration state is roaming.
* This should only be set to the roaming value received
* once the data registration phase has completed.
* @hide
*/
public void setDataRoamingFromRegistration(boolean dataRoaming) {
mIsDataRoamingFromRegistration = dataRoaming;
}
/**
* Get whether data network registration state is roaming.
* This value is set directly from the modem and will not be overwritten
* by resource overlay or carrier configuration.
* @return true if registration indicates roaming, false otherwise
* @hide
*/
@SystemApi
public boolean getDataRoamingFromRegistration() {
final NetworkRegistrationInfo regState = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (regState != null) {
return regState.getRegistrationState()
== NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING;
}
return false;
return mIsDataRoamingFromRegistration;
}
/**
@@ -873,6 +886,7 @@ public class ServiceState implements Parcelable {
mNrFrequencyRange,
mOperatorAlphaLongRaw,
mOperatorAlphaShortRaw,
mIsDataRoamingFromRegistration,
mIsIwlanPreferred);
}
}
@@ -903,6 +917,7 @@ public class ServiceState implements Parcelable {
&& mNetworkRegistrationInfos.size() == s.mNetworkRegistrationInfos.size()
&& mNetworkRegistrationInfos.containsAll(s.mNetworkRegistrationInfos)
&& mNrFrequencyRange == s.mNrFrequencyRange
&& mIsDataRoamingFromRegistration == s.mIsDataRoamingFromRegistration
&& mIsIwlanPreferred == s.mIsIwlanPreferred;
}
}
@@ -1062,6 +1077,8 @@ public class ServiceState implements Parcelable {
.append(", mNrFrequencyRange=").append(mNrFrequencyRange)
.append(", mOperatorAlphaLongRaw=").append(mOperatorAlphaLongRaw)
.append(", mOperatorAlphaShortRaw=").append(mOperatorAlphaShortRaw)
.append(", mIsDataRoamingFromRegistration=")
.append(mIsDataRoamingFromRegistration)
.append(", mIsIwlanPreferred=").append(mIsIwlanPreferred)
.append("}").toString();
}
@@ -1102,6 +1119,7 @@ public class ServiceState implements Parcelable {
}
mOperatorAlphaLongRaw = null;
mOperatorAlphaShortRaw = null;
mIsDataRoamingFromRegistration = false;
mIsIwlanPreferred = false;
}