Compare commits

..

1 Commits

Author SHA1 Message Date
Harry Bond
c7b32e240a [android] Always use newest position available in every mode
Signed-off-by: Harry Bond <me@hbond.xyz>

Signed-off-by: Harry Bond <me@hbond.xyz>
2025-07-22 23:57:51 +01:00
7 changed files with 2326 additions and 2340 deletions

View File

@@ -1 +1 @@
version: 2025.07.23-4-FDroid+25072304
version: 2025.03.02-7-FDroid+25030207

View File

@@ -34,10 +34,7 @@ import app.organicmaps.util.log.Logger;
public class LocationHelper implements BaseLocationProvider.Listener
{
private static final long INTERVAL_FOLLOW_MS = 0;
private static final long INTERVAL_NOT_FOLLOW_MS = 3000;
private static final long INTERVAL_NAVIGATION_MS = 1000;
private static final long INTERVAL_TRACK_RECORDING = 0;
private static final long INTERVAL_MS = 0;
private static final long AGPS_EXPIRATION_TIME_MS = 16 * 60 * 60 * 1000; // 16 hours
private static final long LOCATION_UPDATE_TIMEOUT_MS = 30 * 1000; // 30 seconds
@@ -318,18 +315,14 @@ public class LocationHelper implements BaseLocationProvider.Listener
private long calcLocationUpdatesInterval()
{
if (RoutingController.get().isNavigating())
return INTERVAL_NAVIGATION_MS;
if (TrackRecorder.nativeIsTrackRecordingEnabled())
return INTERVAL_TRACK_RECORDING;
final int mode = Map.isEngineCreated() ? LocationState.getMode() : LocationState.NOT_FOLLOW_NO_POSITION;
return switch (mode)
{
case LocationState.PENDING_POSITION, LocationState.FOLLOW, LocationState.FOLLOW_AND_ROTATE ->
INTERVAL_FOLLOW_MS;
case LocationState.NOT_FOLLOW, LocationState.NOT_FOLLOW_NO_POSITION -> INTERVAL_NOT_FOLLOW_MS;
case LocationState.PENDING_POSITION,
LocationState.FOLLOW,
LocationState.FOLLOW_AND_ROTATE,
LocationState.NOT_FOLLOW,
LocationState.NOT_FOLLOW_NO_POSITION -> INTERVAL_MS;
default -> throw new IllegalArgumentException("Unsupported location mode: " + mode);
};
}

View File

@@ -85,7 +85,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
case FMD_WEBSITE_MENU ->
mMapObject.getWebsiteUrl(false /* strip */, Metadata.MetadataType.FMD_WEBSITE_MENU);
case FMD_CONTACT_FACEBOOK, FMD_CONTACT_INSTAGRAM, FMD_CONTACT_TWITTER,
FMD_CONTACT_FEDIVERSE, FMD_CONTACT_BLUESKY, FMD_CONTACT_VK, FMD_CONTACT_LINE, FMD_PANORAMAX ->
FMD_CONTACT_FEDIVERSE, FMD_CONTACT_BLUESKY, FMD_CONTACT_VK, FMD_CONTACT_LINE ->
{
if (TextUtils.isEmpty(mMapObject.getMetadata(type)))
yield "";
@@ -171,7 +171,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
mPanoramax = mFrame.findViewById(R.id.ll__place_panoramax);
mTvPanoramax = mFrame.findViewById(R.id.tv__place_panoramax);
mPanoramax.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_PANORAMAX));
mPanoramax.setOnLongClickListener((v) -> copyUrl(mPanoramax, Metadata.MetadataType.FMD_PANORAMAX));
mTvPanoramax.setOnLongClickListener((v) -> copyUrl(mPanoramax, Metadata.MetadataType.FMD_PANORAMAX));
}
private void openUrl(Metadata.MetadataType type)
@@ -192,7 +192,6 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
final String title = switch (type){
case FMD_WEBSITE -> mMapObject.getWebsiteUrl(false /* strip */, Metadata.MetadataType.FMD_WEBSITE);
case FMD_WEBSITE_MENU -> mMapObject.getWebsiteUrl(false /* strip */, Metadata.MetadataType.FMD_WEBSITE_MENU);
case FMD_PANORAMAX -> null; // Don't add raw ID to list, as it's useless for users.
default -> mMapObject.getMetadata(type);
};
// Add user names for social media if available
@@ -238,8 +237,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
refreshMetadataOrHide(line, mLinePage, mTvLinePage);
final String panoramax = mMapObject.getMetadata(Metadata.MetadataType.FMD_PANORAMAX);
final String panoramaxTitle = TextUtils.isEmpty(panoramax) ? "" : getResources().getString(R.string.panoramax);
refreshMetadataOrHide(panoramaxTitle, mPanoramax, mTvPanoramax);
refreshMetadataOrHide(panoramax, mPanoramax, mTvPanoramax);
}
@Override

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,8 @@ When reporting a bug please provide as much information as possible: OS and appl
list of actions leading to a bug, a log file produced by the app.
When using CoMaps app on a device, use the built-in "Report a bug" option:
on Android it creates a new e-mail with a log file attached. Enabling logs in CoMaps settings on Android
on Android it creates a new e-mail with a log file attached. Your issue will be processed much
faster if you send it to <bugs@comaps.app>. Enabling logs in CoMaps settings on Android
before sending the bug report also helps us a lot with debugging.
### Translations

