mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-02 18:15:26 +00:00
Accelerated basic page loading by caching the user language
This commit is contained in:
@@ -35,6 +35,9 @@ extern NSString *SOGoWeekStartFirst4DayWeek;
|
||||
extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
|
||||
@interface SOGoUserDefaults : SOGoDefaultsSource
|
||||
{
|
||||
NSString *userLanguage;
|
||||
}
|
||||
|
||||
+ (SOGoUserDefaults *) defaultsForUser: (NSString *) userId
|
||||
inDomain: (NSString *) domainId;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user