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

Commit 9f92ed94 authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Gerrit Code Review
Browse files

Merge "Add NetworkRegistrationState into SS's list."

parents 1da6f542 574b41a1
Loading
Loading
Loading
Loading
+38 −8
Original line number Diff line number Diff line
@@ -1526,7 +1526,9 @@ public class ServiceState implements Parcelable {
     */
    @SystemApi
    public List<NetworkRegistrationState> getNetworkRegistrationStates() {
        return mNetworkRegistrationStates;
        synchronized (mNetworkRegistrationStates) {
            return new ArrayList<>(mNetworkRegistrationStates);
        }
    }

    /**
@@ -1539,11 +1541,15 @@ public class ServiceState implements Parcelable {
    @SystemApi
    public List<NetworkRegistrationState> getNetworkRegistrationStates(int transportType) {
        List<NetworkRegistrationState> list = new ArrayList<>();

        synchronized (mNetworkRegistrationStates) {
            for (NetworkRegistrationState networkRegistrationState : mNetworkRegistrationStates) {
                if (networkRegistrationState.getTransportType() == transportType) {
                    list.add(networkRegistrationState);
                }
            }
        }

        return list;
    }

@@ -1557,12 +1563,36 @@ public class ServiceState implements Parcelable {
     */
    @SystemApi
    public NetworkRegistrationState getNetworkRegistrationStates(int transportType, int domain) {
        synchronized (mNetworkRegistrationStates) {
            for (NetworkRegistrationState networkRegistrationState : mNetworkRegistrationStates) {
                if (networkRegistrationState.getTransportType() == transportType
                        && networkRegistrationState.getDomain() == domain) {
                    return networkRegistrationState;
                }
            }
        }

        return null;
    }

    /**
     * @hide
     */
    public void addNetworkRegistrationState(NetworkRegistrationState regState) {
        if (regState == null) return;

        synchronized (mNetworkRegistrationStates) {
            for (int i = 0; i < mNetworkRegistrationStates.size(); i++) {
                NetworkRegistrationState curRegState = mNetworkRegistrationStates.get(i);
                if (curRegState.getTransportType() == regState.getTransportType()
                        && curRegState.getDomain() == regState.getDomain()) {
                    mNetworkRegistrationStates.remove(i);
                    break;
                }
            }

            mNetworkRegistrationStates.add(regState);
        }
    }

}