Merge pull request #1188 from omnivore-app/fix/recently-read-nav-pop

Fix: View Article from Audio Player
This commit is contained in:
Satindar Dhillon 2022-09-13 14:47:45 -07:00 committed by GitHub
commit 31c13cb00e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 11 deletions

View file

@ -348,15 +348,20 @@ public struct MiniPlayer: View {
public var body: some View {
ZStack(alignment: .center) {
presentingView
VStack {
Spacer(minLength: 0)
if let itemAudioProperties = self.audioController.itemAudioProperties, isPresented {
playerContent(itemAudioProperties)
.offset(y: offset)
.frame(maxHeight: expanded ? .infinity : 88)
.tint(.appGrayTextContrast)
.gesture(DragGesture().onEnded(onDragEnded(value:)).onChanged(onDragChanged(value:)))
.background(expanded ? .clear : .systemBackground)
if let itemAudioProperties = self.audioController.itemAudioProperties, isPresented {
ZStack(alignment: .bottom) {
Color.systemBackground.edgesIgnoringSafeArea(.bottom)
.frame(height: 88, alignment: .bottom)
VStack {
Spacer(minLength: 0)
playerContent(itemAudioProperties)
.offset(y: offset)
.frame(maxHeight: expanded ? .infinity : 88)
.tint(.appGrayTextContrast)
.gesture(DragGesture().onEnded(onDragEnded(value:)).onChanged(onDragChanged(value:)))
.background(expanded ? .clear : .systemBackground)
}
}
}
}

View file

@ -36,8 +36,26 @@ import Views
)
func handleReaderItemNotification(objectID: NSManagedObjectID, dataService: DataService) {
selectedItem = dataService.viewContext.object(with: objectID) as? LinkedItem
linkIsActive = true
// Pop the current selected item if needed
if selectedItem != nil, selectedItem?.objectID != objectID {
// Temporarily disable animation to avoid excessive animations
UIView.setAnimationsEnabled(false)
linkIsActive = false
selectedItem = nil
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {
self.selectedItem = dataService.viewContext.object(with: objectID) as? LinkedItem
self.linkIsActive = true
}
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) {
UIView.setAnimationsEnabled(true)
}
} else {
selectedItem = dataService.viewContext.object(with: objectID) as? LinkedItem
linkIsActive = true
}
}
var cursor: String?