forked from organicmaps/organicmaps
[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:
parent
db865a66ff
commit
2906535c55
4 changed files with 34 additions and 0 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue