contact: 
Uki D. Lucas

Recent site activity

180g. Main.java


  package com.chicagoandroid.w180;


import java.util.ArrayList;

import java.util.List;


import android.app.Activity;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.view.View;

import android.webkit.WebView;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;


public class Main extends Activity

{

private DatabaseHelper db;


private LocationListener listener = new LocationListener()

{

@Override

public void onLocationChanged(Location location)

{

LocationMark mark = new LocationMark(location.getLatitude(), location.getLongitude());

Toast.makeText(getApplicationContext(), mark.toString(), Toast.LENGTH_LONG).show();

db.insert(mark);

updateListView();

openWebView(mark.getMapUrl());

}


@Override

public void onProviderDisabled(String arg0)

{

Toast.makeText(getApplicationContext(), "LocationListener onProviderDisabled", Toast.LENGTH_SHORT).show();

}


@Override

public void onProviderEnabled(String arg0)

{

Toast.makeText(getApplicationContext(), "LocationListener onProviderEnabled", Toast.LENGTH_SHORT).show();

}


@Override

public void onStatusChanged(String arg0, int arg1, Bundle arg2)

{

Toast.makeText(getApplicationContext(), "LocationListener onStatusChanged", Toast.LENGTH_SHORT).show();

}

};


private List<LocationMark> marks = new ArrayList<LocationMark>();


@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

db = new DatabaseHelper(this);

startLocationManager();

updateListView();

}


private void openWebView(String url)

{

WebView webview = (WebView) findViewById(R.id.web_view);

webview.getSettings().setJavaScriptEnabled(true);

webview.loadUrl(url);

}


private void startLocationManager()

{

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

String gps = LocationManager.GPS_PROVIDER;

float minDistance = 1; // meters

long minTime = 1000 * 10; // miliseconds, 1000 = 1s

locationManager.requestLocationUpdates(gps, minTime, minDistance, listener);

}


private void updateListView()

{

ArrayAdapter<String> listItems = new ArrayAdapter<String>(this, R.layout.list_item);

marks = db.selectAll();

Toast.makeText(getApplicationContext(), "fetched " + marks.size() + " from the database", Toast.LENGTH_LONG).show();

for (LocationMark mark : marks)

{

listItems.add(mark.toString());

}

openWebView(marks.get(0).getMapUrl());

ListView listView = (ListView) findViewById(R.id.android_list_view);

listView.setAdapter(listItems);

listView.setTextFilterEnabled(true);


listView.setOnItemClickListener(new OnItemClickListener()

{

public void onItemClick(AdapterView<?> parent, View view, int position, long id)

{

Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();

openWebView(marks.get(position).getMapUrl());

}

});

}

}