Android Open Source - Geotrackin Open G T S Helper

From Project

Back to project page Geotrackin.


The source code is released under:

GNU General Public License

If you think the Android project Geotrackin listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

*    This file is part of GPSLogger for Android.
*/*  w w  w  . j a  v  a2s . c om*/
*    GPSLogger for Android is free software: you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*    the Free Software Foundation, either version 2 of the License, or
*    (at your option) any later version.
*    GPSLogger for Android is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    GNU General Public License for more details.
*    You should have received a copy of the GNU General Public License
*    along with GPSLogger for Android.  If not, see <>.

package com.geotrackin.gpslogger.senders.opengts;

import android.content.Context;
import android.location.Location;
import com.geotrackin.gpslogger.common.AppSettings;
import com.geotrackin.gpslogger.common.IActionListener;
import com.geotrackin.gpslogger.common.OpenGTSClient;
import com.geotrackin.gpslogger.senders.IFileSender;
import org.slf4j.LoggerFactory;

import java.util.Collections;
import java.util.List;

public class OpenGTSHelper implements IActionListener, IFileSender {
    Context applicationContext;
    private static final org.slf4j.Logger tracer = LoggerFactory.getLogger(OpenGTSHelper.class.getSimpleName());
    IActionListener callback;

    public OpenGTSHelper(Context applicationContext, IActionListener callback) {
        this.applicationContext = applicationContext;
        this.callback = callback;

    public void UploadFile(List<File> files) {
        // Use only gpx
        for (File f : files) {
            if (f.getName().endsWith(".gpx")) {
                Thread t = new Thread(new OpenGTSHandler(applicationContext, f, this));

    public void OnComplete() {

    public void OnFailure() {

    public boolean accept(File dir, String name) {
        return name.toLowerCase().contains(".gpx");

class OpenGTSHandler implements Runnable {

    private static final org.slf4j.Logger tracer = LoggerFactory.getLogger(OpenGTSHandler.class.getSimpleName());
    List<Location> locations;
    Context applicationContext;
    File file;
    final IActionListener helper;

    public OpenGTSHandler(Context applicationContext, File file, IActionListener helper) {
        this.applicationContext = applicationContext;
        this.file = file;
        this.helper = helper;

    public void run() {
        try {

            locations = getLocationsFromGPX(file);
   + " points where read from " + file.getName());

            if (locations.size() > 0) {

                String server = AppSettings.getOpenGTSServer();
                int port = Integer.parseInt(AppSettings.getOpenGTSServerPort());
                String path = AppSettings.getOpenGTSServerPath();
                String deviceId = AppSettings.getOpenGTSDeviceId();
                String accountName = AppSettings.getOpenGTSAccountName();
                String communication = AppSettings.getOpenGTSServerCommunicationMethod();

                OpenGTSClient openGTSClient = new OpenGTSClient(server, port, path, helper, applicationContext);

                if(communication.equalsIgnoreCase("UDP")) {
                    openGTSClient.sendRAW(deviceId, accountName, locations.toArray(new Location[0]));
                } else {
                    openGTSClient.sendHTTP(deviceId, accountName, locations.toArray(new Location[0]));

            } else {

        } catch (Exception e) {
            tracer.error("", e);


    private List<Location> getLocationsFromGPX(File f) {
        List<Location> locations = Collections.emptyList();
        try {
            locations = GpxReader.getPoints(f);
        } catch (Exception e) {
            tracer.error("OpenGTSHelper.getLocationsFromGPX", e);
        return locations;


Java Source Code List