add phone, site functionality to poi

git-svn-id: https://osmand.googlecode.com/svn/trunk@661 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
Victor Shcherb 2010-11-12 19:35:16 +00:00
parent 1d8b5a97d8
commit 8f5e132c54
4 changed files with 152 additions and 107 deletions

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="poi_context_menu_website">Просмотреть вебсайт POI</string>
<string name="poi_context_menu_call">Показать телефон POI</string>
<string name="website">веб сайт</string>
<string name="phone">телефон</string>
<string name="download_type_to_filter">фильтровать</string>
@ -284,115 +286,118 @@
<string name="app_name">OsmAnd</string>
<string name="app_description">Навигационное приложение</string>
<string name="exit_Button">Выход</string>
<string name="map_Button">Карта</string>
<string name="settings_Button">Настройки</string>
<string name="favorites_Button">Избранное</string>
<string name="search_button">Поиск</string>
<color name="menu_background">#FF9030</color>
<string name="search_activity">Поиск</string>
<color name="color_white">#FFFFFF</color>
<color name="color_red">#FF0000</color>
<string name="searchpoi_activity">Выберите poi</string>
<string name="search_POI_level_btn">Найти еще</string>
<string name="incremental_search_city">Выберите город. Введите 3 первых буквы, чтобы найти деревню, 2 цифры - индекс.</string>
<string name="incremental_search_street">Выберите улицу</string>
<string name="incremental_search_building">Выберите здание</string>
<string name="choose_available_region">Выберите регион из списка</string>
<string name="choose_intersected_street">Выберите пересечение улиц</string>
<string name="Closest_Amenities">Closest amenities</string>
<string name="app_mode_default">По умолчанию</string>
<string name="app_mode_car">Автомобиль</string>
<string name="app_mode_bicycle">Велосипед</string>
<string name="app_mode_pedestrian">Пешеход</string>
<string name="position_on_map_center">В центре</string>
<string name="position_on_map_bottom">Внизу</string>
<string name="interval_1_second">1 секунда</string>
<string name="interval_2_seconds">2 секунды</string>
<string name="interval_5_seconds">5 секунд</string>
<string name="interval_15_seconds">15 секунд</string>
<string name="interval_30_seconds">30 секунд</string>
<string name="interval_1_minute">1 минута</string>
<string name="interval_5_minutes">5 минут</string>
<string name="navigate_point_top_text">Введите широту и долготу в формате (Г - градусы, М - минуты, С - секунды)</string>
<string name="navigate_point_latitude">Широта</string>
<string name="navigate_point_longitude">Долгота</string>
<string name="navigate_point_format_D">ГГГ.ГГГГ</string>
<string name="navigate_point_format_DM">ГГГ:ММ.МММММ</string>
<string name="navigate_point_format_DMS">ГГГ:ММ:СС.ССССС</string>
<string name="search_shown_on_map">Показать</string>
<string name="navigate_point_cancel">Отмена</string>
<string name="search_address_top_text">Выберите адрес</string>
<string name="search_address_region">Регион</string>
<string name="search_address_city">Город</string>
<string name="search_address_street">Улица</string>
<string name="search_address_building">Здание</string>
<string name="search_address_building_option">Здание</string>
<string name="search_address_street_option">Пересечение улиц</string>
<string name="exit_Button">Выход</string>
<string name="map_Button">Карта</string>
<string name="settings_Button">Настройки</string>
<string name="favorites_Button">Избранное</string>
<string name="search_button">Поиск</string>
<color name="menu_background">#FF9030</color>
<string name="search_activity">Поиск</string>
<color name="color_white">#FFFFFF</color>
<color name="color_red">#FF0000</color>
<string name="searchpoi_activity">Выберите poi</string>
<string name="search_POI_level_btn">Найти еще</string>
<string name="incremental_search_city">Выберите город. Введите 3 первых буквы, чтобы найти деревню, 2 цифры - индекс.</string>
<string name="incremental_search_street">Выберите улицу</string>
<string name="incremental_search_building">Выберите здание</string>
<string name="choose_available_region">Выберите регион из списка</string>
<string name="choose_intersected_street">Выберите пересечение улиц</string>
<string name="Closest_Amenities">Closest amenities</string>
<string name="app_mode_default">По умолчанию</string>
<string name="app_mode_car">Автомобиль</string>
<string name="app_mode_bicycle">Велосипед</string>
<string name="app_mode_pedestrian">Пешеход</string>
<string name="position_on_map_center">В центре</string>
<string name="position_on_map_bottom">Внизу</string>
<string name="interval_1_second">1 секунда</string>
<string name="interval_2_seconds">2 секунды</string>
<string name="interval_5_seconds">5 секунд</string>
<string name="interval_15_seconds">15 секунд</string>
<string name="interval_30_seconds">30 секунд</string>
<string name="interval_1_minute">1 минута</string>
<string name="interval_5_minutes">5 минут</string>
<string name="navigate_point_top_text">Введите широту и долготу в формате (Г - градусы, М - минуты, С - секунды)</string>
<string name="navigate_point_latitude">Широта</string>
<string name="navigate_point_longitude">Долгота</string>
<string name="navigate_point_format_D">ГГГ.ГГГГ</string>
<string name="navigate_point_format_DM">ГГГ:ММ.МММММ</string>
<string name="navigate_point_format_DMS">ГГГ:ММ:СС.ССССС</string>
<string name="search_shown_on_map">Показать</string>
<string name="navigate_point_cancel">Отмена</string>
<string name="search_address_top_text">Выберите адрес</string>
<string name="search_address_region">Регион</string>
<string name="search_address_city">Город</string>
<string name="search_address_street">Улица</string>
<string name="search_address_building">Здание</string>
<string name="search_address_building_option">Здание</string>
<string name="search_address_street_option">Пересечение улиц</string>
<string name="search_tabs_location">Координаты</string>
<string name="context_menu_item_navigate_point">Идти к точке</string>
<string name="context_menu_item_add_favorite">Добавить к избранным</string>
<string name="context_menu_item_update_map">Обновить карту</string>
<string name="context_menu_item_open_bug">Сообщить об ошибке на карте</string>
<string name="context_menu_item_create_poi">Добавить poi</string>
<string name="search_tabs_location">Координаты</string>
<string name="context_menu_item_navigate_point">Идти к точке</string>
<string name="context_menu_item_add_favorite">Добавить к избранным</string>
<string name="context_menu_item_update_map">Обновить карту</string>
<string name="context_menu_item_open_bug">Сообщить об ошибке на карте</string>
<string name="context_menu_item_create_poi">Добавить poi</string>
<string name="default_buttons_yes">Да</string>
<string name="default_buttons_cancel">Отмена</string>
<string name="default_buttons_apply">Применить</string><string name="default_buttons_add">Добавить</string><string name="default_buttons_no">Нет</string><string name="add_favorite_dialog_top_text">Введите имя точки</string>
<string name="add_favorite_dialog_default_favourite_name">Избранная</string>
<string name="add_favorite_dialog_favourite_added_template">Точка \'\'{0}\'\' была успешно добавлена к Избранным.</string>
<string name="default_buttons_yes">Да</string>
<string name="default_buttons_cancel">Отмена</string>
<string name="default_buttons_apply">Применить</string>
<string name="default_buttons_add">Добавить</string>
<string name="default_buttons_no">Нет</string>
<string name="add_favorite_dialog_top_text">Введите имя точки</string>
<string name="add_favorite_dialog_default_favourite_name">Избранная</string>
<string name="add_favorite_dialog_favourite_added_template">Точка \'\'{0}\'\' была успешно добавлена к Избранным.</string>
<string name="favourites_context_menu_title">Контекстное меню</string>
<string name="favourites_context_menu_navigate">Идти к</string>
<string name="favourites_context_menu_edit">Редактировать точку</string>
<string name="favourites_context_menu_delete">Удалить точку</string>
<string name="favourites_edit_dialog_title">Введите новое имя точки</string>
<string name="favourites_context_menu_title">Контекстное меню</string>
<string name="favourites_context_menu_navigate">Идти к</string>
<string name="favourites_context_menu_edit">Редактировать точку</string>
<string name="favourites_context_menu_delete">Удалить точку</string>
<string name="favourites_edit_dialog_title">Введите новое имя точки</string>
<string name="favourites_remove_dialog_title">Вы действительно хотите удалить точку из Избранных?</string>
<string name="favourites_remove_dialog_success">Точка {0} была успешно удалена из Избранных.</string>
<string name="favourites_remove_dialog_title">Вы действительно хотите удалить точку из Избранных?</string>
<string name="favourites_remove_dialog_success">Точка {0} была успешно удалена из Избранных.</string>
<string name="osb_add_dialog_title">Подробно опишите ошибку</string>
<string name="osb_add_dialog_success">Спасибо, ваше замечание добавлено в базу</string>
<string name="osb_add_dialog_error">Произошла ошибка. Описание не было создано</string>
<string name="osb_comment_dialog_title">Добавление коментария к Open Street Bug</string>
<string name="osb_comment_dialog_add_button">Добавить</string>
<string name="osb_comment_dialog_success">Коментарий был успешно добавлен</string>
<string name="osb_comment_dialog_error">При добавлении коментария произошла ошибка. Коментарий не добавлен.</string>
<string name="osb_close_dialog_title">Закрыть Open Street Bug?</string>
<string name="osb_close_dialog_close_button">Закрыть</string>
<string name="osb_close_dialog_success">Open Street Bug был успешно закрыт.</string>
<string name="osb_close_dialog_error">При закрытии Open Street Bug произошла ошибка. Open Street Bug не был закрыт.</string>
<string name="osb_comment_menu_item">Добавить коментарий</string>
<string name="osb_close_menu_item">Закрыть Open Street Bug</string>
<string name="osb_comment_dialog_message">Комментарий</string>
<string name="osb_comment_dialog_author">Автор</string>
<string name="poi_edit_title">Редактирование POI</string>
<string name="poi_create_title">Добавление POI</string>
<string name="poi_error_poi_not_found">POI не найден или он не является точкой</string>
<string name="poi_remove_confirm_template">Вы действительно хотите удалить {0}?</string>
<string name="poi_remove_title">Удаление POI</string>
<string name="default_buttons_delete">Удалить</string>
<string name="poi_remove_success">POI был успешно удален.</string>
<string name="poi_action_add">добавления</string>
<string name="poi_action_change">изменения</string>
<string name="poi_action_succeded_template">Действие {0} успешно завершено.</string>
<string name="poi_error_unexpected_template">Неожиданная ошибка произошла при выполнении действия {0}.</string>
<string name="poi_error_io_error_template">Ошибка ввода/вывода произошла при выполнении действия {0}.</string>
<string name="poi_error_info_not_loaded">Произошла ошибка при загрузке информации о POI</string>
<string name="osb_add_dialog_title">Подробно опишите ошибку</string>
<string name="osb_add_dialog_success">Спасибо, ваше замечание добавлено в базу</string>
<string name="osb_add_dialog_error">Произошла ошибка. Описание не было создано</string>
<string name="osb_comment_dialog_title">Добавление коментария к Open Street Bug</string>
<string name="osb_comment_dialog_add_button">Добавить</string>
<string name="osb_comment_dialog_success">Коментарий был успешно добавлен</string>
<string name="osb_comment_dialog_error">При добавлении коментария произошла ошибка. Коментарий не добавлен.</string>
<string name="osb_close_dialog_title">Закрыть Open Street Bug?</string>
<string name="osb_close_dialog_close_button">Закрыть</string>
<string name="osb_close_dialog_success">Open Street Bug был успешно закрыт.</string>
<string name="osb_close_dialog_error">При закрытии Open Street Bug произошла ошибка. Open Street Bug не был закрыт.</string>
<string name="osb_comment_menu_item">Добавить коментарий</string>
<string name="osb_close_menu_item">Закрыть Open Street Bug</string>
<string name="osb_comment_dialog_message">Комментарий</string>
<string name="osb_comment_dialog_author">Автор</string>
<string name="poi_edit_title">Редактирование POI</string>
<string name="poi_create_title">Добавление POI</string>
<string name="poi_error_poi_not_found">POI не найден или он не является точкой</string>
<string name="poi_remove_confirm_template">Вы действительно хотите удалить {0}?</string>
<string name="poi_remove_title">Удаление POI</string>
<string name="default_buttons_delete">Удалить</string>
<string name="poi_remove_success">POI был успешно удален.</string>
<string name="poi_action_add">добавления</string>
<string name="poi_action_change">изменения</string>
<string name="poi_action_succeded_template">Действие {0} успешно завершено.</string>
<string name="poi_error_unexpected_template">Неожиданная ошибка произошла при выполнении действия {0}.</string>
<string name="poi_error_io_error_template">Ошибка ввода/вывода произошла при выполнении действия {0}.</string>
<string name="poi_error_info_not_loaded">Произошла ошибка при загрузке информации о POI</string>
<string name="poi_dialog_name">Имя</string>
<string name="poi_dialog_opening_hours">Время работы</string>
<string name="poi_dialog_comment">Комментарий</string>
<string name="poi_dialog_comment_default">Изменение POI</string>
<string name="poi_dialog_other_tags_message">Значения остальных тэгов POI не могут быть изменены.</string>
<string name="default_buttons_commit">Сохранить</string>
<string name="default_buttons_reset">Сброс</string>
<string name="filter_current_poiButton">Фильтровать</string>
<string name="edit_filter_delete_menu_item">Удалить</string>
<string name="edit_filter_save_as_menu_item">Сохранить как</string>
<string name="edit_filter_delete_dialog_title">Вы действительно хотите удалить текущий фильтр?</string>
<string name="edit_filter_delete_message">Фильтр {0} удален</string>
<string name="edit_filter_create_message">Фильтр {0} создан</string>
<string name="default_buttons_selectall">Выделить все</string>
<string name="poi_dialog_name">Имя</string>
<string name="poi_dialog_opening_hours">Время работы</string>
<string name="poi_dialog_comment">Комментарий</string>
<string name="poi_dialog_comment_default">Изменение POI</string>
<string name="poi_dialog_other_tags_message">Значения остальных тэгов POI не могут быть изменены.</string>
<string name="default_buttons_commit">Сохранить</string>
<string name="default_buttons_reset">Сброс</string>
<string name="filter_current_poiButton">Фильтровать</string>
<string name="edit_filter_delete_menu_item">Удалить</string>
<string name="edit_filter_save_as_menu_item">Сохранить как</string>
<string name="edit_filter_delete_dialog_title">Вы действительно хотите удалить текущий фильтр?</string>
<string name="edit_filter_delete_message">Фильтр {0} удален</string>
<string name="edit_filter_create_message">Фильтр {0} создан</string>
<string name="default_buttons_selectall">Выделить все</string>
</resources>

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<string name="poi_context_menu_website">See POI website</string>
<string name="poi_context_menu_call">Show POI phone</string>
<string name="website">web site</string>
<string name="phone">phone</string>
<string name="download_type_to_filter">type to filter</string>