View File

@@ -26,7 +26,6 @@ constexpr string_view kVk{"contact:vk"};
constexpr string_view kLine{"contact:line"};
constexpr string_view kFediverse{"contact:mastodon"};
constexpr string_view kBluesky{"contact:bluesky"};
constexpr string_view kPanoramax{"panoramax"};
constexpr string_view kProfilePhp{"profile.php"};
@@ -609,7 +608,7 @@ bool ValidateBlueskyPage(string const & page)
bool isSocialContactTag(string_view tag)
{
return tag == kInstagram || tag == kFacebook || tag == kTwitter || tag == kVk || tag == kLine || tag == kFediverse || tag == kBluesky || tag == kPanoramax;
return tag == kInstagram || tag == kFacebook || tag == kTwitter || tag == kVk || tag == kLine || tag == kFediverse || tag == kBluesky;
}
bool isSocialContactTag(MapObject::MetadataID const metaID)
@@ -620,8 +619,7 @@ bool isSocialContactTag(MapObject::MetadataID const metaID)
metaID == MapObject::MetadataID::FMD_CONTACT_VK ||
metaID == MapObject::MetadataID::FMD_CONTACT_LINE ||
metaID == MapObject::MetadataID::FMD_CONTACT_FEDIVERSE ||
metaID == MapObject::MetadataID::FMD_CONTACT_BLUESKY ||
metaID == MapObject::MetadataID::FMD_PANORAMAX;
metaID == MapObject::MetadataID ::FMD_CONTACT_BLUESKY;
}
// Functions ValidateAndFormat_{facebook,instagram,twitter,vk}(...) by default strip domain name
@@ -649,8 +647,6 @@ string socialContactToURL(string_view tag, string_view value)
else // 'value' is an URL.
return string{kHttps}.append(value);
}
if (tag == kPanoramax)
return string{kUrlPanoramax}.append(value);
return string{value};
}

View File

@@ -1,11 +1,9 @@
#!/usr/bin/env bash
# Concatenates Android release notes in all languages into a single output format
# suitable to upload to Google Play to add or update existing notes.
# suitable to upload to Google Play to update existing notes.
# Original relnotes files:
GPLAY_NOTES=android/app/src/fdroid/play/listings/*/release-notes.txt
# also symlinked for Triple-T automation to android/app/src/google/play/release-notes/*/default.txt
GPLAY_NOTES=android/app/src/google/play/release-notes/*/default.txt
for x in $(ls $GPLAY_NOTES); do
l=$(basename $(dirname $x));