Merge branch 'master' of git@github.com:osmandapp/Osmand.git

This commit is contained in:
sonora 2011-10-15 23:02:47 +02:00
commit 8fefc66302
17 changed files with 258 additions and 129 deletions

View file

@ -3,7 +3,7 @@
<string name="data_to_search_poi_not_available">Brak danych lokalnych do wyszukania POI</string>
<string name="poi_filter_by_name">Szukaj wg nazwy</string>
<string name="old_poi_file_should_be_deleted">Plik \'%1$s\' z danymi POI jest przestarzały i należy go usunąć.</string>
<string name="old_poi_file_should_be_deleted">Plik \'%1$s\' z danymi POI jest nadmiarowy i można go usunąć.</string>
<string name="update_poi_file_not_found">Nie znaleziono lokalnego pliku z POI i nie może on zostać utworzony.</string>
<string name="update_poi_does_not_change_indexes">Zmiana POI w aplikacji nie powoduje zmian w mapie, a jedynie jest zapisywana w pliku lokalnym.</string>
<string name="button_upgrade_osmandplus">Uaktualnij Osmand+</string>
@ -15,9 +15,9 @@
<string name="choose_auto_follow_route">Autostart nawigatora</string>
<string name="choose_auto_follow_route_descr">Ustaw czas, po którym nastąpi automatyczne uruchomienie nawigatora</string>
<string name="search_select_point">Wybierz</string>
<string name="local_index_description">Pobierz nowe, zarchiwizuj lub usuń istniejące dane. \nIstniejące dane offline na urządzeniu (%1$s jest dostępny):</string>
<string name="local_index_description">Pobierz nowe, zarchiwizuj lub usuń istniejące dane. \nIstniejące dane offline na urządzeniu (%1$s jest dostępne):</string>
<string name="search_position_current_location_search">Ustal pozycję GPS...</string>
<string name="search_position_current_location_found">Pozycja [Ustalono]</string>
<string name="search_position_current_location_found">Pozycja [ustalona]</string>
<string name="search_position_address">Adres...</string>
<string name="search_position_favorites">Ulubione...</string>
<string name="search_position_undefined">Niezdefiniowane</string>
@ -181,8 +181,8 @@
\n\tNastępnie wybierz sposób udostępnienia. Do wyboru jest e-mail, SMS lub zwykłe skopiowanie koordynat do schowka.</string>
<string name="tip_favorites">Ulubione punkty</string>
<string name="tip_favorites_t">\tCzęsto używane punkty mogą zostać zapisane jako Ulubione.
\n\tAby zapisać punkt jako Ulubiony przejdź do menu kontekstowego, wybierz \'Opcje punktu\' -&gt; \'Dodaj do ulubionych\' i wprowadź jego nazwę. Po zapisaniu, punkt będzie można znaleźć w głównym menu -&gt; \'Ulubione\'.
<string name="tip_favorites_t">\tCzęsto używane punkty mogą zostać zapisane jako ulubione.
\n\tAby zapisać punkt jako ulubiony przejdź do menu kontekstowego, wybierz \'Opcje punktu\' -&gt; \'Dodaj do ulubionych\' i wprowadź jego nazwę. Po zapisaniu, punkt będzie można znaleźć w głównym menu -&gt; \'Ulubione\'.
\n\tDłuższe naciśnięcie pozycji w \'Ulubionych\' pokaże opcje dotyczące tego punktu.
\n\tAby wyświetlić wszystkie ulubione punkty bezpośrednio na mapie, włącz warstwę \'Ulubione\' w \'Zdefiniuj widok\'.</string>
@ -306,7 +306,7 @@
<string name="gps_status_app_not_found">GPS Status application not installed. Search in Market?</string>
<string name="voice_is_not_available_msg">Voice guidance is not available. Please go to settings, choose preferred voice data package, and download it.</string>
<string name="voice_is_not_available_msg">Głos nawigatora nie jest dostępny. Przejdź do ustawień, wybierz ulubiony zestaw i zainstaluj go.</string>
<string name="voice_is_not_available_title">Nie wybrano głosu nawigatora</string>
<string name="daynight_mode_day">Dzień</string>
<string name="daynight_mode_night">Noc</string>
@ -373,7 +373,7 @@
<string name="vector_data">Mapy wektorowe offline</string>
<string name="transport_context_menu">Search transport at stop</string>
<string name="point_on_map">Punkt na mapie:\n Lat {0,number,#.####}\n Lon {1,number,#.####}</string>
<string name="point_on_map">Punkt na mapie:\n Szer. {0,number,#.####}\n Dł. {1,number,#.####}</string>
<string name="osb_bug_name">Błąd</string>
<string name="poi_context_menu_modify">Modyfikuj POI</string>
<string name="poi_context_menu_delete">Usuń POI</string>
@ -405,7 +405,7 @@
<string name="layer_poi">POI...</string>
<string name="layer_map">Źródło mapy...</string>
<string name="menu_layers">Zdefiniuj widok</string>
<string name="continue_follow_previous_route">Previous route was unfinished. Continue following it?</string>
<string name="continue_follow_previous_route">Poprzednia trasa nie została ukończona. Czy chcesz kontynuować?</string>
<string name="context_menu_item_search_poi">Szukaj POI</string>
<string name="context_menu_item_show_route">Trasa z</string>
<string name="use_trackball_descr">Użyj trackballa do przesuwania mapy</string>
@ -426,13 +426,13 @@
<string name="background_router_service_descr">Enable background service to track position over long time periods</string>
<string name="background_router_service">Użyj usługi w tle</string>
<string name="off_router_service_no_gps_available">The background routing service requires a location source to be turned on.</string>
<string name="routing_settings_descr">Specify routing options</string>
<string name="routing_settings_descr">Skonfiguruj opcje routingu</string>
<string name="routing_settings">Nawigacja</string>
<string name="hide_poi_filter">Ukryj filtr</string>
<string name="show_poi_filter">Pokaż filtr</string>
<string name="search_poi_filter">Filtr</string>
<string name="menu_mute_off">Dźwięk włączony</string>
<string name="menu_mute_on">Dźwięk wyłączony</string>
<string name="menu_mute_off">Wył. dźwięk</string>
<string name="menu_mute_on">Wł. dźwięk</string>
<string name="voice_provider_descr">Wybierz głos nawigatora</string>
<string name="voice_provider">Głos nawigatora</string>
<string name="voice_data_initializing">Inicjalizacja danych głosowych...</string>
@ -478,8 +478,8 @@
<string name="transport_route_distance">Długość trasy</string>
<string name="transport">Transport</string>
<string name="default_buttons_ok">OK</string>
<string name="show_transport_over_map_description">Show public transport stops on map</string>
<string name="show_transport_over_map">Show transport stops</string>
<string name="show_transport_over_map_description">Pokaż na mapie przystanki transportu publicznego</string>
<string name="show_transport_over_map">Pokaż przystanki</string>
<string name="hello">Program do nawigacji satelitarnej OsmAnd</string>
<string name="update_poi_success">POI data was updated successfully ({0} were loaded)</string>
<string name="update_poi_error_local">Error updating local POI list</string>
@ -495,7 +495,7 @@
<string name="search_history_navigate_to">Naviguj do szer. = {0}, dł. = {1}</string>
<string name="favorite">Ulubione</string>
<string name="clear_all">Wyczyść wszystko</string>
<string name="history">History</string>
<string name="history">Historia</string>
<string name="uploading_data">Wysyłanie danych...</string>
<string name="uploading">Wysyłanie...</string>
<string name="search_nothing_found">Nic nie znaleziono</string>
@ -505,7 +505,7 @@
<string name="hint_search_online">Numer domu, ulica, miejscowość</string>
<string name="search_offline_address">Offline</string>
<string name="search_online_address">Internet</string>
<string name="max_level_download_tile">Max. online zoom</string>
<string name="max_level_download_tile">Maks. zoom online</string>
<string name="max_level_download_tile_descr">Choose maximum zoom level to download for online map tiles</string>
<string name="route_about">O trasie</string>
<string name="route_general_information">Dystans całkowity {0}, czas podróży {1} h {2} m.</string>
@ -540,7 +540,7 @@
<string name="loading_poi_obj">Wczytywanie POI...</string>
<string name="auth_failed">Autoryzacja nie powiodła się</string>
<string name="failed_op">nie powiodło się</string>
<string name="converting_names">Konwertowanie Converting native/English names...</string>
<string name="converting_names">Konwertowanie natywnych/angielskich nazw...</string>
<string name="loading_streets_buildings">Wczytywanie ulic/budynków...</string>
<string name="loading_postcodes">Wczytywanie kodów pocztowych...</string>
<string name="loading_streets">Wczytywanie ulic...</string>
@ -569,16 +569,16 @@
<string name="use_online_routing">Użyj routingu online</string>
<string name="user_password_descr">Twoje hasło do konta OSM</string>
<string name="user_password">Hasło do konta OSM</string>
<string name="osm_settings_descr">Specify Openstreetmap.org (OSM) settings needed for OSM submissions</string>
<string name="monitor_preferences_descr">Specify tracking settings</string>
<string name="osm_settings_descr">Skonfiguruj ustawienia dotyczące potrzebne do wysyłania danych do Openstreetmap.org (OSM)</string>
<string name="monitor_preferences_descr">Skonfiguruj zapisywanie śladów GPX</string>
<string name="data_settings_descr">Ustaw język, pobierz/przeładuj dane</string>
<string name="data_settings">Dane</string>
<string name="map_preferences_descr">Specify map settings: map source, rotation, marker position, screen orientation</string>
<string name="map_preferences_descr">Zmień ustawienia mapy: źródło mapy, obracanie, pozycję markera, orientację ekranu</string>
<string name="osm_settings">OSM</string>
<string name="auto_zoom_map_descr">Dostosuj zoom mapy do Twojej prędkości</string>
<string name="auto_zoom_map">Autozoom mapy</string>
<string name="additional_settings">Ustawienia dodatkowe</string>
<string name="settings_preset_descr">Wybierz profil. (Ustawienia każdego profilu mogą być zmieniane poniżej.)</string>
<string name="settings_preset_descr">Wybierz profil nawigacji (ustawienia każdego profilu mogą być zmieniane poniżej).</string>
<string name="settings_preset">Tryb programu</string>
<string name="settings">Ustawienia</string>
<string name="save_current_track_descr">Zapisz bieżący ślad do karty SD</string>
@ -596,10 +596,10 @@
<string name="mark_point">Cel</string>
<string name="show_osm_bugs_descr">Pokaż OpenStreetBugs na mapie</string>
<string name="show_osm_bugs">Pokaż OpenStreetBugs</string>
<string name="favourites_activity">List of favorite points</string>
<string name="add_to_favourite">Add to Favorites</string>
<string name="use_english_names_descr">Select between native and English names</string>
<string name="use_english_names">Use english names</string>
<string name="favourites_activity">Lista ulubionych punktów</string>
<string name="add_to_favourite">Dodaj do ulubionych</string>
<string name="use_english_names_descr">Zaznacz, jeśli chcesz używać angielskich nazw zamiast natywnych</string>
<string name="use_english_names">Używaj angielskich nazw</string>
<string name="app_settings">Ustawienia programu</string>
<string name="search_address">Szukaj adresu</string>
<string name="choose_building">Wybierz nr domu</string>
@ -616,7 +616,7 @@
<string name="map_view_3d_descr">Włącz widok 3D mapy</string>
<string name="map_view_3d">Widok 3D mapy</string>
<string name="show_poi_over_map_description">Show POI over map (use last chosen filter)</string>
<string name="show_poi_over_map_description">Pokaż POI na mapie (używa ostatnio wybranego filtru)</string>
<string name="show_poi_over_map">Pokaż POI</string>
<string name="map_tile_source_descr">Wybierz źródło mapy kafelkowej (online lub offline): </string>
<string name="map_tile_source">Źródło mapy kafelkowej</string>
@ -672,7 +672,7 @@
<string name="search_address_building_option">Budynek</string>
<string name="search_address_street_option">Przecinająca ulica (przecznica)</string>
<string name="search_tabs_location">Pozycja</string>
<string name="search_tabs_location">Pozycja GPS</string>
<string name="context_menu_item_navigate_point">Nawiguj do punktu</string>
<string name="context_menu_item_add_favorite">Dodaj do ulubionych</string>
@ -695,26 +695,26 @@
<string name="favourites_context_menu_delete">Usuń</string>
<string name="favourites_edit_dialog_title">Zmień nazwę</string>
<string name="favourites_remove_dialog_title">Are you sure to remove favorite point?</string>
<string name="favourites_remove_dialog_success">Favorite point {0} was succesfully deleted.</string>
<string name="favourites_remove_dialog_title">Czy na pewno chcesz usunąć ulubiony punkt?</string>
<string name="favourites_remove_dialog_success">Ulubiony punkt {0} został usunięty.</string>
<string name="osb_add_dialog_title">Wprowadź opis błędu</string>
<string name="osb_add_dialog_success">Błąd złoszony</string>
<string name="osb_add_dialog_success">Błąd został zgłoszony</string>
<string name="osb_add_dialog_error">Wystąpił błąd, zgłoszenie nie zostało utworzone</string>
<string name="osb_comment_menu_item">Dodaj komentarz</string>
<string name="osb_comment_dialog_message">Wiadomość</string>
<string name="osb_comment_dialog_author">Author name</string>
<string name="osb_comment_dialog_title">Adding comment to bug</string>
<string name="osb_comment_dialog_title">Dodaj komentarz do błędu</string>
<string name="osb_comment_dialog_add_button">Dodaj komentarz</string>
<string name="osb_comment_dialog_success">Dodano komentarz</string>
<string name="osb_comment_dialog_error">Wystąpił błąd, komentarz nie został dodany</string>
<string name="osb_close_menu_item">Close bug</string>
<string name="osb_close_dialog_title">Closing bug</string>
<string name="osb_close_dialog_close_button">Close bug</string>
<string name="osb_close_dialog_success">Bug was successfully closed</string>
<string name="osb_close_dialog_error">Exception occured: bug was not closed</string>
<string name="osb_close_menu_item">Zamknij błąd</string>
<string name="osb_close_dialog_title">Zamykanie błędu</string>
<string name="osb_close_dialog_close_button">Zamknij błąd</string>
<string name="osb_close_dialog_success">Błąd został zamknięty</string>
<string name="osb_close_dialog_error">Wystąpił problem, błąd nie został zamknięty</string>
<string name="poi_edit_title">Edytuj POI</string>
<string name="poi_create_title">Dodaj POI</string>
@ -746,4 +746,26 @@
<string name="edit_filter_create_message">Filtr {0} został utworzony</string>
<string name="default_buttons_selectall">Zaznacz wszystko</string>
</resources>
<string name="layer_poi_label">Etykiety POI</string>
<string name="auto_follow_route_navigation_descr">Włącz autostart nawigatora tylko w trybie nawigacji.</string>
<string name="auto_follow_route_navigation">Autostart nawigatora</string>
<string name="auto_follow_location_enabled">Autostart nawigatora jest włączony.</string>
<string name="animate_route_off">Wył. animacje</string>
<string name="animate_route">Wł. animacje</string>
<string name="tip_recent_changes_0_6_8_t">Zmiany w wersji 0.6.8:
\n\t- całkowicie przeprojektowano wyszukiwanie (POI, adresy) - teraz jest szysbsze i bardziej responsywne
\n\t- zaimplementowano wyszukiwanie POI po nazwie na dużych obszarach (krajach)
\n\t- naprawiono migotanie ekranu na tabletach (zgłoszenie nr 641)
\n\t- dodano opcję autostartu nawigacji (zgłoszenie nr 356)
\n\t- nawigacja wg śladu GPX przeniesiona została do menu \'Nawigacja\'
\n\t- dane POI teraz są w plikach .obf
\n\t- poprawiono błedy komunikatów głosowych (ustalenie pozycji GPS, pomijanie pierwszej komendy)
\n\t- naprawiono inne, drobne błędy
</string>
<string name="file_can_not_be_renamed">Nazwa pliku nie może zostać zmieniona.</string>
<string name="file_with_name_already_exists">Plik o takiej nazwie już istnieje.</string>
<string name="gpx_navigation">Trasa GPX</string>
</resources>

View file

@ -4,22 +4,21 @@ import java.io.File;
import java.util.List;
import java.util.Stack;
import org.apache.commons.logging.Log;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import net.osmand.Algoritms;
import net.osmand.LogUtil;
import net.osmand.ResultMatcher;
import net.osmand.data.Amenity;
import net.osmand.data.MapTileDownloader;
import net.osmand.data.TransportStop;
import net.osmand.data.MapTileDownloader.DownloadRequest;
import net.osmand.data.MapTileDownloader.IMapDownloaderCallback;
import net.osmand.data.TransportStop;
import net.osmand.map.ITileSource;
import org.apache.commons.logging.Log;
import android.os.Handler;
import android.os.HandlerThread;
/**
* Thread to load map objects (POI, transport stops )async
*/

View file

@ -751,7 +751,8 @@ public class OsmandSettings {
public static final String LAST_KNOWN_MAP_LAT = "last_known_map_lat"; //$NON-NLS-1$
public static final String LAST_KNOWN_MAP_LON = "last_known_map_lon"; //$NON-NLS-1$
public static final String LAST_KNOWN_MAP_ZOOM = "last_known_map_zoom"; //$NON-NLS-1$
public static final String MAP_LABEL_TO_SHOW = "map_label_to_show"; //$NON-NLS-1$
public static final String MAP_LAT_TO_SHOW = "map_lat_to_show"; //$NON-NLS-1$
public static final String MAP_LON_TO_SHOW = "map_lon_to_show"; //$NON-NLS-1$
public static final String MAP_ZOOM_TO_SHOW = "map_zoom_to_show"; //$NON-NLS-1$
@ -766,14 +767,7 @@ public class OsmandSettings {
return globalPreferences.contains(LAST_KNOWN_MAP_LAT);
}
public void setMapLocationToShow(double latitude, double longitude) {
setMapLocationToShow(latitude, longitude, getLastKnownMapZoom(), null);
}
public void setMapLocationToShow(double latitude, double longitude, int zoom) {
setMapLocationToShow(latitude, longitude, null);
}
public LatLon getAndClearMapLocationToShow(){
if(!globalPreferences.contains(MAP_LAT_TO_SHOW)){
return null;
@ -784,14 +778,26 @@ public class OsmandSettings {
return new LatLon(lat, lon);
}
public String getAndClearMapLabelToShow(){
String label = globalPreferences.getString(MAP_LABEL_TO_SHOW, null);
globalPreferences.edit().remove(MAP_LABEL_TO_SHOW).commit();
return label;
}
public int getMapZoomToShow() {
return globalPreferences.getInt(MAP_ZOOM_TO_SHOW, 5);
}
public void setMapLocationToShow(double latitude, double longitude, int zoom, String historyDescription) {
public void setMapLocationToShow(double latitude, double longitude, int zoom, String historyDescription,
String labelToShow) {
Editor edit = globalPreferences.edit();
edit.putFloat(MAP_LAT_TO_SHOW, (float) latitude);
edit.putFloat(MAP_LON_TO_SHOW, (float) longitude);
if (labelToShow != null) {
edit.putString(MAP_LABEL_TO_SHOW, labelToShow);
} else {
edit.remove(MAP_LABEL_TO_SHOW);
}
edit.putInt(MAP_ZOOM_TO_SHOW, zoom);
edit.commit();
if(historyDescription != null){
@ -799,8 +805,12 @@ public class OsmandSettings {
}
}
public void setMapLocationToShow(double latitude, double longitude, String historyDescription) {
setMapLocationToShow(latitude, longitude, getLastKnownMapZoom(), historyDescription);
public void setMapLocationToShow(double latitude, double longitude, int zoom) {
setMapLocationToShow(latitude, longitude, zoom, null, null);
}
public void setMapLocationToShow(double latitude, double longitude, int zoom, String historyDescription){
setMapLocationToShow(latitude, longitude, zoom, historyDescription, historyDescription);
}
// Do not use that method if you want to show point on map. Use setMapLocationToShow

View file

@ -13,6 +13,9 @@ public class RotatedTileBox {
private int zoom;
private float rotateCos;
private float rotateSin;
private RectF latLon;
private boolean rendering;
private RotatedTileBox parent;
public RotatedTileBox(float leftTileX, float topTileY, float tileWidth, float tileHeight, float rotate, int zoom) {
set(leftTileX, topTileY, tileWidth, tileHeight, rotate, zoom);
@ -20,6 +23,9 @@ public class RotatedTileBox {
public RotatedTileBox(RotatedTileBox r){
set(r.leftTileX, r.topTileY, r.tileWidth, r.tileHeight, r.rotate, r.zoom);
this.latLon = r.latLon;
this.rendering = r.rendering;
this.parent = r;
}
private void init() {
@ -166,6 +172,61 @@ public class RotatedTileBox {
return calcPointTileY(tileWidth, tileHeight);
}
/**
* the lat lon bounds
* @param latLonBounds
*/
public void setLatLon(RectF latLonBounds) {
//on new latLonBounds reset rendering info and latLonBounds....
if (!latLonBounds.equals(this.latLon)) {
this.rendering = false;
this.latLon = latLonBounds;
}
}
/**
* @return true if rendering is in progress
*/
public boolean isRendering() {
return rendering;
}
/**
* Say we are rendering this box
*/
public void rendering() {
rendering = true;
if (parent != null) {
parent.rendering(latLon);
}
}
/**
* Say we are rendering this box for this coordinates
*
* @param aLatLon
*/
private void rendering(RectF aLatLon) {
if (aLatLon.equals(latLon)) {
rendering = true;
}
}
/**
* all if rendering was interrupted
*/
public void renderingInterrupted() {
rendered();
}
/**
* Call if rendering is finished
*/
public void rendered() {
rendering = false;
if (parent != null) {
parent.rendered();
}
}
}

View file

@ -229,8 +229,10 @@ public class FavouritesActivity extends ExpandableListActivity {
}
} else {
FavouritePoint point = (FavouritePoint) favouritesAdapter.getChild(groupPosition, childPosition);
OsmandSettings.getOsmandSettings(this).SHOW_FAVORITES.set( true);
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(point.getLatitude(), point.getLongitude(), getString(R.string.favorite)+" : " + point.getName()); //$NON-NLS-1$
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
settings.SHOW_FAVORITES.set(true);
settings.setMapLocationToShow(point.getLatitude(), point.getLongitude(),
Math.max(12, settings.getLastKnownMapZoom()), null, getString(R.string.favorite)+" : " + point.getName());
MapActivity.launchMapActivityMoveToTop(FavouritesActivity.this);
}
return true;
@ -244,8 +246,10 @@ public class FavouritesActivity extends ExpandableListActivity {
int group = ExpandableListView.getPackedPositionGroup(((ExpandableListContextMenuInfo)menuInfo).packedPosition);
final FavouritePoint point = (FavouritePoint) favouritesAdapter.getChild(group, child);
if (aItem.getItemId() == SHOW_ON_MAP) {
OsmandSettings.getOsmandSettings(this).SHOW_FAVORITES.set( true);
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(point.getLatitude(), point.getLongitude(), getString(R.string.favorite)+" : " + point.getName());
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
settings.SHOW_FAVORITES.set(true);
settings.setMapLocationToShow(point.getLatitude(), point.getLongitude(),
Math.max(12, settings.getLastKnownMapZoom()), null, getString(R.string.favorite)+" : " + point.getName());
MapActivity.launchMapActivityMoveToTop(this);
} else if (aItem.getItemId() == NAVIGATE_TO) {
OsmandSettings.getOsmandSettings(this).setPointToNavigate(point.getLatitude(), point.getLongitude(), getString(R.string.favorite)+" : " + point.getName());

View file

@ -124,8 +124,9 @@ public class FavouritesListActivity extends ListActivity implements SearchActivi
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
OsmandSettings.getOsmandSettings(FavouritesListActivity.this).setMapLocationToShow(entry.getLatitude(),
entry.getLongitude());
OsmandSettings settings = OsmandSettings.getOsmandSettings(FavouritesListActivity.this);
settings.setMapLocationToShow(entry.getLatitude(), entry.getLongitude(), settings.getLastKnownMapZoom(),
null, getString(R.string.favorite)+" : " + entry.getName()); //$NON-NLS-1$
} else if (which == 1) {
OsmandSettings.getOsmandSettings(FavouritesListActivity.this).setPointToNavigate(entry.getLatitude(),
entry.getLongitude(), getString(R.string.favorite) + " : " + entry.getName());
@ -140,10 +141,13 @@ public class FavouritesListActivity extends ListActivity implements SearchActivi
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!isSelectFavoriteMode()) {
if (!isSelectFavoriteMode()) {
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
FavouritePoint point = favouritesAdapter.getItem(position);
OsmandSettings.getOsmandSettings(this).SHOW_FAVORITES.set( true);
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(point.getLatitude(), point.getLongitude(), getString(R.string.favorite)+" : " + point.getName()); //$NON-NLS-1$
settings.SHOW_FAVORITES.set(true);
settings.setMapLocationToShow(point.getLatitude(), point.getLongitude(), settings.getLastKnownMapZoom(), null,
getString(R.string.favorite) + " : " + point.getName()); //$NON-NLS-1$
MapActivity.launchMapActivityMoveToTop(FavouritesListActivity.this);
} else {
Intent intent = getIntent();

View file

@ -154,7 +154,8 @@ public class LocalIndexesActivity extends ExpandableListActivity {
if (info != null && info.getGpxFile() != null) {
WptPt loc = info.getGpxFile().findPointToShow();
if (loc != null) {
OsmandSettings.getOsmandSettings(LocalIndexesActivity.this).setMapLocationToShow(loc.lat, loc.lon);
OsmandSettings settings = OsmandSettings.getOsmandSettings(LocalIndexesActivity.this);
settings.setMapLocationToShow(loc.lat, loc.lon, settings.getLastKnownMapZoom());
}
((OsmandApplication) getApplication()).setGpxFileToDisplay(info.getGpxFile());
MapActivity.launchMapActivityMoveToTop(LocalIndexesActivity.this);

View file

@ -292,9 +292,19 @@ public class MapActivity extends Activity implements IMapLocationListener, Senso
showAndHideMapPosition();
LatLon cur = new LatLon(mapView.getLatitude(), mapView.getLongitude());
LatLon latLon = settings.getAndClearMapLocationToShow();
if (latLon != null && !latLon.equals(cur)) {
mapView.getAnimatedDraggingThread().startMoving(latLon.getLatitude(), latLon.getLongitude(), settings.getMapZoomToShow(), true);
LatLon latLonToShow = settings.getAndClearMapLocationToShow();
String mapLabelToShow = settings.getAndClearMapLabelToShow();
if(mapLabelToShow != null && latLonToShow != null){
if(mapLabelToShow.length() == 0){
mapLayers.getContextMenuLayer().setLocation(latLonToShow, mapLabelToShow);
} else {
mapLayers.getContextMenuLayer().setLocation(latLonToShow, mapLabelToShow);
}
}
if (latLonToShow != null && !latLonToShow.equals(cur)) {
mapView.getAnimatedDraggingThread().startMoving(latLonToShow.getLatitude(), latLonToShow.getLongitude(),
settings.getMapZoomToShow(), true);
}
View progress = findViewById(R.id.ProgressBar);

View file

@ -169,7 +169,9 @@ public class NavigatePointActivity extends Activity implements SearchActivityChi
OsmandMapTileView v = activity.getMapView();
v.getAnimatedDraggingThread().startMoving(lat, lon, v.getZoom(), true);
} else {
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(lat, lon, MessageFormat.format(getString(R.string.search_history_navigate_to), lat, lon));
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
settings.setMapLocationToShow(lat, lon, Math.max(12, settings.getLastKnownMapZoom()),
MessageFormat.format(getString(R.string.search_history_navigate_to), lat, lon));
}
}
close();

View file

@ -78,7 +78,9 @@ public class ShowRouteInfoActivity extends ListActivity {
RouteDirectionInfo item = ((RouteInfoAdapter)getListAdapter()).getItem(position - 1);
Location loc = helper.getLocationFromRouteDirection(item);
if(loc != null){
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(loc.getLatitude(),loc.getLongitude());
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
settings.setMapLocationToShow(loc.getLatitude(),loc.getLongitude(),
Math.max(13, settings.getLastKnownMapZoom()));
MapActivity.launchMapActivityMoveToTop(this);
}
}

View file

@ -18,6 +18,7 @@ import net.osmand.data.Street;
import net.osmand.osm.LatLon;
import net.osmand.osm.MapUtils;
import net.osmand.osm.Node;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.RegionAddressRepository;
import net.osmand.plus.ResourceManager;
@ -154,11 +155,10 @@ public class GeoIntentActivity extends ListActivity {
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
MapObject item = ((MapObjectAdapter) getListAdapter())
.getItem(position);
getMyApplication().getSettings().setMapLocationToShow(item.getLocation()
.getLatitude(), item.getLocation().getLongitude(),
getString(R.string.address) + " : " + item.toString()); //$NON-NLS-1$
MapObject item = ((MapObjectAdapter) getListAdapter()).getItem(position);
OsmandSettings settings = getMyApplication().getSettings();
settings.setMapLocationToShow(item.getLocation().getLatitude(), item.getLocation().getLongitude(),
settings.getLastKnownMapZoom(), getString(R.string.address) + " : " + item.toString()); //$NON-NLS-1$
MapActivity.launchMapActivityMoveToTop(this);
}

View file

@ -209,7 +209,9 @@ public class SearchAddressOnlineActivity extends ListActivity implements SearchA
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Place item = ((PlacesAdapter) getListAdapter()).getItem(position);
OsmandSettings.getOsmandSettings(this).setMapLocationToShow(item.lat, item.lon, getString(R.string.address)+ " : " + item.displayName); //$NON-NLS-1$
OsmandSettings settings = OsmandSettings.getOsmandSettings(this);
settings.setMapLocationToShow(item.lat, item.lon,
Math.max(15, settings.getLastKnownMapZoom()), getString(R.string.address)+ " : " + item.displayName); //$NON-NLS-1$
MapActivity.launchMapActivityMoveToTop(this);
}

View file

@ -1,6 +1,5 @@
package net.osmand.plus.activities.search;
import java.util.List;
import net.osmand.OsmAndFormatter;
@ -38,12 +37,11 @@ public class SearchHistoryActivity extends ListActivity implements SearchActivit
super.onCreate(savedInstanceState);
ListView lv = new ListView(this);
lv.setId(android.R.id.list);
setContentView(lv);
helper = SearchHistoryHelper.getInstance();
clearButton = new Button(this);
clearButton.setText(R.string.clear_all);
clearButton.setOnClickListener(new View.OnClickListener() {
@ -61,39 +59,40 @@ public class SearchHistoryActivity extends ListActivity implements SearchActivit
});
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
if(intent != null){
if (intent != null) {
double lat = intent.getDoubleExtra(SEARCH_LAT, 0);
double lon = intent.getDoubleExtra(SEARCH_LON, 0);
if(lat != 0 || lon != 0){
if (lat != 0 || lon != 0) {
location = new LatLon(lat, lon);
}
}
if(location == null && getParent() instanceof SearchActivity){
if (location == null && getParent() instanceof SearchActivity) {
location = ((SearchActivity) getParent()).getSearchPoint();
}
if (location == null) {
location = OsmandSettings.getOsmandSettings(this).getLastKnownMapLocation();
}
List<HistoryEntry> historyEntries = helper.getHistoryEntries(this);
getListView().removeFooterView(clearButton);
if (!historyEntries.isEmpty()) {
getListView().addFooterView(clearButton);
}
setListAdapter(new HistoryAdapter(historyEntries));
}
@Override
public void locationUpdate(LatLon l) {
location = l;
((HistoryAdapter) getListAdapter()).notifyDataSetChanged();
}
private boolean onItemLongClick(int pos) {
final HistoryEntry entry = ((HistoryAdapter) getListAdapter()).getItem(pos);
AlertDialog.Builder builder = new AlertDialog.Builder(SearchHistoryActivity.this);
@ -104,8 +103,9 @@ public class SearchHistoryActivity extends ListActivity implements SearchActivit
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
OsmandSettings.getOsmandSettings(SearchHistoryActivity.this).setMapLocationToShow(entry.getLat(),
entry.getLon());
OsmandSettings settings = OsmandSettings.getOsmandSettings(SearchHistoryActivity.this);
settings.setMapLocationToShow(entry.getLat(), entry.getLon(), settings.getLastKnownMapZoom(), null, entry
.getName());
} else if (which == 1) {
OsmandSettings.getOsmandSettings(SearchHistoryActivity.this).setPointToNavigate(entry.getLat(), entry.getLon(),
null);
@ -117,27 +117,26 @@ public class SearchHistoryActivity extends ListActivity implements SearchActivit
builder.show();
return true;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
HistoryEntry model = ((HistoryAdapter)getListAdapter()).getItem(position);
HistoryEntry model = ((HistoryAdapter) getListAdapter()).getItem(position);
selectModel(model);
}
private void selectModel(HistoryEntry model) {
helper.selectEntry(model, this);
OsmandSettings.getOsmandSettings(SearchHistoryActivity.this).setMapLocationToShow(model.getLat(), model.getLon());
OsmandSettings settings = OsmandSettings.getOsmandSettings(SearchHistoryActivity.this);
settings.setMapLocationToShow(model.getLat(), model.getLon(), settings.getLastKnownMapZoom(), null, model.getName());
MapActivity.launchMapActivityMoveToTop(this);
}
class HistoryAdapter extends ArrayAdapter<HistoryEntry> {
public HistoryAdapter(List<HistoryEntry> list) {
super(SearchHistoryActivity.this, R.layout.search_history_list_item, list);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
@ -149,28 +148,28 @@ public class SearchHistoryActivity extends ListActivity implements SearchActivit
TextView distanceLabel = (TextView) row.findViewById(R.id.distance_label);
ImageButton icon = (ImageButton) row.findViewById(R.id.remove);
final HistoryEntry model = getItem(position);
if(location != null){
if (location != null) {
int dist = (int) (MapUtils.getDistance(location, model.lat, model.lon));
distanceLabel.setText(OsmAndFormatter.getFormattedDistance(dist, SearchHistoryActivity.this));
} else {
distanceLabel.setText(""); //$NON-NLS-1$
}
label.setText(model.name);
icon.setOnClickListener(new View.OnClickListener(){
icon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
helper.remove(model, SearchHistoryActivity.this);
setListAdapter(new HistoryAdapter(helper.getHistoryEntries(SearchHistoryActivity.this)));
}
});
View.OnClickListener clickListener = new View.OnClickListener(){
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
selectModel(model);
}
};
View.OnLongClickListener longClickListener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {

View file

@ -196,6 +196,9 @@ public class MapRenderRepositories {
}
public void interruptLoadingMap(){
if (requestedBox != null) {
requestedBox.renderingInterrupted();
}
interrupted = true;
if(currentRenderingContext != null){
currentRenderingContext.interrupted = true;
@ -207,6 +210,9 @@ public class MapRenderRepositories {
private boolean checkWhetherInterrupted(){
if(interrupted || (currentRenderingContext != null && currentRenderingContext.interrupted)){
if (requestedBox != null) {
requestedBox.renderingInterrupted();
}
requestedBox = bmpLocation;
return true;
}
@ -356,6 +362,10 @@ public class MapRenderRepositories {
currentRenderingContext = null;
}
try {
// prevent editing
requestedBox = new RotatedTileBox(tileRect);
requestedBox.rendering();
// find selected rendering type
OsmandApplication app = ((OsmandApplication)context.getApplicationContext());
Boolean renderDay = app.getDaynightHelper().getDayNightRenderer();
@ -363,9 +373,6 @@ public class MapRenderRepositories {
// boolean moreDetail = prefs.SHOW_MORE_MAP_DETAIL.get();
BaseOsmandRender renderingType = app.getRendererRegistry().getCurrentSelectedRenderer();
// prevent editing
requestedBox = new RotatedTileBox(tileRect);
// calculate data box
RectF dataBox = requestedBox.calculateLatLonBox(new RectF());
long now = System.currentTimeMillis();
@ -419,7 +426,6 @@ public class MapRenderRepositories {
}
renderer.generateNewBitmap(currentRenderingContext, cObjects, bmp,
prefs.USE_ENGLISH_NAMES.get(), renderingType, stepByStep ? notifyList : null);
String renderingDebugInfo = currentRenderingContext.renderingDebugInfo;
@ -468,9 +474,11 @@ public class MapRenderRepositories {
Toast.makeText(context, R.string.rendering_out_of_memory, Toast.LENGTH_SHORT).show();
}
});
} finally {
if (requestedBox != null) {
requestedBox.rendered();
}
}
}
public Bitmap getBitmap() {

View file

@ -93,10 +93,11 @@ public class MapVectorLayer extends BaseMapLayer {
tileLayer.drawTileMap(canvas, tilesRect);
resourceManager.getRenderer().interruptLoadingMap();
} else {
rotatedTileBox.setLatLon(latLonBounds);
if (!view.isZooming()) {
pixRect.set(0, 0, view.getWidth(), view.getHeight());
updateRotatedTileBox();
if (resourceManager.updateRenderedMapNeeded(rotatedTileBox)) {
if (!rotatedTileBox.isRendering() && resourceManager.updateRenderedMapNeeded(rotatedTileBox)) {
// pixRect.set(-view.getWidth(), -view.getHeight() / 2, 2 * view.getWidth(), 3 * view.getHeight() / 2);
pixRect.set(-view.getWidth() / 3, -view.getHeight() / 4, 4 * view.getWidth() / 3, 5 * view.getHeight() / 4);
updateRotatedTileBox();

View file

@ -123,6 +123,10 @@ public class ContextMenuLayer implements OsmandMapLayer {
public void setLocation(LatLon loc, String description){
latLon = loc;
if(latLon != null){
if(description == null || description.length() == 0){
description = MessageFormat.format(view.getContext().getString(R.string.point_on_map),
latLon.getLatitude(), latLon.getLongitude());
}
textView.setText(description);
} else {
textView.setText(""); //$NON-NLS-1$
@ -151,8 +155,7 @@ public class ContextMenuLayer implements OsmandMapLayer {
}
LatLon latLon = view.getLatLonFromScreenPoint(point.x, point.y);
String description = MessageFormat.format(view.getContext().getString(R.string.point_on_map),
latLon.getLatitude(), latLon.getLongitude());
String description = "";
if(selectedObject != null){
description = selectedContextProvider.getObjectDescription(selectedObject);

View file

@ -183,7 +183,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
cRightLongitude = nRightLongitude;
cBottomLatitude = nBottomLatitude;
czoom = zoom;
view.refreshMap();
refreshMap();
}
}
}
@ -200,7 +200,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
public OpenStreetBug getBugFromPoint(PointF point){
OpenStreetBug result = null;
if (objects != null) {
if (objects != null && view != null) {
int ex = (int) point.x;
int ey = (int) point.y;
int radius = getRadiusBug(view.getZoom()) * 3 / 2;
@ -225,8 +225,8 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
public boolean onTouchEvent(PointF point) {
OpenStreetBug bug = getBugFromPoint(point);
if(bug != null){
String format = view.getContext().getString(R.string.osb_bug_name)+ " : " + bug.getName(); //$NON-NLS-1$
Toast.makeText(view.getContext(), format, Toast.LENGTH_LONG).show();
String format = activity.getString(R.string.osb_bug_name)+ " : " + bug.getName(); //$NON-NLS-1$
Toast.makeText(activity, format, Toast.LENGTH_LONG).show();
return true;
}
return false;
@ -360,9 +360,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
if (bug) {
Toast.makeText(activity, activity.getResources().getString(R.string.osb_add_dialog_success), Toast.LENGTH_LONG).show();
clearCache();
if (view.getLayers().contains(OsmBugsLayer.this)) {
view.refreshMap();
}
refreshMap();
} else {
Toast.makeText(activity, activity.getResources().getString(R.string.osb_add_dialog_error), Toast.LENGTH_LONG).show();
openBugAlertDialog(latitude, longitude, text, author);
@ -374,7 +372,8 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
public void openBug(final double latitude, final double longitude){
openBugAlertDialog(latitude, longitude, "", view.getSettings().USER_OSM_BUG_NAME.get());
OsmandSettings settings = OsmandSettings.getOsmandSettings(activity);
openBugAlertDialog(latitude, longitude, "", settings.USER_OSM_BUG_NAME.get());
}
public void commentBug(final OpenStreetBug bug){
@ -400,9 +399,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
if (added) {
Toast.makeText(activity, activity.getResources().getString(R.string.osb_comment_dialog_success), Toast.LENGTH_LONG).show();
clearCache();
if (OsmBugsLayer.this.view.getLayers().contains(OsmBugsLayer.this)) {
OsmBugsLayer.this.view.refreshMap();
}
} else {
Toast.makeText(activity, activity.getResources().getString(R.string.osb_comment_dialog_error), Toast.LENGTH_LONG).show();
}
@ -411,6 +408,12 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
return builder.create();
}
public void refreshMap(){
if (view != null && view.getLayers().contains(OsmBugsLayer.this)) {
view.refreshMap();
}
}
public void closeBug(final OpenStreetBug bug){
dialogBundle.putSerializable(KEY_BUG, bug);
activity.showDialog(DIALOG_CLOSE_BUG);
@ -428,9 +431,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
if (closed) {
Toast.makeText(activity, activity.getString(R.string.osb_close_dialog_success), Toast.LENGTH_LONG).show();
clearCache();
if (OsmBugsLayer.this.view.getLayers().contains(OsmBugsLayer.this)) {
OsmBugsLayer.this.view.refreshMap();
}
refreshMap();
} else {
Toast.makeText(activity, activity.getString(R.string.osb_close_dialog_error), Toast.LENGTH_LONG).show();
}
@ -443,8 +444,8 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
@Override
public OnClickListener getActionListener(List<String> actionsList, Object o) {
final OpenStreetBug bug = (OpenStreetBug) o;
actionsList.add(view.getContext().getString(R.string.osb_comment_menu_item));
actionsList.add(view.getContext().getString(R.string.osb_close_menu_item));
actionsList.add(activity.getString(R.string.osb_comment_menu_item));
actionsList.add(activity.getString(R.string.osb_close_menu_item));
return new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@ -461,7 +462,7 @@ public class OsmBugsLayer implements OsmandMapLayer, ContextMenuLayer.IContextMe
@Override
public String getObjectDescription(Object o) {
if(o instanceof OpenStreetBug){
return view.getContext().getString(R.string.osb_bug_name) + " : " + ((OpenStreetBug)o).getName(); //$NON-NLS-1$
return activity.getString(R.string.osb_bug_name) + " : " + ((OpenStreetBug)o).getName(); //$NON-NLS-1$
}
return null;
}