Advertisement
Guest User

Untitled

a guest
May 6th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.73 KB | None | 0 0
  1. package com.teamproject.windows;
  2.  
  3. import android.app.AlertDialog;
  4. import android.app.ProgressDialog;
  5. import android.app.Service;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.graphics.Color;
  10. import android.location.Location;
  11. import android.location.LocationListener;
  12. import android.location.LocationManager;
  13. import android.os.AsyncTask;
  14. import android.os.Bundle;
  15. import android.os.IBinder;
  16. import android.provider.Settings;
  17. import android.support.v4.app.FragmentActivity;
  18. import android.support.v4.app.FragmentTabHost;
  19. import android.view.View;
  20. import android.widget.Toast;
  21.  
  22. import com.google.android.gms.common.api.GoogleApiClient;
  23. import com.google.android.gms.maps.CameraUpdate;
  24. import com.google.android.gms.maps.CameraUpdateFactory;
  25. import com.google.android.gms.maps.MapView;
  26. import com.google.android.gms.maps.OnMapReadyCallback;
  27. import com.google.android.gms.maps.SupportMapFragment;
  28. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  29. import com.google.android.gms.maps.model.LatLng;
  30. import com.google.android.gms.maps.model.Marker;
  31. import com.google.android.gms.maps.model.MarkerOptions;
  32. import com.google.android.gms.maps.model.Polyline;
  33. import com.google.android.gms.maps.model.PolylineOptions;
  34. import com.teamproject.conn.TurningOnGPS;
  35. import com.teamproject.models.GPSDTO;
  36. import com.teamproject.models.competitionDTO;
  37. import com.teamproject.models.userDTO;
  38.  
  39. import java.io.BufferedReader;
  40. import java.io.IOException;
  41. import java.io.InputStreamReader;
  42. import java.net.HttpURLConnection;
  43. import java.net.MalformedURLException;
  44. import java.net.URL;
  45. import java.util.ArrayList;
  46. import java.util.List;
  47.  
  48.  
  49. public class GoogleMap extends FragmentActivity implements OnMapReadyCallback, TrackPoints.OnHeadlineSelectedListener,
  50. TrackRoute.OnHeadlineSelectedListener, TrackPOI.OnHeadlineSelectedListener{
  51. boolean flaga1, flaga2, butS1, butS2, butPK1, butPK2, butM1, butM2, butPotw, butZap1, butStart, butMeta, butZap2, butRes, butNic, butPotw2, butZap3;
  52. boolean nagrywanie, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14;
  53. private MapView mMapView;
  54. private Marker now, m1, m2, m3;
  55. private FragmentTabHost mTabHost;
  56. Polyline route;
  57. private com.google.android.gms.maps.GoogleMap mMap;
  58. Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  59. TurningOnGPS gps;
  60. ProgressDialog progress;
  61. private LocationManager locationManager;
  62. private LocationListener locationListener;
  63. double szerokosc, dlugosc, szerokoscPoint, dlugoscPoint, szerAkt, dlugAkt;
  64. String szer, dl, szerPoint, dlPoint, szeraktualny, dlugaktualny;
  65. int i, ktory, jk;
  66. String error1, j, ret1, success1, nazwaPOI, s="";
  67. TrackPoints tp = new TrackPoints();
  68. List<String> trasa = new ArrayList<String>();
  69. List<String> pk_start = new ArrayList<String>();
  70. List<String> pk_pk = new ArrayList<String>();
  71. List<String> pk_meta = new ArrayList<String>();
  72. List<String> pk_all = new ArrayList<String>();
  73. List<String> pk_POI = new ArrayList<String>();
  74. List<Polyline> polylines = new ArrayList<Polyline>();
  75. Intent intent2;
  76. GPStracker gpstracker;
  77. final static GPSDTO gpsdto = new GPSDTO();
  78. private GoogleApiClient client;
  79. final userDTO us = Login.user;
  80. final String ownerID = us.getID_uzytkownika();
  81. final competitionDTO competition = CompList.comp;
  82. String ID_zaw = competition.getID_zawodow();
  83. @Override
  84. protected void onCreate(Bundle savedInstanceState) {
  85. super.onCreate(savedInstanceState);
  86. setContentView(R.layout.tracker);
  87. gps = new TurningOnGPS(getApplicationContext());
  88. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
  89. .findFragmentById(R.id.map);
  90. mapFragment.getMapAsync(this);
  91. mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
  92. mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
  93.  
  94. mTabHost.addTab(
  95. mTabHost.newTabSpec("tab1").setIndicator("Dodaj punkty pomiaru czasu", null),
  96. TrackPoints.class, null);
  97. mTabHost.addTab(
  98. mTabHost.newTabSpec("tab2").setIndicator("Dodaj POI", null),
  99. TrackPOI.class, null);
  100. mTabHost.addTab(
  101. mTabHost.newTabSpec("tab3").setIndicator("Nagraj trasę", null),
  102. TrackRoute.class, null);
  103. final int height = 120;
  104.  
  105. mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = height;
  106. mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = height;
  107. mTabHost.getTabWidget().getChildAt(2).getLayoutParams().height = height;
  108. locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
  109. locationListener = new LocationListener() {
  110. @Override
  111. public void onStatusChanged(String provider, int status, Bundle extras) {
  112. }
  113.  
  114. @Override
  115. public void onProviderEnabled(String provider) {
  116. }
  117.  
  118. @Override
  119. public void onProviderDisabled(String provider) {
  120. Toast.makeText(GoogleMap.this, "Proszę włączyć usługę GPS", Toast.LENGTH_LONG).show();
  121. startActivity(intent);
  122. }
  123.  
  124. @Override
  125. public void onLocationChanged(Location location) {
  126. if(now != null){
  127. now.remove();
  128. }
  129. flaga1 = true;
  130. szerokosc = location.getLatitude();
  131. dlugosc = location.getLongitude();
  132. if(nagrywanie){
  133. szer = Double.toString(szerokosc);
  134. dl = Double.toString(dlugosc);
  135. trasa.add(dl);
  136. trasa.add(szer);
  137. if(trasa.size()>3)
  138. drawRoute(trasa);
  139. }
  140. gpstracker.stopUsingGPS();
  141. LatLng p2 = new LatLng(szerokosc, dlugosc);
  142. now = mMap.addMarker(new MarkerOptions().position(p2).title("Tu jesteś"));
  143. mMap.moveCamera(CameraUpdateFactory.newLatLng(p2));
  144. }
  145.  
  146. };
  147.  
  148. if (gps.checkingGPSStatus()) {
  149. locationManager.requestLocationUpdates("gps", 2000, 0, locationListener); //0, 2, 4
  150. if (flaga1 == false) {
  151. gpstracker = new GPStracker(GoogleMap.this);
  152. szerokosc = gpstracker.getLatitude();
  153. dlugosc = gpstracker.getLongitude();
  154. }
  155. } else {
  156. Toast.makeText(GoogleMap.this, "Proszę włączyć usługę GPS", Toast.LENGTH_LONG).show();
  157. startActivity(intent);
  158. }
  159.  
  160. }
  161.  
  162. public void setPoint(double one, double two, String name, Marker tmpm, float x){
  163. LatLng p2 = new LatLng(one, two);
  164. tmpm = mMap.addMarker(new MarkerOptions().position(p2).title(name).icon(BitmapDescriptorFactory.defaultMarker(x)));
  165. mMap.moveCamera(CameraUpdateFactory.newLatLng(p2));
  166. }
  167. public void drawLine(int x, List<String> p, int j){
  168. double x1 = Double.parseDouble(p.get(j));
  169. double y1 = Double.parseDouble(p.get(j+1));
  170. double x2 = Double.parseDouble(p.get(j+2));
  171. double y2 = Double.parseDouble(p.get(j+3));
  172. Polyline route = mMap.addPolyline(new PolylineOptions()
  173. .add(new LatLng(y1, x1), new LatLng(y2, x2))
  174. .width(9).color(x)
  175. );
  176. }
  177. public void drawRoute(List<String> p)
  178. {
  179. int j = p.size();
  180. double x1 = Double.parseDouble(p.get(j-4));
  181. double y1 = Double.parseDouble(p.get(j-3));
  182. double x2 = Double.parseDouble(p.get(j-2));
  183. double y2 = Double.parseDouble(p.get(j - 1));
  184. polylines.add(this.mMap.addPolyline(new PolylineOptions()
  185. .add(new LatLng(y1, x1), new LatLng(y2, x2))
  186. .width(12).color(R.color.teal700)
  187. ));
  188. }
  189. @Override
  190. public void onBackPressed() {
  191. super.onBackPressed();
  192. if (gpstracker!=null)
  193. gpstracker.stopUsingGPS();
  194. if (locationManager!=null)
  195. locationManager.removeUpdates(locationListener);
  196. this.finish();
  197. }
  198.  
  199. @Override
  200. public void onMapReady(com.google.android.gms.maps.GoogleMap googleMap) {
  201. mMap = googleMap;
  202.  
  203. if (szerokosc != 0) {
  204. LatLng p1 = new LatLng(szerokosc, dlugosc);
  205. now = mMap.addMarker(new MarkerOptions().position(p1).title("Tu jesteś"));
  206. mMap.moveCamera(CameraUpdateFactory.newLatLng(p1));
  207. CameraUpdate cu = CameraUpdateFactory.newLatLngZoom(p1, 16F);
  208. mMap.animateCamera(cu);
  209. }
  210. }
  211.  
  212. @Override
  213. public void operation(String i) {
  214. checkButton(i);
  215. }
  216.  
  217. @Override
  218. public void operation1(String i) {
  219. checkButton(i);
  220. }
  221.  
  222. @Override
  223. public void operation2(String i) {
  224. checkButton(i);
  225. }
  226.  
  227. public void checkButton(String k){
  228. if (k.equals("S1")) {butS1=true;butPK1=false;butM1=false;butPotw=false;butZap1=false;}
  229. else if (k.equals("S2") ) {if(f1)butS2=true;s="s2";butS1=false;butPK1=false;butM1=false;butPK2=false;butM2=false;butPotw=false;butZap1=false;}
  230. else if (k.equals("PK1")) {butPK1=true;butS1=false;butM1=false;butPotw=false;butZap1=false;}
  231. else if (k.equals("PK2") ) {if(f5)butPK2=true;s="pk2";butPK1=false;butS1=false;butM1=false;butS2=false;butM2=false;butPotw=false;butZap1=false;}
  232. else if (k.equals("M1")) {butM1=true;butS1=false;butPK1=false;butPotw=false;butZap1=false;}
  233. else if (k.equals("M2") ) {if(f3)butM2=true;s="m2";butM1=false;butS1=false;butPK1=false;butS2=false;butPK2=false;butPotw=false;butZap1=false;}
  234. else if (k.equals("Potw")) butPotw=true;
  235. else if (k.equals("Zap1")) butZap1=true;
  236. else if (k.equals("START")) {butStart=true;s="start";butZap2=false; butMeta=false;butRes=false;}
  237. else if (k.equals("META")) {butMeta=true;s="meta";butRes=false;}
  238. else if (k.equals("Zap2")) {butZap2=true;butRes=false;}
  239. else if (k.equals("Res")) {butRes=true;butStart=false;butMeta=false;butZap2=false;}
  240. else if (k.equals("ZapPOI")) {butZap3=true; butPotw2=false;}
  241. else if (k.length()!=0) {nazwaPOI=k;butPotw2=true;butZap3=false;}
  242. else if (k.length()==0) {butPotw2=false;butNic=true;}
  243. verification(s);
  244. butPotw2=false;
  245. butNic=false;
  246. butRes=false;
  247. butZap3=false;
  248. butZap2=false;
  249. butZap1=false;
  250. butPotw=false;
  251. }
  252.  
  253. public void verification(String g) {
  254.  
  255. if (butS1 && butPotw && !f1) {
  256. Toast.makeText(GoogleMap.this, "Dodałeś początek linii startu", Toast.LENGTH_SHORT).show();
  257. butS1 = false;
  258. butPotw = false;
  259. f1 = true;
  260. szerokoscPoint = szerokosc;
  261. dlugoscPoint = dlugosc;
  262. setPoint(szerokoscPoint, dlugoscPoint, "Początek linii startu", m1, BitmapDescriptorFactory.HUE_BLUE);
  263. szerPoint = Double.toString(szerokoscPoint);
  264. dlPoint = Double.toString(dlugoscPoint);
  265. pk_start.add(dlPoint);
  266. pk_start.add(szerPoint);
  267. } else if (butS2 && butPotw && !f2) {
  268. Toast.makeText(GoogleMap.this, "Dodałeś koniec linii startu", Toast.LENGTH_SHORT).show();
  269. butS2 = false;
  270. butPotw = false;
  271. f2 = true;
  272. szerokoscPoint = szerokosc;
  273. dlugoscPoint = dlugosc;
  274. setPoint(szerokoscPoint, dlugoscPoint, "Koniec linii startu", m1, BitmapDescriptorFactory.HUE_BLUE);
  275. szerPoint = Double.toString(szerokoscPoint);
  276. dlPoint = Double.toString(dlugoscPoint);
  277. pk_start.add(dlPoint);
  278. pk_start.add(szerPoint);
  279. drawLine(Color.BLUE, pk_start, 0);
  280. } else if (butM1 && butPotw && !f3) {
  281. Toast.makeText(GoogleMap.this, "Dodałeś początek linii mety", Toast.LENGTH_SHORT).show();
  282. butM1 = false;
  283. butPotw = false;
  284. f3 = true;
  285. szerokoscPoint = szerokosc;
  286. dlugoscPoint = dlugosc;
  287. setPoint(szerokoscPoint, dlugoscPoint, "Początek linii mety", m2, BitmapDescriptorFactory.HUE_GREEN);
  288. szerPoint = Double.toString(szerokoscPoint);
  289. dlPoint = Double.toString(dlugoscPoint);
  290. pk_meta.add(dlPoint);
  291. pk_meta.add(szerPoint);
  292. } else if (butM2 && butPotw && !f4) {
  293. Toast.makeText(GoogleMap.this, "Dodałeś koniec linii mety", Toast.LENGTH_SHORT).show();
  294. butM2 = false;
  295. butPotw = false;
  296. f4 = true;
  297. szerokoscPoint = szerokosc;
  298. dlugoscPoint = dlugosc;
  299. setPoint(szerokoscPoint, dlugoscPoint, "Koniec linii mety", m2, BitmapDescriptorFactory.HUE_GREEN);
  300. szerPoint = Double.toString(szerokoscPoint);
  301. dlPoint = Double.toString(dlugoscPoint);
  302. pk_meta.add(dlPoint);
  303. pk_meta.add(szerPoint);
  304. drawLine(Color.GREEN, pk_meta, 0);
  305. } else if (butPK1 && butPotw && !f5 && !f9) {
  306. Toast.makeText(GoogleMap.this, "Dodałeś początek linii punktu kontrolnego", Toast.LENGTH_SHORT).show();
  307. butPK1 = false;
  308. butPotw = false;
  309. f5 = true;
  310. f6 = false;
  311. f10 = false;
  312. f11 = true;
  313. szerokoscPoint = szerokosc;
  314. dlugoscPoint = dlugosc;
  315. setPoint(szerokoscPoint, dlugoscPoint, "Początek linii punktu kontrolnego", m3, BitmapDescriptorFactory.HUE_ORANGE);
  316. szerPoint = Double.toString(szerokoscPoint);
  317. dlPoint = Double.toString(dlugoscPoint);
  318. pk_pk.add(dlPoint);
  319. pk_pk.add(szerPoint);
  320. } else if (butPK2 && butPotw && !f6 && !f9) {
  321. Toast.makeText(GoogleMap.this, "Dodałeś koniec linii punktu kontrolnego", Toast.LENGTH_SHORT).show();
  322. butPK2 = false;
  323. butPotw = false;
  324. f6 = true;
  325. f5 = false;
  326. f10 = true;
  327. szerokoscPoint = szerokosc;
  328. dlugoscPoint = dlugosc;
  329. setPoint(szerokoscPoint, dlugoscPoint, "Koniec linii punktu kontrolnego", m3, BitmapDescriptorFactory.HUE_ORANGE);
  330. szerPoint = Double.toString(szerokoscPoint);
  331. dlPoint = Double.toString(dlugoscPoint);
  332. pk_pk.add(dlPoint);
  333. pk_pk.add(szerPoint);
  334. drawLine(Color.parseColor("#FF6600"), pk_pk, ktory);
  335. ktory = ktory + 4;
  336. }
  337.  
  338. if (g.equals("s2") && !f1 && butPotw)
  339. Toast.makeText(GoogleMap.this, "Najpierw dodaj początek linii startu", Toast.LENGTH_SHORT).show();
  340. else if (g.equals("pk2") && !f11 && butPotw)
  341. Toast.makeText(GoogleMap.this, "Najpierw dodaj początek punktu kontrolnego", Toast.LENGTH_SHORT).show();
  342. else if (g.equals("m2") && !f3 && butPotw)
  343. Toast.makeText(GoogleMap.this, "Najpierw dodaj początek linii mety", Toast.LENGTH_SHORT).show();
  344.  
  345. //wyslanie punktow
  346. if (f2 && f4 && f10 && butZap1 && !f9) {
  347. for (int i = 0; i < pk_start.size(); i++)
  348. pk_all.add(pk_start.get(i));
  349. for (int i = 0; i < pk_pk.size(); i++)
  350. pk_all.add(pk_pk.get(i));
  351. for (int i = 0; i < pk_meta.size(); i++)
  352. pk_all.add(pk_meta.get(i));
  353. String points = pk_all.toString();
  354. points = points.substring(1);
  355. points = points.substring(0, points.length() - 1);
  356. points = points.replaceAll("\\s+","");
  357. //Toast.makeText(GoogleMap.this, points, Toast.LENGTH_SHORT).show();
  358. String url = "http://209785serwer.iiar.pwr.edu.pl/Rest/rest/competition/route?owner_id="+ownerID+
  359. "&competition_id="+ID_zaw+"&points="+points;
  360. sendGetRequest(url, 1);
  361. f9 = true;
  362. } else if (butZap1 && !f9)
  363. Toast.makeText(GoogleMap.this, "Najpierw dodaj wszystkie punkty", Toast.LENGTH_SHORT).show();
  364.  
  365.  
  366. //trasa
  367. if (butStart && !f7) {
  368. f7 = true;
  369. Toast.makeText(GoogleMap.this, "Rozpocząłeś nagrywanie trasy", Toast.LENGTH_SHORT).show();
  370. nagrywanie=true;
  371. szerokoscPoint = szerokosc;
  372. dlugoscPoint = dlugosc;
  373. szerPoint = Double.toString(szerokoscPoint);
  374. dlPoint = Double.toString(dlugoscPoint);
  375. trasa.add(dlPoint);
  376. trasa.add(szerPoint);
  377. }
  378. if (butMeta && !f8 && f7) {
  379. f8 = true;
  380. Toast.makeText(GoogleMap.this, "Zakonczyłeś nagrywanie trasy", Toast.LENGTH_SHORT).show();
  381. nagrywanie=false;
  382. }
  383. if (butRes && !f12 && (f7 || f8)) {
  384. Toast.makeText(GoogleMap.this, "Zresetowałeś trase", Toast.LENGTH_SHORT).show();
  385. f7 = false;
  386. f8 = false;
  387. trasa.clear();
  388. nagrywanie=false;
  389. for(Polyline line : polylines)
  390. {
  391. line.remove();
  392. }
  393. polylines.clear();
  394. } else if (butRes && !f12 && !(f7 || f8))
  395. Toast.makeText(GoogleMap.this, "Nie nagrywasz trasy", Toast.LENGTH_SHORT).show();
  396. else if (butRes && f12)
  397. Toast.makeText(GoogleMap.this, "Już wysłałeś trasę", Toast.LENGTH_SHORT).show();
  398. if (butZap2 && g.equals("start") && !f12 && !butRes && f7)
  399. Toast.makeText(GoogleMap.this, "Dodaj metę", Toast.LENGTH_SHORT).show();
  400. else if (butMeta && g.equals("meta") && !f12 && !f7 && !butZap2)
  401. Toast.makeText(GoogleMap.this, "Najpierw dodaj start", Toast.LENGTH_SHORT).show();
  402.  
  403. //wysylanie trasy
  404. if (f7 && f8 && butZap2 && !f12) {
  405. String trackroute = trasa.toString();
  406. trackroute = trackroute.substring(1);
  407. trackroute = trackroute.substring(0, trackroute.length() - 1);
  408. trackroute = trackroute.replaceAll("\\s+", "");
  409. String url1 = "http://209785serwer.iiar.pwr.edu.pl/Rest/rest/competition/track?owner_id="+ownerID+
  410. "&competition_id="+ID_zaw+"&points="+trackroute;
  411. sendGetRequest(url1, 3);
  412. f12 = true;
  413. } else if (butZap2 && !f12 && !f7 && !f8)
  414. Toast.makeText(GoogleMap.this, "Najpierw dodaj start i metę", Toast.LENGTH_SHORT).show();
  415.  
  416.  
  417. //POI
  418. if(butPotw2 && !f14){
  419. f13=true;
  420. Toast.makeText(GoogleMap.this, "Dodałeś " + nazwaPOI, Toast.LENGTH_SHORT).show();
  421. szerokoscPoint = szerokosc;
  422. dlugoscPoint = dlugosc;
  423. setPoint(szerokoscPoint, dlugoscPoint, nazwaPOI, m1, BitmapDescriptorFactory.HUE_VIOLET);
  424. szerPoint = Double.toString(szerokoscPoint);
  425. dlPoint = Double.toString(dlugoscPoint);
  426. pk_POI.add(dlPoint);
  427. pk_POI.add(szerPoint);
  428. pk_POI.add(nazwaPOI);
  429. }
  430. else if (!butPotw2 && !butZap3 && !f14 && butNic)
  431. {
  432. Toast.makeText(GoogleMap.this, "Nie podałeś nazwy POI", Toast.LENGTH_SHORT).show();
  433. f13=false;
  434. }
  435. if(butZap3 && f13 && !f14) {
  436. f13=false;
  437. f14=true;
  438. String POI = pk_POI.toString();
  439. POI = POI.substring(1);
  440. POI = POI.substring(0, POI.length() - 1);
  441. POI = POI.replaceAll("\\s+", "");
  442.  
  443. String url1 = "http://209785serwer.iiar.pwr.edu.pl/Rest/rest/competition/poi?owner_id="+ownerID+
  444. "&competition_id="+ID_zaw+"&points="+POI;
  445. sendGetRequest(url1, 2);
  446. }
  447. else if(butZap3 && !f13 && !f14) Toast.makeText(GoogleMap.this, "Nie dodałeś żadnego POI", Toast.LENGTH_SHORT).show();
  448.  
  449. }
  450.  
  451. public void sendGetRequest(String url, int k) {
  452. GetClass1 getclass = new GetClass1(this);
  453. getclass.setAdres(url);
  454. getclass.setAkcja(k);
  455. getclass.execute();
  456. }
  457.  
  458.  
  459.  
  460. private class GetClass1 extends AsyncTask<String, Void, String> {
  461.  
  462. private final Context context;
  463. private String url1;
  464. private int akcja;
  465. public void setAdres(String i){
  466. this.url1 = i;
  467. }
  468. public GetClass1(Context c){
  469. this.context = c;
  470. }
  471.  
  472. protected void onPreExecute(){
  473. progress= new ProgressDialog(this.context);
  474. progress.setMessage("Loading");
  475. progress.show();
  476. }
  477.  
  478. protected String doInBackground(String... params) {
  479. String wynik1 = "";
  480. try {
  481.  
  482. URL url = new URL(url1);
  483. HttpURLConnection connection = (HttpURLConnection)url.openConnection();
  484. connection.setRequestMethod("POST");
  485. BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  486. String line = "";
  487. StringBuilder responseOutput = new StringBuilder();
  488.  
  489. while((line = br.readLine()) != null ) {
  490. responseOutput.append(line);
  491. }
  492. br.close();
  493. final String wynik = responseOutput.toString();
  494. wynik1=wynik;
  495.  
  496. GoogleMap.this.runOnUiThread(new Runnable() {
  497. @Override
  498. public void run() {
  499.  
  500. }
  501. });
  502.  
  503. } catch (MalformedURLException e) {
  504. // TODO Auto-generated catch block
  505. e.printStackTrace();
  506. } catch (IOException e) {
  507. // TODO Auto-generated catch block
  508. e.printStackTrace();
  509. }
  510. progress.dismiss();
  511. return wynik1;
  512. }
  513. protected void onPostExecute(String result) {
  514. if(akcja==1)
  515. checkResponse(result);
  516. else if(akcja==2)
  517. checkResponse(result);
  518. else if(akcja==3)
  519. checkResponse(result);
  520.  
  521. }
  522.  
  523. public int getAkcja() {
  524. return akcja;
  525. }
  526.  
  527. public void setAkcja(int akcja) {
  528. this.akcja = akcja;
  529. }
  530. }
  531.  
  532. public boolean checkResponse(String wejscie)
  533. {
  534. String komunikat1="";
  535. flaga2 = true;
  536.  
  537. if (wejscie.contains("Route track saved")) {
  538. flaga2 = true;
  539. success1 = "Udało Ci się poprawnie dodać wszystkie punkty kontrolne.";
  540. }
  541. else if(wejscie.contains("POIs saved")) {
  542. flaga2 = true;
  543. success1 = "Udało Ci się poprawnie dodać wszystkie POI.";
  544. }
  545. else if(wejscie.contains("Track saved")){
  546. flaga2 = true;
  547. success1 = "Udało Ci się poprawnie dodać trasę zawodów.";
  548. }
  549. else {
  550. flaga2 = false;
  551. error1 = "Wystąpił nieoczekiwany błąd. Spróbuj ponownie";
  552. }
  553. if (flaga2 == false) {
  554. ret1 = error1;
  555. komunikat1 = "Komunikat";
  556. } else {
  557. ret1 = success1;
  558. komunikat1 = "Tworzenie trasy";
  559. }
  560. // if (h==1) {
  561. // if (wejscie.contains("Route track saved")) {
  562. // flaga2 = true;
  563. // } else {
  564. // flaga2 = false;
  565. // error1 = "Wystąpił nieoczekiwany błąd. Spróbuj ponownie";
  566. // }
  567. // if (flaga2 == false) {
  568. // ret1 = error1;
  569. // komunikat1 = "Komunikat";
  570. // } else {
  571. // ret1 = "Udało Ci się poprawnie dodać wszystkie punkty kontrolne.";
  572. // komunikat1 = "Tworzenie trasy";
  573. // }
  574. // }
  575. // else if(h==2){
  576. // if (wejscie.contains("POIs saved")) {
  577. // flaga2 = true;
  578. // } else {
  579. // flaga2 = false;
  580. // error1 = "Wystąpił nieoczekiwany błąd. Spróbuj ponownie";
  581. // }
  582. // if (flaga2 == false) {
  583. // ret1 = error1;
  584. // komunikat1 = "Komunikat";
  585. // } else {
  586. // ret1 = "Udało Ci się poprawnie dodać wszystkie POI";
  587. // komunikat1 = "Tworzenie trasy";
  588. // }
  589. // }
  590. // else if(h==2){
  591. // if (wejscie.contains("")) {
  592. // flaga2 = true;
  593. // } else {
  594. // flaga2 = false;
  595. // error1 = "Wystąpił nieoczekiwany błąd. Spróbuj ponownie";
  596. // }
  597. // if (flaga2 == false) {
  598. // ret1 = error1;
  599. // komunikat1 = "Komunikat";
  600. // } else {
  601. // ret1 = "Udało Ci się poprawnie dodać trasę zawodów.";
  602. // komunikat1 = "Tworzenie trasy";
  603. // }
  604. // }
  605.  
  606. final View arg0 = null;
  607. Context context2 = this;
  608. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context2);
  609. alertDialogBuilder.setTitle(komunikat1);
  610. alertDialogBuilder
  611. .setMessage(ret1)
  612. .setCancelable(false)
  613. .setNeutralButton("OK",new DialogInterface.OnClickListener() {
  614. public void onClick(DialogInterface dialog,int id) {
  615. dialog.cancel();
  616. if (progress.isShowing())
  617. progress.dismiss();
  618. }
  619. });
  620. AlertDialog alertDialog1 = alertDialogBuilder.create();
  621. alertDialog1.show();
  622.  
  623. return flaga2;
  624. }
  625. public class GPStracker extends Service implements LocationListener {
  626.  
  627. private Context mcontext;
  628.  
  629. boolean isGPSEnabled = false;
  630. boolean canGetLocation = false;
  631. boolean isNetworkEnabled = false;
  632. Location location;
  633.  
  634. double latitude;
  635. double longitude;
  636.  
  637. private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 0;
  638. private static final long MIN_TIME_BW_UPDATES = 0;
  639.  
  640. protected LocationManager locationManager;
  641.  
  642. public GPStracker(Context context) {
  643. this.mcontext = context;
  644. getLocation();
  645. }
  646.  
  647. public Location getLocation() {
  648. try {
  649. locationManager = (LocationManager) mcontext.getSystemService(LOCATION_SERVICE);
  650. isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
  651. isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
  652.  
  653. if (!isGPSEnabled && !isNetworkEnabled) {
  654.  
  655. } else {
  656. this.canGetLocation = true;
  657.  
  658. if (isNetworkEnabled) {
  659. locationManager.requestLocationUpdates(
  660. LocationManager.NETWORK_PROVIDER,
  661. MIN_TIME_BW_UPDATES,
  662. MIN_DISTANCE_CHANGE_FOR_UPDATES,
  663. this);
  664.  
  665. if (locationManager != null) {
  666. location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
  667.  
  668. if (location != null) {
  669. latitude = location.getLatitude();
  670. longitude = location.getLongitude();
  671. }
  672. }
  673. }
  674.  
  675. if (isGPSEnabled) {
  676. if (location == null) {
  677. locationManager.requestLocationUpdates(
  678. LocationManager.GPS_PROVIDER,
  679. MIN_TIME_BW_UPDATES,
  680. MIN_DISTANCE_CHANGE_FOR_UPDATES,
  681. this);
  682.  
  683. if (locationManager != null) {
  684. location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
  685.  
  686. if (location != null) {
  687. latitude = location.getLatitude();
  688. longitude = location.getLongitude();
  689.  
  690. }
  691. }
  692. }
  693. }
  694. }
  695. } catch (Exception e) {
  696. e.printStackTrace();
  697. }
  698. return location;
  699. }
  700.  
  701. public void stopUsingGPS() {
  702. if (locationManager != null) {
  703. locationManager.removeUpdates(GPStracker.this);
  704. }
  705. }
  706.  
  707. public double getLatitude() {
  708. if (location != null) {
  709. latitude = location.getLatitude();
  710. }
  711. return latitude;
  712. }
  713.  
  714. public double getLongitude() {
  715. if (location != null) {
  716. longitude = location.getLongitude();
  717. }
  718. return longitude;
  719. }
  720.  
  721. public boolean canGetLocation() {
  722. return this.canGetLocation;
  723. }
  724.  
  725. public void showSettingAlert() {
  726. AlertDialog.Builder alertDialog = new AlertDialog.Builder(mcontext);
  727. alertDialog.setTitle("GPS");
  728. alertDialog.setMessage("GPS jest wyłączony. Chcesz przejść do ustawień?");
  729. alertDialog.setPositiveButton("Tak", new DialogInterface.OnClickListener() {
  730.  
  731. @Override
  732. public void onClick(DialogInterface dialog, int which) {
  733. Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  734. mcontext.startActivity(intent);
  735. }
  736. });
  737. alertDialog.setNegativeButton("Nie", new DialogInterface.OnClickListener() {
  738. @Override
  739. public void onClick(DialogInterface dialog, int which) {
  740. dialog.cancel();
  741. }
  742. });
  743. alertDialog.show();
  744. }
  745. @Override
  746. public void onProviderDisabled(String provider) {
  747. // TODO Auto-generated method stub
  748. startActivity(intent);
  749. }
  750. @Override
  751. public void onLocationChanged(Location location) {
  752. // TODO Auto-generated method stub
  753. if (now != null) {
  754. now.remove();
  755. }
  756. szerokosc = location.getLatitude();
  757. dlugosc = location.getLongitude();
  758. if(nagrywanie){
  759. szer = Double.toString(szerokosc);
  760. dl = Double.toString(dlugosc);
  761. trasa.add(dl);
  762. trasa.add(szer);
  763. if(trasa.size()>3)
  764. drawRoute(trasa);
  765. }
  766. LatLng p2 = new LatLng(szerokosc, dlugosc);
  767. now = mMap.addMarker(new MarkerOptions().position(p2).title("Tu jesteś"));
  768. if (jk==0)
  769. mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(p2, 16F));
  770. else mMap.moveCamera(CameraUpdateFactory.newLatLng(p2));
  771. jk=1;
  772.  
  773. }
  774.  
  775. @Override
  776. public void onStatusChanged(String provider, int status, Bundle extras) {
  777. // TODO Auto-generated method stub
  778.  
  779. }
  780.  
  781. @Override
  782. public void onProviderEnabled(String provider) {
  783. // TODO Auto-generated method stub
  784.  
  785. }
  786.  
  787.  
  788.  
  789. @Override
  790. public IBinder onBind(Intent intent) {
  791. // TODO Auto-generated method stub
  792. return null;
  793. }
  794.  
  795. }
  796. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement