From b1e8f67ad1b608e8a5d1516e95eed91af6e5a170 Mon Sep 17 00:00:00 2001
From: Oliver Wiese <oliver.wiese@fu-berlin.de>
Date: Thu, 7 Jun 2018 15:57:35 +0200
Subject: [PATCH] add invitation mode to options

---
 enzevalos_iphone/DataHandler.swift            |  1 +
 enzevalos_iphone/Settings.bundle/Root.plist   | 36 +++++++++++++++++--
 enzevalos_iphone/StudySettings.swift          |  3 +-
 enzevalos_iphone/UserData.swift               | 12 +++++--
 enzevalos_iphone/en.lproj/Localizable.strings |  2 +-
 5 files changed, 47 insertions(+), 7 deletions(-)

diff --git a/enzevalos_iphone/DataHandler.swift b/enzevalos_iphone/DataHandler.swift
index 1578a225..469e732b 100644
--- a/enzevalos_iphone/DataHandler.swift
+++ b/enzevalos_iphone/DataHandler.swift
@@ -651,6 +651,7 @@ class DataHandler {
     func createMail(_ uid: UInt64, sender: MCOAddress?, receivers: [MCOAddress], cc: [MCOAddress], time: Date, received: Bool, subject: String, body: String?, flags: MCOMessageFlag, record: KeyRecord?, autocrypt: AutocryptContact?, decryptedData: CryptoObject?, folderPath: String, secretKey: String?, references: [String] = [], mailagent: String? = nil, messageID: String? = nil) -> PersistentMail? {
         let myfolder = findFolder(with: folderPath) as Folder
         let finding = findNum("PersistentMail", type: "uid", search: uid)
+        
         let mail: PersistentMail
         var mails: [PersistentMail] = []
 
diff --git a/enzevalos_iphone/Settings.bundle/Root.plist b/enzevalos_iphone/Settings.bundle/Root.plist
index 415db619..164908d3 100644
--- a/enzevalos_iphone/Settings.bundle/Root.plist
+++ b/enzevalos_iphone/Settings.bundle/Root.plist
@@ -2,8 +2,8 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-    <key>Title</key>
-    <string>Mail 2.0</string>
+	<key>Title</key>
+	<string>Mail 2.0</string>
 	<key>StringsTable</key>
 	<string>Root</string>
 	<key>PreferenceSpecifiers</key>
@@ -34,6 +34,38 @@
 			<key>DefaultValue</key>
 			<string>Verfasst mit Letterbox. Mehr Informationen: http://letterbox.imp.fu-berlin.de?invitation=0</string>
 		</dict>
+		<dict>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+			<key>Title</key>
+			<string>Invitation</string>
+			<key>Key</key>
+			<string>Invitation</string>
+		</dict>
+		<dict>
+			<key>Titles</key>
+			<array>
+				<string>Free text</string>
+				<string>Invitation mail</string>
+				<string>Censored mail</string>
+				<string>Encrypted mail</string>
+			</array>
+			<key>Key</key>
+			<string>Invitation.Mode</string>
+			<key>Type</key>
+			<string>PSMultiValueSpecifier</string>
+			<key>Title</key>
+			<string>Invitation mode</string>
+			<key>Values</key>
+			<array>
+				<integer>3</integer>
+				<integer>0</integer>
+				<integer>2</integer>
+				<integer>1</integer>
+			</array>
+			<key>DefaultValue</key>
+			<string>1</string>
+		</dict>
 		<dict>
 			<key>Type</key>
 			<string>PSGroupSpecifier</string>
diff --git a/enzevalos_iphone/StudySettings.swift b/enzevalos_iphone/StudySettings.swift
index 220214fa..01b74b82 100644
--- a/enzevalos_iphone/StudySettings.swift
+++ b/enzevalos_iphone/StudySettings.swift
@@ -60,7 +60,7 @@ class StudySettings {
     
     public static var invitationEnabled: Bool{
         get {
-            return true //invitationsmode == InvitationMode.Censorship || invitationsmode == InvitationMode.PasswordEnc
+            return true
         }
     }
     static var freeTextInvitationTitle: String {
@@ -101,6 +101,7 @@ class StudySettings {
     
     static var invitationsmode: InvitationMode{
         get{
+            return UserManager.loadInvitationMode()
             let value = UserDefaults.standard.integer(forKey: StudyParamter.Invitation.keyName)
             if let mode = InvitationMode.init(rawValue: value){
                 return mode
diff --git a/enzevalos_iphone/UserData.swift b/enzevalos_iphone/UserData.swift
index ba402de3..c596df8c 100644
--- a/enzevalos_iphone/UserData.swift
+++ b/enzevalos_iphone/UserData.swift
@@ -186,14 +186,20 @@ struct UserManager {
     }
 
     static func loadUserSignature() -> String {
-        let enabled = UserDefaults.standard.bool(forKey: "Signature.Switch")
-        let sig = UserDefaults.standard.string(forKey: "Signature.Text")
         if UserDefaults.standard.bool(forKey: "Signature.Switch"), let sig = UserDefaults.standard.string(forKey: "Signature.Text") {
-return "\n\n______________________________\n\n\(sig.trimmingCharacters(in: .whitespacesAndNewlines))\n\n"
+                return "\n\n______________________________\n\n\(sig.trimmingCharacters(in: .whitespacesAndNewlines))\n\n"
         }
 
         return ""
     }
+    
+    static func loadInvitationMode()-> InvitationMode{
+        let mode = UserDefaults.standard.integer(forKey: "Invitation.Mode")
+        if let invitationmode = InvitationMode(rawValue: mode){
+            return invitationmode
+        }
+        return InvitationMode.Censorship
+    }
 
     static func resetUserValues() {
         for a in Attribute.allAttributes {
diff --git a/enzevalos_iphone/en.lproj/Localizable.strings b/enzevalos_iphone/en.lproj/Localizable.strings
index e2849ac4..7bd73e1a 100644
--- a/enzevalos_iphone/en.lproj/Localizable.strings
+++ b/enzevalos_iphone/en.lproj/Localizable.strings
@@ -64,7 +64,7 @@
 "KeyNotFound" = "No Key Found. This is an error, contact the developers!";
 "Letter" = "Letter";
 "LetterDamaged" = "Damaged Letter";
-"LetterDescription" = "• A confidential mail\n• Written by the stated sender\n• Needs participation of sender and receiver. Therefor you can invite contacts in the app.";
+"LetterDescription" = "• A confidential mail\n• Written by the stated sender\n• Needs participation of sender and receiver. You can invite contacts in the app.";
 "mail from" = "mail from";
 "Message" = "Message";
 "MoreInformation" = "More Information";
-- 
GitLab