diff --git a/ChangeLog b/ChangeLog index 1a65ad0c4..286d2b6e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,10 @@ * UI/MainUI/SOGoRootPage.m ([SOGoRootPage -connectAction]): must invalidate user's language ivar when it changes. + * SoObjects/SOGo/SOGoCache.m ([SOGoCache + -_userDefaultsHaveChanged:]): must invalidate the user's language + ivar when the defaults change. + * SoObjects/Appointments/SOGoCalendarComponent.m ([SOGoCalendarComponent -sendEMailUsingTemplateNamed:forObject:previousObject:toAttendees:]): diff --git a/SoObjects/SOGo/SOGoCache.m b/SoObjects/SOGo/SOGoCache.m index af3a7f305..932468722 100644 --- a/SoObjects/SOGo/SOGoCache.m +++ b/SoObjects/SOGo/SOGoCache.m @@ -416,10 +416,18 @@ static NSLock *lock; // - (void) _userDefaultsHaveChanged: (NSNotification *) theNotification { + SOGoUser *user; SOGoUserDefaults *defaults; NSString *uid; uid = [[theNotification userInfo] objectForKey: @"uid"]; + + // When the user defaults changed, we must invalidate the + // ivar language for the user object. + user = [self userNamed: uid]; + if (user) + [user invalidateLanguage]; + //NSLog(@"Updating user defaults for UID: %@", uid); defaults = (SOGoUserDefaults *)[self userDefaultsForLogin: uid]; if (defaults) diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index 5ee7088e4..217a5017b 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -93,6 +93,7 @@ extern NSString *SOGoWeekStartFirstFullWeek; - (NSUserDefaults *) userDefaults; - (NSUserDefaults *) userSettings; +- (void) invalidateLanguage; - (NSString *) language; - (NSTimeZone *) timeZone; - (NSTimeZone *) serverTimeZone;