Example usage for org.json JSONObject JSONObject

List of usage examples for org.json JSONObject JSONObject

Introduction

In this page you can find the example usage for org.json JSONObject JSONObject.

Prototype

public JSONObject() 

Source Link

Document

Construct an empty JSONObject.

Usage

From source file:com.example.m.niceproject.data.Item.java

@Override
public JSONObject toJSON() {
    JSONObject data = new JSONObject();
    try {/*from w w w . j a  v  a 2  s.  c  o m*/
        data.put("condition", condition.toJSON());
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return data;
}

From source file:com.aipo.container.protocol.AipoProtocolException.java

public AipoProtocolException(AipoErrorCode errorCode) {
    super(errorCode.getStatus(), errorCode.getMessage());
    this.errorCode = errorCode;
    this.response = new JSONObject();
    JSONObject error = new JSONObject();
    String errorMessage = errorCode.getMessage();

    try {//from www. ja v a  2s .  co m
        error.put("message", errorMessage);
        error.put("code", errorCode.getCode());
        response.put("error", error);
    } catch (JSONException e) {
        // ignore
    }
}

From source file:org.csp.everyaware.internet.StoreAndForwardService.java

public void postTags()
        throws IllegalArgumentException, ClientProtocolException, HttpHostConnectException, IOException {
    Log.d("StoreAndForwardService", "postTags()");

    int sepIndex = 1; //default is '.' separator (see Constants.separators array)
    if ((Utils.report_country != null) && (Utils.report_country.equals("IT")))
        sepIndex = 0; //0 is for '-' separator (for italian CSP server)

    List<String> sids = mDbManager.getSidsOfRecordsWithTags();

    if ((sids != null) && (sids.size() > 0)) {
        for (int i = 0; i < sids.size(); i++) {
            String sessionId = (String) sids.get(i);

            //load records containing user tags with actual session id
            List<Record> recordsWithTags = mDbManager.loadRecordsWithTagBySessionId(sessionId);

            if ((recordsWithTags != null) && (recordsWithTags.size() > 0)) {
                //get size of array of records containing tags and reference to the last record
                int size = recordsWithTags.size();

                //obtain reference to the last record of serie
                Record lastToSendRecord = recordsWithTags.get(size - 1);
                Log.d("StoreAndForwardService", "postTags()--> # of records containing tags: " + size);

                //save timestamp of last record containing tags
                long lastTimestamp = 0;
                if (lastToSendRecord.mSysTimestamp > 0)
                    lastTimestamp = lastToSendRecord.mSysTimestamp;
                else
                    lastTimestamp = lastToSendRecord.mBoxTimestamp;

                String lastTsFormatted = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSSz", Locale.US)
                        .format(new Date(lastTimestamp));

                //********* MAKING OF HTTP HEADER **************

                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(Utils.report_url);

                httpPost.setHeader("Content-Encoding", "gzip");
                httpPost.setHeader("Content-Type", "application/json");
                httpPost.setHeader("Accept", "application/json");
                httpPost.setHeader("User-Agent", "AirProbe" + Utils.appVer);

                // ******* authorization bearer header ********

                httpPost.setHeader("Authorization", "Bearer " + Utils.getAccessToken(getApplicationContext()));

                //******** meta header (for new version API V1)

                httpPost.setHeader("meta" + Constants.separators[sepIndex] + "timestampRecorded",
                        lastTsFormatted);
                httpPost.setHeader("meta" + Constants.separators[sepIndex] + "deviceId", Utils.deviceID);
                httpPost.setHeader("meta" + Constants.separators[sepIndex] + "installId", Utils.installID);

                //******** data header (for new version API V1)

                //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedPacketId", "");
                //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedPacketPointId", "");
                //httpPost.setHeader("data"+Constants.separators[sepIndex]+"extendedSessionId", ""); //deprecated from AP 1.4

                httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "type", "airprobe_tags");
                httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "format", "json");
                //httpPost.setHeader("data"+Constants.separators[sepIndex]+"contentDetails"+Constants.separators[sepIndex]+"specification", "at-3");   //deprecated from AP 1.4
                if (size > 1)
                    httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                            + Constants.separators[sepIndex] + "list", "true");
                else
                    httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                            + Constants.separators[sepIndex] + "list", "false");
                httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "listSize", String.valueOf(size));

                /* from AP 1.4 */
                if ((lastToSendRecord.mBoxMac != null) && (!lastToSendRecord.mBoxMac.equals("")))
                    httpPost.setHeader("meta" + Constants.separators[sepIndex] + "sourceId",
                            lastToSendRecord.mBoxMac);

                httpPost.setHeader("data" + Constants.separators[sepIndex] + "extendedSourceSessionId"
                        + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSourceSessionSeed);
                httpPost.setHeader(//  ww w. ja  v a 2  s.  c  o m
                        "data" + Constants.separators[sepIndex] + "extendedSourceSessionId"
                                + Constants.separators[sepIndex] + "number",
                        String.valueOf(lastToSendRecord.mSourceSessionNumber));
                if ((lastToSendRecord.mSemanticSessionSeed != null)
                        && (!lastToSendRecord.mSemanticSessionSeed.equals(""))) {
                    httpPost.setHeader(
                            "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId"
                                    + Constants.separators[sepIndex] + "seed",
                            lastToSendRecord.mSemanticSessionSeed);
                    httpPost.setHeader(
                            "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId"
                                    + Constants.separators[sepIndex] + "number",
                            String.valueOf(lastToSendRecord.mSemanticSessionNumber));
                }

                httpPost.setHeader("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "typeVersion", "30"); //update by increment this field on header changes                
                /* end of from AP 1.4 */

                //******** geo header (for new version API V1)

                //add the right provider to header
                if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[0])) //sensor box
                {
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mBoxLon));
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mBoxLat));
                    if (lastToSendRecord.mBoxAcc != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "hdop",
                                String.valueOf(lastToSendRecord.mBoxAcc)); //from AP 1.4
                    if (lastToSendRecord.mBoxAltitude != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude",
                                String.valueOf(lastToSendRecord.mBoxAltitude)); //from AP 1.4
                    if (lastToSendRecord.mBoxSpeed != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed",
                                String.valueOf(lastToSendRecord.mBoxSpeed)); //from AP 1.4
                    if (lastToSendRecord.mBoxBear != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing",
                                String.valueOf(lastToSendRecord.mBoxBear)); //from AP 1.4           
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted);
                } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[1])) //phone
                {
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mPhoneLon));
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mPhoneLat));
                    if (lastToSendRecord.mPhoneAcc != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "accuracy",
                                String.valueOf(lastToSendRecord.mPhoneAcc));
                    if (lastToSendRecord.mPhoneAltitude != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude",
                                String.valueOf(lastToSendRecord.mPhoneAltitude)); //from AP 1.4
                    if (lastToSendRecord.mPhoneSpeed != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed",
                                String.valueOf(lastToSendRecord.mPhoneSpeed)); //from AP 1.4
                    if (lastToSendRecord.mPhoneBear != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing",
                                String.valueOf(lastToSendRecord.mPhoneBear)); //from AP 1.4
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted);
                } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[2])) //network
                {
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mNetworkLon));
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mNetworkLat));
                    if (lastToSendRecord.mNetworkAcc != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "accuracy",
                                String.valueOf(lastToSendRecord.mNetworkAcc));
                    if (lastToSendRecord.mNetworkAltitude != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "altitude",
                                String.valueOf(lastToSendRecord.mNetworkAltitude)); //from AP 1.4
                    if (lastToSendRecord.mNetworkSpeed != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "speed",
                                String.valueOf(lastToSendRecord.mNetworkSpeed)); //from AP 1.4
                    if (lastToSendRecord.mNetworkBear != 0)
                        httpPost.setHeader("geo" + Constants.separators[sepIndex] + "bearing",
                                String.valueOf(lastToSendRecord.mNetworkBear)); //from AP 1.4            
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    httpPost.setHeader("geo" + Constants.separators[sepIndex] + "timestamp", lastTsFormatted);
                }

                //******** MAKING OF HTTP CONTENT (JSON) *************

                //writing string content as an array of json object
                StringBuilder sb = new StringBuilder();
                sb.append("[");

                JSONObject object = new JSONObject();

                try {
                    object.put("timestamp", lastTimestamp);

                    JSONArray locations = new JSONArray();

                    //sensor box gps data
                    if (lastToSendRecord.mBoxLat != 0) {
                        JSONObject boxLocation = new JSONObject();
                        boxLocation.put("latitude", lastToSendRecord.mBoxLat);
                        boxLocation.put("longitude", lastToSendRecord.mBoxLon);
                        if (lastToSendRecord.mBoxAcc != 0)
                            boxLocation.put("hdpop", lastToSendRecord.mBoxAcc);
                        if (lastToSendRecord.mBoxAltitude != 0)
                            boxLocation.put("altitude", lastToSendRecord.mBoxAltitude);
                        if (lastToSendRecord.mBoxSpeed != 0)
                            boxLocation.put("speed", lastToSendRecord.mBoxSpeed);
                        if (lastToSendRecord.mBoxBear != 0)
                            boxLocation.put("bearing", lastToSendRecord.mBoxBear);
                        boxLocation.put("provider", Constants.GPS_PROVIDERS[0]);
                        boxLocation.put("timestamp", lastToSendRecord.mBoxTimestamp);

                        locations.put(0, boxLocation);
                    }

                    //phone gps data
                    if (lastToSendRecord.mPhoneLat != 0) {
                        JSONObject phoneLocation = new JSONObject();
                        phoneLocation.put("latitude", lastToSendRecord.mPhoneLat);
                        phoneLocation.put("longitude", lastToSendRecord.mPhoneLon);
                        if (lastToSendRecord.mPhoneAcc != 0)
                            phoneLocation.put("accuracy", lastToSendRecord.mPhoneAcc);
                        if (lastToSendRecord.mPhoneAltitude != 0)
                            phoneLocation.put("altitude", lastToSendRecord.mPhoneAltitude);
                        if (lastToSendRecord.mPhoneSpeed != 0)
                            phoneLocation.put("speed", lastToSendRecord.mPhoneSpeed);
                        if (lastToSendRecord.mPhoneBear != 0)
                            phoneLocation.put("bearing", lastToSendRecord.mPhoneBear);
                        phoneLocation.put("provider", Constants.GPS_PROVIDERS[1]);
                        phoneLocation.put("timestamp", lastToSendRecord.mPhoneTimestamp);

                        locations.put(1, phoneLocation);
                    }

                    //network gps data
                    if (lastToSendRecord.mNetworkLat != 0) {
                        JSONObject netLocation = new JSONObject();
                        netLocation.put("latitude", lastToSendRecord.mNetworkLat);
                        netLocation.put("longitude", lastToSendRecord.mNetworkLon);
                        if (lastToSendRecord.mNetworkAcc != 0)
                            netLocation.put("accuracy", lastToSendRecord.mNetworkAcc);
                        if (lastToSendRecord.mNetworkAltitude != 0)
                            netLocation.put("altitude", lastToSendRecord.mNetworkAltitude);
                        if (lastToSendRecord.mNetworkSpeed != 0)
                            netLocation.put("speed", lastToSendRecord.mNetworkSpeed);
                        if (lastToSendRecord.mNetworkBear != 0)
                            netLocation.put("bearing", lastToSendRecord.mNetworkBear);
                        netLocation.put("provider", Constants.GPS_PROVIDERS[2]);
                        netLocation.put("timestamp", lastToSendRecord.mNetworkTimestamp);

                        locations.put(2, netLocation);
                    }

                    object.put("locations", locations);
                } catch (JSONException e) {
                    e.printStackTrace();
                }

                String concatOfTags = "";

                //put the tags of all records in concatOfTags string
                for (int j = 0; j < recordsWithTags.size(); j++) {
                    if ((recordsWithTags.get(j).mUserData1 != null)
                            && (!recordsWithTags.get(j).mUserData1.equals("")))
                        concatOfTags += recordsWithTags.get(j).mUserData1 + " ";
                }
                Log.d("StoreAndForwardService", "postTags()--> concat of tags: " + concatOfTags);

                try {
                    String[] tags = concatOfTags.split(" ");
                    JSONArray tagsArray = new JSONArray();
                    if ((tags != null) && (tags.length > 0)) {
                        for (int k = 0; k < tags.length; k++) {
                            if (!tags[k].equals(""))
                                tagsArray.put(k, tags[k]);
                        }
                    }
                    object.put("tags", tagsArray);
                    //object.put("tags_cause", null);
                    //object.put("tags_location", null);
                    //object.put("tags_perception", null);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                sb.append(object.toString());
                sb.append("]");

                //Log.d("StoreAndForwardService", "]");   
                Log.d("StoreAndForwardService", "postTags()--> json to string: " + sb.toString());

                byte[] contentGzippedBytes = zipStringToBytes(sb.toString());
                ByteArrayEntity byteArrayEntity = new ByteArrayEntity(contentGzippedBytes);

                byteArrayEntity.setChunked(false); //IMPORTANT: must put false for smartcity.csp.it server

                //IMPORTANT: do not set the content-Length, because is embedded in Entity
                //httpPost.setHeader("Content-Length", byteArrayEntity.getContentLength()+"");

                httpPost.setEntity(byteArrayEntity);

                Log.d("StoreAndForwardService",
                        "postTags()--> Content length: " + httpPost.getEntity().getContentLength());
                Log.d("StoreAndForwardService", "postTags()--> Method: " + httpPost.getMethod());

                //do http post (it performs asynchronously)
                HttpResponse response = httpClient.execute(httpPost);

                sb = null;

                //server response
                //String responseBody = EntityUtils.toString(response.getEntity());
                //Log.d("StoreAndForwardService", "postTags()--> response: " +responseBody);
                Log.d("StoreAndForwardService", "postTags()--> status line: " + response.getStatusLine());

                httpClient.getConnectionManager().shutdown();

                //server response, status line
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();

                if (statusCode == Constants.STATUS_OK) {
                    Log.d("StoreAndForwardService", "postTags()--> STATUS OK");
                    mDbManager.deleteRecordsWithTagsBySessionId(sessionId);
                } else
                    Log.d("StoreAndForwardService", "postTags()--> status error code: " + statusCode);
            } else
                Log.d("StoreAndForwardService", "postTags()--> no tags to send");
        }
    }
}

