Mapcsviewer.java :  » UnTagged » csviewer » org » fundaciomobilitatsostenible » momo » csviewer » Android Open Source

Android Open Source » UnTagged » csviewer 
csviewer » org » fundaciomobilitatsostenible » momo » csviewer » Mapcsviewer.java
package org.fundaciomobilitatsostenible.momo.csviewer;

//import android.app.Activity;
import android.os.Bundle;


//import java.util.ArrayList;
import java.util.List;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;


import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
import android.graphics.Canvas;
import android.content.Intent;
import android.content.pm.PackageManager;

import org.fundaciomobilitatsostenible.momo.csviewer.R;
import org.fundaciomobilitatsostenible.momo.cs.search.csl.Parking;

import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import android.widget.Toast;




public class Mapcsviewer extends MapActivity  {
  MapView mapView;
  MapController mc;
  GeoPoint p;
  String csl_page;
  List<Parking> parkings;

  private static final String CSL_PAGE_PREF = "CSL_PAGE_PREF";
  private static final String ZOOM_LEVEL ="ZOOM_LEVEL";
  private static final String CENTER_LNG ="CENTER_LNG";
  private static final String CENTER_LAT ="CENTER_LAT";
  
  private static final int MENU_QUIT = 10;
  private static final int MENU_REFRESH = 11;
  private static final int MENU_NEW = 12;
  private static final int MENU_ZOOM_ALL =13;
  
  class MapOverlay extends com.google.android.maps.Overlay
    {
    protected GeoPoint latlng;
    
    public MapOverlay(GeoPoint latlng){
      super();
      this.latlng = latlng;
    }
        @Override
        public boolean draw(Canvas canvas, MapView mapView,boolean shadow, long when) 
        {
                                
            super.draw(canvas, mapView, shadow);                   

            //---translate the GeoPoint to screen pixels---
            Point screenPts = new Point();
            mapView.getProjection().toPixels(this.latlng, screenPts);

            //---add the marker---
            
            Bitmap bmp = BitmapFactory.decodeResource(
                mapView.getResources(), R.drawable.ico_map);            
            canvas.drawBitmap(bmp, screenPts.x, screenPts.y-29, null);         
            return true;
            
        }
    }
  
  
  @Override
    public void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        
        
        
        
        SharedPreferences settings = getPreferences(0);
        csl_page = settings.getString(CSL_PAGE_PREF,getString(R.string.csl_default_page));
        int lat = settings.getInt(CENTER_LAT, 41398832);
        int lng = settings.getInt(CENTER_LNG, 2177782);
        int zl = settings.getInt(ZOOM_LEVEL, 13);
        
        setContentView(R.layout.main);
        
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        mc = mapView.getController();
   
        p= new GeoPoint(lat,lng);
        mc.setCenter(p);
        mc.setZoom(zl);
        mapView.invalidate();
        updateView();
    }
  protected boolean updateView(){
    List<Overlay> listOfOverlays = mapView.getOverlays();
        listOfOverlays.clear();
        getBaseContext();
    try{
        
        AndroidSaxCslParser parser = new AndroidSaxCslParser(csl_page);
          parkings = parser.parse();
        for (Parking parking : parkings){
          p = new GeoPoint(
                    (int) (parking.getGeoLatLng().getLatitude() * 1E6), 
                    (int) (parking.getGeoLatLng().getLongitude() * 1E6));
          MapOverlay mapOverlay = new MapOverlay(p);
          
          
              listOfOverlays.add(mapOverlay);      
        }
        
      } catch (Throwable t){
        
        Log.e("AndroidNews",t.getMessage(),t);
        mapView.invalidate();
        return false;
        
      }
      mapView.invalidate();
    return true;
  }

    @Override
    protected boolean isRouteDisplayed() { return false; }
    
    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
       SharedPreferences settings = getPreferences(0);
       SharedPreferences.Editor editor = settings.edit();
       //editor.putBoolean("silentMode", mSilentMode);

       int zl = mapView.getZoomLevel();
       int lat = mapView.getMapCenter().getLatitudeE6();
       int lng = mapView.getMapCenter().getLongitudeE6();
       
       editor.putInt(ZOOM_LEVEL, zl);
       editor.putInt(CENTER_LAT, lat);
       editor.putInt(CENTER_LNG,lng);
       editor.putString(CSL_PAGE_PREF , csl_page);
       
       
       // Commit the edits!
       editor.commit();
       
    }
    
    public boolean onCreateOptionsMenu(Menu menu) {
      super.onCreateOptionsMenu(menu);
      menu.add(0,MENU_ZOOM_ALL,0,R.string.csl_zoom_all);
      menu.add(0, MENU_NEW, 0, R.string.csl_new);
      menu.add(0, MENU_REFRESH, 0,R.string.csl_refresh);
      menu.add(0, MENU_QUIT, 0, R.string.csl_quit);
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
      if (!super.onOptionsItemSelected(item)){
      Toast toast; 
        switch (item.getItemId()) {
        case MENU_ZOOM_ALL:
          
          //this.mc.setZoom(zoomLevel);
          
          return true;
          
        case MENU_NEW:
            //newCsl();
          //PackageManager pm = getPackageManager();
          Intent mainIntent = new Intent(Intent.ACTION_MAIN, null,getBaseContext(),Selectcsldata.class);
          Bundle bun = new Bundle();
          bun.putString("cls_name", this.csl_page);
          mainIntent.putExtras(bun);
            //mainIntent.addCategory(Intent.CATEGORY_DEFAULT);
                  
          startActivityForResult(mainIntent,1);
          
          //toast = Toast.makeText(getBaseContext(),"OLE 1" , Toast.LENGTH_LONG);
            //toast.show();
            return true;
        case MENU_REFRESH:
          updateView();
          toast = Toast.makeText(getBaseContext(),R.string.csl_icons_updated , Toast.LENGTH_LONG);
            toast.show();
            
            return true;
        case MENU_QUIT:
          this.finish();
          return true;
      
        }
      }
      return false;
    }
   
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
      switch (requestCode) {
      case 1:
        if (resultCode == RESULT_OK){
          Bundle res = data.getExtras();
          String cls_name = res.getString("cls_name");
          csl_page=cls_name;
          updateView();
        }
        break;
      }
    }
  
    
     

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.