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

Commit 574b41a1 authored by Malcolm Chen's avatar Malcolm Chen
Browse files

Add NetworkRegistrationState into SS's list.

Add hidden API to add NetworkRegistrationState into SS's
NetworkRegistrationState list.

Bug: 73305596
Test: unittest
Change-Id: Ief7f22632c1f3400c01663d13b990dc9b0d59e2e
parent 1168c31c
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);
        }
    }

}