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

Merge branch '155-ui-for-gamifcation-stats' of...

Merge branch '155-ui-for-gamifcation-stats' of git.imp.fu-berlin.de:enzevalos/enzevalos_iphone into 155-ui-for-gamifcation-stats
PLEASE REVISIT
# Conflicts:
#	enzevalos_iphone/BadgeCaseView.swift
parents 01732c9d eb0870cc
No related branches found
No related tags found
2 merge requests!58Onboarding screens swift ui merge dev,!56Create badge case screen
...@@ -15,6 +15,14 @@ struct BadgeCaseView: View { ...@@ -15,6 +15,14 @@ struct BadgeCaseView: View {
let badges: [Badge] = GamificationData.sharedInstance.badges.map { Badge(type: $0.type, description: $0.displayName, imageOn: $0.onName, imageOff: $0.offName, isActive: $0.isAchieved()) } let badges: [Badge] = GamificationData.sharedInstance.badges.map { Badge(type: $0.type, description: $0.displayName, imageOn: $0.onName, imageOff: $0.offName, isActive: $0.isAchieved()) }
var userRecord: KeyRecord {
get {
let keyID = UserManager.loadUserValue(Attribute.prefSecretKeyID) as? String
let addr = UserManager.loadUserValue(Attribute.userAddr) as! String
return DataHandler.handler.getKeyRecord(addr: addr, keyID: keyID)
}
}
var body: some View { var body: some View {
NavigationView { NavigationView {
VStack { VStack {
...@@ -33,40 +41,54 @@ struct BadgeCaseView: View { ...@@ -33,40 +41,54 @@ struct BadgeCaseView: View {
)) ))
} }
} }
}
private func goBack() { private func goBack() {
if let win = AppDelegate.getAppDelegate().window { if let win = AppDelegate.getAppDelegate().window {
if let root = win.rootViewController { if let root = win.rootViewController {
print("Appdelegates current root: \(root.debugDescription)") print("Appdelegates current root: \(root.debugDescription)")
if let navi = root.navigationController { if let navi = root.navigationController {
navi.popViewController(animated: true) navi.popViewController(animated: true)
}
else if let root = root as? UINavigationController {
print("Root is a UINavigationController -> we can pop!")
root.popViewController(animated: true)
}
else {
if let coord = AppDelegate.getAppDelegate().inboxCoordinator {
print("Inbox coord root: \(coord.root.topViewController.debugDescription)")
coord.root.popViewController(animated: true)
} }
} else if let root = root as? UINavigationController {
print("Root is a UINavigationController -> we can pop!")
root.popViewController(animated: true)
}
else {
if let coord = AppDelegate.getAppDelegate().inboxCoordinator {
print("Inbox coord root: \(coord.root.topViewController.debugDescription)")
coord.root.popViewController(animated: true)
}
}
}
} }
} }
}
private var titleIcon: some View { private var titleIcon: some View {
HStack{ HStack{
Image("verschluesseltOn") Image("verschluesseltOn")
.resizable() .resizable()
.scaledToFit() .scaledToFit()
.frame(width: 40,height: 40) .frame(width: 40,height: 40)
.padding(10) .padding(10)
}
} }
private var backButton: some View {
VStack {
Button(action: goBack) {
Text("< My ID")
}
}
}
/*
func goBack() {
if let coord = AppDelegate.getAppDelegate().inboxCoordinator {
coord.pushInbox()
}
}
*/
} }
struct Badge: Identifiable { struct Badge: Identifiable {
var id = UUID() var id = UUID()
var type: BadgeType var type: BadgeType
......
...@@ -25,7 +25,7 @@ struct Inbox: View { ...@@ -25,7 +25,7 @@ struct Inbox: View {
var body: some View { var body: some View {
VStack{ VStack{
SearchView(searchText: $searchText, searchField: $searchField, searchNow: $searchNow) SearchView(searchText: $searchText, searchField: $searchField, searchNow: $searchNow)
.padding(6) .padding(6)
// Mails // Mails
mailList mailList
// Toolbar // Toolbar
...@@ -46,10 +46,10 @@ struct Inbox: View { ...@@ -46,10 +46,10 @@ struct Inbox: View {
List (self.keyrecords.filter(filterKeyRecord), id: \.self){ List (self.keyrecords.filter(filterKeyRecord), id: \.self){
record in record in
KeyRecordRow(keyrecord: record, coord: self.coord).environment(\.managedObjectContext, self.managedObjectContext) KeyRecordRow(keyrecord: record, coord: self.coord).environment(\.managedObjectContext, self.managedObjectContext)
} }
.resignKeyboardOnDragGesture() // hide keyboard when dragging .resignKeyboardOnDragGesture() // hide keyboard when dragging
} }
private var folderButton: some View { private var folderButton: some View {
Button(action: self.coord.pushFoldersView, label: { Button(action: self.coord.pushFoldersView, label: {
Text(NSLocalizedString("Folders", comment: "Folder")) Text(NSLocalizedString("Folders", comment: "Folder"))
...@@ -74,7 +74,7 @@ struct Inbox: View { ...@@ -74,7 +74,7 @@ struct Inbox: View {
var text = NSLocalizedString("Updating", comment: "updating...") var text = NSLocalizedString("Updating", comment: "updating...")
if !updating { if !updating {
if let last = Folder.inbox.lastUpdate { if let last = Folder.inbox.lastUpdate {
let dateFormatter = DateFormatter() let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.current dateFormatter.locale = Locale.current
dateFormatter.timeStyle = .medium dateFormatter.timeStyle = .medium
let dateString = dateFormatter.string(from: last) let dateString = dateFormatter.string(from: last)
...@@ -86,56 +86,56 @@ struct Inbox: View { ...@@ -86,56 +86,56 @@ struct Inbox: View {
} }
return Button(action: updateMails, label: {Text(text) return Button(action: updateMails, label: {Text(text)
.font(.callout) .font(.callout)
}) })
} }
var userRecord: KeyRecord { var userRecord: KeyRecord {
get { get {
let keyID = UserManager.loadUserValue(Attribute.prefSecretKeyID) as? String let keyID = UserManager.loadUserValue(Attribute.prefSecretKeyID) as? String
let addr = UserManager.loadUserValue(Attribute.userAddr) as! String let addr = UserManager.loadUserValue(Attribute.userAddr) as! String
return DataHandler.handler.getKeyRecord(addr: addr, keyID: keyID) return DataHandler.handler.getKeyRecord(addr: addr, keyID: keyID)
} }
} }
func updateMails() { func updateMails() {
guard !updating else { guard !updating else {
return return
} }
AppDelegate.getAppDelegate().mailHandler.updateFolder(folder: Folder.inbox, completionCallback: {_ in AppDelegate.getAppDelegate().mailHandler.updateFolder(folder: Folder.inbox, completionCallback: {_ in
self.updating = false self.updating = false
}) })
updating = true updating = true
} }
func filterKeyRecord(keyRecord: KeyRecord) -> Bool { func filterKeyRecord(keyRecord: KeyRecord) -> Bool {
let searchType = SearchType.findType(i: searchField) let searchType = SearchType.findType(i: searchField)
if self.searchText.isEmpty || self.searchText == NSLocalizedString("Searchbar.Title", comment: "Search") { if self.searchText.isEmpty || self.searchText == NSLocalizedString("Searchbar.Title", comment: "Search") {
return true return true
} }
let query = self.searchText.lowercased() let query = self.searchText.lowercased()
if (searchType == .All || searchType == .Sender) && containsSearchTerms(content: keyRecord.name, searchText: query){ if (searchType == .All || searchType == .Sender) && containsSearchTerms(content: keyRecord.name, searchText: query){
return true return true
} }
else if (searchType == .All || searchType == .Sender) && keyRecord.addresses.filter({containsSearchTerms(content: $0.mailAddress, searchText: query)}).count > 0 { else if (searchType == .All || searchType == .Sender) && keyRecord.addresses.filter({containsSearchTerms(content: $0.mailAddress, searchText: query)}).count > 0 {
return true return true
} }
else if (searchType == .All || searchType == .Subject) && keyRecord.mails.filter({containsSearchTerms(content: $0.subject, searchText: query)}).count > 0 { else if (searchType == .All || searchType == .Subject) && keyRecord.mails.filter({containsSearchTerms(content: $0.subject, searchText: query)}).count > 0 {
return true return true
} }
else if (searchType == .All || searchType == .Body) && keyRecord.mails.filter({containsSearchTerms(content: $0.body, searchText: query)}).count > 0 { else if (searchType == .All || searchType == .Body) && keyRecord.mails.filter({containsSearchTerms(content: $0.body, searchText: query)}).count > 0 {
return true return true
} }
return false return false
} }
} }
/* /*
struct Inbox_Previews: PreviewProvider { struct Inbox_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
Inbox() Inbox()
} }
} }
*/ */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment