Accelerated basic page loading by caching the user language

pull/7/head
Wolfgang Sourdeau 2012-10-25 21:46:23 -04:00
parent 1080bee3ba
commit cf0e0691f6
2 changed files with 37 additions and 13 deletions

View File

@ -35,6 +35,9 @@ extern NSString *SOGoWeekStartFirst4DayWeek;
extern NSString *SOGoWeekStartFirstFullWeek;
@interface SOGoUserDefaults : SOGoDefaultsSource
{
NSString *userLanguage;
}
+ (SOGoUserDefaults *) defaultsForUser: (NSString *) userId
inDomain: (NSString *) domainId;

View File

@ -22,6 +22,7 @@
#import <Foundation/NSArray.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSSet.h>
#import <Foundation/NSString.h>
#import <Foundation/NSTimeZone.h>
@ -91,6 +92,22 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
return ud;
}
- (id) init
{
if ((self = [super init]))
{
userLanguage = nil;
}
return self;
}
- (void) dealloc
{
[userLanguage release];
[super dealloc];
}
- (BOOL) _migrateLastModule
{
BOOL rc;
@ -355,21 +372,25 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
- (NSString *) language
{
NSString *language;
NSArray *supportedLanguages;
/* see SOGoDomainDefaults for the meaning of this */
language = [source objectForKey: @"SOGoLanguage"];
if (!(language && [language isKindOfClass: [NSString class]]))
language = [(SOGoDomainDefaults *) parentSource language];
/* make sure the language is part of the supported languages */
supportedLanguages = [[SOGoSystemDefaults sharedSystemDefaults]
supportedLanguages];
if (![supportedLanguages containsObject: language])
language = [parentSource stringForKey: @"SOGoLanguage"];
return language;
if (!userLanguage)
{
/* see SOGoDomainDefaults for the meaning of this */
userLanguage = [source objectForKey: @"SOGoLanguage"];
if (!(userLanguage && [userLanguage isKindOfClass: [NSString class]]))
userLanguage = [(SOGoDomainDefaults *) parentSource language];
supportedLanguages = [[SOGoSystemDefaults sharedSystemDefaults]
supportedLanguages];
/* make sure the language is part of the supported languages */
if (![supportedLanguages containsObject: userLanguage])
userLanguage = [parentSource stringForKey: @"SOGoLanguage"];
[userLanguage retain];
}
return userLanguage;
}
- (void) setMailShowSubscribedFoldersOnly: (BOOL) newValue