From source file:org.csp.everyaware.internet.StoreAndForwardService.java

public void postSecureTags()
        throws IllegalArgumentException, ClientProtocolException, HttpHostConnectException, IOException {
    Log.d("StoreAndForwardService", "postSecureTags()");

    int sepIndex = 1; //default is '.' separator (see Constants.separators array)
    if ((Utils.report_country != null) && (Utils.report_country.equals("IT")))
        sepIndex = 0; //0 is for '-' separator (for italian CSP server)

    List<String> sids = mDbManager.getSidsOfRecordsWithTags();

    if ((sids != null) && (sids.size() > 0)) {
        for (int i = 0; i < sids.size(); i++) {
            String sessionId = (String) sids.get(i);

            //load records containing user tags with actual session id
            List<Record> recordsWithTags = mDbManager.loadRecordsWithTagBySessionId(sessionId);

            if ((recordsWithTags != null) && (recordsWithTags.size() > 0)) {
                //get size of array of records containing tags and reference to the last record
                int size = recordsWithTags.size();

                //obtain reference to the last record of serie
                Record lastToSendRecord = recordsWithTags.get(size - 1);
                Log.d("StoreAndForwardService", "postSecureTags()--> # of records containing tags: " + size);

                //save timestamp of last record containing tags
                long lastTimestamp = 0;
                if (lastToSendRecord.mSysTimestamp > 0)
                    lastTimestamp = lastToSendRecord.mSysTimestamp;
                else
                    lastTimestamp = lastToSendRecord.mBoxTimestamp;

                String lastTsFormatted = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSSz", Locale.US)
                        .format(new Date(lastTimestamp));

                //********* MAKING OF HTTP HEADER **************

                URL url = new URL(Utils.report_url);
                HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

                con.setRequestMethod("POST");
                con.setUseCaches(false);
                con.setDoInput(true);/*  www.  j a va 2 s  .  co  m*/
                con.setDoOutput(true);

                con.setRequestProperty("Content-Encoding", "gzip");
                con.setRequestProperty("Content-Type", "application/json");
                con.setRequestProperty("Accept", "application/json");
                con.setRequestProperty("User-Agent", "AirProbe" + Utils.appVer);

                //******** authorization bearer header ********

                if (Utils.getAccountActivationState(getApplicationContext()))
                    con.setRequestProperty("Authorization",
                            "Bearer " + Utils.getAccessToken(getApplicationContext()));
                else if (Utils.getAccountActivationStateForClient(getApplicationContext()))
                    con.setRequestProperty("Authorization",
                            "Bearer " + Utils.getAccessTokenForClient(getApplicationContext()));

                //******** meta header (for new version API V1)

                con.setRequestProperty("meta" + Constants.separators[sepIndex] + "timestampRecorded",
                        lastTsFormatted);
                con.setRequestProperty("meta" + Constants.separators[sepIndex] + "deviceId", Utils.deviceID);
                con.setRequestProperty("meta" + Constants.separators[sepIndex] + "installId", Utils.installID);

                //******** data header (for new version API V1)

                //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedPacketId", "");
                //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedPacketPointId", "");
                //con.setRequestProperty("data"+Constants.separators[sepIndex]+"extendedSessionId", ""); //deprecated from AP 1.4

                con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "type", "airprobe_tags");
                con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "format", "json");
                //con.setRequestProperty("data"+Constants.separators[sepIndex]+"contentDetails"+Constants.separators[sepIndex]+"specification", "at-3");   //update by increment this field on header changes    
                if (size > 1)
                    con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                            + Constants.separators[sepIndex] + "list", "true");
                else
                    con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                            + Constants.separators[sepIndex] + "list", "false");
                con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "listSize", String.valueOf(size));

                /* from AP 1.4 */
                if ((lastToSendRecord.mBoxMac != null) && (!lastToSendRecord.mBoxMac.equals(""))) {
                    Log.d("StoreAndForwardService",
                            "postSecureData()--> box mac address: " + lastToSendRecord.mBoxMac);
                    con.setRequestProperty("meta" + Constants.separators[sepIndex] + "sourceId",
                            lastToSendRecord.mBoxMac);
                } else
                    con.setRequestProperty("meta" + Constants.separators[sepIndex] + "sourceId",
                            Utils.getDeviceAddress(getApplicationContext()));

                con.setRequestProperty("data" + Constants.separators[sepIndex] + "extendedSourceSessionId"
                        + Constants.separators[sepIndex] + "seed", lastToSendRecord.mSourceSessionSeed);
                con.setRequestProperty(
                        "data" + Constants.separators[sepIndex] + "extendedSourceSessionId"
                                + Constants.separators[sepIndex] + "number",
                        String.valueOf(lastToSendRecord.mSourceSessionNumber));
                if ((lastToSendRecord.mSemanticSessionSeed != null)
                        && (!lastToSendRecord.mSemanticSessionSeed.equals(""))) {
                    con.setRequestProperty(
                            "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId"
                                    + Constants.separators[sepIndex] + "seed",
                            lastToSendRecord.mSemanticSessionSeed);
                    con.setRequestProperty(
                            "data" + Constants.separators[sepIndex] + "extendedSemanticSessionId"
                                    + Constants.separators[sepIndex] + "number",
                            String.valueOf(lastToSendRecord.mSemanticSessionNumber));
                }

                con.setRequestProperty("data" + Constants.separators[sepIndex] + "contentDetails"
                        + Constants.separators[sepIndex] + "typeVersion", "30"); //update by increment this field on header changes                
                /* end of from AP 1.4 */

                //******** geo header (for new version API V1)

                //add the right provider to header
                if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[0])) //sensor box
                {
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mBoxLon));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mBoxLat));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp",
                            lastTsFormatted);
                } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[1])) //phone
                {
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mPhoneLon));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mPhoneLat));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "accuracy",
                            String.valueOf(lastToSendRecord.mPhoneAcc));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "altitude",
                            String.valueOf(lastToSendRecord.mPhoneAltitude)); //from AP 1.4
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "speed",
                            String.valueOf(lastToSendRecord.mPhoneSpeed)); //from AP 1.4
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "bearing",
                            String.valueOf(lastToSendRecord.mPhoneBear)); //from AP 1.4
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp",
                            lastTsFormatted);
                } else if (lastToSendRecord.mGpsProvider.equals(Constants.GPS_PROVIDERS[2])) //network
                {
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "longitude",
                            String.valueOf(lastToSendRecord.mNetworkLon));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "latitude",
                            String.valueOf(lastToSendRecord.mNetworkLat));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "accuracy",
                            String.valueOf(lastToSendRecord.mNetworkAcc));
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "altitude",
                            String.valueOf(lastToSendRecord.mNetworkAltitude)); //from AP 1.4
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "speed",
                            String.valueOf(lastToSendRecord.mNetworkSpeed)); //from AP 1.4
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "bearing",
                            String.valueOf(lastToSendRecord.mNetworkBear)); //from AP 1.4            
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "provider",
                            lastToSendRecord.mGpsProvider);
                    con.setRequestProperty("geo" + Constants.separators[sepIndex] + "timestamp",
                            lastTsFormatted);
                }

                //******** MAKING OF HTTP CONTENT (JSON) *************

                //writing string content as an array of json object
                StringBuilder sb = new StringBuilder();
                sb.append("[");

                JSONObject object = new JSONObject();

                try {
                    object.put("timestamp", lastTimestamp);

                    JSONArray locations = new JSONArray();

                    //sensor box gps data
                    if (lastToSendRecord.mBoxLat != 0) {
                        JSONObject boxLocation = new JSONObject();
                        boxLocation.put("latitude", lastToSendRecord.mBoxLat);
                        boxLocation.put("longitude", lastToSendRecord.mBoxLon);
                        //boxLocation.put("accuracy", "null");
                        //boxLocation.put("altitude", "null");
                        //boxLocation.put("speed", "null");
                        //boxLocation.put("bearing", "null");
                        boxLocation.put("provider", Constants.GPS_PROVIDERS[0]);
                        boxLocation.put("timestamp", lastToSendRecord.mBoxTimestamp);

                        locations.put(0, boxLocation);
                    }

                    //phone gps data
                    if (lastToSendRecord.mPhoneLat != 0) {
                        JSONObject phoneLocation = new JSONObject();
                        phoneLocation.put("latitude", lastToSendRecord.mPhoneLat);
                        phoneLocation.put("longitude", lastToSendRecord.mPhoneLon);
                        phoneLocation.put("accuracy", lastToSendRecord.mAccuracy);
                        phoneLocation.put("altitude", lastToSendRecord.mPhoneAltitude);
                        phoneLocation.put("speed", lastToSendRecord.mPhoneSpeed);
                        phoneLocation.put("bearing", lastToSendRecord.mPhoneBear);
                        phoneLocation.put("provider", Constants.GPS_PROVIDERS[1]);
                        phoneLocation.put("timestamp", lastToSendRecord.mPhoneTimestamp);

                        locations.put(1, phoneLocation);
                    }

                    //network gps data
                    if (lastToSendRecord.mNetworkLat != 0) {
                        JSONObject netLocation = new JSONObject();
                        netLocation.put("latitude", lastToSendRecord.mNetworkLat);
                        netLocation.put("longitude", lastToSendRecord.mNetworkLon);
                        netLocation.put("accuracy", lastToSendRecord.mNetworkAcc);
                        netLocation.put("altitude", lastToSendRecord.mNetworkAltitude);
                        netLocation.put("speed", lastToSendRecord.mNetworkSpeed);
                        netLocation.put("bearing", lastToSendRecord.mNetworkBear);
                        netLocation.put("provider", Constants.GPS_PROVIDERS[2]);
                        netLocation.put("timestamp", lastToSendRecord.mNetworkTimestamp);

                        locations.put(2, netLocation);
                    }

                    object.put("locations", locations);
                } catch (JSONException e) {
                    e.printStackTrace();
                }

                String concatOfTags = "";

                //put the tags of all records in concatOfTags string
                for (int j = 0; j < recordsWithTags.size(); j++) {
                    if ((recordsWithTags.get(j).mUserData1 != null)
                            && (!recordsWithTags.get(j).mUserData1.equals("")))
                        concatOfTags += recordsWithTags.get(j).mUserData1 + " ";
                }
                Log.d("StoreAndForwardService", "postSecureTags()--> concat of tags: " + concatOfTags);

                try {
                    String[] tags = concatOfTags.split(" ");
                    JSONArray tagsArray = new JSONArray();
                    if ((tags != null) && (tags.length > 0)) {
                        for (int k = 0; k < tags.length; k++) {
                            if (!tags[k].equals(""))
                                tagsArray.put(k, tags[k]);
                        }
                    }
                    object.put("tags", tagsArray);
                    //object.put("tags_cause", null);
                    //object.put("tags_location", null);
                    //object.put("tags_perception", null);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                sb.append(object.toString());
                sb.append("]");

                Log.d("StoreAndForwardService", "postSecureTags()--> json to string: " + sb.toString());

                //compress json content into byte array entity
                byte[] contentGzippedBytes = zipStringToBytes(sb.toString());

                //write json compressed content into output stream
                OutputStream outputStream = con.getOutputStream();
                outputStream.write(contentGzippedBytes);
                outputStream.flush();
                outputStream.close();

                int responseCode = con.getResponseCode();

                Log.d("StoreAndForwardService", "postSecureTags()--> response code: " + responseCode);

                sb = null;

                if (responseCode == Constants.STATUS_OK) {
                    Log.d("StoreAndForwardService", "postSecureTags()--> STATUS OK");
                    mDbManager.deleteRecordsWithTagsBySessionId(sessionId);
                } else
                    Log.d("StoreAndForwardService", "postSecureTags()--> status error code: " + responseCode);
            } else
                Log.d("StoreAndForwardService", "postTags()--> no tags to send");
        }
    }
}

