mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-21 05:43: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_Y_LABEL_COUNT = 3;
|
||||||
private static final int CHART_X_LABEL_COUNT = 6;
|
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_FILL_ALPHA = (int) (0.12 * 255);
|
||||||
private static final int CHART_AXIS_GRANULARITY = 100;
|
private static final int CHART_AXIS_GRANULARITY = 100;
|
||||||
private static final float CUBIC_INTENSITY = 0.2f;
|
private static final float CUBIC_INTENSITY = 0.2f;
|
||||||
|
|||||||
@@ -264,9 +264,9 @@ public enum BookmarkManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public void updateTrackPlacePage(long trackId)
|
public void updateTrackPlacePage()
|
||||||
{
|
{
|
||||||
nativeUpdateTrackPlacePage(trackId);
|
nativeUpdateTrackPlacePage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -751,7 +751,7 @@ public enum BookmarkManager {
|
|||||||
private native Bookmark nativeUpdateBookmarkPlacePage(long bmkId);
|
private native Bookmark nativeUpdateBookmarkPlacePage(long bmkId);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private native void nativeUpdateTrackPlacePage(long trackId);
|
private native void nativeUpdateTrackPlacePage();
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private native BookmarkInfo nativeGetBookmarkInfo(long bmkId);
|
private native BookmarkInfo nativeGetBookmarkInfo(long bmkId);
|
||||||
@@ -919,8 +919,6 @@ public enum BookmarkManager {
|
|||||||
|
|
||||||
public static native ElevationInfo nativeGetTrackElevationInfo(long trackId);
|
public static native ElevationInfo nativeGetTrackElevationInfo(long trackId);
|
||||||
|
|
||||||
public static native boolean nativeIsElevationInfoHasValue(long trackId);
|
|
||||||
|
|
||||||
public static native TrackStatistics nativeGetTrackStatistics(long trackId);
|
public static native TrackStatistics nativeGetTrackStatistics(long trackId);
|
||||||
public interface BookmarksLoadingListener
|
public interface BookmarksLoadingListener
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class FeatureId implements Parcelable
|
|||||||
};
|
};
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public static final FeatureId EMPTY = new FeatureId("", 0L, 0);
|
public static final FeatureId EMPTY = new FeatureId("", -1L, 0);
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private final String mMwmName;
|
private final String mMwmName;
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ public class Track extends MapObject
|
|||||||
|
|
||||||
Track(long trackId, long categoryId, String name, Distance length, int color)
|
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,
|
super(FeatureId.EMPTY, TRACK, name, "", "", "", 0, 0, "", null, OPENING_MODE_PREVIEW_PLUS, null, "",
|
||||||
null, "", RoadWarningMarkType.UNKNOWN.ordinal(), null);
|
RoadWarningMarkType.UNKNOWN.ordinal(), null);
|
||||||
mTrackId = trackId;
|
mTrackId = trackId;
|
||||||
mCategoryId = categoryId;
|
mCategoryId = categoryId;
|
||||||
mName = name;
|
mName = name;
|
||||||
@@ -49,8 +49,7 @@ public class Track extends MapObject
|
|||||||
mLength = length;
|
mLength = length;
|
||||||
}
|
}
|
||||||
|
|
||||||
// modifying this categoryId will not change the core data
|
// Change of the category in the core is done in PlacePageView::onCategoryChanged().
|
||||||
// its just for temporary changes
|
|
||||||
public void setCategoryId(@NonNull long categoryId)
|
public void setCategoryId(@NonNull long categoryId)
|
||||||
{
|
{
|
||||||
mCategoryId = categoryId;
|
mCategoryId = categoryId;
|
||||||
@@ -94,21 +93,14 @@ public class Track extends MapObject
|
|||||||
|
|
||||||
public ElevationInfo getElevationInfo()
|
public ElevationInfo getElevationInfo()
|
||||||
{
|
{
|
||||||
if (mElevationInfo != null)
|
if (mElevationInfo == null)
|
||||||
return mElevationInfo;
|
|
||||||
mElevationInfo = BookmarkManager.nativeGetTrackElevationInfo(mTrackId);
|
mElevationInfo = BookmarkManager.nativeGetTrackElevationInfo(mTrackId);
|
||||||
return mElevationInfo;
|
return mElevationInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isElevationInfoHasValue()
|
|
||||||
{
|
|
||||||
return BookmarkManager.nativeIsElevationInfoHasValue(mTrackId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrackStatistics getTrackStatistics()
|
public TrackStatistics getTrackStatistics()
|
||||||
{
|
{
|
||||||
if (mTrackStatistics != null)
|
if (mTrackStatistics == null)
|
||||||
return mTrackStatistics;
|
|
||||||
mTrackStatistics = BookmarkManager.nativeGetTrackStatistics(mTrackId);
|
mTrackStatistics = BookmarkManager.nativeGetTrackStatistics(mTrackId);
|
||||||
return mTrackStatistics;
|
return mTrackStatistics;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,12 +58,6 @@ public class ElevationProfileViewRenderer implements PlacePageStateListener
|
|||||||
private View mTimeContainer;
|
private View mTimeContainer;
|
||||||
private View mTitleContainer;
|
private View mTitleContainer;
|
||||||
|
|
||||||
@NonNull
|
|
||||||
private static String formatDistance(final Context context, int distance)
|
|
||||||
{
|
|
||||||
return Framework.nativeFormatAltitude(distance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void render(@NonNull Track track)
|
public void render(@NonNull Track track)
|
||||||
{
|
{
|
||||||
final Context context = mAscent.getContext();
|
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));
|
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)
|
public void initialize(@Nullable View view)
|
||||||
{
|
{
|
||||||
Objects.requireNonNull(view);
|
Objects.requireNonNull(view);
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ public class PlacePageController
|
|||||||
bg.setCornerSize(mPlacePageCornerRadius);
|
bg.setCornerSize(mPlacePageCornerRadius);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final BottomSheetBehavior.BottomSheetCallback mDefaultBottomSheetCallback =
|
private final BottomSheetBehavior.BottomSheetCallback mDefaultBottomSheetCallback =
|
||||||
new BottomSheetBehavior.BottomSheetCallback() {
|
new BottomSheetBehavior.BottomSheetCallback() {
|
||||||
@Override
|
@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
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||||
@@ -217,6 +206,18 @@ public class PlacePageController
|
|||||||
ViewCompat.requestApplyInsets(mPlacePage);
|
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()
|
private void stopCustomPeekHeightAnimation()
|
||||||
{
|
{
|
||||||
if (mCustomPeekHeightAnimator != null && mCustomPeekHeightAnimator.isStarted())
|
if (mCustomPeekHeightAnimator != null && mCustomPeekHeightAnimator.isStarted())
|
||||||
@@ -456,19 +457,18 @@ public class PlacePageController
|
|||||||
{
|
{
|
||||||
if (mMapObject == null)
|
if (mMapObject == null)
|
||||||
return;
|
return;
|
||||||
|
dismissAlertDialog();
|
||||||
|
mViewModel.isAlertDialogShowing = true;
|
||||||
if (mAlertDialog != null)
|
if (mAlertDialog != null)
|
||||||
{
|
{
|
||||||
mAlertDialog.dismiss();
|
|
||||||
mAlertDialog.show();
|
mAlertDialog.show();
|
||||||
mViewModel.isAlertDialogShowing = true;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mViewModel.isAlertDialogShowing = true;
|
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(requireContext(), R.style.MwmTheme_AlertDialog)
|
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)
|
.setCancelable(true)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
.setPositiveButton("delete",
|
.setPositiveButton(R.string.delete,
|
||||||
(dialog, which) -> {
|
(dialog, which) -> {
|
||||||
BookmarkManager.INSTANCE.deleteTrack(((Track) mMapObject).getTrackId());
|
BookmarkManager.INSTANCE.deleteTrack(((Track) mMapObject).getTrackId());
|
||||||
close();
|
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
|
// Place page will automatically open when the bottom sheet content is loaded so we can compute the peek height
|
||||||
createPlacePageFragments();
|
createPlacePageFragments();
|
||||||
updateButtons(mapObject, showBackButton, !mMapObject.isMyPosition());
|
updateButtons(mapObject, showBackButton, !mMapObject.isMyPosition());
|
||||||
|
mAlertDialog = null;
|
||||||
if (mViewModel.isAlertDialogShowing)
|
if (mViewModel.isAlertDialogShowing)
|
||||||
showTrackDeleteAlertDialog();
|
showTrackDeleteAlertDialog();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -369,9 +369,12 @@ public class PlacePageView extends Fragment
|
|||||||
else
|
else
|
||||||
refreshDistanceToObject(loc);
|
refreshDistanceToObject(loc);
|
||||||
UiUtils.hideIf(mMapObject.isTrack(), mFrame.findViewById(R.id.ll__place_latlon),
|
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,
|
mFrame.findViewById(R.id.ll__place_open_in));
|
||||||
mTvAzimuth, mTvDistance, mAvDirection);
|
if (mMapObject.isTrack() || mMapObject.isBookmark())
|
||||||
UiUtils.hideIf(MapObjectType.getMapObjectType(mMapObject) != MapObjectType.OTHER, mTvSubtitle);
|
{
|
||||||
|
UiUtils.hide(mTvSubtitle);
|
||||||
|
UiUtils.hide(mTvAzimuth, mAvDirection, mTvDistance);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends Fragment> void updateViewFragment(Class<T> controllerClass, String fragmentTag,
|
private <T extends Fragment> void updateViewFragment(Class<T> controllerClass, String fragmentTag,
|
||||||
@@ -466,9 +469,7 @@ public class PlacePageView extends Fragment
|
|||||||
void refreshCategoryPreview()
|
void refreshCategoryPreview()
|
||||||
{
|
{
|
||||||
View categoryContainer = mFrame.findViewById(R.id.category_container);
|
View categoryContainer = mFrame.findViewById(R.id.category_container);
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
|
||||||
case TRACK ->
|
|
||||||
{
|
{
|
||||||
Track track = (Track) mMapObject;
|
Track track = (Track) mMapObject;
|
||||||
Drawable circle =
|
Drawable circle =
|
||||||
@@ -477,7 +478,7 @@ public class PlacePageView extends Fragment
|
|||||||
mTvCategory.setText(BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId()).getName());
|
mTvCategory.setText(BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId()).getName());
|
||||||
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
||||||
}
|
}
|
||||||
case BOOKMARK ->
|
else if (mMapObject.isBookmark())
|
||||||
{
|
{
|
||||||
Bookmark bookmark = (Bookmark) mMapObject;
|
Bookmark bookmark = (Bookmark) mMapObject;
|
||||||
Icon icon = bookmark.getIcon();
|
Icon icon = bookmark.getIcon();
|
||||||
@@ -491,8 +492,7 @@ public class PlacePageView extends Fragment
|
|||||||
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
UiUtils.show(mColorIcon, mTvCategory, categoryContainer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case OTHER -> UiUtils.hide(mColorIcon, mTvCategory, categoryContainer);
|
|
||||||
}
|
|
||||||
mColorIcon.setOnClickListener(this::onClick);
|
mColorIcon.setOnClickListener(this::onClick);
|
||||||
mTvCategory.setOnClickListener(this::onClick);
|
mTvCategory.setOnClickListener(this::onClick);
|
||||||
mEditBookmark.setOnClickListener(this::onClick);
|
mEditBookmark.setOnClickListener(this::onClick);
|
||||||
@@ -508,25 +508,23 @@ public class PlacePageView extends Fragment
|
|||||||
(BookmarkColorDialogFragment) factory.instantiate(getContext().getClassLoader(), className);
|
(BookmarkColorDialogFragment) factory.instantiate(getContext().getClassLoader(), className);
|
||||||
dialogFragment.setArguments(args);
|
dialogFragment.setArguments(args);
|
||||||
|
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
{
|
||||||
case TRACK ->
|
final Track track = (Track) mMapObject;
|
||||||
{
|
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, PredefinedColors.getPredefinedColorIndex(track.getColor()));
|
||||||
final Track mTrack = (Track) mMapObject;
|
|
||||||
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, PredefinedColors.getPredefinedColorIndex(mTrack.getColor()));
|
|
||||||
dialogFragment.setOnColorSetListener((colorPos) -> {
|
dialogFragment.setOnColorSetListener((colorPos) -> {
|
||||||
int from = mTrack.getColor();
|
int from = track.getColor();
|
||||||
int to = PredefinedColors.getColor(colorPos);
|
int to = PredefinedColors.getColor(colorPos);
|
||||||
if (from == to)
|
if (from == to)
|
||||||
return;
|
return;
|
||||||
mViewModel.modifyMapObjectColorSilently(to);
|
track.setColor(to);
|
||||||
Drawable circle = Graphics.drawCircle(to, R.dimen.place_page_icon_size, requireContext().getResources());
|
Drawable circle = Graphics.drawCircle(to, R.dimen.place_page_icon_size, requireContext().getResources());
|
||||||
mColorIcon.setImageDrawable(circle);
|
mColorIcon.setImageDrawable(circle);
|
||||||
});
|
});
|
||||||
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
|
||||||
}
|
}
|
||||||
case BOOKMARK ->
|
else if (mMapObject.isBookmark())
|
||||||
{
|
{
|
||||||
|
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
||||||
final Bookmark bookmark = (Bookmark) mMapObject;
|
final Bookmark bookmark = (Bookmark) mMapObject;
|
||||||
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, bookmark.getIcon().getColor());
|
args.putInt(BookmarkColorDialogFragment.ICON_COLOR, bookmark.getIcon().getColor());
|
||||||
args.putInt(BookmarkColorDialogFragment.ICON_RES, bookmark.getIcon().getResId());
|
args.putInt(BookmarkColorDialogFragment.ICON_RES, bookmark.getIcon().getResId());
|
||||||
@@ -535,7 +533,7 @@ public class PlacePageView extends Fragment
|
|||||||
int to = PredefinedColors.getColor(colorPos);
|
int to = PredefinedColors.getColor(colorPos);
|
||||||
if (from == to)
|
if (from == to)
|
||||||
return;
|
return;
|
||||||
mViewModel.modifyMapObjectColorSilently(to);
|
bookmark.setIconColor(to);
|
||||||
Drawable circle = Graphics.drawCircleAndImage(to, R.dimen.place_page_icon_size,
|
Drawable circle = Graphics.drawCircleAndImage(to, R.dimen.place_page_icon_size,
|
||||||
app.organicmaps.sdk.R.drawable.ic_bookmark_none,
|
app.organicmaps.sdk.R.drawable.ic_bookmark_none,
|
||||||
R.dimen.place_page_icon_mark_size, requireContext());
|
R.dimen.place_page_icon_mark_size, requireContext());
|
||||||
@@ -544,7 +542,6 @@ public class PlacePageView extends Fragment
|
|||||||
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private void showCategoryList()
|
private void showCategoryList()
|
||||||
{
|
{
|
||||||
@@ -555,9 +552,7 @@ public class PlacePageView extends Fragment
|
|||||||
final FragmentFactory factory = manager.getFragmentFactory();
|
final FragmentFactory factory = manager.getFragmentFactory();
|
||||||
final ChooseBookmarkCategoryFragment frag =
|
final ChooseBookmarkCategoryFragment frag =
|
||||||
(ChooseBookmarkCategoryFragment) factory.instantiate(getContext().getClassLoader(), className);
|
(ChooseBookmarkCategoryFragment) factory.instantiate(getContext().getClassLoader(), className);
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
|
||||||
case TRACK ->
|
|
||||||
{
|
{
|
||||||
Track track = (Track) mMapObject;
|
Track track = (Track) mMapObject;
|
||||||
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
||||||
@@ -566,7 +561,7 @@ public class PlacePageView extends Fragment
|
|||||||
frag.setArguments(args);
|
frag.setArguments(args);
|
||||||
frag.show(manager, null);
|
frag.show(manager, null);
|
||||||
}
|
}
|
||||||
case BOOKMARK ->
|
else if (mMapObject.isBookmark())
|
||||||
{
|
{
|
||||||
Bookmark bookmark = (Bookmark) mMapObject;
|
Bookmark bookmark = (Bookmark) mMapObject;
|
||||||
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
BookmarkCategory currentCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
||||||
@@ -576,14 +571,11 @@ public class PlacePageView extends Fragment
|
|||||||
frag.show(manager, null);
|
frag.show(manager, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCategoryChanged(@NonNull BookmarkCategory newCategory)
|
public void onCategoryChanged(@NonNull BookmarkCategory newCategory)
|
||||||
{
|
{
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
|
||||||
case TRACK ->
|
|
||||||
{
|
{
|
||||||
Track track = (Track) mMapObject;
|
Track track = (Track) mMapObject;
|
||||||
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(track.getCategoryId());
|
||||||
@@ -591,32 +583,29 @@ public class PlacePageView extends Fragment
|
|||||||
return;
|
return;
|
||||||
BookmarkManager.INSTANCE.notifyCategoryChanging(track, newCategory.getId());
|
BookmarkManager.INSTANCE.notifyCategoryChanging(track, newCategory.getId());
|
||||||
mTvCategory.setText(newCategory.getName());
|
mTvCategory.setText(newCategory.getName());
|
||||||
mViewModel.modifyMapObjectCategoryIdSilently(newCategory.getId());
|
track.setCategoryId(newCategory.getId());
|
||||||
}
|
}
|
||||||
case BOOKMARK ->
|
else if (mMapObject.isBookmark())
|
||||||
{
|
{
|
||||||
Bookmark bookmark = (Bookmark) mMapObject;
|
Bookmark bookmark = (Bookmark) mMapObject;
|
||||||
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
BookmarkCategory previousCategory = BookmarkManager.INSTANCE.getCategoryById(bookmark.getCategoryId());
|
||||||
if (previousCategory == newCategory)
|
if (previousCategory == newCategory)
|
||||||
return;
|
return;
|
||||||
mTvCategory.setText(newCategory.getName());
|
mTvCategory.setText(newCategory.getName());
|
||||||
mViewModel.modifyMapObjectCategoryIdSilently(newCategory.getId());
|
bookmark.setCategoryId(newCategory.getId());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void showBookmarkEditFragment()
|
void showBookmarkEditFragment()
|
||||||
{
|
{
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
|
||||||
case TRACK ->
|
|
||||||
{
|
{
|
||||||
Track track = (Track) mMapObject;
|
Track track = (Track) mMapObject;
|
||||||
final FragmentActivity activity = requireActivity();
|
final FragmentActivity activity = requireActivity();
|
||||||
EditBookmarkFragment.editTrack(track.getCategoryId(), track.getTrackId(), activity, getChildFragmentManager(),
|
EditBookmarkFragment.editTrack(track.getCategoryId(), track.getTrackId(), activity, getChildFragmentManager(),
|
||||||
PlacePageView.this);
|
PlacePageView.this);
|
||||||
}
|
}
|
||||||
case BOOKMARK ->
|
else if (mMapObject.isBookmark())
|
||||||
{
|
{
|
||||||
Bookmark bookmark = (Bookmark) mMapObject;
|
Bookmark bookmark = (Bookmark) mMapObject;
|
||||||
final FragmentActivity activity = requireActivity();
|
final FragmentActivity activity = requireActivity();
|
||||||
@@ -624,16 +613,14 @@ public class PlacePageView extends Fragment
|
|||||||
getChildFragmentManager(), PlacePageView.this);
|
getChildFragmentManager(), PlacePageView.this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBookmarkSaved(long bookmarkId, boolean movedFromCategory)
|
public void onBookmarkSaved(long bookmarkId, boolean movedFromCategory)
|
||||||
{
|
{
|
||||||
switch (MapObjectType.getMapObjectType(mMapObject))
|
if (mMapObject.isTrack())
|
||||||
{
|
BookmarkManager.INSTANCE.updateTrackPlacePage();
|
||||||
case TRACK -> BookmarkManager.INSTANCE.updateTrackPlacePage(bookmarkId);
|
else if (mMapObject.isBookmark())
|
||||||
case BOOKMARK -> BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
|
BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshDetails()
|
private void refreshDetails()
|
||||||
@@ -1071,7 +1058,7 @@ public class PlacePageView extends Fragment
|
|||||||
{
|
{
|
||||||
if (mMapObject.isTrack())
|
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);
|
.show(getChildFragmentManager(), TRACK_SHARE_MENU_ID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1119,21 +1106,4 @@ public class PlacePageView extends Fragment
|
|||||||
void onPlacePageRequestToggleState();
|
void onPlacePageRequestToggleState();
|
||||||
void onPlacePageRequestClose();
|
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);
|
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()
|
public MutableLiveData<Integer> getPlacePageWidth()
|
||||||
{
|
{
|
||||||
return mPlacePageWidth;
|
return mPlacePageWidth;
|
||||||
|
|||||||
@@ -63,14 +63,14 @@ public class PlacePageTrackFragment extends Fragment
|
|||||||
public void onStop()
|
public void onStop()
|
||||||
{
|
{
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
BookmarkManager.INSTANCE.setElevationActivePointChangedListener(null);
|
||||||
|
BookmarkManager.INSTANCE.setElevationCurrentPositionChangedListener(null);
|
||||||
mViewModel.getMapObject().removeObserver(this);
|
mViewModel.getMapObject().removeObserver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy()
|
public void onDestroy()
|
||||||
{
|
{
|
||||||
BookmarkManager.INSTANCE.setElevationActivePointChangedListener(null);
|
|
||||||
BookmarkManager.INSTANCE.setElevationCurrentPositionChangedListener(null);
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,10 +80,11 @@ public class PlacePageTrackFragment extends Fragment
|
|||||||
// MapObject could be something else than a Track if the user already has the place page
|
// MapObject could be something else than a Track if the user already has the place page
|
||||||
// opened and clicks on a non-Track POI.
|
// opened and clicks on a non-Track POI.
|
||||||
// This callback would be called before the fragment had time to be destroyed
|
// 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;
|
Track track = (Track) mapObject;
|
||||||
if (track.isElevationInfoHasValue())
|
if (track.getElevationInfo() != null)
|
||||||
{
|
{
|
||||||
if (mTrack == null || mTrack.getTrackId() != track.getTrackId())
|
if (mTrack == null || mTrack.getTrackId() != track.getTrackId())
|
||||||
{
|
{
|
||||||
@@ -95,7 +96,6 @@ public class PlacePageTrackFragment extends Fragment
|
|||||||
UiUtils.hide(mElevationProfileView);
|
UiUtils.hide(mElevationProfileView);
|
||||||
mTrack = track;
|
mTrack = track;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onElevationActivePointChanged()
|
public void onElevationActivePointChanged()
|
||||||
@@ -104,7 +104,8 @@ public class PlacePageTrackFragment extends Fragment
|
|||||||
return;
|
return;
|
||||||
mElevationProfileViewRenderer.onChartElevationActivePointChanged();
|
mElevationProfileViewRenderer.onChartElevationActivePointChanged();
|
||||||
ElevationInfo.Point point = BookmarkManager.INSTANCE.getElevationActivePointCoordinates(mTrack.getTrackId());
|
ElevationInfo.Point point = BookmarkManager.INSTANCE.getElevationActivePointCoordinates(mTrack.getTrackId());
|
||||||
mViewModel.modifyMapObjectPointSilently(point);
|
mTrack.setLat(point.getLatitude());
|
||||||
|
mTrack.setLon(point.getLongitude());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<vector
|
<vector
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
android:height="24dp"
|
android:height="24dp"
|
||||||
android:viewportHeight="590.91"
|
android:viewportWidth="960"
|
||||||
android:viewportWidth="590.91"
|
android:viewportHeight="960">
|
||||||
android:width="24dp">
|
|
||||||
<path
|
<path
|
||||||
android:fillColor="#000000"
|
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: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:fillColor="#e3e3e3" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -971,5 +971,7 @@
|
|||||||
<string name="closed_now">Closed now</string>
|
<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" -->
|
<!-- 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="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>
|
</resources>
|
||||||
|
|||||||
@@ -102,11 +102,7 @@ jobject CreateTrack(JNIEnv * env, place_page::Info const & info, jni::TScopedLoc
|
|||||||
|
|
||||||
auto const trackId = info.GetTrackId();
|
auto const trackId = info.GetTrackId();
|
||||||
auto const track = frm()->GetBookmarkManager().GetTrack(trackId);
|
auto const track = frm()->GetBookmarkManager().GetTrack(trackId);
|
||||||
dp::Color nColor = track->GetColor(0);
|
jint androidColor = track->GetColor(0).GetARGB();
|
||||||
|
|
||||||
jint androidColor =
|
|
||||||
shift(nColor.GetAlpha(), 24) + shift(nColor.GetRed(), 16) + shift(nColor.GetGreen(), 8) + nColor.GetBlue();
|
|
||||||
|
|
||||||
auto const categoryId = track->GetGroupId();
|
auto const categoryId = track->GetGroupId();
|
||||||
ms::LatLon const ll = info.GetLatLon();
|
ms::LatLon const ll = info.GetLatLon();
|
||||||
jni::TScopedLocalRef jMwmName(env, jni::ToJavaString(env, info.GetID().GetMwmName()));
|
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,
|
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateTrackPlacePage(JNIEnv * env,
|
||||||
jobject,
|
jobject)
|
||||||
jlong trackId)
|
|
||||||
{
|
{
|
||||||
if (!frm()->HasPlacePageInfo())
|
if (!frm()->HasPlacePageInfo())
|
||||||
return;
|
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)
|
JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters, jdouble latitude, jdouble longitude)
|
||||||
{
|
{
|
||||||
auto & bm = frm()->GetBookmarkManager();
|
auto & bm = frm()->GetBookmarkManager();
|
||||||
bm.SetElevationActivePoint(static_cast<kml::TrackId>(trackId),
|
bm.SetElevationActivePoint(static_cast<kml::TrackId>(trackId), {latitude, longitude},
|
||||||
m2::PointD(static_cast<double>(latitude), static_cast<double>(longitude)),
|
|
||||||
static_cast<double>(distanceInMeters));
|
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 & track = frm()->GetBookmarkManager().GetTrack(track_id);
|
||||||
auto const & elevationInfo = track->GetElevationInfo();
|
auto const & elevationInfo = track->GetElevationInfo();
|
||||||
return usermark_helper::CreateElevationInfo(env, elevationInfo.value());
|
return track->GetElevationInfo().has_value() ? usermark_helper::CreateElevationInfo(env, elevationInfo.value())
|
||||||
}
|
: nullptr;
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackStatistics(
|
JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackStatistics(
|
||||||
JNIEnv * env, jclass clazz, jlong track_id)
|
JNIEnv * env, jclass clazz, jlong track_id)
|
||||||
{
|
{
|
||||||
static jmethodID const cId = jni::GetConstructorID(env, g_trackStatisticsClazz, "(DDDDII)V");
|
static jmethodID const cId = jni::GetConstructorID(env, g_trackStatisticsClazz, "(DDDDII)V");
|
||||||
auto const trackStats = frm()->GetBookmarkManager().GetTrack(track_id)->GetStatistics();
|
auto const trackStats = frm()->GetBookmarkManager().GetTrack(track_id)->GetStatistics();
|
||||||
return env->NewObject(g_trackStatisticsClazz, cId, static_cast<jdouble>(trackStats.m_length),
|
return env->NewObject(g_trackStatisticsClazz, cId, trackStats.m_length, trackStats.m_duration, trackStats.m_ascent,
|
||||||
static_cast<jdouble>(trackStats.m_duration), static_cast<jdouble>(trackStats.m_ascent),
|
trackStats.m_descent, trackStats.m_minElevation, static_cast<jint>(trackStats.m_maxElevation));
|
||||||
static_cast<jdouble>(trackStats.m_descent), static_cast<jint>(trackStats.m_minElevation),
|
|
||||||
static_cast<jint>(trackStats.m_maxElevation));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jobject JNICALL
|
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");
|
static jmethodID const pointCtorId = jni::GetConstructorID(env, pointClass, "(DIDD)V");
|
||||||
auto const & trackInfo = frm()->GetBookmarkManager().GetTrackSelectionInfo(track_id);
|
auto const & trackInfo = frm()->GetBookmarkManager().GetTrackSelectionInfo(track_id);
|
||||||
auto const latlon = mercator::ToLatLon(trackInfo.m_trackPoint);
|
auto const latlon = mercator::ToLatLon(trackInfo.m_trackPoint);
|
||||||
return env->NewObject(pointClass, pointCtorId, 0.0, 0, static_cast<jdouble>(latlon.m_lat),
|
return env->NewObject(pointClass, pointCtorId, 0.0, 0, latlon.m_lat, latlon.m_lon);
|
||||||
static_cast<jdouble>(latlon.m_lon));
|
|
||||||
}
|
}
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ bool Info::IsBookmark() const
|
|||||||
bool Info::ShouldShowAddPlace() const
|
bool Info::ShouldShowAddPlace() const
|
||||||
{
|
{
|
||||||
auto const isPointOrBuilding = IsPointType() || IsBuilding();
|
auto const isPointOrBuilding = IsPointType() || IsBuilding();
|
||||||
return !(IsFeature() && isPointOrBuilding);
|
return !IsTrack() && !(IsFeature() && isPointOrBuilding);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Info::SetFromFeatureType(FeatureType & ft)
|
void Info::SetFromFeatureType(FeatureType & ft)
|
||||||
|
|||||||
Reference in New Issue
Block a user