package com.num.tasks; import java.util.ArrayList; import java.util.Map; import org.json.JSONObject; import android.content.Context; import android.location.Location; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.TextView; import android.widget.Toast; import com.num.helpers.DeviceHelper; import com.num.helpers.PingHelper; import com.num.listeners.ResponseListener; import com.num.models.GPS; import com.num.models.Measurement; import com.num.models.Ping; import com.num.utils.GPSUtil; import com.num.utils.HTTPUtil; import com.num.utils.GPSUtil.LocationResult; public class GPSTask extends ServerTask{ ResponseListener responseListener; static boolean isRunning = false; public GPSTask(Context context, Map<String, String> reqParams,ResponseListener listener) { super(context, reqParams, listener); } @Override public void runTask() { isRunning = true; GPSHandler.sendEmptyMessage(0); this.responseListener = this.getResponseListener(); while(isRunning){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); break; } } } private Handler GPSHandler = new Handler() { public void handleMessage(Message msg) { try { boolean gps = GPSUtil.getLocation(getContext(), locationResult); } catch (Exception e) { e.printStackTrace(); } } }; public LocationResult locationResult = new LocationResult(){ @Override public void gotLocation(final Location location){ GPS gps = new GPS(); if (location != null) { gps.setAltitude("" + location.getAltitude()); gps.setLatitude("" + location.getLatitude()); gps.setLongitude("" + location.getLongitude()); isRunning = false; responseListener.onCompleteGPS(gps); } isRunning = false; gps = new GPS("Not Found","Not Found","Not Found"); responseListener.onCompleteGPS(gps); } }; @Override public String toString() { return "GPS Task"; } }