From source file:com.spoiledmilk.ibikecph.util.DB.java

private void postHistoryItemToServer(HistoryData hd, HistoryData from, Context context) {
    if (PreferenceManager.getDefaultSharedPreferences(context).contains("auth_token")) {
        String authToken = PreferenceManager.getDefaultSharedPreferences(context).getString("auth_token", "");
        final JSONObject postObject = new JSONObject();
        try {/*  www  .  j av  a 2 s  .co  m*/
            postObject.put("auth_token", authToken);
            JSONObject routeObject = new JSONObject();
            if (from.getName() == null || from.getName().trim().equals("")) {
                from.setName(IbikeApplication.getString("current_position"));
            }
            routeObject.put("from_name", from.getName());
            routeObject.put("from_lattitude", from.getLatitude());
            routeObject.put("from_longitude", from.getLongitude());
            routeObject.put("to_name", hd.getName());
            routeObject.put("to_lattitude", hd.getLatitude());
            routeObject.put("to_longitude", hd.getLongitude());
            routeObject.put("start_date",
                    DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime()));
            postObject.put("route", routeObject);
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    LOG.d("Server request: " + Config.serverUrl + "/routes");
                    HttpUtils.postToServer(Config.serverUrl + "/routes", postObject);
                }
            });
            thread.start();
        } catch (JSONException e) {
            LOG.e(e.getLocalizedMessage());
        }
    }

}

