Update layout

This commit is contained in:
Victor Shcherb 2015-04-23 10:57:32 +02:00
parent b4a6beee0c
commit f483d1a244
4 changed files with 56 additions and 13 deletions

View file

@ -90,9 +90,9 @@ public class AndroidUiHelper {
return false;
}
public static boolean isLargeDevice(Activity ctx) {
return (ctx.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)
== Configuration.SCREENLAYOUT_SIZE_LARGE;
public static boolean isXLargeDevice(Activity ctx) {
int lt = (ctx.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);
return lt == Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
public static boolean isOrientationPortrait(Activity ctx) {

View file

@ -319,7 +319,8 @@ public class MapControlsLayer extends OsmandMapLayer {
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
routeGoButton.setCompoundDrawables(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
routeGoButton.setText(mapActivity.getString(R.string.shared_string_go));
routeGoButton.setText(AndroidUiHelper.isOrientationPortrait(mapActivity) ?
mapActivity.getString(R.string.shared_string_go) : "");
routeGoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

View file

@ -33,6 +33,7 @@ import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener;
import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.MapControlsLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.controls.MapRoutePreferencesControl.RoutePrepareDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
@ -538,16 +539,22 @@ public class MapRouteInfoControl implements IRouteInformationListener {
dialog = MapRoutePreferencesControl.showDialog(mapControlsLayer, mapActivity, ll, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
public void onDismiss(DialogInterface d) {
dialog = null;
}
});
}
public void hideDialog() {
Dialog dialog = this.dialog;
if (dialog != null) {
if(dialog instanceof RoutePrepareDialog &&
((RoutePrepareDialog) dialog).getListener() != null) {
((RoutePrepareDialog) dialog).getListener().onDismiss(dialog);
((RoutePrepareDialog) dialog).cancelDismissListener();
}
dialog.dismiss();
dialog = null;
this.dialog = null;
}
}

View file

@ -128,23 +128,52 @@ public class MapRoutePreferencesControl {
public void showAndHideDialog() {
if (dialog != null) {
dialog.hide();
dialog = null;
hideDialog();
} else {
dialog = showDialog(controlsLayer, mapActivity, createLayout(), new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
public void onDismiss(DialogInterface d) {
dialog = null;
}
});
}
}
public static class RoutePrepareDialog extends Dialog {
private OnDismissListener listener;
public RoutePrepareDialog(Context context) {
super(context);
}
public OnDismissListener getListener() {
return listener;
}
@Override
public void setOnDismissListener(OnDismissListener l) {
this.listener = l;
super.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if(listener != null) {
listener.onDismiss(dialog);
}
}
});
}
public void cancelDismissListener() {
this.listener = null;
}
}
public static Dialog showDialog(final MapControlsLayer controlsLayer, final MapActivity mapActivity, final View ll,
final OnDismissListener dismiss) {
final boolean switched = controlsLayer.switchToRoutePlanningLayout();
final Dialog dialog = new Dialog(mapActivity);
final RoutePrepareDialog dialog = new RoutePrepareDialog(mapActivity);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
final int maxHeight ;
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
@ -188,7 +217,7 @@ public class MapRoutePreferencesControl {
mapActivity.getMapView().refreshMap();
}
dialog.show();
if(!AndroidUiHelper.isLargeDevice(mapActivity)) {
if(!AndroidUiHelper.isXLargeDevice(mapActivity)) {
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), false);
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), false);
}
@ -555,9 +584,15 @@ public class MapRoutePreferencesControl {
}
public void hideDialog() {
Dialog dialog = this.dialog;
if(dialog != null) {
if(dialog instanceof RoutePrepareDialog &&
((RoutePrepareDialog) dialog).getListener() != null) {
((RoutePrepareDialog) dialog).getListener().onDismiss(dialog);
((RoutePrepareDialog) dialog).cancelDismissListener();
}
dialog.dismiss();
dialog = null;
this.dialog = null;
}
}