From c30f881798a94e5be24d996a47de8e82c8ff181b Mon Sep 17 00:00:00 2001 From: zyphlar Date: Sat, 25 Oct 2025 18:16:05 -0700 Subject: [PATCH] only track during nav Signed-off-by: zyphlar --- .../java/app/organicmaps/MwmActivity.java | 42 ++++--------------- .../maplayer/MapButtonsController.java | 3 +- .../util/bottomsheet/MenuAdapter.java | 10 ----- 3 files changed, 10 insertions(+), 45 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/MwmActivity.java b/android/app/src/main/java/app/organicmaps/MwmActivity.java index 2a69e7a22..42dac3d57 100644 --- a/android/app/src/main/java/app/organicmaps/MwmActivity.java +++ b/android/app/src/main/java/app/organicmaps/MwmActivity.java @@ -423,15 +423,6 @@ public class MwmActivity extends BaseMwmFragmentActivity private void shareMyLocation() { - // Check if location sharing is already active - if (app.organicmaps.location.LocationSharingManager.getInstance().isSharing()) - { - // Stop sharing - app.organicmaps.location.LocationSharingManager.getInstance().stopSharing(); - mMapButtonsViewModel.setLocationSharingState(false); - return; - } - final Location loc = MwmApplication.from(this).getLocationHelper().getSavedLocation(); if (loc == null) { @@ -445,26 +436,7 @@ public class MwmActivity extends BaseMwmFragmentActivity return; } - // Show dialog with two options: share current coordinates or start live sharing - new MaterialAlertDialogBuilder(this) - .setTitle(R.string.share_my_location) - .setItems(new CharSequence[] { - getString(R.string.share_location_coordinates), - getString(R.string.share_location_live) - }, (dialog, which) -> { - if (which == 0) - { - // Share current coordinates - SharingUtils.shareLocation(this, loc); - } - else - { - // Start live location sharing - app.organicmaps.location.LocationSharingDialog.show(getSupportFragmentManager()); - } - }) - .setNegativeButton(R.string.cancel, null) - .show(); + SharingUtils.shareLocation(this, loc); } public void onLocationSharingStateChanged(boolean isSharing) @@ -1721,6 +1693,13 @@ public class MwmActivity extends BaseMwmFragmentActivity mMapButtonsViewModel.setLayoutMode(MapButtonsController.LayoutMode.regular); refreshLightStatusBar(); Utils.keepScreenOn(Config.isKeepScreenOnEnabled(), getWindow()); + + // Stop location sharing when navigation ends + if (app.organicmaps.location.LocationSharingManager.getInstance().isSharing()) + { + app.organicmaps.location.LocationSharingManager.getInstance().stopSharing(); + onLocationSharingStateChanged(false); + } } @Override @@ -2556,10 +2535,7 @@ public class MwmActivity extends BaseMwmFragmentActivity items.add(new MenuBottomSheetItem(R.string.start_track_recording, R.drawable.ic_track_recording_off, -1, this::onTrackRecordingOptionSelected)); - final boolean isLocationSharingActive = app.organicmaps.location.LocationSharingManager.getInstance().isSharing(); - final int locationSharingTitleRes = isLocationSharingActive ? R.string.stop_sharing_my_location : R.string.share_my_location; - final int locationSharingBadge = isLocationSharingActive ? -1 : 0; - items.add(new MenuBottomSheetItem(locationSharingTitleRes, R.drawable.ic_share, locationSharingBadge, + items.add(new MenuBottomSheetItem(R.string.share_my_location, R.drawable.ic_share, this::onShareLocationOptionSelected)); if (!BUTTON_HELP_CODE.equals(activeLeftButton)) diff --git a/android/app/src/main/java/app/organicmaps/maplayer/MapButtonsController.java b/android/app/src/main/java/app/organicmaps/maplayer/MapButtonsController.java index a9a354038..86111fba4 100644 --- a/android/app/src/main/java/app/organicmaps/maplayer/MapButtonsController.java +++ b/android/app/src/main/java/app/organicmaps/maplayer/MapButtonsController.java @@ -323,8 +323,7 @@ public class MapButtonsController extends Fragment BadgeUtils.attachBadgeDrawable(mBadgeDrawable, menuButton); final boolean isTrackRecording = TrackRecorder.nativeIsTrackRecordingEnabled(); - final boolean isLocationSharing = app.organicmaps.location.LocationSharingManager.getInstance().isSharing(); - updateMenuBadge(isTrackRecording || isLocationSharing); + updateMenuBadge(isTrackRecording); } public void updateLayerButton() diff --git a/android/app/src/main/java/app/organicmaps/util/bottomsheet/MenuAdapter.java b/android/app/src/main/java/app/organicmaps/util/bottomsheet/MenuAdapter.java index 4bc37e7cb..e14523bf7 100644 --- a/android/app/src/main/java/app/organicmaps/util/bottomsheet/MenuAdapter.java +++ b/android/app/src/main/java/app/organicmaps/util/bottomsheet/MenuAdapter.java @@ -66,16 +66,6 @@ public class MenuAdapter extends RecyclerView.Adapter iv.setImageTintMode(null); viewHolder.getTitleTextView().setText(R.string.stop_track_recording); } - - if (item.iconRes == R.drawable.ic_share && app.organicmaps.location.LocationSharingManager.getInstance().isSharing()) - { - // Set icon tint to orange - iv.setImageTintList(android.content.res.ColorStateList.valueOf( - androidx.core.content.ContextCompat.getColor(viewHolder.itemView.getContext(), R.color.active_location_sharing))); - // Show badge - badge.setBackgroundResource(R.drawable.location_sharing_badge); - badge.setVisibility(View.VISIBLE); - } } @Override