commit
f0e4977794
6 changed files with 36 additions and 25 deletions
|
@ -91,6 +91,13 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/header_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/list_background_color"
|
||||
android:orientation="vertical" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/bottom_container"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -138,6 +138,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
|||
private ImageView searchButton;
|
||||
private EditText searchEditText;
|
||||
private TextView toolbarTextView;
|
||||
private ViewGroup headerContainer;
|
||||
private View routeMenuTopShadowAll;
|
||||
private BottomNavigationView bottomNav;
|
||||
|
||||
|
@ -226,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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -249,6 +254,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
|||
if (view != null) {
|
||||
bottomNav = view.findViewById(R.id.bottom_navigation);
|
||||
routeMenuTopShadowAll = view.findViewById(R.id.route_menu_top_shadow_all);
|
||||
headerContainer = view.findViewById(R.id.header_container);
|
||||
headerTitle = view.findViewById(R.id.title);
|
||||
headerIcon = view.findViewById(R.id.icon_view);
|
||||
toolbarContainer = view.findViewById(R.id.context_menu_toolbar_container);
|
||||
|
@ -258,7 +264,6 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
|||
|
||||
if (isPortrait()) {
|
||||
AndroidUiHelper.updateVisibility(getTopShadow(), true);
|
||||
AndroidUiHelper.updateVisibility(view.findViewById(R.id.map_my_location_button), false);
|
||||
} else {
|
||||
int widthNoShadow = getLandscapeNoShadowWidth();
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(widthNoShadow, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
|
@ -281,7 +286,6 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
|||
}
|
||||
|
||||
private void updateHeader() {
|
||||
ViewGroup headerContainer = (ViewGroup) routeMenuTopShadowAll;
|
||||
if (menuType == TrackMenuType.OVERVIEW) {
|
||||
setHeaderTitle(gpxTitle, true);
|
||||
if (overviewCard != null && overviewCard.getView() != null) {
|
||||
|
@ -463,7 +467,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
|||
updateControlsVisibility(true);
|
||||
}
|
||||
if (currentMenuState != MenuState.FULL_SCREEN && (changed || !mapPositionAdjusted)) {
|
||||
adjustMapPosition(getViewY());
|
||||
adjustMapPosition(getMenuStatePosY(currentMenuState));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -659,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()) {
|
||||
|
|
Loading…
Reference in a new issue