View file

@ -181,7 +181,13 @@ public class AmenityIndexRepository extends BaseLocationIndexRepository<Amenity>
}
private void insertAmenities(Collection<Amenity> amenities) {
SQLiteStatement stat = db.compileStatement("INSERT INTO " + IndexConstants.POI_TABLE + //$NON-NLS-1$
SQLiteStatement stat = db.compileStatement("DELETE FROM " + IndexConstants.POI_TABLE + " WHERE id = ?"); //$NON-NLS-1$//$NON-NLS-2$
for (Amenity a : amenities) {
stat.bindLong(1, a.getId());
stat.execute();
}
stat.close();
stat = db.compileStatement("INSERT INTO " + IndexConstants.POI_TABLE + //$NON-NLS-1$
"(id, x, y, name_en, name, type, subtype, opening_hours, site, phone) values(?,?,?,?,?,?,?,?,?,?)"); //$NON-NLS-1$
for (Amenity a : amenities) {
stat.bindLong(1, a.getId());

View file

@ -3,6 +3,7 @@ package net.osmand.views;
import java.util.ArrayList;
import java.util.List;
import net.osmand.LogUtil;
import net.osmand.OsmandSettings;
import net.osmand.PoiFilter;
import net.osmand.R;
@ -12,6 +13,7 @@ import net.osmand.data.Amenity;
import net.osmand.osm.LatLon;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Canvas;
import android.graphics.Color;
@ -19,6 +21,7 @@ import android.graphics.Paint;
import android.graphics.PointF;
import android.graphics.RectF;
import android.graphics.Paint.Style;
import android.net.Uri;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.Toast;
@ -26,6 +29,7 @@ import android.widget.Toast;
public class POIMapLayer implements OsmandMapLayer, ContextMenuLayer.IContextMenuProvider {
private static final int startZoom = 10;
public static final int LIMIT_POI = 200;
public static final org.apache.commons.logging.Log log = LogUtil.getLog(POIMapLayer.class);
private Paint pointAltUI;
@ -163,6 +167,15 @@ public class POIMapLayer implements OsmandMapLayer, ContextMenuLayer.IContextMen
final Amenity a = (Amenity) o;
actionsList.add(this.view.getResources().getString(R.string.poi_context_menu_modify));
actionsList.add(this.view.getResources().getString(R.string.poi_context_menu_delete));
int ind = 2;
final int phoneIndex = a.getPhone() != null ? ind++ : -1;
final int siteIndex = a.getSite() != null ? ind++ : -1;
if(a.getPhone() != null){
actionsList.add(this.view.getResources().getString(R.string.poi_context_menu_call));
}
if(a.getSite() != null){
actionsList.add(this.view.getResources().getString(R.string.poi_context_menu_website));
}
final EditingPOIActivity edit = new EditingPOIActivity(view.getContext(), view.getApplication(), view);
return new DialogInterface.OnClickListener(){
@ -170,8 +183,27 @@ public class POIMapLayer implements OsmandMapLayer, ContextMenuLayer.IContextMen
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
edit.showEditDialog(a);
} else {
} else if(which == 1) {
edit.showDeleteDialog(a);
} else if (which == phoneIndex) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("tel:"+a.getPhone())); //$NON-NLS-1$
view.getContext().startActivity(intent);
} catch (RuntimeException e) {
log.error("Failed to invoke call", e); //$NON-NLS-1$
Toast.makeText(view.getContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
} else if (which == siteIndex) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(a.getSite()));
view.getContext().startActivity(intent);
} catch (RuntimeException e) {
log.error("Failed to invoke call", e); //$NON-NLS-1$
Toast.makeText(view.getContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
} else {
}
}
};