add favourites activity
git-svn-id: https://osmand.googlecode.com/svn/trunk@126 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
parent
97cf6850ff
commit
20d7b06a39
10 changed files with 367 additions and 17 deletions
|
@ -11,13 +11,7 @@ public class ToDoConstants {
|
||||||
*/
|
*/
|
||||||
public int DESCRIBE_ABOUT_AUTHORS = 8;
|
public int DESCRIBE_ABOUT_AUTHORS = 8;
|
||||||
|
|
||||||
|
// TODO ANDROID NOT in release 0.1
|
||||||
// TODO ANDROID in release 0.1
|
|
||||||
// 13. Save point as favorite & introduce favorite points dialog
|
|
||||||
// 3. Revise osmand UI. Preparing new icons (revise UI 18, 2, ). Main application icon, back to location icon.
|
|
||||||
// 14. Show zoom level on map
|
|
||||||
|
|
||||||
// NOT in release 0.1
|
|
||||||
// 8. Enable change POI directly on map (requires OSM login)
|
// 8. Enable change POI directly on map (requires OSM login)
|
||||||
// 16. Support open street bugs api.
|
// 16. Support open street bugs api.
|
||||||
// 20. Implement save track/route to gpx (?)
|
// 20. Implement save track/route to gpx (?)
|
||||||
|
@ -36,7 +30,10 @@ public class ToDoConstants {
|
||||||
|
|
||||||
|
|
||||||
// DONE ANDROID :
|
// DONE ANDROID :
|
||||||
|
// 13. Save point as favorite & introduce favorite points dialog
|
||||||
// 29. Show opened/closed amenities (in search poi).
|
// 29. Show opened/closed amenities (in search poi).
|
||||||
|
// 3. Revise osmand UI. Preparing new icons (revise UI 18, 2, ). Main application icon, back to location icon.
|
||||||
|
// 14. Show zoom level on map
|
||||||
|
|
||||||
// DONE SWING
|
// DONE SWING
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,12 @@
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".activities.MapActivity" android:label="@string/app_name"></activity>
|
<activity android:name=".activities.MapActivity" android:label="@string/app_name"></activity>
|
||||||
<activity android:name=".activities.SettingsActivity" android:label="@string/settings_activity"></activity>
|
<activity android:name=".activities.SettingsActivity" android:label="@string/settings_activity"></activity>
|
||||||
<activity android:label="@string/search_activity" android:name=".activities.search.SearchActivity"></activity>
|
<activity android:name=".activities.search.SearchActivity" android:label="@string/search_activity" ></activity>
|
||||||
|
<activity android:name=".activities.NavigatePointActivity"></activity>
|
||||||
|
<activity android:name=".activities.FavouritesActivity"></activity>
|
||||||
|
|
||||||
<activity android:name=".activities.search.SearchPOIActivity" android:label="@string/searchpoi_activity"></activity>
|
<activity android:name=".activities.search.SearchPOIActivity" android:label="@string/searchpoi_activity"></activity>
|
||||||
<activity android:name=".activities.search.SearchPOIListActivity"></activity>
|
<activity android:name=".activities.search.SearchPOIListActivity"></activity>
|
||||||
<activity android:name=".activities.NavigatePointActivity"></activity>
|
|
||||||
|
|
||||||
<activity android:name=".activities.search.SearchAddressActivity"></activity>
|
<activity android:name=".activities.search.SearchAddressActivity"></activity>
|
||||||
<activity android:name=".activities.search.SearchCityByNameActivity"></activity>
|
<activity android:name=".activities.search.SearchCityByNameActivity"></activity>
|
||||||
<activity android:name=".activities.search.SearchRegionByNameActivity"></activity>
|
<activity android:name=".activities.search.SearchRegionByNameActivity"></activity>
|
||||||
|
|
10
OsmAnd/res/layout/favourites.xml
Normal file
10
OsmAnd/res/layout/favourites.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- This file is at /res/layout/list.xml -->
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent">
|
||||||
|
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"></ListView>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
16
OsmAnd/res/layout/favourites_list_item.xml
Normal file
16
OsmAnd/res/layout/favourites_list_item.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent" android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView android:id="@+id/favourite_icon" android:layout_width="25px"
|
||||||
|
android:paddingLeft="2px" android:paddingRight="2px"
|
||||||
|
android:paddingTop="2px" android:layout_height="fill_parent" />
|
||||||
|
|
||||||
|
<TextView android:id="@+id/favouritedistance_label"
|
||||||
|
android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"
|
||||||
|
android:textSize="25px" android:maxWidth="150px" android:minWidth="100px"/>
|
||||||
|
<TextView android:id="@+id/favourite_label" android:layout_width="wrap_content" android:layout_marginLeft="10px"
|
||||||
|
android:layout_height="wrap_content" android:textSize="25px" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -8,7 +8,7 @@
|
||||||
android:paddingTop="2px" android:layout_height="fill_parent" />
|
android:paddingTop="2px" android:layout_height="fill_parent" />
|
||||||
|
|
||||||
<TextView android:id="@+id/poidistance_label"
|
<TextView android:id="@+id/poidistance_label"
|
||||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"
|
||||||
android:textSize="25px" android:maxWidth="100px" android:minWidth="100px"/>
|
android:textSize="25px" android:maxWidth="100px" android:minWidth="100px"/>
|
||||||
<TextView android:id="@+id/poi_label" android:layout_width="wrap_content"
|
<TextView android:id="@+id/poi_label" android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" android:textSize="25px" />
|
android:layout_height="wrap_content" android:textSize="25px" />
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
<menu
|
<menu
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<group android:id="@+id/map_context_menu" android:menuCategory="container"><item android:id="@+id/map_show_settings" android:title="@string/settings_Button"></item>
|
<group android:id="@+id/map_context_menu" android:menuCategory="container"><item android:id="@+id/map_show_settings" android:title="@string/settings_Button"></item>
|
||||||
|
<item android:id="@+id/map_add_to_favourite" android:title="@string/add_to_favourite"></item>
|
||||||
<item android:title="@string/navigate_to_point" android:id="@+id/map_navigate_to_point"></item>
|
<item android:title="@string/navigate_to_point" android:id="@+id/map_navigate_to_point"></item>
|
||||||
<item android:title="@string/map_specify_point" android:id="@+id/map_specify_point"></item>
|
<item android:title="@string/map_specify_point" android:id="@+id/map_specify_point"></item>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<string name="add_to_favourite">Add to Favourites</string>
|
||||||
<string name="use_english_names_descr">Select use native or english names</string>
|
<string name="use_english_names_descr">Select use native or english names</string>
|
||||||
<string name="use_english_names">Use english names</string>
|
<string name="use_english_names">Use english names</string>
|
||||||
<string name="app_settings">Application settings</string>
|
<string name="app_settings">Application settings</string>
|
||||||
|
|
277
OsmAnd/src/com/osmand/activities/FavouritesActivity.java
Normal file
277
OsmAnd/src/com/osmand/activities/FavouritesActivity.java
Normal file
|
@ -0,0 +1,277 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package com.osmand.activities;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.app.ListActivity;
|
||||||
|
import android.app.AlertDialog.Builder;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.ContextMenu;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ContextMenu.ContextMenuInfo;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.ListView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
|
|
||||||
|
import com.osmand.OsmandSettings;
|
||||||
|
import com.osmand.R;
|
||||||
|
import com.osmand.osm.LatLon;
|
||||||
|
import com.osmand.osm.MapUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Maxim Frolov
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class FavouritesActivity extends ListActivity {
|
||||||
|
|
||||||
|
public static final int DELETE_ITEM = 0;
|
||||||
|
public static final int EDIT_ITEM = 1;
|
||||||
|
|
||||||
|
private List<FavouritePoint> favouritesList;
|
||||||
|
private FavouritesDbHelper helper;
|
||||||
|
private FavouritesAdapter favouritesAdapter;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle icicle) {
|
||||||
|
super.onCreate(icicle);
|
||||||
|
setContentView(R.layout.favourites);
|
||||||
|
|
||||||
|
helper = new FavouritesDbHelper(this);
|
||||||
|
favouritesList = helper.getFavouritePoints();
|
||||||
|
|
||||||
|
ListView lv = getListView();
|
||||||
|
favouritesAdapter = new FavouritesAdapter(favouritesList);
|
||||||
|
lv.setAdapter(favouritesAdapter);
|
||||||
|
/* Add Context-Menu listener to the ListView. */
|
||||||
|
lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||||
|
menu.setHeaderTitle("Context menu");
|
||||||
|
menu.add(0, EDIT_ITEM, 0, "Edit favourite");
|
||||||
|
menu.add(0, DELETE_ITEM, 1, "Delete favourite");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onListItemClick(ListView parent, View v, int position, long id) {
|
||||||
|
SharedPreferences prefs = getSharedPreferences(OsmandSettings.SHARED_PREFERENCES_NAME, MODE_WORLD_READABLE);
|
||||||
|
if (prefs != null) {
|
||||||
|
FavouritePoint point = favouritesList.get(position);
|
||||||
|
OsmandSettings.setLastKnownMapLocation(this, point.getLatitude(), point.getLongitude());
|
||||||
|
Intent newIntent = new Intent(FavouritesActivity.this, MapActivity.class);
|
||||||
|
startActivity(newIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onContextItemSelected(MenuItem aItem) {
|
||||||
|
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) aItem.getMenuInfo();
|
||||||
|
final FavouritePoint point = (FavouritePoint) favouritesList.get(menuInfo.position);
|
||||||
|
if(aItem.getItemId() == EDIT_ITEM){
|
||||||
|
Builder builder = new AlertDialog.Builder(this);
|
||||||
|
builder.setTitle("Input new name of favourite point");
|
||||||
|
final EditText editText = new EditText(this);
|
||||||
|
builder.setView(editText);
|
||||||
|
editText.setText(point.getName());
|
||||||
|
builder.setNegativeButton("Cancel", null);
|
||||||
|
builder.setPositiveButton("Apply", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
boolean editied = helper.editFavouriteName(point, editText.getText().toString());
|
||||||
|
if (editied) {
|
||||||
|
favouritesAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
return true;
|
||||||
|
} if(aItem.getItemId() == DELETE_ITEM){
|
||||||
|
Builder builder = new AlertDialog.Builder(this);
|
||||||
|
builder.setMessage("Are you sure about deleting favourite point?");
|
||||||
|
builder.setNegativeButton("No", null);
|
||||||
|
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
boolean deleted = helper.deleteFavourite(point);
|
||||||
|
if (deleted) {
|
||||||
|
Toast.makeText(FavouritesActivity.this, "Favourite point " + point.getName() + " was succesfully deleted.",
|
||||||
|
Toast.LENGTH_SHORT).show();
|
||||||
|
favouritesList.remove(point);
|
||||||
|
favouritesAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class FavouritesDbHelper extends SQLiteOpenHelper {
|
||||||
|
|
||||||
|
private static final int DATABASE_VERSION = 1;
|
||||||
|
private static final String FAVOURITE_TABLE_NAME = "favourite";
|
||||||
|
private static final String FAVOURITE_COL_NAME = "name";
|
||||||
|
private static final String FAVOURITE_COL_LAT = "latitude";
|
||||||
|
private static final String FAVOURITE_COL_LON = "longitude";
|
||||||
|
private static final String FAVOURITE_TABLE_CREATE = "CREATE TABLE " + FAVOURITE_TABLE_NAME + " (" +
|
||||||
|
FAVOURITE_COL_NAME + " TEXT, " + FAVOURITE_COL_LAT + " double, " +
|
||||||
|
FAVOURITE_COL_LON + " double);";
|
||||||
|
|
||||||
|
FavouritesDbHelper(Context context) {
|
||||||
|
super(context, FAVOURITE_TABLE_NAME, null, DATABASE_VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addFavourite(FavouritePoint p){
|
||||||
|
SQLiteDatabase db = getWritableDatabase();
|
||||||
|
if(db != null){
|
||||||
|
db.execSQL("INSERT INTO " + FAVOURITE_TABLE_NAME + " VALUES (?, ?, ?)",new Object[]{p.getName(), p.getLatitude(), p.getLongitude()});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<FavouritePoint> getFavouritePoints(){
|
||||||
|
SQLiteDatabase db = getReadableDatabase();
|
||||||
|
ArrayList<FavouritePoint> list = new ArrayList<FavouritePoint>();
|
||||||
|
if(db != null){
|
||||||
|
Cursor query = db.rawQuery("SELECT " + FAVOURITE_COL_NAME +", " + FAVOURITE_COL_LAT +"," + FAVOURITE_COL_LON +" FROM " +
|
||||||
|
FAVOURITE_TABLE_NAME, null);
|
||||||
|
if(query.moveToFirst()){
|
||||||
|
do {
|
||||||
|
FavouritePoint p = new FavouritePoint();
|
||||||
|
p.setName(query.getString(0));
|
||||||
|
p.setLatitude(query.getDouble(1));
|
||||||
|
p.setLongitude(query.getDouble(2));
|
||||||
|
list.add(p);
|
||||||
|
} while(query.moveToNext());
|
||||||
|
}
|
||||||
|
query.close();
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean editFavouriteName(FavouritePoint p, String newName){
|
||||||
|
SQLiteDatabase db = getWritableDatabase();
|
||||||
|
if(db != null){
|
||||||
|
db.execSQL("UPDATE " + FAVOURITE_TABLE_NAME + " SET name = ? WHERE name = ?",new Object[]{newName, p.getName()});
|
||||||
|
p.setName(newName);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean deleteFavourite(FavouritePoint p){
|
||||||
|
SQLiteDatabase db = getWritableDatabase();
|
||||||
|
if(db != null){
|
||||||
|
db.execSQL("DELETE FROM " + FAVOURITE_TABLE_NAME + " WHERE name = ?",new Object[]{p.getName()});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(SQLiteDatabase db) {
|
||||||
|
db.execSQL(FAVOURITE_TABLE_CREATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class FavouritePoint {
|
||||||
|
private String name;
|
||||||
|
private double latitude;
|
||||||
|
private double longitude;
|
||||||
|
|
||||||
|
public double getLatitude() {
|
||||||
|
return latitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLatitude(double latitude) {
|
||||||
|
this.latitude = latitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLongitude() {
|
||||||
|
return longitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLongitude(double longitude) {
|
||||||
|
this.longitude = longitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Favourite " + getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
if(helper != null){
|
||||||
|
helper.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FavouritesAdapter extends ArrayAdapter<FavouritePoint> {
|
||||||
|
FavouritesAdapter(List<FavouritePoint> list) {
|
||||||
|
super(FavouritesActivity.this, R.layout.favourites_list_item, list);
|
||||||
|
this.setNotifyOnChange(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
|
View row = convertView;
|
||||||
|
if (row == null) {
|
||||||
|
LayoutInflater inflater = getLayoutInflater();
|
||||||
|
row = inflater.inflate(R.layout.favourites_list_item, parent, false);
|
||||||
|
}
|
||||||
|
TextView label = (TextView) row.findViewById(R.id.favourite_label);
|
||||||
|
TextView distanceLabel = (TextView) row.findViewById(R.id.favouritedistance_label);
|
||||||
|
ImageView icon = (ImageView) row.findViewById(R.id.favourite_icon);
|
||||||
|
FavouritePoint model = (FavouritePoint) getItem(position);
|
||||||
|
icon.setImageResource(R.drawable.poi);
|
||||||
|
LatLon lastKnownMapLocation = OsmandSettings.getLastKnownMapLocation(FavouritesActivity.this);
|
||||||
|
int dist = (int) (MapUtils.getDistance(model.getLatitude(), model.getLongitude(),
|
||||||
|
lastKnownMapLocation.getLatitude(), lastKnownMapLocation.getLongitude()));
|
||||||
|
distanceLabel.setText(MapUtils.getFormattedDistance(dist));
|
||||||
|
label.setText(model.getName());
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -41,11 +41,13 @@ public class MainMenuActivity extends Activity {
|
||||||
private Button exitButton;
|
private Button exitButton;
|
||||||
private Button settingsButton;
|
private Button settingsButton;
|
||||||
private Button searchButton;
|
private Button searchButton;
|
||||||
|
private Button favouritesButton;
|
||||||
private NotificationManager mNotificationManager;
|
private NotificationManager mNotificationManager;
|
||||||
private int APP_NOTIFICATION_ID;
|
private int APP_NOTIFICATION_ID;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void startApplication(){
|
public void startApplication(){
|
||||||
if(!applicationAlreadyStarted){
|
if(!applicationAlreadyStarted){
|
||||||
// TODO exception!!! has leaked window ?
|
// TODO exception!!! has leaked window ?
|
||||||
|
@ -108,8 +110,7 @@ public class MainMenuActivity extends Activity {
|
||||||
showMap.setOnClickListener(new OnClickListener() {
|
showMap.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
final Intent mapIndent = new Intent(MainMenuActivity.this,
|
final Intent mapIndent = new Intent(MainMenuActivity.this, MapActivity.class);
|
||||||
MapActivity.class);
|
|
||||||
startActivityForResult(mapIndent, 0);
|
startActivityForResult(mapIndent, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -118,8 +119,16 @@ public class MainMenuActivity extends Activity {
|
||||||
settingsButton.setOnClickListener(new OnClickListener() {
|
settingsButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
final Intent settings = new Intent(MainMenuActivity.this,
|
final Intent settings = new Intent(MainMenuActivity.this, SettingsActivity.class);
|
||||||
SettingsActivity.class);
|
startActivity(settings);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
favouritesButton = (Button) findViewById(R.id.FavoritesButton);
|
||||||
|
favouritesButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
final Intent settings = new Intent(MainMenuActivity.this, FavouritesActivity.class);
|
||||||
startActivity(settings);
|
startActivity(settings);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -135,7 +144,7 @@ public class MainMenuActivity extends Activity {
|
||||||
|
|
||||||
|
|
||||||
exitButton = (Button) findViewById(R.id.ExitButton);
|
exitButton = (Button) findViewById(R.id.ExitButton);
|
||||||
exitButton.setVisibility(View.INVISIBLE);
|
// exitButton.setVisibility(View.INVISIBLE);
|
||||||
exitButton.setOnClickListener(new OnClickListener() {
|
exitButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package com.osmand.activities;
|
package com.osmand.activities;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.app.AlertDialog.Builder;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.hardware.Sensor;
|
import android.hardware.Sensor;
|
||||||
|
@ -24,13 +27,17 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
import android.widget.Toast;
|
||||||
import android.widget.ZoomControls;
|
import android.widget.ZoomControls;
|
||||||
|
|
||||||
import com.osmand.LogUtil;
|
import com.osmand.LogUtil;
|
||||||
import com.osmand.OsmandSettings;
|
import com.osmand.OsmandSettings;
|
||||||
import com.osmand.R;
|
import com.osmand.R;
|
||||||
import com.osmand.ResourceManager;
|
import com.osmand.ResourceManager;
|
||||||
|
import com.osmand.activities.FavouritesActivity.FavouritePoint;
|
||||||
|
import com.osmand.activities.FavouritesActivity.FavouritesDbHelper;
|
||||||
import com.osmand.data.preparation.MapTileDownloader;
|
import com.osmand.data.preparation.MapTileDownloader;
|
||||||
import com.osmand.map.IMapLocationListener;
|
import com.osmand.map.IMapLocationListener;
|
||||||
import com.osmand.osm.LatLon;
|
import com.osmand.osm.LatLon;
|
||||||
|
@ -357,6 +364,9 @@ public class MapActivity extends Activity implements LocationListener, IMapLocat
|
||||||
final Intent settings = new Intent(MapActivity.this, SettingsActivity.class);
|
final Intent settings = new Intent(MapActivity.this, SettingsActivity.class);
|
||||||
startActivity(settings);
|
startActivity(settings);
|
||||||
return true;
|
return true;
|
||||||
|
} else if (item.getItemId() == R.id.map_add_to_favourite) {
|
||||||
|
addFavouritePoint();
|
||||||
|
return true;
|
||||||
} else if (item.getItemId() == R.id.map_specify_point) {
|
} else if (item.getItemId() == R.id.map_specify_point) {
|
||||||
openChangeLocationDialog();
|
openChangeLocationDialog();
|
||||||
return true;
|
return true;
|
||||||
|
@ -376,6 +386,33 @@ public class MapActivity extends Activity implements LocationListener, IMapLocat
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addFavouritePoint(){
|
||||||
|
final FavouritePoint p = new FavouritesActivity.FavouritePoint();
|
||||||
|
p.setLatitude(mapView.getLatitude());
|
||||||
|
p.setLongitude(mapView.getLongitude());
|
||||||
|
p.setName("Favourite");
|
||||||
|
|
||||||
|
Builder builder = new AlertDialog.Builder(this);
|
||||||
|
builder.setTitle("Input name of favourite point");
|
||||||
|
final EditText editText = new EditText(this);
|
||||||
|
builder.setView(editText);
|
||||||
|
builder.setNegativeButton("Cancel", null);
|
||||||
|
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
FavouritesDbHelper helper = new FavouritesActivity.FavouritesDbHelper(MapActivity.this);
|
||||||
|
p.setName(editText.getText().toString());
|
||||||
|
boolean added = helper.addFavourite(p);
|
||||||
|
if (added) {
|
||||||
|
Toast.makeText(MapActivity.this, "Favourite point " + p.getName() + " was succesfully added.", Toast.LENGTH_SHORT)
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
helper.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
}
|
||||||
|
|
||||||
private void openChangeLocationDialog() {
|
private void openChangeLocationDialog() {
|
||||||
NavigatePointActivity dlg = new NavigatePointActivity(this, mapView);
|
NavigatePointActivity dlg = new NavigatePointActivity(this, mapView);
|
||||||
dlg.showDialog();
|
dlg.showDialog();
|
||||||
|
|
Loading…
Reference in a new issue