Merge "Reworked getNetworkRegistrationStates API"

This commit is contained in:
Jack Yu
2018-10-02 23:34:15 +00:00
committed by Gerrit Code Review
2 changed files with 74 additions and 14 deletions

View File

@@ -5138,9 +5138,12 @@ package android.telephony {
} }
public class ServiceState implements android.os.Parcelable { public class ServiceState implements android.os.Parcelable {
method public android.telephony.NetworkRegistrationState getNetworkRegistrationState(int, int);
method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(); method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates();
method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(int); method public deprecated java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(int);
method public android.telephony.NetworkRegistrationState getNetworkRegistrationStates(int, int); method public deprecated android.telephony.NetworkRegistrationState getNetworkRegistrationStates(int, int);
method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesFromDomain(int);
method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStatesFromTransportType(int);
} }
public final class SmsManager { public final class SmsManager {

View File

@@ -24,6 +24,7 @@ import android.os.Bundle;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.NetworkRegistrationState.Domain;
import android.text.TextUtils; import android.text.TextUtils;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@@ -1595,7 +1596,7 @@ public class ServiceState implements Parcelable {
/** /**
* Get all of the available network registration states. * Get all of the available network registration states.
* *
* @return List of registration states * @return List of {@link NetworkRegistrationState}
* @hide * @hide
*/ */
@SystemApi @SystemApi
@@ -1606,14 +1607,30 @@ public class ServiceState implements Parcelable {
} }
/** /**
* Get the network registration states with given transport type. * Get the network registration states from transport type.
* *
* @param transportType The transport type. See {@link AccessNetworkConstants.TransportType} * @param transportType The {@link AccessNetworkConstants.TransportType transport type}
* @return List of registration states. * @return List of {@link NetworkRegistrationState}
* @hide
*
* @deprecated Use {@link #getNetworkRegistrationStatesFromTransportType(int)}
*/
@Deprecated
@SystemApi
public List<NetworkRegistrationState> getNetworkRegistrationStates(int transportType) {
return getNetworkRegistrationStatesFromTransportType(transportType);
}
/**
* Get the network registration states from transport type.
*
* @param transportType The {@link AccessNetworkConstants.TransportType transport type}
* @return List of {@link NetworkRegistrationState}
* @hide * @hide
*/ */
@SystemApi @SystemApi
public List<NetworkRegistrationState> getNetworkRegistrationStates(int transportType) { public List<NetworkRegistrationState> getNetworkRegistrationStatesFromTransportType(
int transportType) {
List<NetworkRegistrationState> list = new ArrayList<>(); List<NetworkRegistrationState> list = new ArrayList<>();
synchronized (mNetworkRegistrationStates) { synchronized (mNetworkRegistrationStates) {
@@ -1628,16 +1645,57 @@ public class ServiceState implements Parcelable {
} }
/** /**
* Get the network registration states with given transport type and domain. * Get the network registration states from network domain.
* *
* @param domain The network domain. Must be {@link NetworkRegistrationState#DOMAIN_CS} or * @param domain The network {@link NetworkRegistrationState.Domain domain}
* {@link NetworkRegistrationState#DOMAIN_PS}. * @return List of {@link NetworkRegistrationState}
* @param transportType The transport type. See {@link AccessNetworkConstants.TransportType}
* @return The matching NetworkRegistrationState.
* @hide * @hide
*/ */
@SystemApi @SystemApi
public NetworkRegistrationState getNetworkRegistrationStates(int domain, int transportType) { public List<NetworkRegistrationState> getNetworkRegistrationStatesFromDomain(
@Domain int domain) {
List<NetworkRegistrationState> list = new ArrayList<>();
synchronized (mNetworkRegistrationStates) {
for (NetworkRegistrationState networkRegistrationState : mNetworkRegistrationStates) {
if (networkRegistrationState.getDomain() == domain) {
list.add(networkRegistrationState);
}
}
}
return list;
}
/**
* Get the network registration state from transport type and network domain.
*
* @param domain The network {@link NetworkRegistrationState.Domain domain}
* @param transportType The {@link AccessNetworkConstants.TransportType transport type}
* @return The matching {@link NetworkRegistrationState}
* @hide
*
* @deprecated Use {@link #getNetworkRegistrationState(int, int)}
*/
@Deprecated
@SystemApi
public NetworkRegistrationState getNetworkRegistrationStates(@Domain int domain,
int transportType) {
return getNetworkRegistrationState(domain, transportType);
}
/**
* Get the network registration state from transport type and network domain.
*
* @param domain The network {@link NetworkRegistrationState.Domain domain}
* @param transportType The {@link AccessNetworkConstants.TransportType transport type}
* @return The matching {@link NetworkRegistrationState}
* @hide
*
*/
@SystemApi
public NetworkRegistrationState getNetworkRegistrationState(@Domain int domain,
int transportType) {
synchronized (mNetworkRegistrationStates) { synchronized (mNetworkRegistrationStates) {
for (NetworkRegistrationState networkRegistrationState : mNetworkRegistrationStates) { for (NetworkRegistrationState networkRegistrationState : mNetworkRegistrationStates) {
if (networkRegistrationState.getTransportType() == transportType if (networkRegistrationState.getTransportType() == transportType
@@ -1669,5 +1727,4 @@ public class ServiceState implements Parcelable {
mNetworkRegistrationStates.add(regState); mNetworkRegistrationStates.add(regState);
} }
} }
} }