SHARE
TWEET

java

a guest Mar 29th, 2013 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top