forked from organicmaps/organicmaps
[ios] add Recover label to the PP (uncompleted)
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
parent
6bf89b246a
commit
9d61378f60
10 changed files with 43 additions and 30 deletions
|
@ -145,6 +145,7 @@ NS_SWIFT_NAME(BookmarksManager)
|
|||
|
||||
- (void)recoverBookmark:(MWMMarkID)bookmarkId;
|
||||
- (void)recoverTrack:(MWMTrackID)trackId;
|
||||
- (BOOL)hasRecentlyDeletedBookmark:(MWMMarkID)bookmarkId;
|
||||
|
||||
- (instancetype)init __attribute__((unavailable("call +manager instead")));
|
||||
- (instancetype)copy __attribute__((unavailable("call +manager instead")));
|
||||
|
|
|
@ -753,6 +753,12 @@ static KmlFileType convertFileTypeToCore(MWMKmlFileType fileType) {
|
|||
[self notifyObserversOnCategoryUpdated:track->GetGroupId()];
|
||||
}
|
||||
|
||||
- (BOOL)hasRecentlyDeletedBookmark:(MWMMarkID)bookmarkId {
|
||||
auto const bookmark = self.bm.GetBookmark(bookmarkId);
|
||||
ASSERT(bookmark, ());
|
||||
return self.bm.GetRecentlyDeletedBookmarkByPoint(bookmark->GetData().m_point);
|
||||
}
|
||||
|
||||
- (void)updateTrack:(MWMTrackID)trackId
|
||||
setGroupId:(MWMMarkGroupID)groupId
|
||||
color:(UIColor *)color
|
||||
|
|
|
@ -37,6 +37,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@property(nonatomic, readonly) BOOL isMyPosition;
|
||||
@property(nonatomic, readonly) BOOL isPreviewPlus;
|
||||
@property(nonatomic, readonly) BOOL isRoutePoint;
|
||||
@property(nonatomic, readonly) BOOL hasRecentlyDeletedBookmark;
|
||||
@property(nonatomic, readonly) CLLocationCoordinate2D locationCoordinate;
|
||||
@property(nonatomic, copy, nullable) MWMVoidBlock onBookmarkStatusUpdate;
|
||||
@property(nonatomic, copy, nullable) MWMVoidBlock onMapNodeStatusUpdate;
|
||||
|
|
|
@ -97,6 +97,10 @@ static PlacePageRoadType convertRoadType(RoadWarningMarkType roadType) {
|
|||
return GetFramework().HasPlacePageInfo();
|
||||
}
|
||||
|
||||
- (BOOL)hasRecentlyDeletedBookmark {
|
||||
return [MWMBookmarksManager.sharedManager hasRecentlyDeletedBookmark:_bookmarkData.bookmarkId];
|
||||
}
|
||||
|
||||
#pragma mark - Private
|
||||
|
||||
- (void)updateBookmarkStatus {
|
||||
|
|
|
@ -64,13 +64,6 @@ class ActionBarViewController: UIViewController {
|
|||
configureButtons()
|
||||
}
|
||||
|
||||
func setBookmarkSelected(_ isSelected: Bool) {
|
||||
guard let bookmarkButton = stackView.arrangedSubviews.first(where: { ($0 as? ActionBarButton)?.type == .bookmark }) as? ActionBarButton else {
|
||||
return
|
||||
}
|
||||
bookmarkButton.setBookmarkSelected(isSelected)
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
|
|
|
@ -155,6 +155,8 @@ NSString *titleForButton(MWMActionBarButtonType type, BOOL isSelected) {
|
|||
}
|
||||
|
||||
- (IBAction)tap {
|
||||
if (self.type == MWMActionBarButtonTypeBookmark)
|
||||
[self setBookmarkSelected:!self.button.isSelected];
|
||||
if (self.type == MWMActionBarButtonTypeRouteTo)
|
||||
[self disableRouteToButtonHighlight];
|
||||
|
||||
|
@ -165,11 +167,14 @@ NSString *titleForButton(MWMActionBarButtonType type, BOOL isSelected) {
|
|||
if (self.type != MWMActionBarButtonTypeBookmark)
|
||||
return;
|
||||
|
||||
if (!self.button.isSelected && isSelected)
|
||||
[self.button.imageView startAnimating];
|
||||
|
||||
if (isSelected) {
|
||||
self.label.text = L(@"delete");
|
||||
if (!self.button.isSelected)
|
||||
[self.button.imageView startAnimating];
|
||||
} else {
|
||||
self.label.text = L(self.button.isSelected ? @"Recover" : @"save");
|
||||
}
|
||||
self.button.selected = isSelected;
|
||||
self.label.text = L(isSelected ? @"delete" : @"save");
|
||||
}
|
||||
|
||||
- (void)setupBookmarkButton:(BOOL)isSelected {
|
||||
|
|
|
@ -187,7 +187,7 @@ extension PlacePageCommonLayout {
|
|||
bookmarkViewController.bookmarkData = bookmarkData
|
||||
isBookmark = true
|
||||
}
|
||||
actionBarViewController.setBookmarkSelected(isBookmark)
|
||||
// actionBarViewController.setBookmarkSelected(isBookmark)
|
||||
if let title = placePageData.previewData.title, let headerViewController = headerViewControllers.compactMap({ $0 as? PlacePageHeaderViewController }).first {
|
||||
let secondaryTitle = placePageData.previewData.secondaryTitle
|
||||
headerViewController.setTitle(title, secondaryTitle: secondaryTitle)
|
||||
|
|
|
@ -191,22 +191,22 @@ using namespace storage;
|
|||
NSString * bookmarkTitle = data.previewData.title;
|
||||
|
||||
[MWMBookmarksManager.sharedManager deleteBookmark:bookmarkData.bookmarkId];
|
||||
|
||||
[[MWMToast undoToastWithDeletedObject:bookmarkTitle undoAction:^{
|
||||
[MWMBookmarksManager.sharedManager recoverBookmark:bookmarkData.bookmarkId];
|
||||
|
||||
// Skip updating PP if it's closed.
|
||||
if (![self isPPShown])
|
||||
return;
|
||||
|
||||
auto & f = GetFramework();
|
||||
auto & info = f.GetCurrentPlacePageInfo();
|
||||
auto buildInfo = info.GetBuildInfo();
|
||||
buildInfo.m_match = place_page::BuildInfo::Match::Everything;
|
||||
buildInfo.m_userMarkId = bookmarkData.bookmarkId;
|
||||
f.UpdatePlacePageInfoForCurrentSelection(buildInfo);
|
||||
[data updateBookmarkStatus];
|
||||
}] show];
|
||||
//
|
||||
// [[MWMToast undoToastWithDeletedObject:bookmarkTitle undoAction:^{
|
||||
// [MWMBookmarksManager.sharedManager recoverBookmark:bookmarkData.bookmarkId];
|
||||
//
|
||||
// // Skip updating PP if it's closed.
|
||||
// if (![self isPPShown])
|
||||
// return;
|
||||
//
|
||||
// auto & f = GetFramework();
|
||||
// auto & info = f.GetCurrentPlacePageInfo();
|
||||
// auto buildInfo = info.GetBuildInfo();
|
||||
// buildInfo.m_match = place_page::BuildInfo::Match::Everything;
|
||||
// buildInfo.m_userMarkId = bookmarkData.bookmarkId;
|
||||
// f.UpdatePlacePageInfoForCurrentSelection(buildInfo);
|
||||
// [data updateBookmarkStatus];
|
||||
// }] show];
|
||||
|
||||
[MWMFrameworkHelper updateAfterDeleteBookmark];
|
||||
[data updateBookmarkStatus];
|
||||
|
|
|
@ -291,6 +291,8 @@ public:
|
|||
kml::MarkGroupId LastEditedBMCategory();
|
||||
kml::PredefinedColor LastEditedBMColor() const;
|
||||
|
||||
Bookmark * GetRecentlyDeletedBookmarkByPoint(const m2::PointD point);
|
||||
|
||||
void SetLastEditedBmCategory(kml::MarkGroupId groupId);
|
||||
void SetLastEditedBmColor(kml::PredefinedColor color);
|
||||
|
||||
|
@ -565,7 +567,6 @@ private:
|
|||
|
||||
void AddBookmarkToRecentlyDeleted(std::unique_ptr<Bookmark> && bookmark);
|
||||
void RemoveBookmarkFromRecentlyDeleted(const Bookmark & bookmark);
|
||||
Bookmark * GetRecentlyDeletedBookmarkByPoint(const m2::PointD point);
|
||||
Bookmark * RecoverRecentlyDeletedBookmark(kml::MarkId bookmarkId);
|
||||
|
||||
Track * CreateTrack(kml::TrackData && trackData);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "map/place_page_info.hpp"
|
||||
|
||||
#include "map/framework.hpp"
|
||||
#include "map/bookmark_helpers.hpp"
|
||||
|
||||
#include "indexer/feature_utils.hpp"
|
||||
|
@ -222,6 +222,8 @@ std::string Info::GetBookmarkName()
|
|||
return bookmarkName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Info::SetTitlesForBookmark()
|
||||
{
|
||||
m_uiTitle = GetBookmarkName();
|
||||
|
|
Loading…
Add table
Reference in a new issue