Skip to content
Snippets Groups Projects
Commit 4f4acb49 authored by Oliver Wiese's avatar Oliver Wiese
Browse files

fix new mails bug: No update in inbox view

parent 2c777910
Branches
Tags
2 merge requests!58Onboarding screens swift ui merge dev,!55WIP: Resolve "UI for gamifcation & stats"
......@@ -23,7 +23,7 @@ import CoreData
extension PersistentMail {
@nonobjc open override class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult> {
@nonobjc public class func fetchRequest() -> NSFetchRequest<PersistentMail> {
return NSFetchRequest(entityName: "PersistentMail");
}
......
......@@ -45,7 +45,7 @@ struct Inbox: View {
private var mailList: some View {
List (self.keyrecords.filter(filterKeyRecord), id: \.self){
record in
KeyRecordRow(keyrecord: record, coord: self.coord)
KeyRecordRow(keyrecord: record, coord: self.coord).environment(\.managedObjectContext, self.managedObjectContext)
}
.resignKeyboardOnDragGesture() // hide keyboard when dragging
}
......
......@@ -40,7 +40,7 @@ class InboxCoordinator {
}
else {
let context = DataHandler.handler.managedObjectContext
let vc = UIHostingController(rootView: Inbox(coord: self).environment(\.managedObjectContext,context))
let vc = UIHostingController(rootView: Inbox(coord: self).environment(\.managedObjectContext, context))
inbox = vc
root.pushViewController(vc, animated: true)
}
......
......@@ -9,9 +9,27 @@
import SwiftUI
struct KeyRecordRow: View {
@ObservedObject var keyrecord: KeyRecord
@Environment(\.managedObjectContext) var managedObjectContext
var keyrecord: KeyRecord
let coord: InboxCoordinator
var fetchRequest: FetchRequest<PersistentMail>
var mails: FetchedResults<PersistentMail> {
fetchRequest.wrappedValue
}
init(keyrecord: KeyRecord, coord: InboxCoordinator) {
self.keyrecord = keyrecord
self.coord = coord
let pred = NSPredicate(format: "record == %@", keyrecord)
let folderPredicate = NSPredicate(format: "folder == %@", Folder.inbox)
let predicates = NSCompoundPredicate(andPredicateWithSubpredicates: [pred, folderPredicate])
let sortDescriptors = [NSSortDescriptor(key: "date", ascending: false)]
fetchRequest = FetchRequest<PersistentMail>(entity: PersistentMail.entity(), sortDescriptors: sortDescriptors, predicate: predicates, animation: nil)
}
var body: some View {
VStack {
HStack(alignment: .lastTextBaseline) {
......@@ -28,6 +46,13 @@ struct KeyRecordRow: View {
}
}
var secondMail: PersistentMail?{
if mails.count > 1 {
return mails[2]
}
return nil
}
/*
Displays the first (and second) mail
*/
......@@ -35,11 +60,11 @@ struct KeyRecordRow: View {
let spacing = CGFloat(10)
let offset = -(spacing / 2)
if let first = self.keyrecord.firstMail {
if let second = self.keyrecord.secondMail {
if let first = mails.first {
if mails.count > 1 {
return AnyView(VStack(alignment: .leading, spacing: spacing) {
MailView(mail: first, coord: coord)
MailView(mail: second, coord: coord)
MailView(mail: mails[1], coord: coord)
.background(Stroke(offsetY: offset))
})
} else {
......@@ -85,6 +110,7 @@ struct KeyRecordRow: View {
extension KeyRecord {
public var firstMail: PersistentMail? {
get {
return mails.first
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment