[android][ios] Extract superfluous calls to MyPositionController::NextMode

Signed-off-by: Leonardo Bishop <me@leonardobishop.net>
This commit is contained in:
Leonardo Bishop
2026-01-10 14:24:45 +00:00
committed by Konstantin Pastbin
parent f9485d44f5
commit f5d2aa503d
7 changed files with 24 additions and 14 deletions

View File

@@ -1044,11 +1044,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (isFullscreen())
setFullscreen(false);
if (LocationState.getMode() == LocationState.NOT_FOLLOW_NO_POSITION)
{
// Calls onMyPositionModeChanged(PENDING_POSITION).
LocationState.nativeSwitchToNextMode();
}
// Calls onMyPositionModeChanged(PENDING_POSITION).
LocationState.nativeStartPendingPositionMode();
MapObject startPoint = MwmApplication.from(this).getLocationHelper().getMyPosition();
RoutingController.get().prepare(startPoint, endPoint);
@@ -2016,8 +2013,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
final boolean hasFineLocationPermission = LocationUtils.checkFineLocationPermission(this);
if (LocationState.getMode() == LocationState.NOT_FOLLOW_NO_POSITION)
LocationState.nativeSwitchToNextMode();
LocationState.nativeStartPendingPositionMode();
if (requestedForRecording && hasFineLocationPermission)
startTrackRecording();
@@ -2140,11 +2136,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
Logger.i(LOCATION_TAG, "Location resolution has been granted, restarting location");
if (LocationState.getMode() == LocationState.NOT_FOLLOW_NO_POSITION)
{
// Calls onMyPositionModeChanged(PENDING_POSITION).
LocationState.nativeSwitchToNextMode();
}
// Calls onMyPositionModeChanged(PENDING_POSITION).
LocationState.nativeStartPendingPositionMode();
}
/**

View File

@@ -696,6 +696,12 @@ void Framework::SwitchMyPositionNextMode()
m_work.SwitchMyPositionNextMode();
}
void Framework::StartPendingPositionMode()
{
ASSERT(IsDrapeEngineCreated(), ());
m_work.StartPendingPositionMode();
}
void Framework::SetupWidget(gui::EWidget widget, float x, float y, dp::Anchor anchor)
{
m_guiPositions[widget] = gui::Position(m2::PointF(x, y), anchor);

View File

@@ -169,6 +169,7 @@ public:
void SetMyPositionModeListener(location::TMyPositionModeChanged const & fn);
location::EMyPositionMode GetMyPositionMode() const;
void SwitchMyPositionNextMode();
void StartPendingPositionMode();
void SetTrafficStateListener(TrafficManager::TrafficStateChangedFn const & fn);
void SetTransitSchemeListener(TransitReadManager::TransitStateChangedFn const & fn);

View File

@@ -31,6 +31,14 @@ JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_location_LocationState_nativeGet
return g_framework->GetMyPositionMode();
}
// public static void nativeStartFindingPosition();
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_location_LocationState_nativeStartPendingPositionMode(JNIEnv * env,
jclass clazz)
{
ASSERT(g_framework, ());
g_framework->StartPendingPositionMode();
}
// public static void nativeSetListener(ModeChangeListener listener);
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_location_LocationState_nativeSetListener(JNIEnv * env, jclass clazz,
jobject listener)

View File

@@ -42,6 +42,7 @@ public final class LocationState
public static native void nativeSwitchToNextMode();
@Value
private static native int nativeGetMode();
public static native void nativeStartPendingPositionMode();
public static native void nativeSetListener(@NonNull ModeChangeListener listener);
public static native void nativeRemoveListener();

View File

@@ -15,7 +15,7 @@
+ (void)processFirstLaunch:(BOOL)hasLocation {
auto &f = GetFramework();
if (!hasLocation)
f.SwitchMyPositionNextMode();
f.StartPendingPositionMode();
else
f.RunFirstLaunchAnimation();
}

View File

@@ -195,7 +195,7 @@ static NSString *const kDefaultAlertNibName = @"MWMDefaultAlert";
+ (instancetype)disabledLocationAlert {
MWMVoidBlock action = ^{
GetFramework().SwitchMyPositionNextMode();
GetFramework().StartPendingPositionMode();
};
return [self defaultAlertWithTitle:L(@"dialog_routing_location_turn_on")
message:L(@"dialog_routing_location_unknown_turn_on")