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

Commit 0f461bf4 authored by Sewook Seo's avatar Sewook Seo Committed by Android (Google) Code Review
Browse files

Merge "Guide transport type for emergency connection"

parents b77faad0 a16a45e4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14155,6 +14155,7 @@ package android.telephony.data {
    ctor public QualifiedNetworksService.NetworkAvailabilityProvider(int);
    method public abstract void close();
    method public final int getSlotIndex();
    method public void reportEmergencyDataNetworkPreferredTransportChanged(int);
    method public void reportThrottleStatusChanged(@NonNull java.util.List<android.telephony.data.ThrottleStatus>);
    method public final void updateQualifiedNetworkTypes(int, @NonNull java.util.List<java.lang.Integer>);
  }
+1 −0
Original line number Diff line number Diff line
@@ -27,4 +27,5 @@ interface IQualifiedNetworksService
    oneway void createNetworkAvailabilityProvider(int slotId, IQualifiedNetworksServiceCallback callback);
    oneway void removeNetworkAvailabilityProvider(int slotId);
    oneway void reportThrottleStatusChanged(int slotId, in List<ThrottleStatus> statuses);
    oneway void reportEmergencyDataNetworkPreferredTransportChanged (int slotId, int transportType);
}
+30 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ public abstract class QualifiedNetworksService extends Service {
    private static final int QNS_REMOVE_ALL_NETWORK_AVAILABILITY_PROVIDERS          = 3;
    private static final int QNS_UPDATE_QUALIFIED_NETWORKS                          = 4;
    private static final int QNS_APN_THROTTLE_STATUS_CHANGED                        = 5;
    private static final int QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED = 6;

    private final HandlerThread mHandlerThread;

@@ -192,6 +193,20 @@ public abstract class QualifiedNetworksService extends Service {
            Log.d(TAG, "reportThrottleStatusChanged: statuses size=" + statuses.size());
        }

        /**
         * The framework calls this method when the preferred transport type used to set up
         * emergency data network is changed.
         *
         * This method is meant to be overridden.
         *
         * @param transportType transport type changed to be preferred
         */
        public void reportEmergencyDataNetworkPreferredTransportChanged(
                @AccessNetworkConstants.TransportType int transportType) {
            Log.d(TAG, "reportEmergencyDataNetworkPreferredTransportChanged: "
                    + AccessNetworkConstants.transportTypeToString(transportType));
        }

        /**
         * Called when the qualified networks provider is removed. The extended class should
         * implement this method to perform cleanup works.
@@ -237,6 +252,13 @@ public abstract class QualifiedNetworksService extends Service {
                    }
                    break;

                case QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED:
                    if (provider != null) {
                        int transportType = (int) message.arg2;
                        provider.reportEmergencyDataNetworkPreferredTransportChanged(transportType);
                    }
                    break;

                case QNS_REMOVE_NETWORK_AVAILABILITY_PROVIDER:
                    if (provider != null) {
                        provider.close();
@@ -332,6 +354,14 @@ public abstract class QualifiedNetworksService extends Service {
            mHandler.obtainMessage(QNS_APN_THROTTLE_STATUS_CHANGED, slotIndex, 0, statuses)
                    .sendToTarget();
        }

        @Override
        public void reportEmergencyDataNetworkPreferredTransportChanged(int slotIndex,
                @AccessNetworkConstants.TransportType int transportType) {
            mHandler.obtainMessage(
                    QNS_EMERGENCY_DATA_NETWORK_PREFERRED_TRANSPORT_CHANGED,
                            slotIndex, transportType).sendToTarget();
        }
    }

    private void log(String s) {