From source file:com.spoiledmilk.ibikecph.util.DB.java

private void postFavoriteToServer(final FavoritesData fd, Context context, boolean spawnThread) {
    if (IbikeApplication.isUserLogedIn()) {
        String authToken = IbikeApplication.getAuthToken();
        final JSONObject postObject = new JSONObject();
        try {//from   w  w w  .  j a  va 2 s .co m
            JSONObject favouriteObject = new JSONObject();
            favouriteObject.put("name", fd.getName());
            favouriteObject.put("address", fd.getAdress());
            favouriteObject.put("lattitude", fd.getLatitude());
            favouriteObject.put("longitude", fd.getLongitude());
            favouriteObject.put("source", fd.getSource());
            favouriteObject.put("sub_source", fd.getSubSource());
            postObject.put("favourite", favouriteObject);
            postObject.put("auth_token", authToken);
            if (spawnThread) {
                Thread thread = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        LOG.d("Server request: " + Config.serverUrl + "/favourites");
                        JsonNode responseNode = HttpUtils.postToServer(Config.serverUrl + "/favourites",
                                postObject);
                        if (responseNode != null && responseNode.has("data")
                                && responseNode.get("data").has("id")) {
                            int id = responseNode.get("data").get("id").asInt();
                            SQLiteDatabase db = getWritableDatabase();
                            if (db == null)
                                return;
                            String strFilter = "_id=" + fd.getId();
                            ContentValues args = new ContentValues();
                            args.put(KEY_API_ID, id);
                            db.update(TABLE_FAVORITES, args, strFilter, null);
                            db.close();
                        }
                    }
                });
                thread.start();
            } else {
                LOG.d("Server request: " + Config.serverUrl + "/favourites");
                JsonNode responseNode = HttpUtils.postToServer(Config.serverUrl + "/favourites", postObject);
                if (responseNode != null && responseNode.has("data") && responseNode.get("data").has("id")) {
                    int id = responseNode.get("data").get("id").asInt();
                    SQLiteDatabase db = getWritableDatabase();
                    if (db == null)
                        return;
                    String strFilter = "_id=" + fd.getId();
                    ContentValues args = new ContentValues();
                    args.put(KEY_API_ID, id);
                    db.update(TABLE_FAVORITES, args, strFilter, null);
                    db.close();
                }
            }
        } catch (Exception e) {
            LOG.e(e.getLocalizedMessage());
        }
    }

}

