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

Commit 0b49f5d2 authored by Anil Admal's avatar Anil Admal Committed by android-build-merger
Browse files

Merge "Change SUPL network request parameters for requestRouteToHostAddress" into qt-dev

am: 16f6a30c

Change-Id: I133989e93b53e787d80fcf26811169615a89c5ce
parents a8e8397b 16f6a30c
Loading
Loading
Loading
Loading
+34 −17
Original line number Original line Diff line number Diff line
@@ -199,29 +199,27 @@ class GnssNetworkConnectivityHandler {
    }
    }


    /**
    /**
     * called from native code to update AGPS status
     * Called from native code to update AGPS connection status, or to request or release a SUPL
     * connection.
     *
     * <p>Note: {@code suplIpAddr} parameter is not present from IAGnssCallback.hal@2.0 onwards
     * and is set to {@code null}.
     */
     */
    void onReportAGpsStatus(int agpsType, int agpsStatus, byte[] suplIpAddr) {
    void onReportAGpsStatus(int agpsType, int agpsStatus, byte[] suplIpAddr) {
        if (DEBUG) Log.d(TAG, "AGPS_DATA_CONNECTION: " + agpsDataConnStatusAsString(agpsStatus));
        switch (agpsStatus) {
        switch (agpsStatus) {
            case GPS_REQUEST_AGPS_DATA_CONN:
            case GPS_REQUEST_AGPS_DATA_CONN:
                if (DEBUG) Log.d(TAG, "GPS_REQUEST_AGPS_DATA_CONN");
                runOnHandler(() -> handleRequestSuplConnection(agpsType, suplIpAddr));
                runOnHandler(() -> handleRequestSuplConnection(agpsType, suplIpAddr));
                break;
                break;
            case GPS_RELEASE_AGPS_DATA_CONN:
            case GPS_RELEASE_AGPS_DATA_CONN:
                if (DEBUG) Log.d(TAG, "GPS_RELEASE_AGPS_DATA_CONN");
                runOnHandler(() -> handleReleaseSuplConnection(GPS_RELEASE_AGPS_DATA_CONN));
                runOnHandler(() -> handleReleaseSuplConnection(GPS_RELEASE_AGPS_DATA_CONN));
                break;
                break;
            case GPS_AGPS_DATA_CONNECTED:
            case GPS_AGPS_DATA_CONNECTED:
                if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONNECTED");
                break;
            case GPS_AGPS_DATA_CONN_DONE:
            case GPS_AGPS_DATA_CONN_DONE:
                if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONN_DONE");
                break;
            case GPS_AGPS_DATA_CONN_FAILED:
            case GPS_AGPS_DATA_CONN_FAILED:
                if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONN_FAILED");
                break;
                break;
            default:
            default:
                if (DEBUG) Log.d(TAG, "Received Unknown AGPS status: " + agpsStatus);
                Log.w(TAG, "Received unknown AGPS status: " + agpsStatus);
        }
        }
    }
    }


@@ -459,11 +457,17 @@ class GnssNetworkConnectivityHandler {
        }
        }
        mAGpsDataConnectionState = AGPS_DATA_CONNECTION_OPENING;
        mAGpsDataConnectionState = AGPS_DATA_CONNECTION_OPENING;


        NetworkRequest.Builder requestBuilder = new NetworkRequest.Builder();
        // The NetworkRequest.Builder class is not used to construct the network request because
        requestBuilder.addCapability(getNetworkCapability(mAGpsType));
        // the ConnectivityService requires the network request to be constructed in this way
        NetworkRequest request = requestBuilder.build();
        // to extend support for requestRouteToHostAddress() method for pre-gnss@2.0 devices.
        NetworkCapabilities networkCapabilities = new NetworkCapabilities();
        networkCapabilities.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
        networkCapabilities.addCapability(getNetworkCapability(mAGpsType));
        NetworkRequest networkRequest = new NetworkRequest(networkCapabilities,
                getLegacyDataConnectionType(agpsType), ConnectivityManager.REQUEST_ID_UNSET,
                NetworkRequest.Type.REQUEST);
        mConnMgr.requestNetwork(
        mConnMgr.requestNetwork(
                request,
                networkRequest,
                mSuplConnectivityCallback,
                mSuplConnectivityCallback,
                mHandler,
                mHandler,
                SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS);
                SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS);
@@ -483,6 +487,19 @@ class GnssNetworkConnectivityHandler {
        }
        }
    }
    }


    private int getLegacyDataConnectionType(int agpsType) {
        switch (agpsType) {
            case AGPS_TYPE_C2K:
            case AGPS_TYPE_SUPL:
                return ConnectivityManager.TYPE_MOBILE_SUPL;
            case AGPS_TYPE_EIMS:
                return ConnectivityManager.TYPE_MOBILE_EMERGENCY;
            case AGPS_TYPE_IMS:
                return ConnectivityManager.TYPE_MOBILE_IMS;
            default:
                throw new IllegalArgumentException("agpsType: " + agpsType);
        }
    }
    private void handleReleaseSuplConnection(int agpsDataConnStatus) {
    private void handleReleaseSuplConnection(int agpsDataConnStatus) {
        if (DEBUG) {
        if (DEBUG) {
            String message = String.format(
            String message = String.format(
@@ -546,7 +563,7 @@ class GnssNetworkConnectivityHandler {
            case AGPS_DATA_CONNECTION_OPENING:
            case AGPS_DATA_CONNECTION_OPENING:
                return "OPENING";
                return "OPENING";
            default:
            default:
                return "<Unknown>";
                return "<Unknown>(" + mAGpsDataConnectionState + ")";
        }
        }
    }
    }


@@ -566,7 +583,7 @@ class GnssNetworkConnectivityHandler {
            case GPS_REQUEST_AGPS_DATA_CONN:
            case GPS_REQUEST_AGPS_DATA_CONN:
                return "REQUEST";
                return "REQUEST";
            default:
            default:
                return "<Unknown>";
                return "<Unknown>(" + agpsDataConnStatus + ")";
        }
        }
    }
    }


@@ -581,7 +598,7 @@ class GnssNetworkConnectivityHandler {
            case AGPS_TYPE_IMS:
            case AGPS_TYPE_IMS:
                return "IMS";
                return "IMS";
            default:
            default:
                return "<Unknown>";
                return "<Unknown>(" + agpsType + ")";
        }
        }
    }
    }