mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-21 13:53:37 +00:00
Removed animated slow rendering and Nit picks
Signed-off-by: kavikhalique <kavikhalique3@gmail.com>
This commit is contained in:
committed by
Konstantin Pastbin
parent
bb88861256
commit
2684e2b278
@@ -37,7 +37,7 @@ public class ChartController implements OnChartValueSelectedListener
|
||||
{
|
||||
private static final int CHART_Y_LABEL_COUNT = 3;
|
||||
private static final int CHART_X_LABEL_COUNT = 6;
|
||||
private static final int CHART_ANIMATION_DURATION = 1500;
|
||||
private static final int CHART_ANIMATION_DURATION = 0;
|
||||
private static final int CHART_FILL_ALPHA = (int) (0.12 * 255);
|
||||
private static final int CHART_AXIS_GRANULARITY = 100;
|
||||
private static final float CUBIC_INTENSITY = 0.2f;
|
||||
|
||||
@@ -264,9 +264,9 @@ public enum BookmarkManager {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public void updateTrackPlacePage(long trackId)
|
||||
public void updateTrackPlacePage()
|
||||
{
|
||||
nativeUpdateTrackPlacePage(trackId);
|
||||
nativeUpdateTrackPlacePage();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -751,7 +751,7 @@ public enum BookmarkManager {
|
||||
private native Bookmark nativeUpdateBookmarkPlacePage(long bmkId);
|
||||
|
||||
@Nullable
|
||||
private native void nativeUpdateTrackPlacePage(long trackId);
|
||||
private native void nativeUpdateTrackPlacePage();
|
||||
|
||||
@Nullable
|
||||
private native BookmarkInfo nativeGetBookmarkInfo(long bmkId);
|
||||
@@ -919,8 +919,6 @@ public enum BookmarkManager {
|
||||
|
||||
public static native ElevationInfo nativeGetTrackElevationInfo(long trackId);
|
||||
|
||||
public static native boolean nativeIsElevationInfoHasValue(long trackId);
|
||||
|
||||
public static native TrackStatistics nativeGetTrackStatistics(long trackId);
|
||||
public interface BookmarksLoadingListener
|
||||
{
|
||||
|
||||
@@ -27,7 +27,7 @@ public class FeatureId implements Parcelable
|
||||
};
|
||||
|
||||
@NonNull
|
||||
public static final FeatureId EMPTY = new FeatureId("", 0L, 0);
|
||||
public static final FeatureId EMPTY = new FeatureId("", -1L, 0);
|
||||
|
||||
@NonNull
|
||||
private final String mMwmName;
|
||||
|
||||
@@ -25,8 +25,8 @@ public class Track extends MapObject
|
||||
|
||||
Track(long trackId, long categoryId, String name, Distance length, int color)
|
||||
{
|
||||
super(FeatureId.fromFeatureIdString("1:2:3"), TRACK, name, "", "", "", 0, 0, "", null, OPENING_MODE_PREVIEW_PLUS,
|
||||
null, "", RoadWarningMarkType.UNKNOWN.ordinal(), null);
|
||||
super(FeatureId.EMPTY, TRACK, name, "", "", "", 0, 0, "", null, OPENING_MODE_PREVIEW_PLUS, null, "",
|
||||
RoadWarningMarkType.UNKNOWN.ordinal(), null);
|
||||
mTrackId = trackId;
|
||||
mCategoryId = categoryId;
|
||||
mName = name;
|
||||
@@ -49,8 +49,7 @@ public class Track extends MapObject
|
||||
mLength = length;
|
||||
}
|
||||
|
||||
// modifying this categoryId will not change the core data
|
||||
// its just for temporary changes
|
||||
// Change of the category in the core is done in PlacePageView::onCategoryChanged().
|
||||
public void setCategoryId(@NonNull long categoryId)
|
||||
{
|
||||
mCategoryId = categoryId;
|
||||
@@ -94,22 +93,15 @@ public class Track extends MapObject
|
||||
|
||||
public ElevationInfo getElevationInfo()
|
||||
{
|
||||
if (mElevationInfo != null)
|
||||
return mElevationInfo;
|
||||
mElevationInfo = BookmarkManager.nativeGetTrackElevationInfo(mTrackId);
|
||||
if (mElevationInfo == null)
|
||||
mElevationInfo = BookmarkManager.nativeGetTrackElevationInfo(mTrackId);
|
||||
return mElevationInfo;
|
||||
}
|
||||
|
||||
public boolean isElevationInfoHasValue()
|
||||
{
|
||||
return BookmarkManager.nativeIsElevationInfoHasValue(mTrackId);
|
||||
}
|
||||
|
||||
public TrackStatistics getTrackStatistics()
|
||||
{
|
||||
if (mTrackStatistics != null)
|
||||
return mTrackStatistics;
|
||||
mTrackStatistics = BookmarkManager.nativeGetTrackStatistics(mTrackId);
|
||||
if (mTrackStatistics == null)
|
||||
mTrackStatistics = BookmarkManager.nativeGetTrackStatistics(mTrackId);
|
||||
return mTrackStatistics;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,12 +58,6 @@ public class ElevationProfileViewRenderer implements PlacePageStateListener
|
||||
private View mTimeContainer;
|
||||
private View mTitleContainer;
|
||||
|
||||
@NonNull
|
||||
private static String formatDistance(final Context context, int distance)
|
||||
{
|
||||
return Framework.nativeFormatAltitude(distance);
|
||||
}
|
||||
|
||||
public void render(@NonNull Track track)
|
||||
{
|
||||
final Context context = mAscent.getContext();
|
||||
@@ -82,6 +76,12 @@ public class ElevationProfileViewRenderer implements PlacePageStateListener
|
||||
mTime.setText(Utils.formatRoutingTime(mAscent.getContext(), (int) stats.getDuration(), R.dimen.text_size_body_2));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private static String formatDistance(final Context context, int distance)
|
||||
{
|
||||
return Framework.nativeFormatAltitude(distance);
|
||||
}
|
||||
|
||||
public void initialize(@Nullable View view)
|
||||
{
|
||||
Objects.requireNonNull(view);
|
||||
|
||||
@@ -124,6 +124,7 @@ public class PlacePageController
|
||||
bg.setCornerSize(mPlacePageCornerRadius);
|
||||
}
|
||||
};
|
||||
|
||||
private final BottomSheetBehavior.BottomSheetCallback mDefaultBottomSheetCallback =
|
||||
new BottomSheetBehavior.BottomSheetCallback() {
|
||||
@Override
|
||||
@@ -148,18 +149,6 @@ public class PlacePageController
|
||||
}
|
||||
};
|
||||
|
||||
@NonNull
|
||||
private static PlacePageButtons.ButtonType toPlacePageButton(@NonNull RoadWarningMarkType type)
|
||||
{
|
||||
return switch (type)
|
||||
{
|
||||
case DIRTY -> PlacePageButtons.ButtonType.ROUTE_AVOID_UNPAVED;
|
||||
case FERRY -> PlacePageButtons.ButtonType.ROUTE_AVOID_FERRY;
|
||||
case TOLL -> PlacePageButtons.ButtonType.ROUTE_AVOID_TOLL;
|
||||
default -> throw new AssertionError("Unsupported road warning type: " + type);
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@@ -217,6 +206,18 @@ public class PlacePageController
|
||||
ViewCompat.requestApplyInsets(mPlacePage);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private static PlacePageButtons.ButtonType toPlacePageButton(@NonNull RoadWarningMarkType type)
|
||||
{
|
||||
return switch (type)
|
||||
{
|
||||
case DIRTY -> PlacePageButtons.ButtonType.ROUTE_AVOID_UNPAVED;
|
||||
case FERRY -> PlacePageButtons.ButtonType.ROUTE_AVOID_FERRY;
|
||||
case TOLL -> PlacePageButtons.ButtonType.ROUTE_AVOID_TOLL;
|
||||
default -> throw new AssertionError("Unsupported road warning type: " + type);
|
||||
};
|
||||
}
|
||||
|
||||
private void stopCustomPeekHeightAnimation()
|
||||
{
|
||||
if (mCustomPeekHeightAnimator != null && mCustomPeekHeightAnimator.isStarted())
|
||||
@@ -456,19 +457,18 @@ public class PlacePageController
|
||||
{
|
||||
if (mMapObject == null)
|
||||
return;
|
||||
dismissAlertDialog();
|
||||
mViewModel.isAlertDialogShowing = true;
|
||||
if (mAlertDialog != null)
|
||||
{
|
||||
mAlertDialog.dismiss();
|
||||
mAlertDialog.show();
|
||||
mViewModel.isAlertDialogShowing = true;
|
||||
return;
|
||||
}
|
||||
mViewModel.isAlertDialogShowing = true;
|
||||
mAlertDialog = new MaterialAlertDialogBuilder(requireContext(), R.style.MwmTheme_AlertDialog)
|
||||
.setTitle("Would you like to delete " + mMapObject.getTitle() + "?")
|
||||
.setTitle(requireContext().getString(R.string.delete_track_dialog_title, mMapObject.getTitle()))
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.setPositiveButton("delete",
|
||||
.setPositiveButton(R.string.delete,
|
||||
(dialog, which) -> {
|
||||
BookmarkManager.INSTANCE.deleteTrack(((Track) mMapObject).getTrackId());
|
||||
close();
|
||||
@@ -660,6 +660,7 @@ public class PlacePageController
|
||||
// Place page will automatically open when the bottom sheet content is loaded so we can compute the peek height
|
||||
createPlacePageFragments();
|
||||
updateButtons(mapObject, showBackButton, !mMapObject.isMyPosition());
|
||||
mAlertDialog = null;
|
||||
if (mViewModel.isAlertDialogShowing)
|
||||
showTrackDeleteAlertDialog();
|
||||
}
|
||||
|
||||
@@ -369,9 +369,12 @@ public class PlacePageView extends Fragment
|
||||
else
|
||||
refreshDistanceToObject(loc);
|
||||
UiUtils.hideIf(mMapObject.isTrack(), mFrame.findViewById(R.id.ll__place_latlon),
|
||||
mFrame.findViewById(R.id.ll__place_open_in), mFrame.findViewById(R.id.ll__place_add), mEditTopSpace,
|
||||
mTvAzimuth, mTvDistance, mAvDirection);
|
||||
UiUtils.hideIf(MapObjectType.getMapObjectType(mMapObject) != MapObjectType.OTHER, mTvSubtitle);
|
||||
mFrame.findViewById(R.id.ll__place_open_in));
|
||||
if (mMapObject.isTrack() || mMapObject.isBookmark())
|
||||
{
|
||||
UiUtils.hide(mTvSubtitle);
|
||||
UiUtils.hide(mTvAzimuth, mAvDirection, mTvDistance);
|
||||
}
|
||||
}
|
||||
|
||||
private <T extends Fragment> void updateViewFragment(Class<T> controllerClass, String fragmentTag,
|
||||
@@ -466,9 +469,7 @@ public class PlacePageView extends Fragment
|
||||
void refreshCategoryPreview()
|
||||
{
|
||||
View categoryContainer = mFrame.findViewById(R.id.category_container);
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
{
|
||||
case TRACK ->
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
Track track = (Track) mMapObject;
|
||||
Drawable circle =
|
||||
@@ -477,7 +478,7 @@ public class PlacePageView extends Fragment
|
||||
mTvCategory.setText(BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId()).getName());
|
||||
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
||||
}
|
||||
case BOOKMARK ->
|
||||
else if (mMapObject.isBookmark())
|
||||
{
|
||||
Bookmark bookmark = (Bookmark) mMapObject;
|
||||
Icon icon = bookmark.getIcon();
|
||||
@@ -491,8 +492,7 @@ public class PlacePageView extends Fragment
|
||||
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
||||
}
|
||||
}
|
||||
case OTHER -> UiUtils.hide(mColorIcon, mTvCategory, categoryContainer);
|
||||
}
|
||||
|
||||
mColorIcon.setOnClickListener(this::onClick);
|
||||
mTvCategory.setOnClickListener(this::onClick);
|
||||
mEditBookmark.setOnClickListener(this::onClick);
|
||||
@@ -508,25 +508,23 @@ public class PlacePageView extends Fragment
|
||||
(BookmarkColorDialogFragment) factory.instantiate(getContext().getClassLoader(), className);
|
||||
dialogFragment.setArguments(args);
|
||||
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
case TRACK ->
|
||||
{
|
||||
final Track mTrack = (Track) mMapObject;
|
||||
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, PredefinedColors.getPredefinedColorIndex(mTrack.getColor()));
|
||||
final Track track = (Track) mMapObject;
|
||||
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, PredefinedColors.getPredefinedColorIndex(track.getColor()));
|
||||
dialogFragment.setOnColorSetListener((colorPos) -> {
|
||||
int from = mTrack.getColor();
|
||||
int from = track.getColor();
|
||||
int to = PredefinedColors.getColor(colorPos);
|
||||
if (from == to)
|
||||
return;
|
||||
mViewModel.modifyMapObjectColorSilently(to);
|
||||
track.setColor(to);
|
||||
Drawable circle = Graphics.drawCircle(to, R.dimen.place_page_icon_size, requireContext().getResources());
|
||||
mColorIcon.setImageDrawable(circle);
|
||||
});
|
||||
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
||||
}
|
||||
case BOOKMARK ->
|
||||
else if (mMapObject.isBookmark())
|
||||
{
|
||||
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
||||
final Bookmark bookmark = (Bookmark) mMapObject;
|
||||
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, bookmark.getIcon().getColor());
|
||||
args.putInt(BookmarkColorDialogFragment.ICON_RES, bookmark.getIcon().getResId());
|
||||
@@ -535,7 +533,7 @@ public class PlacePageView extends Fragment
|
||||
int to = PredefinedColors.getColor(colorPos);
|
||||
if (from == to)
|
||||
return;
|
||||
mViewModel.modifyMapObjectColorSilently(to);
|
||||
bookmark.setIconColor(to);
|
||||
Drawable circle = Graphics.drawCircleAndImage(to, R.dimen.place_page_icon_size,
|
||||
app.organicmaps.sdk.R.drawable.ic_bookmark_none,
|
||||
R.dimen.place_page_icon_mark_size, requireContext());
|
||||
@@ -543,7 +541,6 @@ public class PlacePageView extends Fragment
|
||||
});
|
||||
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showCategoryList()
|
||||
@@ -555,9 +552,7 @@ public class PlacePageView extends Fragment
|
||||
final FragmentFactory factory = manager.getFragmentFactory();
|
||||
final ChooseBookmarkCategoryFragment frag =
|
||||
(ChooseBookmarkCategoryFragment) factory.instantiate(getContext().getClassLoader(), className);
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
{
|
||||
case TRACK ->
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
Track track = (Track) mMapObject;
|
||||
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
||||
@@ -566,7 +561,7 @@ public class PlacePageView extends Fragment
|
||||
frag.setArguments(args);
|
||||
frag.show(manager, null);
|
||||
}
|
||||
case BOOKMARK ->
|
||||
else if (mMapObject.isBookmark())
|
||||
{
|
||||
Bookmark bookmark = (Bookmark) mMapObject;
|
||||
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
||||
@@ -575,15 +570,12 @@ public class PlacePageView extends Fragment
|
||||
frag.setArguments(args);
|
||||
frag.show(manager, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCategoryChanged(@NonNull BookmarkCategory newCategory)
|
||||
{
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
{
|
||||
case TRACK ->
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
Track track = (Track) mMapObject;
|
||||
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
||||
@@ -591,49 +583,44 @@ public class PlacePageView extends Fragment
|
||||
return;
|
||||
BookmarkManager.INSTANCE.notifyCategoryChanging(track, newCategory.getId());
|
||||
mTvCategory.setText(newCategory.getName());
|
||||
mViewModel.modifyMapObjectCategoryIdSilently(newCategory.getId());
|
||||
track.setCategoryId(newCategory.getId());
|
||||
}
|
||||
case BOOKMARK ->
|
||||
else if (mMapObject.isBookmark())
|
||||
{
|
||||
Bookmark bookmark = (Bookmark) mMapObject;
|
||||
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
||||
if (previousCategory == newCategory)
|
||||
return;
|
||||
mTvCategory.setText(newCategory.getName());
|
||||
mViewModel.modifyMapObjectCategoryIdSilently(newCategory.getId());
|
||||
}
|
||||
bookmark.setCategoryId(newCategory.getId());
|
||||
}
|
||||
}
|
||||
|
||||
void showBookmarkEditFragment()
|
||||
{
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
{
|
||||
case TRACK ->
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
Track track = (Track) mMapObject;
|
||||
final FragmentActivity activity = requireActivity();
|
||||
EditBookmarkFragment.editTrack(track.getCategoryId(), track.getTrackId(), activity, getChildFragmentManager(),
|
||||
PlacePageView.this);
|
||||
}
|
||||
case BOOKMARK ->
|
||||
else if (mMapObject.isBookmark())
|
||||
{
|
||||
Bookmark bookmark = (Bookmark) mMapObject;
|
||||
final FragmentActivity activity = requireActivity();
|
||||
EditBookmarkFragment.editBookmark(bookmark.getCategoryId(), bookmark.getBookmarkId(), activity,
|
||||
getChildFragmentManager(), PlacePageView.this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBookmarkSaved(long bookmarkId, boolean movedFromCategory)
|
||||
{
|
||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
||||
{
|
||||
case TRACK -> BookmarkManager.INSTANCE.updateTrackPlacePage(bookmarkId);
|
||||
case BOOKMARK -> BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
|
||||
}
|
||||
if (mMapObject.isTrack())
|
||||
BookmarkManager.INSTANCE.updateTrackPlacePage();
|
||||
else if (mMapObject.isBookmark())
|
||||
BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
|
||||
}
|
||||
|
||||
private void refreshDetails()
|
||||
@@ -1071,7 +1058,7 @@ public class PlacePageView extends Fragment
|
||||
{
|
||||
if (mMapObject.isTrack())
|
||||
{
|
||||
MenuBottomSheetFragment.newInstance(TRACK_SHARE_MENU_ID, getString(R.string.PP_track_bottom_sheet_title))
|
||||
MenuBottomSheetFragment.newInstance(TRACK_SHARE_MENU_ID, getString(R.string.share_track))
|
||||
.show(getChildFragmentManager(), TRACK_SHARE_MENU_ID);
|
||||
}
|
||||
else
|
||||
@@ -1119,21 +1106,4 @@ public class PlacePageView extends Fragment
|
||||
void onPlacePageRequestToggleState();
|
||||
void onPlacePageRequestClose();
|
||||
}
|
||||
|
||||
public enum MapObjectType
|
||||
{
|
||||
TRACK,
|
||||
BOOKMARK,
|
||||
OTHER;
|
||||
|
||||
public static MapObjectType getMapObjectType(MapObject mapObject)
|
||||
{
|
||||
if (mapObject.isTrack())
|
||||
return TRACK;
|
||||
else if (mapObject.isBookmark())
|
||||
return BOOKMARK;
|
||||
else
|
||||
return OTHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,38 +37,6 @@ public class PlacePageViewModel extends ViewModel
|
||||
mMapObject.setValue(mapObject);
|
||||
}
|
||||
|
||||
// These silent method are used to update data of map object silently without triggering
|
||||
// the observer which refreshes everything and puts extra load on device in calculation
|
||||
// which is not required
|
||||
public void modifyMapObjectPointSilently(ElevationInfo.Point point)
|
||||
{
|
||||
if (mMapObject.getValue() == null)
|
||||
return;
|
||||
mMapObject.getValue().setLat(point.getLatitude());
|
||||
mMapObject.getValue().setLon(point.getLongitude());
|
||||
}
|
||||
|
||||
public void modifyMapObjectCategoryIdSilently(long categoryId)
|
||||
{
|
||||
if (mMapObject.getValue() == null)
|
||||
return;
|
||||
switch (PlacePageView.MapObjectType.getMapObjectType(mMapObject.getValue()))
|
||||
{
|
||||
case TRACK -> ((Track) mMapObject.getValue()).setCategoryId(categoryId);
|
||||
case BOOKMARK -> ((Bookmark) mMapObject.getValue()).setCategoryId(categoryId);
|
||||
}
|
||||
}
|
||||
|
||||
public void modifyMapObjectColorSilently(int color)
|
||||
{
|
||||
if (mMapObject.getValue() == null)
|
||||
return;
|
||||
switch (PlacePageView.MapObjectType.getMapObjectType(mMapObject.getValue()))
|
||||
{
|
||||
case TRACK -> ((Track) mMapObject.getValue()).setColor(color);
|
||||
case BOOKMARK -> ((Bookmark) mMapObject.getValue()).setIconColor(color);
|
||||
}
|
||||
}
|
||||
public MutableLiveData<Integer> getPlacePageWidth()
|
||||
{
|
||||
return mPlacePageWidth;
|
||||
|
||||
@@ -63,14 +63,14 @@ public class PlacePageTrackFragment extends Fragment
|
||||
public void onStop()
|
||||
{
|
||||
super.onStop();
|
||||
BookmarkManager.INSTANCE.setElevationActivePointChangedListener(null);
|
||||
BookmarkManager.INSTANCE.setElevationCurrentPositionChangedListener(null);
|
||||
mViewModel.getMapObject().removeObserver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
{
|
||||
BookmarkManager.INSTANCE.setElevationActivePointChangedListener(null);
|
||||
BookmarkManager.INSTANCE.setElevationCurrentPositionChangedListener(null);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -80,21 +80,21 @@ public class PlacePageTrackFragment extends Fragment
|
||||
// MapObject could be something else than a Track if the user already has the place page
|
||||
// opened and clicks on a non-Track POI.
|
||||
// This callback would be called before the fragment had time to be destroyed
|
||||
if (mapObject != null && mapObject.isTrack())
|
||||
if (mapObject == null || !mapObject.isTrack())
|
||||
return;
|
||||
|
||||
Track track = (Track) mapObject;
|
||||
if (track.getElevationInfo() != null)
|
||||
{
|
||||
Track track = (Track) mapObject;
|
||||
if (track.isElevationInfoHasValue())
|
||||
if (mTrack == null || mTrack.getTrackId() != track.getTrackId())
|
||||
{
|
||||
if (mTrack == null || mTrack.getTrackId() != track.getTrackId())
|
||||
{
|
||||
mElevationProfileViewRenderer.render(track);
|
||||
UiUtils.show(mElevationProfileView);
|
||||
}
|
||||
mElevationProfileViewRenderer.render(track);
|
||||
UiUtils.show(mElevationProfileView);
|
||||
}
|
||||
else
|
||||
UiUtils.hide(mElevationProfileView);
|
||||
mTrack = track;
|
||||
}
|
||||
else
|
||||
UiUtils.hide(mElevationProfileView);
|
||||
mTrack = track;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -104,7 +104,8 @@ public class PlacePageTrackFragment extends Fragment
|
||||
return;
|
||||
mElevationProfileViewRenderer.onChartElevationActivePointChanged();
|
||||
ElevationInfo.Point point = BookmarkManager.INSTANCE.getElevationActivePointCoordinates(mTrack.getTrackId());
|
||||
mViewModel.modifyMapObjectPointSilently(point);
|
||||
mTrack.setLat(point.getLatitude());
|
||||
mTrack.setLon(point.getLongitude());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportHeight="590.91"
|
||||
android:viewportWidth="590.91"
|
||||
android:width="24dp">
|
||||
android:viewportWidth="960"
|
||||
android:viewportHeight="960">
|
||||
<path
|
||||
android:fillColor="#000000"
|
||||
android:pathData="M541.67,295.45l-86.21,-86.21l0,71.21l-320,0l0,-71.21l-86.21,86.21l86.21,86.21l0,-71.21l320,0l0,71.21z" />
|
||||
android:pathData="M280,680 L80,480l200,-200 56,56 -103,104h494L624,336l56,-56 200,200 -200,200 -56,-56 103,-104L233,520l103,104 -56,56Z"
|
||||
android:fillColor="#e3e3e3" />
|
||||
</vector>
|
||||
|
||||
@@ -971,5 +971,7 @@
|
||||
<string name="closed_now">Closed now</string>
|
||||
<!-- Used in place page preview for next open/close time. eg. "closing in 30 min • at 19:30" -->
|
||||
<string name="at">at %s</string>
|
||||
<string name="PP_track_bottom_sheet_title">Save Track As</string>
|
||||
<!-- Title of the bottom sheet when sharing the track -->
|
||||
<string name="share_track">Share Track</string>
|
||||
<string name="delete_track_dialog_title">Delete %s?</string>
|
||||
</resources>
|
||||
|
||||
@@ -102,11 +102,7 @@ jobject CreateTrack(JNIEnv * env, place_page::Info const & info, jni::TScopedLoc
|
||||
|
||||
auto const trackId = info.GetTrackId();
|
||||
auto const track = frm()->GetBookmarkManager().GetTrack(trackId);
|
||||
dp::Color nColor = track->GetColor(0);
|
||||
|
||||
jint androidColor =
|
||||
shift(nColor.GetAlpha(), 24) + shift(nColor.GetRed(), 16) + shift(nColor.GetGreen(), 8) + nColor.GetBlue();
|
||||
|
||||
jint androidColor = track->GetColor(0).GetARGB();
|
||||
auto const categoryId = track->GetGroupId();
|
||||
ms::LatLon const ll = info.GetLatLon();
|
||||
jni::TScopedLocalRef jMwmName(env, jni::ToJavaString(env, info.GetID().GetMwmName()));
|
||||
|
||||
@@ -448,8 +448,7 @@ JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManage
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateTrackPlacePage(JNIEnv * env,
|
||||
jobject,
|
||||
jlong trackId)
|
||||
jobject)
|
||||
{
|
||||
if (!frm()->HasPlacePageInfo())
|
||||
return;
|
||||
@@ -837,8 +836,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_n
|
||||
JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters, jdouble latitude, jdouble longitude)
|
||||
{
|
||||
auto & bm = frm()->GetBookmarkManager();
|
||||
bm.SetElevationActivePoint(static_cast<kml::TrackId>(trackId),
|
||||
m2::PointD(static_cast<double>(latitude), static_cast<double>(longitude)),
|
||||
bm.SetElevationActivePoint(static_cast<kml::TrackId>(trackId), {latitude, longitude},
|
||||
static_cast<double>(distanceInMeters));
|
||||
}
|
||||
|
||||
@@ -872,22 +870,17 @@ JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManage
|
||||
{
|
||||
auto const & track = frm()->GetBookmarkManager().GetTrack(track_id);
|
||||
auto const & elevationInfo = track->GetElevationInfo();
|
||||
return usermark_helper::CreateElevationInfo(env, elevationInfo.value());
|
||||
}
|
||||
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsElevationInfoHasValue(
|
||||
JNIEnv * env, jclass clazz, jlong track_id)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().GetTrack(track_id)->GetElevationInfo().has_value());
|
||||
return track->GetElevationInfo().has_value() ? usermark_helper::CreateElevationInfo(env, elevationInfo.value())
|
||||
: nullptr;
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackStatistics(
|
||||
JNIEnv * env, jclass clazz, jlong track_id)
|
||||
{
|
||||
static jmethodID const cId = jni::GetConstructorID(env, g_trackStatisticsClazz, "(DDDDII)V");
|
||||
auto const trackStats = frm()->GetBookmarkManager().GetTrack(track_id)->GetStatistics();
|
||||
return env->NewObject(g_trackStatisticsClazz, cId, static_cast<jdouble>(trackStats.m_length),
|
||||
static_cast<jdouble>(trackStats.m_duration), static_cast<jdouble>(trackStats.m_ascent),
|
||||
static_cast<jdouble>(trackStats.m_descent), static_cast<jint>(trackStats.m_minElevation),
|
||||
static_cast<jint>(trackStats.m_maxElevation));
|
||||
return env->NewObject(g_trackStatisticsClazz, cId, trackStats.m_length, trackStats.m_duration, trackStats.m_ascent,
|
||||
trackStats.m_descent, trackStats.m_minElevation, static_cast<jint>(trackStats.m_maxElevation));
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
@@ -900,7 +893,6 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActive
|
||||
static jmethodID const pointCtorId = jni::GetConstructorID(env, pointClass, "(DIDD)V");
|
||||
auto const & trackInfo = frm()->GetBookmarkManager().GetTrackSelectionInfo(track_id);
|
||||
auto const latlon = mercator::ToLatLon(trackInfo.m_trackPoint);
|
||||
return env->NewObject(pointClass, pointCtorId, 0.0, 0, static_cast<jdouble>(latlon.m_lat),
|
||||
static_cast<jdouble>(latlon.m_lon));
|
||||
return env->NewObject(pointClass, pointCtorId, 0.0, 0, latlon.m_lat, latlon.m_lon);
|
||||
}
|
||||
} // extern "C"
|
||||
|
||||
@@ -31,7 +31,7 @@ bool Info::IsBookmark() const
|
||||
bool Info::ShouldShowAddPlace() const
|
||||
{
|
||||
auto const isPointOrBuilding = IsPointType() || IsBuilding();
|
||||
return !(IsFeature() && isPointOrBuilding);
|
||||
return !IsTrack() && !(IsFeature() && isPointOrBuilding);
|
||||
}
|
||||
|
||||
void Info::SetFromFeatureType(FeatureType & ft)
|
||||
|
||||
Reference in New Issue
Block a user