From source file:com.spoiledmilk.ibikecph.util.DB.java

private void updateFavoriteToServer(final FavoritesData fd, Context context, final APIListener listener) {

    if (IbikeApplication.isUserLogedIn()) {
        String authToken = IbikeApplication.getAuthToken();
        final JSONObject postObject = new JSONObject();
        try {/*from w  w w  .j a v a 2s .  c o  m*/
            JSONObject favouriteObject = new JSONObject();
            favouriteObject.put("name", fd.getName());
            favouriteObject.put("address", fd.getAdress());
            favouriteObject.put("lattitude", fd.getLatitude());
            favouriteObject.put("longitude", fd.getLongitude());
            favouriteObject.put("source", fd.getSource());
            favouriteObject.put("sub_source", fd.getSubSource());
            postObject.put("favourite", favouriteObject);
            postObject.put("auth_token", authToken);
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    JsonNode node = HttpUtils.putToServer(Config.serverUrl + "/favourites/" + fd.getApiId(),
                            postObject);
                    if (listener != null) {
                        boolean success = false;
                        if (node != null && node.has("success") && node.get("success").asBoolean()) {
                            success = true;
                        }
                        listener.onRequestCompleted(success);
                    }
                }
            });
            thread.start();
        } catch (JSONException e) {
            LOG.e(e.getLocalizedMessage());
        }
    }
}

