Fix back from track appearance screen to trip recording dialog
This commit is contained in:
parent
d2aa6c331e
commit
c0727f658f
4 changed files with 17 additions and 15 deletions
|
@ -1200,7 +1200,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path);
|
selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackAppearanceFragment.showInstance(this, selectedGpxFile);
|
TrackAppearanceFragment.showInstance(this, selectedGpxFile, null);
|
||||||
} else if (toShow instanceof QuadRect) {
|
} else if (toShow instanceof QuadRect) {
|
||||||
QuadRect qr = (QuadRect) toShow;
|
QuadRect qr = (QuadRect) toShow;
|
||||||
mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0);
|
mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0);
|
||||||
|
|
|
@ -90,7 +90,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment {
|
||||||
if (mapActivity != null) {
|
if (mapActivity != null) {
|
||||||
hide();
|
hide();
|
||||||
SelectedGpxFile selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack();
|
SelectedGpxFile selectedGpxFile = app.getSavingTrackHelper().getCurrentTrack();
|
||||||
TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile);
|
TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile, TripRecordingBottomSheet.this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,6 +19,7 @@ import androidx.activity.OnBackPressedCallback;
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
||||||
|
@ -37,6 +38,7 @@ import net.osmand.plus.R;
|
||||||
import net.osmand.plus.UiUtilities;
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.UiUtilities.DialogButtonType;
|
import net.osmand.plus.UiUtilities.DialogButtonType;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
|
import net.osmand.plus.base.ContextMenuFragment;
|
||||||
import net.osmand.plus.base.ContextMenuScrollFragment;
|
import net.osmand.plus.base.ContextMenuScrollFragment;
|
||||||
import net.osmand.plus.dialogs.GpxAppearanceAdapter;
|
import net.osmand.plus.dialogs.GpxAppearanceAdapter;
|
||||||
import net.osmand.plus.dialogs.GpxAppearanceAdapter.AppearanceListItem;
|
import net.osmand.plus.dialogs.GpxAppearanceAdapter.AppearanceListItem;
|
||||||
|
@ -165,16 +167,7 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement
|
||||||
}
|
}
|
||||||
requireMyActivity().getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
requireMyActivity().getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||||
public void handleOnBackPressed() {
|
public void handleOnBackPressed() {
|
||||||
MapActivity mapActivity = getMapActivity();
|
dismiss();
|
||||||
if (mapActivity != null) {
|
|
||||||
TripRecordingBottomSheet fragment = mapActivity.getTripRecordingBottomSheet();
|
|
||||||
if (fragment != null) {
|
|
||||||
fragment.show();
|
|
||||||
} else {
|
|
||||||
mapActivity.launchPrevActivityIntent();
|
|
||||||
}
|
|
||||||
dismissImmediate();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -385,6 +378,14 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onContextMenuDismiss(@NonNull ContextMenuFragment fragment) {
|
||||||
|
Fragment target = getTargetFragment();
|
||||||
|
if (target instanceof TripRecordingBottomSheet) {
|
||||||
|
((TripRecordingBottomSheet) target).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void updateAppearanceIcon() {
|
private void updateAppearanceIcon() {
|
||||||
Drawable icon = getTrackIcon(app, trackDrawInfo.getWidth(), trackDrawInfo.isShowArrows(), trackDrawInfo.getColor());
|
Drawable icon = getTrackIcon(app, trackDrawInfo.getWidth(), trackDrawInfo.isShowArrows(), trackDrawInfo.getColor());
|
||||||
trackIcon.setImageDrawable(icon);
|
trackIcon.setImageDrawable(icon);
|
||||||
|
@ -725,11 +726,12 @@ public class TrackAppearanceFragment extends ContextMenuScrollFragment implement
|
||||||
return totalScreenHeight - frameTotalHeight;
|
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 {
|
try {
|
||||||
TrackAppearanceFragment fragment = new TrackAppearanceFragment();
|
TrackAppearanceFragment fragment = new TrackAppearanceFragment();
|
||||||
fragment.setSelectedGpxFile(selectedGpxFile);
|
|
||||||
fragment.setRetainInstance(true);
|
fragment.setRetainInstance(true);
|
||||||
|
fragment.setSelectedGpxFile(selectedGpxFile);
|
||||||
|
fragment.setTargetFragment(target, 0);
|
||||||
|
|
||||||
mapActivity.getSupportFragmentManager()
|
mapActivity.getSupportFragmentManager()
|
||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
|
|
|
@ -663,7 +663,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
||||||
app.getSelectedGpxHelper().selectGpxFile(gpxFile, gpxFileSelected, false);
|
app.getSelectedGpxHelper().selectGpxFile(gpxFile, gpxFileSelected, false);
|
||||||
mapActivity.refreshMap();
|
mapActivity.refreshMap();
|
||||||
} else if (buttonIndex == APPEARANCE_BUTTON_INDEX) {
|
} else if (buttonIndex == APPEARANCE_BUTTON_INDEX) {
|
||||||
TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile);
|
TrackAppearanceFragment.showInstance(mapActivity, selectedGpxFile, this);
|
||||||
} else if (buttonIndex == DIRECTIONS_BUTTON_INDEX) {
|
} else if (buttonIndex == DIRECTIONS_BUTTON_INDEX) {
|
||||||
MapActivityActions mapActions = mapActivity.getMapActions();
|
MapActivityActions mapActions = mapActivity.getMapActions();
|
||||||
if (app.getRoutingHelper().isFollowingMode()) {
|
if (app.getRoutingHelper().isFollowingMode()) {
|
||||||
|
|
Loading…
Reference in a new issue