mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-06 04:24:29 +00:00
[ios] Option to actually stop track recording without saving
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
This commit is contained in:
committed by
Yannik Bloscheck
parent
9adf012ae9
commit
6218552060
@@ -135,6 +135,16 @@ final class TrackRecordingManager: NSObject {
|
||||
completion?(.failure(error))
|
||||
}
|
||||
}
|
||||
|
||||
func stop(completion: ((StopTrackRecordingResult) -> Void)? = nil) {
|
||||
unsubscribeFromTrackRecordingProgressUpdates()
|
||||
trackRecorder.stopTrackRecording()
|
||||
trackRecordingInfo = .empty()
|
||||
activityManager?.stop()
|
||||
notifyObservers()
|
||||
|
||||
completion?(.trackIsEmpty)
|
||||
}
|
||||
|
||||
func stopAndSave(withName name: String = "", completion: ((StopTrackRecordingResult) -> Void)? = nil) {
|
||||
unsubscribeFromTrackRecordingProgressUpdates()
|
||||
|
||||
@@ -103,6 +103,7 @@ final class ActionBarViewController: UIViewController {
|
||||
}
|
||||
buttons.append(.track)
|
||||
case .trackRecording:
|
||||
buttons.append(.notSaveTrackRecording)
|
||||
buttons.append(.saveTrackRecording)
|
||||
@unknown default:
|
||||
fatalError()
|
||||
|
||||
@@ -292,6 +292,10 @@ extension PlacePageInteractor: ActionBarViewControllerDelegate {
|
||||
self?.presenter?.closeAnimated()
|
||||
}
|
||||
}
|
||||
case .notSaveTrackRecording:
|
||||
TrackRecordingManager.shared.stop() { [weak self] result in
|
||||
self?.presenter?.closeAnimated()
|
||||
}
|
||||
@unknown default:
|
||||
fatalError()
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ typedef NS_ENUM(NSInteger, MWMActionBarButtonType) {
|
||||
MWMActionBarButtonTypeBookmark,
|
||||
MWMActionBarButtonTypeTrack,
|
||||
MWMActionBarButtonTypeSaveTrackRecording,
|
||||
MWMActionBarButtonTypeNotSaveTrackRecording,
|
||||
MWMActionBarButtonTypeCall,
|
||||
MWMActionBarButtonTypeDownload,
|
||||
MWMActionBarButtonTypeMore,
|
||||
|
||||
@@ -21,6 +21,8 @@ NSString *titleForButton(MWMActionBarButtonType type, BOOL isSelected) {
|
||||
return L(isSelected ? @"delete" : @"save");
|
||||
case MWMActionBarButtonTypeSaveTrackRecording:
|
||||
return L(@"save");
|
||||
case MWMActionBarButtonTypeNotSaveTrackRecording:
|
||||
return L(@"delete");
|
||||
case MWMActionBarButtonTypeRouteFrom:
|
||||
return L(@"p2p_from_here");
|
||||
case MWMActionBarButtonTypeRouteTo:
|
||||
@@ -114,6 +116,10 @@ NSString *titleForButton(MWMActionBarButtonType type, BOOL isSelected) {
|
||||
case MWMActionBarButtonTypeSaveTrackRecording:
|
||||
[self.button setImage:[UIImage imageNamed:@"ic_placepage_save_track_recording"] forState:UIControlStateNormal];
|
||||
break;
|
||||
case MWMActionBarButtonTypeNotSaveTrackRecording:
|
||||
[self.button setImage:[UIImage systemImageNamed:@"trash.fill" withConfiguration:[UIImageSymbolConfiguration configurationWithPointSize:22 weight:UIImageSymbolWeightSemibold]] forState:UIControlStateNormal];
|
||||
self.button.coloring = MWMButtonColoringRed;
|
||||
break;
|
||||
case MWMActionBarButtonTypeRouteFrom:
|
||||
[self.button setImage:[UIImage imageNamed:@"ic_route_from"] forState:UIControlStateNormal];
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user