From 1b1ed6e02f69a9b8d671ee46fa0f4257af4602a0 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 28 Jan 2021 13:00:51 +0200 Subject: [PATCH 1/3] Show my location button and change header height for overview tab --- OsmAnd/res/layout/track_menu.xml | 7 +++++++ OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/layout/track_menu.xml b/OsmAnd/res/layout/track_menu.xml index 671a9332f1..db0f8a47f9 100644 --- a/OsmAnd/res/layout/track_menu.xml +++ b/OsmAnd/res/layout/track_menu.xml @@ -91,6 +91,13 @@ + + Date: Thu, 28 Jan 2021 14:33:31 +0200 Subject: [PATCH 2/3] Fix back to context menu from gpx menu --- .../controllers/SelectedGpxMenuController.java | 4 +--- .../src/net/osmand/plus/track/TrackMenuFragment.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java index 427e0cce35..acdce38b90 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/SelectedGpxMenuController.java @@ -42,9 +42,7 @@ public class SelectedGpxMenuController extends MenuController { leftTitleButtonController = new TitleButtonController() { @Override public void buttonPressed() { - SelectedGpxFile selectedGpxFile = selectedGpxPoint.getSelectedGpxFile(); - mapActivity.getContextMenu().hide(false); - TrackMenuFragment.showInstance(mapActivity, selectedGpxFile.getGpxFile().path, selectedGpxFile.isShowCurrentTrack()); + TrackMenuFragment.showInstance(mapActivity, selectedGpxPoint.getSelectedGpxFile()); } }; leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_open_track); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index 533268fd62..b145fc903d 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -227,11 +227,15 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card FragmentActivity activity = requireMyActivity(); activity.getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { public void handleOnBackPressed() { - MapActivity mapActivity = getMapActivity(); - if (mapActivity != null) { - mapActivity.launchPrevActivityIntent(); + if (getCurrentMenuState() != MenuState.HEADER_ONLY && isPortrait()) { + openMenuHeaderOnly(); + } else { + MapActivity mapActivity = getMapActivity(); + if (mapActivity != null && mapActivity.getSupportFragmentManager().getBackStackEntryCount() == 1) { + mapActivity.launchPrevActivityIntent(); + } + dismiss(); } - dismiss(); } }); } From c0727f658fc2eeff3e5a37acded82e4bbc27cc7f Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 28 Jan 2021 15:04:41 +0200 Subject: [PATCH 3/3] Fix back from track appearance screen to trip recording dialog --- .../osmand/plus/activities/MapActivity.java | 2 +- .../monitoring/TripRecordingBottomSheet.java | 2 +- .../plus/track/TrackAppearanceFragment.java | 26 ++++++++++--------- .../osmand/plus/track/TrackMenuFragment.java | 2 +- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 0de562fa2b..12f66f8c49 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -1200,7 +1200,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path); } - TrackAppearanceFragment.showInstance(this, selectedGpxFile); + TrackAppearanceFragment.showInstance(this, selectedGpxFile, null); } else if (toShow instanceof QuadRect) { QuadRect qr = (QuadRect) toShow; mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0); diff --git a/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java b/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java index 789fc0aeb0..178e662176 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java @@ -90,7 +90,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment { if (mapActivity != null) { hide(); SelectedGpxFile selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack(); - TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile); + TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile, TripRecordingBottomSheet.this); } } }); diff --git a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java index ddc102adc9..522103ac02 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackAppearanceFragment.java @@ -19,6 +19,7 @@ import androidx.activity.OnBackPressedCallback; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -37,6 +38,7 @@ import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.UiUtilities.DialogButtonType; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.base.ContextMenuFragment; import net.osmand.plus.base.ContextMenuScrollFragment; import net.osmand.plus.dialogs.GpxAppearanceAdapter; import net.osmand.plus.dialogs.GpxAppearanceAdapter.AppearanceListItem; @@ -165,16 +167,7 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement } requireMyActivity().getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { public void handleOnBackPressed() { - MapActivity mapActivity = getMapActivity(); - if (mapActivity != null) { - TripRecordingBottomSheet fragment = mapActivity.getTripRecordingBottomSheet(); - if (fragment != null) { - fragment.show(); - } else { - mapActivity.launchPrevActivityIntent(); - } - dismissImmediate(); - } + dismiss(); } }); } @@ -385,6 +378,14 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement return y; } + @Override + public void onContextMenuDismiss(@NonNull ContextMenuFragment fragment) { + Fragment target = getTargetFragment(); + if (target instanceof TripRecordingBottomSheet) { + ((TripRecordingBottomSheet) target).show(); + } + } + private void updateAppearanceIcon() { Drawable icon = getTrackIcon(app, trackDrawInfo.getWidth(), trackDrawInfo.isShowArrows(), trackDrawInfo.getColor()); trackIcon.setImageDrawable(icon); @@ -725,11 +726,12 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement return totalScreenHeight - frameTotalHeight; } - public static boolean showInstance(@NonNull MapActivity mapActivity, @NonNull SelectedGpxFile selectedGpxFile) { + public static boolean showInstance(@NonNull MapActivity mapActivity, @NonNull SelectedGpxFile selectedGpxFile, Fragment target) { try { TrackAppearanceFragment fragment = new TrackAppearanceFragment(); - fragment.setSelectedGpxFile(selectedGpxFile); fragment.setRetainInstance(true); + fragment.setSelectedGpxFile(selectedGpxFile); + fragment.setTargetFragment(target, 0); mapActivity.getSupportFragmentManager() .beginTransaction() diff --git a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java index b145fc903d..597dc4c485 100644 --- a/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/track/TrackMenuFragment.java @@ -663,7 +663,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card app.getSelectedGpxHelper().selectGpxFile(gpxFile, gpxFileSelected, false); mapActivity.refreshMap(); } else if (buttonIndex == APPEARANCE_BUTTON_INDEX) { - TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile); + TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile, this); } else if (buttonIndex == DIRECTIONS_BUTTON_INDEX) { MapActivityActions mapActions = mapActivity.getMapActions(); if (app.getRoutingHelper().isFollowingMode()) {