Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 13 additions & 17 deletions Sources/Controllers/Map/OAMapViewController.mm
Original file line number Diff line number Diff line change
Expand Up @@ -348,10 +348,6 @@ - (void) commonInit
withHandler:@selector(onAppModeChanged)
andObserve:[OsmAndApp instance].applicationModeChangedObservable];

_mapZoomObserver = [[OAAutoObserverProxy alloc] initWith:self
withHandler:@selector(onMapZoomChanged:withKey:andValue:)
andObserve:_zoomObservable];

// Subscribe to application notifications to correctly suspend and resume rendering
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidEnterBackground:)
Expand Down Expand Up @@ -543,6 +539,10 @@ - (void) frameAnimatorsUpdated

- (void) frameUpdated
{
@synchronized(_rendererSync)
{
[self updateMapLocaleLanguage];
}
}

- (void) frameRendered
Expand Down Expand Up @@ -2307,14 +2307,6 @@ - (void) resetViewAngle
_map3DModeElevationAngle = _mapView.elevationAngle;
}

- (void)onMapZoomChanged:(id)observable withKey:(id)key andValue:(id)value
{
@synchronized(_rendererSync)
{
[self updateMapLocaleLanguage];
}
}

- (BOOL)isBasemapZoom:(int)zoom
{
return zoom < kDetailedMapZoom;
Expand All @@ -2324,15 +2316,19 @@ - (void)updateMapLocaleLanguage
{
if (_mapPresentationEnvironment != nullptr)
{
OAAppSettings *settings = [OAAppSettings sharedManager];

OsmAnd::MapPresentationEnvironment::LanguagePreference langPreferences = [self getLanguagePreference:settings.settingMapLanguage.get zoom:_mapView.zoomLevel];
NSString *langId = [self isBasemapZoom:_mapView.zoomLevel] ? [OAUtilities currentLang] : [[OAAppSettings sharedManager].settingPrefMapLanguage get];
if (![langId isEqualToString:_mapPresentationEnvironment->getLocaleLanguageId().toNSString()])

BOOL languageIdUpdated = ![langId isEqualToString:_mapPresentationEnvironment->getLocaleLanguageId().toNSString()];
BOOL languagePreferenceUpdated = _mapPresentationEnvironment->getLanguagePreference() != langPreferences;

if (languageIdUpdated || languagePreferenceUpdated)
{
_mapPresentationEnvironment->setLocaleLanguageId(QString::fromNSString(langId));
_mapPresentationEnvironment->setLanguagePreference(langPreferences);
}

OAAppSettings *settings = [OAAppSettings sharedManager];
OsmAnd::MapPresentationEnvironment::LanguagePreference langPreferences = [self getLanguagePreference:settings.settingMapLanguage.get zoom:_mapView.zoomLevel];
_mapPresentationEnvironment->setLanguagePreference(langPreferences);
}
}

Expand Down