[ios] add Recover label to the PP (uncompleted)

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
Kiryl Kaveryn 2024-05-30 19:47:16 +04:00
parent 6bf89b246a
commit 9d61378f60
10 changed files with 43 additions and 30 deletions

View file

@ -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")));

View file

@ -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

View file

@ -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;

View file

@ -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 {

View file

@ -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()

View file

@ -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 {

View file

@ -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)

View file

@ -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];

View file

@ -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);

View file

@ -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();