diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index 6696ea445..5d06597aa 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -382,7 +382,10 @@ NSString *const kAboutSegue = @"Map2About"; [self updateStatusBarStyle]; GetFramework().SetRenderingEnabled(); GetFramework().InvalidateRendering(); - [self checkAuthorization]; + [self showViralAlertIfNeeded]; + if (Profile.needsReauthorization) { + [self checkAuthorization]; + } [MWMRouter updateRoute]; } @@ -542,6 +545,12 @@ NSString *const kAboutSegue = @"Map2About"; [[MWMBookmarksManager sharedManager] addObserver:self]; [[MWMBookmarksManager sharedManager] loadBookmarks]; [MWMFrameworkListener addObserver:self]; + + [NSNotificationCenter.defaultCenter addObserverForName:@"EditingFinishedNotififcation" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull notification) { + if (!Profile.isExisting || Profile.needsReauthorization) { + [self checkAuthorization]; + } + }]; } - (void)dealloc { @@ -631,13 +640,9 @@ NSString *const kAboutSegue = @"Map2About"; #pragma mark - Authorization - (void)checkAuthorization { - BOOL const isAfterEditing = Profile.needsReauthorization && !Profile.isExisting; - if (isAfterEditing) { - [Profile requestReauthorizationWithShouldReauthorize:NO]; - if (!Platform::IsConnected()) - return; - [self presentViewController:BridgeControllers.profileAsAlert animated:YES completion:nil]; - } + if (!Platform::IsConnected()) + return; + [self presentViewController:BridgeControllers.profileAsAlert animated:YES completion:nil]; } #pragma mark - 3d touch diff --git a/iphone/Maps/Model/Profile.swift b/iphone/Maps/Model/Profile.swift index c2e03fb44..7e4e5e3dc 100644 --- a/iphone/Maps/Model/Profile.swift +++ b/iphone/Maps/Model/Profile.swift @@ -123,13 +123,6 @@ import OSMEditor } - /// Request reauthorization of the OpenStreetMap profile - /// - Parameter shouldReauthorize: If the profile should be reauthorized - @objc static func requestReauthorization(shouldReauthorize: Bool = true) { - UserDefaults.standard.set(shouldReauthorize, forKey: userDefaultsNeedsReauthorization) - } - - /// Reload the OpenStreetMap profile data /// - Returns: Optional profile data static private func reloadUserPreferences() async -> osm.UserPreferences? { diff --git a/iphone/Maps/UI/Editor/MWMEditorViewController.mm b/iphone/Maps/UI/Editor/MWMEditorViewController.mm index e11d49df2..6468bb59d 100644 --- a/iphone/Maps/UI/Editor/MWMEditorViewController.mm +++ b/iphone/Maps/UI/Editor/MWMEditorViewController.mm @@ -243,7 +243,7 @@ void registerCellsForTableView(std::vector const & cells, UITab [self showNotesQueuedToast]; break; case osm::Editor::SaveResult::SavedSuccessfully: - [Profile requestReauthorizationWithShouldReauthorize:YES]; + [NSNotificationCenter.defaultCenter postNotificationName:@"EditingFinishedNotififcation" object:nil]; f.UpdatePlacePageInfoForCurrentSelection(); [self.navigationController popToRootViewControllerAnimated:YES]; break;