From source file:com.spoiledmilk.ibikecph.util.DB.java

public void deleteFavoriteFromServer(final FavoritesData fd, Context context) {
    if (IbikeApplication.isUserLogedIn()) {
        String authToken = IbikeApplication.getAuthToken();
        final JSONObject postObject = new JSONObject();
        try {/*from w  w w .  j  av a 2 s  . c o m*/
            postObject.put("auth_token", authToken);
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpUtils.deleteFromServer(Config.serverUrl + "/favourites/" + fd.getApiId(), postObject);
                }
            });
            thread.start();
        } catch (JSONException e) {
            LOG.e(e.getLocalizedMessage());
        }
    }
}

From source file:com.spoiledmilk.ibikecph.util.DB.java

public void saveFinishedRoute(Location startLocation, Location endLocation, String startName, String endName,
        String startDate, String endDate, String visitedLocations) {
    if (IbikeApplication.isUserLogedIn()) {
        String authToken = IbikeApplication.getAuthToken();
        final JSONObject postObject = new JSONObject();
        try {/*from  w  w w. j av a  2 s.  c o  m*/
            postObject.put("auth_token", authToken);
            JSONObject routeObject = new JSONObject();
            routeObject.put("from_name", startName);
            routeObject.put("from_lattitude", startLocation.getLatitude());
            routeObject.put("from_longitude", startLocation.getLongitude());
            routeObject.put("to_name", endName);
            routeObject.put("to_lattitude", endLocation.getLatitude());
            routeObject.put("to_longitude", endLocation.getLongitude());
            routeObject.put("start_date", startDate);
            routeObject.put("end_date", endDate);
            routeObject.put("route_visited_locations", visitedLocations);
            routeObject.put("is_finished", true);
            postObject.put("route", routeObject);

            new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpUtils.postToServer(Config.serverUrl + "/routes", postObject);
                }
            }).start();

        } catch (JSONException e) {
            LOG.e(e.getLocalizedMessage());
        }
    }

}

