[iOS] fix update of "edit bookmark" button in PP on add/remove bookmark

https://jira.mail.ru/browse/MAPSME-13004
This commit is contained in:
Aleksey Belousov 2020-03-12 20:22:34 +03:00 committed by Alexander Boriskov
parent db865a66ff
commit 2906535c55
4 changed files with 34 additions and 0 deletions

View file

@ -69,6 +69,7 @@ NS_ASSUME_NONNULL_BEGIN
@property(nonatomic, readonly, nullable) NSString *sponsoredMoreURL;
@property(nonatomic, readonly, nullable) NSString *sponsoredReviewURL;
@property(nonatomic, readonly, nullable) NSString *sponsoredDeeplink;
@property(nonatomic, copy, nullable) MWMVoidBlock onBookmarkStatusUpdate;
- (instancetype)initWithLocalizationProvider:(id<IOpeningHoursLocalization>)localization;
- (instancetype)init NS_UNAVAILABLE;
@ -76,6 +77,7 @@ NS_ASSUME_NONNULL_BEGIN
- (void)loadOnlineDataWithCompletion:(MWMVoidBlock)completion;
- (void)loadUgcWithCompletion:(MWMVoidBlock)completion;
- (void)loadCatalogPromoWithCompletion:(MWMVoidBlock)completion;
- (void)updateBookmarkStatus;
@end

View file

@ -241,4 +241,18 @@ static PlacePageTaxiProvider convertTaxiProvider(taxi::Provider::Type providerTy
});
}
- (void)updateBookmarkStatus {
if (!GetFramework().HasPlacePageInfo()) {
return;
}
if (rawData().IsBookmark()) {
_bookmarkData = [[PlacePageBookmarkData alloc] initWithRawData:rawData()];
} else {
_bookmarkData = nil;
}
if (self.onBookmarkStatusUpdate != nil) {
self.onBookmarkStatusUpdate();
}
}
@end

View file

@ -193,6 +193,9 @@ class PlacePageCommonLayout: NSObject, IPlacePageLayout {
}
placePageData.loadOnlineData(completion: onLoadOnlineData)
placePageData.onBookmarkStatusUpdate = { [weak self] in
self?.updateBookmarkSection()
}
MWMLocationManager.add(observer: self)
if let lastLocation = MWMLocationManager.lastLocation() {
@ -294,6 +297,19 @@ extension PlacePageCommonLayout {
previewViewController.updateBanner(banner)
presenter?.updatePreviewOffset()
}
func updateBookmarkSection() {
var hidden = false
if let bookmarkData = placePageData.bookmarkData {
bookmarkViewController.bookmarkData = bookmarkData
} else {
hidden = true
}
UIView.animate(withDuration: kDefaultAnimationDuration) { [unowned self] in
self.bookmarkViewController.view.isHidden = hidden
self.presenter?.layoutIfNeeded()
}
}
}
// MARK: - MWMLocationObserver

View file

@ -264,6 +264,7 @@ void RegisterEventIfPossible(eye::MapObject::Event::Type const type)
buildInfo.m_match = place_page::BuildInfo::Match::Everything;
buildInfo.m_userMarkId = bookmark->GetId();
f.UpdatePlacePageInfoForCurrentSelection(buildInfo);
[data updateBookmarkStatus];
}
- (void)removeBookmark:(PlacePageData *)data
@ -278,6 +279,7 @@ void RegisterEventIfPossible(eye::MapObject::Event::Type const type)
buildInfo.m_match = place_page::BuildInfo::Match::FeatureOnly;
buildInfo.m_userMarkId = kml::kInvalidMarkId;
f.UpdatePlacePageInfoForCurrentSelection(buildInfo);
[data updateBookmarkStatus];
}
- (void)call:(PlacePageData *)data {