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

Commit c273edbb authored by Narayan Kamath's avatar Narayan Kamath
Browse files

Stop using apache http to download Gps XTRA data.

Also, general cleanup of unused parameters.

Change-Id: Iebd1aa05de9cd676b0b6d08c99df8c15b8e8473c
parent ced7ebdb
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -732,7 +732,7 @@ public class GpsLocationProvider implements LocationProviderInterface {
        AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
        AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
            @Override
            @Override
            public void run() {
            public void run() {
                GpsXtraDownloader xtraDownloader = new GpsXtraDownloader(mContext, mProperties);
                GpsXtraDownloader xtraDownloader = new GpsXtraDownloader(mProperties);
                byte[] data = xtraDownloader.downloadXtraData();
                byte[] data = xtraDownloader.downloadXtraData();
                if (data != null) {
                if (data != null) {
                    if (DEBUG) {
                    if (DEBUG) {
+23 −68
Original line number Original line Diff line number Diff line
@@ -17,20 +17,13 @@
package com.android.server.location;
package com.android.server.location;


import android.content.Context;
import android.content.Context;
import android.net.Proxy;
import android.net.http.AndroidHttpClient;
import android.util.Log;
import android.util.Log;


import org.apache.http.HttpEntity;
import java.net.HttpURLConnection;
import org.apache.http.HttpHost;
import java.net.URL;
import org.apache.http.HttpResponse;
import libcore.io.IoUtils;
import org.apache.http.StatusLine;
import libcore.io.Streams;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.params.ConnRouteParams;


import java.io.DataInputStream;
import java.io.IOException;
import java.io.IOException;
import java.util.Properties;
import java.util.Properties;
import java.util.Random;
import java.util.Random;
@@ -45,14 +38,11 @@ public class GpsXtraDownloader {
    private static final String TAG = "GpsXtraDownloader";
    private static final String TAG = "GpsXtraDownloader";
    static final boolean DEBUG = false;
    static final boolean DEBUG = false;


    private Context mContext;
    private final String[] mXtraServers;
    private String[] mXtraServers;
    // to load balance our server requests
    // to load balance our server requests
    private int mNextServerIndex;
    private int mNextServerIndex;


    GpsXtraDownloader(Context context, Properties properties) {
    GpsXtraDownloader(Properties properties) {
        mContext = context;

        // read XTRA servers from the Properties object
        // read XTRA servers from the Properties object
        int count = 0;
        int count = 0;
        String server1 = properties.getProperty("XTRA_SERVER_1");
        String server1 = properties.getProperty("XTRA_SERVER_1");
@@ -64,7 +54,7 @@ public class GpsXtraDownloader {
        
        
        if (count == 0) {
        if (count == 0) {
            Log.e(TAG, "No XTRA servers were specified in the GPS configuration");
            Log.e(TAG, "No XTRA servers were specified in the GPS configuration");
            return;
            mXtraServers = null;
        } else {
        } else {
            mXtraServers = new String[count];
            mXtraServers = new String[count];
            count = 0;
            count = 0;
@@ -79,9 +69,6 @@ public class GpsXtraDownloader {
    }
    }


    byte[] downloadXtraData() {
    byte[] downloadXtraData() {
        String proxyHost = Proxy.getHost(mContext);
        int proxyPort = Proxy.getPort(mContext);
        boolean useProxy = (proxyHost != null && proxyPort != -1);
        byte[] result = null;
        byte[] result = null;
        int startIndex = mNextServerIndex;
        int startIndex = mNextServerIndex;


@@ -91,7 +78,7 @@ public class GpsXtraDownloader {


        // load balance our requests among the available servers
        // load balance our requests among the available servers
        while (result == null) {
        while (result == null) {
            result = doDownload(mXtraServers[mNextServerIndex], useProxy, proxyHost, proxyPort);
            result = doDownload(mXtraServers[mNextServerIndex]);
            
            
            // increment mNextServerIndex and wrap around if necessary
            // increment mNextServerIndex and wrap around if necessary
            mNextServerIndex++;
            mNextServerIndex++;
@@ -105,64 +92,32 @@ public class GpsXtraDownloader {
        return result;
        return result;
    }
    }


    protected static byte[] doDownload(String url, boolean isProxySet, 
    protected static byte[] doDownload(String url) {
            String proxyHost, int proxyPort) {
        if (DEBUG) Log.d(TAG, "Downloading XTRA data from " + url);
        if (DEBUG) Log.d(TAG, "Downloading XTRA data from " + url);


        AndroidHttpClient client = null;
        HttpURLConnection connection = null;
        try {
        try {
            client = AndroidHttpClient.newInstance("Android");
            connection = (HttpURLConnection) (new URL(url)).openConnection();
            HttpUriRequest req = new HttpGet(url);
            connection.setRequestProperty(

            if (isProxySet) {
                HttpHost proxy = new HttpHost(proxyHost, proxyPort);
                ConnRouteParams.setDefaultProxy(req.getParams(), proxy);
            }

            req.addHeader(
                    "Accept",
                    "Accept",
                    "*/*, application/vnd.wap.mms-message, application/vnd.wap.sic");
                    "*/*, application/vnd.wap.mms-message, application/vnd.wap.sic");

            connection.setRequestProperty(
            req.addHeader(
                    "x-wap-profile",
                    "x-wap-profile",
                    "http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#");
                    "http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#");


            HttpResponse response = client.execute(req);
            connection.connect();
            StatusLine status = response.getStatusLine();
            int statusCode = connection.getResponseCode();
            if (status.getStatusCode() != 200) { // HTTP 200 is success.
            if (statusCode != HttpURLConnection.HTTP_OK) {
                if (DEBUG) Log.d(TAG, "HTTP error: " + status.getReasonPhrase());
                if (DEBUG) Log.d(TAG, "HTTP error downloading gps XTRA: " + statusCode);
                return null;
                return null;
            }
            }


            HttpEntity entity = response.getEntity();
            return Streams.readFully(connection.getInputStream());
            byte[] body = null;
        } catch (IOException ioe) {
            if (entity != null) {
            if (DEBUG) Log.d(TAG, "Error downloading gps XTRA: ", ioe);
                try {
                    if (entity.getContentLength() > 0) {
                        body = new byte[(int) entity.getContentLength()];
                        DataInputStream dis = new DataInputStream(entity.getContent());
                        try {
                            dis.readFully(body);
                        } finally {
                            try {
                                dis.close();
                            } catch (IOException e) {
                                Log.e(TAG, "Unexpected IOException.", e);
                            }
                        }
                    }
                } finally {
                    if (entity != null) {
                        entity.consumeContent();
                    }
                }
            }
            return body;
        } catch (Exception e) {
            if (DEBUG) Log.d(TAG, "error " + e);
        } finally {
        } finally {
            if (client != null) {
            if (connection != null) {
                client.close();
                connection.disconnect();
            }
            }
        }
        }
        return null;
        return null;