fix(mail): use default signature when forcing default identity

pull/299/head
Francis Lachapelle 2021-05-25 14:17:12 -04:00
parent d4a0b25c06
commit dc81f70928
3 changed files with 21 additions and 17 deletions

View File

@ -30,7 +30,7 @@
SOGoMailObject *sourceMail; SOGoMailObject *sourceMail;
NSString *field; NSString *field;
NSString *currentValue; NSString *currentValue;
BOOL htmlComposition; BOOL htmlComposition, forceDefaultIdentity;
NSString *signaturePlacement; NSString *signaturePlacement;
} }

View File

@ -42,8 +42,8 @@
if ((self = [super init])) if ((self = [super init]))
{ {
ud = [[context activeUser] userDefaults]; ud = [[context activeUser] userDefaults];
htmlComposition htmlComposition = [[ud mailComposeMessageType] isEqualToString: @"html"];
= [[ud mailComposeMessageType] isEqualToString: @"html"]; forceDefaultIdentity = [ud mailForceDefaultIdentity];
sourceMail = nil; sourceMail = nil;
currentValue = nil; currentValue = nil;
} }
@ -243,23 +243,27 @@
NSString *email, *signature, *mailSignature, *nl, *space; NSString *email, *signature, *mailSignature, *nl, *space;
int count, max; int count, max;
fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
if (fromSentMailbox)
addresses = [sourceMail fromEnvelopeAddresses];
else
addresses = [sourceMail toEnvelopeAddresses];
identity = nil; identity = nil;
mailSignature = @""; mailSignature = @"";
max = [addresses count];
if (max) if (!forceDefaultIdentity)
{ {
// Pick the first email matching one of the account's identities fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
for (count = 0; !identity && count < max; count++) if (fromSentMailbox)
addresses = [sourceMail fromEnvelopeAddresses];
else
addresses = [sourceMail toEnvelopeAddresses];
max = [addresses count];
if (max)
{ {
address = [addresses objectAtIndex: count]; // Pick the first email matching one of the account's identities
email = [address baseEMail]; for (count = 0; !identity && count < max; count++)
identity = [[sourceMail mailAccountFolder] identityForEmail: email]; {
address = [addresses objectAtIndex: count];
email = [address baseEMail];
identity = [[sourceMail mailAccountFolder] identityForEmail: email];
}
} }
} }

View File

@ -1309,8 +1309,8 @@ static NSArray *reminderValues = nil;
[target setObject: identities forKey: @"SOGoMailIdentities"]; [target setObject: identities forKey: @"SOGoMailIdentities"];
if ([[account objectForKey: @"forceDefaultIdentity"] boolValue]) if ([[account objectForKey: @"forceDefaultIdentity"] boolValue])
[target setObject: [NSNumber numberWithBool: YES] forKey: @"SOGoMailForceDefaultIdentity"]; [target setObject: [NSNumber numberWithBool: YES] forKey: @"SOGoMailForceDefaultIdentity"];
else if ([target objectForKey: @"SOGoMailforceDefaultIdentity"]) else if ([target objectForKey: @"SOGoMailForceDefaultIdentity"])
[target removeObjectForKey: @"SOGoMailforceDefaultIdentity"]; [target removeObjectForKey: @"SOGoMailForceDefaultIdentity"];
[self _extractMainReceiptsPreferences: [account objectForKey: @"receipts"] inDictionary: target]; [self _extractMainReceiptsPreferences: [account objectForKey: @"receipts"] inDictionary: target];
[self _extractMainSecurityPreferences: [account objectForKey: @"security"] inDictionary: target]; [self _extractMainSecurityPreferences: [account objectForKey: @"security"] inDictionary: target];
} }