From source file:com.trk.aboutme.facebook.Request.java

private void serializeToBatch(JSONArray batch, Bundle attachments) throws JSONException, IOException {
    JSONObject batchEntry = new JSONObject();

    if (this.batchEntryName != null) {
        batchEntry.put(BATCH_ENTRY_NAME_PARAM, this.batchEntryName);
        batchEntry.put(BATCH_ENTRY_OMIT_RESPONSE_ON_SUCCESS_PARAM, this.batchEntryOmitResultOnSuccess);
    }//from  ww w.j a  v a 2  s .c  o  m
    if (this.batchEntryDependsOn != null) {
        batchEntry.put(BATCH_ENTRY_DEPENDS_ON_PARAM, this.batchEntryDependsOn);
    }

    String relativeURL = getUrlForBatchedRequest();
    batchEntry.put(BATCH_RELATIVE_URL_PARAM, relativeURL);
    batchEntry.put(BATCH_METHOD_PARAM, httpMethod);
    if (this.session != null) {
        String accessToken = this.session.getAccessToken();
        Logger.registerAccessToken(accessToken);
    }

    // Find all of our attachments. Remember their names and put them in the attachment map.
    ArrayList<String> attachmentNames = new ArrayList<String>();
    Set<String> keys = this.parameters.keySet();
    for (String key : keys) {
        Object value = this.parameters.get(key);
        if (isSupportedAttachmentType(value)) {
            // Make the name unique across this entire batch.
            String name = String.format("%s%d", ATTACHMENT_FILENAME_PREFIX, attachments.size());
            attachmentNames.add(name);
            Utility.putObjectInBundle(attachments, name, value);
        }
    }

    if (!attachmentNames.isEmpty()) {
        String attachmentNamesString = TextUtils.join(",", attachmentNames);
        batchEntry.put(ATTACHED_FILES_PARAM, attachmentNamesString);
    }

    if (this.graphObject != null) {
        // Serialize the graph object into the "body" parameter.
        final ArrayList<String> keysAndValues = new ArrayList<String>();
        processGraphObject(this.graphObject, relativeURL, new KeyValueSerializer() {
            @Override
            public void writeString(String key, String value) throws IOException {
                keysAndValues.add(String.format("%s=%s", key, URLEncoder.encode(value, "UTF-8")));
            }
        });
        String bodyValue = TextUtils.join("&", keysAndValues);
        batchEntry.put(BATCH_BODY_PARAM, bodyValue);
    }

    batch.put(batchEntry);
}