Advertisement
Guest User

java

a guest
Mar 29th, 2013
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.44 KB | None | 0 0
  1. package id.amikom.jogjabankfinder.activity;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.json.JSONObject;
  6.  
  7. import com.google.android.gms.common.ConnectionResult;
  8. import com.google.android.gms.common.GooglePlayServicesUtil;
  9. import com.google.android.gms.maps.CameraUpdateFactory;
  10. import com.google.android.gms.maps.GoogleMap;
  11. import com.google.android.gms.maps.SupportMapFragment;
  12. import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
  13. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  14. import com.google.android.gms.maps.model.LatLng;
  15. import com.google.android.gms.maps.model.Marker;
  16. import com.google.android.gms.maps.model.MarkerOptions;
  17.  
  18. import id.amikom.jogjabankfinder.GPSHelper;
  19. import id.amikom.jogjabankfinder.JSONHelper;
  20. import id.amikom.jogjabankfinder.R;
  21. import id.amikom.jogjabankfinder.Utils;
  22. import id.amikom.jogjabankfinder.entity.Bank;
  23. import android.location.Location;
  24. import android.location.LocationListener;
  25. import android.location.LocationManager;
  26. import android.os.AsyncTask;
  27. import android.os.Build;
  28. import android.os.Bundle;
  29. import android.app.ProgressDialog;
  30. import android.content.Context;
  31. import android.content.Intent;
  32. import android.support.v4.app.FragmentActivity;
  33. import android.support.v4.app.FragmentManager;
  34. import android.view.KeyEvent;
  35. import android.view.View;
  36. import android.widget.AdapterView;
  37. import android.widget.ArrayAdapter;
  38. import android.widget.Spinner;
  39. import android.widget.Toast;
  40. import android.widget.AdapterView.OnItemSelectedListener;
  41.  
  42. public class PetaLokasi extends FragmentActivity implements OnItemSelectedListener, OnInfoWindowClickListener,
  43.         LocationListener
  44. {
  45.     private GoogleMap           map;
  46.     private GPSHelper           gps;
  47.     private LocationManager     locManager;
  48.     private Location            location;
  49.     private JSONHelper          json;
  50.     private LatLng              myLocation;
  51.     private Context             context;
  52.  
  53.     private ArrayList<Bank>     listBank;
  54.     private Marker              markerMyLocation;
  55.     private final int           ZOOM    = 14;
  56.  
  57.     private ProgressDialog      pDialog;
  58.  
  59.     private Spinner             spLokasiBank;
  60.     private ArrayList<String>   listBankSpinner;
  61.  
  62.     @Override
  63.     protected void onCreate(Bundle savedInstanceState)
  64.     {
  65.         super.onCreate(savedInstanceState);
  66.         setContentView(R.layout.activity_bank_location);
  67.  
  68.         spLokasiBank = (Spinner) findViewById(R.id.spinnerBank);
  69.         spLokasiBank.setOnItemSelectedListener(this);
  70.         locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  71.  
  72.         context = this;
  73.  
  74.         json = new JSONHelper();
  75.  
  76.         new AsycnTaskBank().execute();
  77.  
  78.         setupGPS();
  79.  
  80.         setupMapIfNeeded();
  81.     }
  82.  
  83.     private void setupGPS()
  84.     {
  85.         gps = new GPSHelper(context, locManager, this);
  86.         location = gps.getLocation();
  87.  
  88.         if (location != null)
  89.         {
  90.             myLocation = new LatLng(location.getLatitude(),
  91.                     location.getLongitude());
  92.             onLocationChanged(location);
  93.         }
  94.     }
  95.  
  96.     private void setupMapIfNeeded()
  97.     {
  98.  
  99.         if (map == null)
  100.         {
  101.             Utils.TRACE("API " + Build.VERSION.SDK_INT);
  102.             FragmentManager fragmentManager = getSupportFragmentManager();
  103.             SupportMapFragment supportMapFragment = (SupportMapFragment) fragmentManager.findFragmentById(R.id.map);
  104.             map = supportMapFragment.getMap();
  105.  
  106.             if (map != null)
  107.             {
  108.                 setupMap();
  109.             }
  110.         }
  111.  
  112.     }
  113.  
  114.     private void setupMap()
  115.     {
  116.         map.setOnInfoWindowClickListener(this);
  117.  
  118.         if (myLocation != null)
  119.         {
  120.             markerMyLocation = map.addMarker(new MarkerOptions()
  121.                     .position(myLocation)
  122.                     .title("Posisi anda")
  123.                     .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
  124.  
  125.             map.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 14));
  126.  
  127.         }
  128.  
  129.     }
  130.  
  131.     @Override
  132.     public boolean onKeyDown(int keyCode, KeyEvent event)
  133.     {
  134.         // TODO Auto-generated method stub
  135.         if (keyCode == KeyEvent.KEYCODE_BACK)
  136.         {
  137.             startActivity(new Intent(PetaLokasi.this, MenuUtama.class));
  138.             finish();
  139.         }
  140.         return super.onKeyDown(keyCode, event);
  141.     }
  142.  
  143.     public void tampilSpinner()
  144.     {
  145.         // TODO Auto-generated method stub
  146.         ArrayAdapter<String> bankAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
  147.                 listBankSpinner);
  148.         bankAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  149.  
  150.         spLokasiBank.setAdapter(bankAdapter);
  151.  
  152.     }
  153.  
  154.     @Override
  155.     public void onItemSelected(AdapterView<?> arg0, View arg1, int loc, long arg3)
  156.     {
  157.         // TODO Auto-generated method stub
  158.  
  159.         if (loc != 0)
  160.         {
  161.             tampilBank(loc);
  162.         }
  163.  
  164.     }
  165.  
  166.     private void tampilBank(int i)
  167.     {
  168.         i -= 1;
  169.         double lat = listBank.get(i).getLat();
  170.         double lng = listBank.get(i).getLng();
  171.  
  172.         map.animateCamera((CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng),
  173.                 ZOOM)));
  174.  
  175.     }
  176.  
  177.     @Override
  178.     public void onInfoWindowClick(Marker marker)
  179.     {
  180.         // TODO Auto-generated method stub
  181.  
  182.         Bundle bundle = new Bundle();
  183.  
  184.         bundle.putString("to", marker.getTitle());
  185.         bundle.putDouble("start_lat", myLocation.latitude);
  186.         bundle.putDouble("start_lng", myLocation.longitude);
  187.         bundle.putDouble("end_lat", marker.getPosition().latitude);
  188.         bundle.putDouble("end_lng", marker.getPosition().longitude);
  189.  
  190.         Intent i = new Intent(PetaLokasi.this,
  191.                 Navigasi.class);
  192.         i.putExtras(bundle);
  193.         startActivity(i);
  194.         finish();
  195.     }
  196.  
  197.     @Override
  198.     public void onLocationChanged(Location location)
  199.     {
  200.         // TODO Auto-generated method stub
  201.         Toast.makeText(this, "Lokasi berubah", Toast.LENGTH_SHORT).show();
  202.  
  203.         if (markerMyLocation != null)
  204.         {
  205.             markerMyLocation.remove();
  206.             markerMyLocation = map.addMarker(new MarkerOptions()
  207.                     .position(new LatLng(location.getLatitude(),
  208.                             location.getLongitude()))
  209.                     .title("Posisi anda")
  210.                     .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
  211.             map.animateCamera(CameraUpdateFactory.newLatLngZoom(new
  212.                     LatLng(location.getLatitude(), location.getLongitude()),
  213.                     14));
  214.  
  215.         }
  216.     }
  217.  
  218.     @Override
  219.     public void onProviderDisabled(String provider)
  220.     {
  221.         // TODO Auto-generated method stub
  222.  
  223.     }
  224.  
  225.     @Override
  226.     public void onProviderEnabled(String provider)
  227.     {
  228.         // TODO Auto-generated method stub
  229.  
  230.     }
  231.  
  232.     @Override
  233.     public void onStatusChanged(String provider, int status, Bundle extras)
  234.     {
  235.         // TODO Auto-generated method stub
  236.  
  237.     }
  238.  
  239.     @Override
  240.     protected void onResume()
  241.     {
  242.         // TODO Auto-generated method stub
  243.         super.onResume();
  244.  
  245.         int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
  246.         if (resultCode == ConnectionResult.SUCCESS)
  247.         {
  248.             Utils.TRACE("Google service ada");
  249.         } else
  250.         {
  251.             GooglePlayServicesUtil.getErrorDialog(resultCode, this, 1);
  252.         }
  253.  
  254.         // setupMapIfNeeded();
  255.     }
  256.  
  257.     @Override
  258.     protected void onPause()
  259.     {
  260.         // TODO Auto-generated method stub
  261.         super.onPause();
  262.     }
  263.  
  264.     @Override
  265.     protected void onStart()
  266.     {
  267.         // TODO Auto-generated method stub
  268.         super.onStart();
  269.         // gps.checkGPS();
  270.     }
  271.  
  272.     @Override
  273.     protected void onStop()
  274.     {
  275.         // TODO Auto-generated method stub
  276.         super.onStop();
  277.         // locManager.removeUpdates(this);
  278.         gps.stopGPS();
  279.     }
  280.  
  281.     private class AsycnTaskBank extends AsyncTask<Void, Void, Void>
  282.     {
  283.  
  284.         @Override
  285.         protected Void doInBackground(Void... params)
  286.         {
  287.             // TODO Auto-generated method stub
  288.             String URL = "http://jogjabankfinder.tk/lokasibank.php";
  289.  
  290.             JSONObject jObj = json.getJSONFromUrl(URL);
  291.             listBank = json.getAllBankLocation(jObj);
  292.  
  293.             return null;
  294.         }
  295.  
  296.         @Override
  297.         protected void onPostExecute(Void result)
  298.         {
  299.             // TODO Auto-generated method stub
  300.  
  301.             pDialog.dismiss();
  302.             runOnUiThread(new Runnable()
  303.             {
  304.  
  305.                 @Override
  306.                 public void run()
  307.                 {
  308.                     // TODO Auto-generated method stub
  309.                     listBankSpinner = new ArrayList<String>();
  310.                     listBankSpinner.add("Daftar Bank");
  311.  
  312.                     for (int i = 0; i < listBank.size(); i++)
  313.                     {
  314.                         listBankSpinner.add(listBank.get(i).getName());
  315.  
  316.                         map.addMarker(new MarkerOptions()
  317.                                 .position(new LatLng(listBank.get(i).getLat(), listBank.get(i)
  318.                                         .getLng()))
  319.                                 .title(listBank.get(i).getName())
  320.                                 .snippet(listBank.get(i).getDesc()));
  321.                     }
  322.  
  323.                 }
  324.             });
  325.  
  326.             tampilSpinner();
  327.             super.onPostExecute(result);
  328.         }
  329.  
  330.         @Override
  331.         protected void onPreExecute()
  332.         {
  333.             // TODO Auto-generated method stub
  334.             super.onPreExecute();
  335.  
  336.             pDialog = new ProgressDialog(PetaLokasi.this);
  337.             pDialog.setMessage("Loading....");
  338.             pDialog.setCancelable(true);
  339.             pDialog.show();
  340.         }
  341.  
  342.     }
  343.  
  344.     @Override
  345.     public void onNothingSelected(AdapterView<?> arg0)
  346.     {
  347.         // TODO Auto-generated method stub
  348.  
  349.     }
  350. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement