[Quick search] ui fixes. Toolbar for transport in progress.
This commit is contained in:
parent
16f3158ce4
commit
e9ce449d43
6 changed files with 121 additions and 35 deletions
|
@ -439,7 +439,10 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
closeDrawer();
|
||||
return;
|
||||
}
|
||||
|
||||
if (getQuickSearchDialogFragment() != null) {
|
||||
showQuickSearch(false, false);
|
||||
return;
|
||||
}
|
||||
if (prevActivityIntent != null && getSupportFragmentManager().getBackStackEntryCount() == 0) {
|
||||
prevActivityIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
LatLon loc = getMapLocation();
|
||||
|
@ -576,6 +579,14 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
routingHelper.addListener(this);
|
||||
app.getMapMarkersHelper().addListener(this);
|
||||
|
||||
QuickSearchDialogFragment searchDialogFragment = getQuickSearchDialogFragment();
|
||||
if (searchDialogFragment != null) {
|
||||
if (searchDialogFragment.isSearchHidden()) {
|
||||
searchDialogFragment.hide();
|
||||
searchDialogFragment.restoreToolbar();
|
||||
}
|
||||
}
|
||||
|
||||
getMyApplication().getAppCustomization().resumeActivity(MapActivity.class, this);
|
||||
if (System.currentTimeMillis() - tm > 50) {
|
||||
System.err.println("OnCreate for MapActivity took " + (System.currentTimeMillis() - tm) + " ms");
|
||||
|
|
|
@ -313,6 +313,10 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
|||
if (init(latLon, pointDescription, object)) {
|
||||
if (!MapContextMenuFragment.showInstance(this, mapActivity, centerMarker)) {
|
||||
active = false;
|
||||
} else {
|
||||
if (menuController != null) {
|
||||
menuController.onShow();
|
||||
}
|
||||
}
|
||||
centerMarker = false;
|
||||
autoHide = false;
|
||||
|
@ -345,7 +349,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
|||
if (object instanceof MapMarker) {
|
||||
mapActivity.getMyApplication().getMapMarkersHelper().removeListener(this);
|
||||
}
|
||||
if(menuController != null) {
|
||||
if (menuController != null) {
|
||||
menuController.onClose();
|
||||
}
|
||||
if (this.object != null) {
|
||||
|
@ -361,8 +365,8 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
|||
mapActivity.getMapView().setMapPosition(mapPosition);
|
||||
mapPosition = 0;
|
||||
}
|
||||
if(getMenuController() != null) {
|
||||
getMenuController().onHide();
|
||||
if (menuController != null) {
|
||||
menuController.onHide();
|
||||
}
|
||||
WeakReference<MapContextMenuFragment> fragmentRef = findMenuFragment();
|
||||
if (fragmentRef != null) {
|
||||
|
@ -454,7 +458,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
|||
}
|
||||
|
||||
private void acquireMenuController() {
|
||||
if(menuController != null) {
|
||||
if (menuController != null) {
|
||||
menuController.onAcquireNewController(pointDescription, object);
|
||||
}
|
||||
menuController = MenuController.getMenuController(mapActivity, pointDescription, object, MenuType.STANDARD);
|
||||
|
|
|
@ -53,6 +53,7 @@ import net.osmand.plus.osmo.OsMoMenuController;
|
|||
import net.osmand.plus.parkingpoint.ParkingPositionMenuController;
|
||||
import net.osmand.plus.resources.ResourceManager;
|
||||
import net.osmand.plus.views.DownloadedRegionsLayer.DownloadMapObject;
|
||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarViewController;
|
||||
import net.osmand.util.Algorithms;
|
||||
import net.osmand.util.MapUtils;
|
||||
|
||||
|
@ -87,6 +88,8 @@ public abstract class MenuController extends BaseMenuController {
|
|||
protected TitleButtonController rightDownloadButtonController;
|
||||
protected TitleProgressController titleProgressController;
|
||||
|
||||
protected TopToolbarViewController toolbarController;
|
||||
|
||||
protected IndexItem indexItem;
|
||||
protected boolean downloaded;
|
||||
private BinaryMapDataObject downloadMapDataObject;
|
||||
|
@ -272,6 +275,10 @@ public abstract class MenuController extends BaseMenuController {
|
|||
return titleProgressController;
|
||||
}
|
||||
|
||||
public TopToolbarViewController getToolbarController() {
|
||||
return toolbarController;
|
||||
}
|
||||
|
||||
public boolean supportZoomIn() {
|
||||
return true;
|
||||
}
|
||||
|
@ -442,10 +449,19 @@ public abstract class MenuController extends BaseMenuController {
|
|||
public abstract void buttonPressed();
|
||||
}
|
||||
|
||||
public void onShow() {
|
||||
if (toolbarController != null) {
|
||||
getMapActivity().showTopToolbar(toolbarController);
|
||||
}
|
||||
}
|
||||
|
||||
public void onHide() {
|
||||
}
|
||||
|
||||
public void onClose() {
|
||||
if (toolbarController != null) {
|
||||
getMapActivity().hideTopToolbar(toolbarController);
|
||||
}
|
||||
}
|
||||
|
||||
public void onAcquireNewController(PointDescription pointDescription, Object object) {
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
package net.osmand.plus.mapcontextmenu.controllers;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
|
||||
import net.osmand.binary.OsmandOdb.TransportRouteStop;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.data.RotatedTileBox;
|
||||
import net.osmand.data.TransportStop;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
|
@ -18,8 +15,12 @@ import net.osmand.plus.mapcontextmenu.MapContextMenuFragment;
|
|||
import net.osmand.plus.mapcontextmenu.MenuBuilder;
|
||||
import net.osmand.plus.mapcontextmenu.MenuController;
|
||||
import net.osmand.plus.mapcontextmenu.controllers.TransportStopController.TransportStopRoute;
|
||||
import net.osmand.plus.views.OsmandMapTileView;
|
||||
import net.osmand.plus.views.TransportStopsLayer;
|
||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarView;
|
||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarViewController;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
|
||||
public class TransportRouteController extends MenuController {
|
||||
|
||||
|
@ -29,6 +30,8 @@ public class TransportRouteController extends MenuController {
|
|||
TransportStopRoute transportStop) {
|
||||
super(new MenuBuilder(app), pointDescription, mapActivity);
|
||||
this.transportStop = transportStop;
|
||||
toolbarController = new TransportRouteToolbarController();
|
||||
toolbarController.setTitle(getNameStr());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -83,17 +86,17 @@ public class TransportRouteController extends MenuController {
|
|||
|
||||
@Override
|
||||
public void onClose() {
|
||||
super.onHide();
|
||||
super.onClose();
|
||||
TransportStopsLayer stopsLayer = getMapActivity().getMapLayers().getTransportStopsLayer();
|
||||
stopsLayer.setRoute(null);
|
||||
}
|
||||
|
||||
public void onAcquireNewController(PointDescription pointDescription, Object object) {
|
||||
if(object instanceof TransportRouteStop) {
|
||||
if (object instanceof TransportRouteStop) {
|
||||
TransportStopsLayer stopsLayer = getMapActivity().getMapLayers().getTransportStopsLayer();
|
||||
stopsLayer.setRoute(null);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPlainMenuItems(String typeStr, PointDescription pointDescription, final LatLon latLon) {
|
||||
|
@ -110,7 +113,7 @@ public class TransportRouteController extends MenuController {
|
|||
}
|
||||
int defaultIcon = transportStop.type == null ? R.drawable.mx_route_bus_ref : transportStop.type.getResourceId();
|
||||
int startPosition = 0;
|
||||
if(!transportStop.showWholeRoute) {
|
||||
if (!transportStop.showWholeRoute) {
|
||||
startPosition = (currentStop == -1 ? 0 : currentStop);
|
||||
if (currentStop > 0) {
|
||||
addPlainMenuItem(defaultIcon, getMapActivity().getString(R.string.route_stops_before, currentStop),
|
||||
|
@ -132,7 +135,7 @@ public class TransportRouteController extends MenuController {
|
|||
for (int i = startPosition; i < stops.size(); i++) {
|
||||
final TransportStop stop = stops.get(i);
|
||||
final String name = useEnglishNames ? stop.getEnName(true) : stop.getName();
|
||||
addPlainMenuItem(currentStop == i ? R.drawable.ic_action_marker_dark: defaultIcon,
|
||||
addPlainMenuItem(currentStop == i ? R.drawable.ic_action_marker_dark : defaultIcon,
|
||||
name, false, false, new OnClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -144,7 +147,7 @@ public class TransportRouteController extends MenuController {
|
|||
stopsLayer.setRoute(null);
|
||||
mm.show(stop.getLocation(), pd, stop);
|
||||
WeakReference<MapContextMenuFragment> rr = mm.findMenuFragment();
|
||||
if(rr != null && rr.get() != null) {
|
||||
if (rr != null && rr.get() != null) {
|
||||
rr.get().centerMarkerLocation();
|
||||
}
|
||||
}
|
||||
|
@ -152,4 +155,25 @@ public class TransportRouteController extends MenuController {
|
|||
}
|
||||
}
|
||||
|
||||
public static class TransportRouteToolbarController extends TopToolbarViewController {
|
||||
|
||||
public TransportRouteToolbarController() {
|
||||
super(TopToolbarViewControllerType.CONTEXT_MENU);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed(TopToolbarView view) {
|
||||
view.getMap().getContextMenu().close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTitlePressed(TopToolbarView view) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClosePressed(TopToolbarView view) {
|
||||
view.getMap().getContextMenu().close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,6 +84,9 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
private static final String QUICK_SEARCH_LON_KEY = "quick_search_lon_key";
|
||||
private static final String QUICK_SEARCH_SEARCHING_KEY = "quick_search_searching_key";
|
||||
private static final String QUICK_SEARCH_SHOW_CATEGORIES_KEY = "quick_search_show_categories_key";
|
||||
private static final String QUICK_SEARCH_HIDDEN_KEY = "quick_search_hidden_key";
|
||||
private static final String QUICK_SEARCH_TOOLBAR_TITLE_KEY = "quick_search_toolbar_title_key";
|
||||
|
||||
private Toolbar toolbar;
|
||||
private LockableViewPager viewPager;
|
||||
private SearchFragmentPagerAdapter pagerAdapter;
|
||||
|
@ -117,7 +120,9 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
private boolean useMapCenter;
|
||||
private boolean paused;
|
||||
private boolean searching;
|
||||
private boolean hidden;
|
||||
private boolean foundPartialLocation;
|
||||
private String toolbarTitle;
|
||||
|
||||
private boolean newSearch;
|
||||
private boolean interruptedSearch;
|
||||
|
@ -150,6 +155,8 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
centerLatLon = new LatLon(lat, lon);
|
||||
}
|
||||
interruptedSearch = savedInstanceState.getBoolean(QUICK_SEARCH_SEARCHING_KEY, false);
|
||||
hidden = savedInstanceState.getBoolean(QUICK_SEARCH_HIDDEN_KEY, false);
|
||||
toolbarTitle = savedInstanceState.getString(QUICK_SEARCH_TOOLBAR_TITLE_KEY);
|
||||
}
|
||||
if (searchQuery == null && arguments != null) {
|
||||
searchQuery = arguments.getString(QUICK_SEARCH_QUERY_KEY);
|
||||
|
@ -385,8 +392,23 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
}
|
||||
}
|
||||
|
||||
public void restoreToolbar() {
|
||||
if (toolbarTitle != null) {
|
||||
showToolbar(toolbarTitle);
|
||||
} else {
|
||||
showToolbar();
|
||||
}
|
||||
}
|
||||
|
||||
public void showToolbar() {
|
||||
toolbarController.setTitle(getText());
|
||||
toolbarTitle = getText();
|
||||
toolbarController.setTitle(toolbarTitle);
|
||||
getMapActivity().showTopToolbar(toolbarController);
|
||||
}
|
||||
|
||||
public void showToolbar(String title) {
|
||||
toolbarTitle = title;
|
||||
toolbarController.setTitle(toolbarTitle);
|
||||
getMapActivity().showTopToolbar(toolbarController);
|
||||
}
|
||||
|
||||
|
@ -404,6 +426,10 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
}
|
||||
}
|
||||
|
||||
public boolean isSearchHidden() {
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public void show() {
|
||||
if (useMapCenter) {
|
||||
LatLon mapCenter = getMapActivity().getMapView().getCurrentRotatedTileBox().getCenterLatLon();
|
||||
|
@ -414,10 +440,12 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
}
|
||||
getDialog().show();
|
||||
paused = false;
|
||||
hidden = false;
|
||||
}
|
||||
|
||||
public void hide() {
|
||||
paused = true;
|
||||
hidden = true;
|
||||
hideProgressBar();
|
||||
updateClearButtonVisibility(true);
|
||||
getDialog().hide();
|
||||
|
@ -511,6 +539,10 @@ public class QuickSearchDialogFragment extends DialogFragment implements OsmAndC
|
|||
public void onSaveInstanceState(Bundle outState) {
|
||||
outState.putString(QUICK_SEARCH_QUERY_KEY, searchQuery);
|
||||
outState.putBoolean(QUICK_SEARCH_SEARCHING_KEY, searching);
|
||||
outState.putBoolean(QUICK_SEARCH_HIDDEN_KEY, hidden);
|
||||
if (toolbarTitle != null) {
|
||||
outState.putString(QUICK_SEARCH_TOOLBAR_TITLE_KEY, toolbarTitle);
|
||||
}
|
||||
if (centerLatLon != null) {
|
||||
outState.putDouble(QUICK_SEARCH_LAT_KEY, centerLatLon.getLatitude());
|
||||
outState.putDouble(QUICK_SEARCH_LON_KEY, centerLatLon.getLongitude());
|
||||
|
|
|
@ -94,7 +94,7 @@ public abstract class QuickSearchListFragment extends OsmAndListFragment {
|
|||
|| sr.objectType == ObjectType.WPT
|
||||
|| sr.objectType == ObjectType.STREET_INTERSECTION) {
|
||||
|
||||
showOnMap(sr, sr.objectType != ObjectType.RECENT_OBJ);
|
||||
showOnMap(sr);
|
||||
} else {
|
||||
dialogFragment.completeQueryWithObject(item.getSearchResult());
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ public abstract class QuickSearchListFragment extends OsmAndListFragment {
|
|||
dialogFragment.onSearchListFragmentResume(this);
|
||||
}
|
||||
|
||||
private void showOnMap(SearchResult searchResult, boolean showTopbar) {
|
||||
private void showOnMap(SearchResult searchResult) {
|
||||
if (searchResult.location != null) {
|
||||
OsmandApplication app = getMyApplication();
|
||||
String lang = searchResult.requiredSearchPhrase.getSettings().getLang();
|
||||
|
@ -220,23 +220,22 @@ public abstract class QuickSearchListFragment extends OsmAndListFragment {
|
|||
pointDescription = wpt.getPointDescription(getMyApplication());
|
||||
break;
|
||||
}
|
||||
if (showTopbar) {
|
||||
dialogFragment.showToolbar();
|
||||
dialogFragment.hide();
|
||||
|
||||
if (pointDescription != null) {
|
||||
dialogFragment.showToolbar(pointDescription.getName());
|
||||
} else {
|
||||
dialogFragment.hideToolbar();
|
||||
dialogFragment.dismiss();
|
||||
dialogFragment.showToolbar();
|
||||
}
|
||||
dialogFragment.hide();
|
||||
|
||||
getMyApplication().getSettings().setMapLocationToShow(
|
||||
searchResult.location.getLatitude(), searchResult.location.getLongitude(),
|
||||
searchResult.preferredZoom, pointDescription, true, object);
|
||||
|
||||
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||
if (showTopbar) {
|
||||
dialogFragment.reloadHistory();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Amenity findAmenity(String name, double lat, double lon, String lang) {
|
||||
OsmandApplication app = getMyApplication();
|
||||
|
|
Loading…
Reference in a new issue