forked from CIT/Vmeda.Online
		
	MOBILE-3320 user: Make preferences fail-safe
This commit is contained in:
		
							parent
							
								
									70d14de8ec
								
							
						
					
					
						commit
						c1e2acf98a
					
				@ -566,14 +566,14 @@ export class AddonCalendarProvider {
 | 
			
		||||
     */
 | 
			
		||||
    async getCalendarLookAhead(siteId?: string): Promise<number> {
 | 
			
		||||
        const site = await CoreSites.getSite(siteId);
 | 
			
		||||
        let value: string | undefined;
 | 
			
		||||
        let value: string | undefined | null;
 | 
			
		||||
        try {
 | 
			
		||||
            value = await CoreUser.getUserPreference('calendar_lookahead');
 | 
			
		||||
        } catch {
 | 
			
		||||
            // Ignore errors.
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (typeof value == 'undefined') {
 | 
			
		||||
        if (typeof value == 'undefined' || value === null) {
 | 
			
		||||
            value = site.getStoredConfig('calendar_lookahead');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -588,7 +588,7 @@ export class AddonCalendarProvider {
 | 
			
		||||
     */
 | 
			
		||||
    async getCalendarTimeFormat(siteId?: string): Promise<string> {
 | 
			
		||||
        const site = await CoreSites.getSite(siteId);
 | 
			
		||||
        let format: string | undefined;
 | 
			
		||||
        let format: string | undefined | null;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            format = await CoreUser.getUserPreference('calendar_timeformat');
 | 
			
		||||
 | 
			
		||||
@ -391,7 +391,7 @@ export class CoreUserProvider {
 | 
			
		||||
     * @param siteId Site Id. If not defined, use current site.
 | 
			
		||||
     * @return Preference value or null if preference not set.
 | 
			
		||||
     */
 | 
			
		||||
    async getUserPreference(name: string, siteId?: string): Promise<string> {
 | 
			
		||||
    async getUserPreference(name: string, siteId?: string): Promise<string | null> {
 | 
			
		||||
        siteId = siteId || CoreSites.getCurrentSiteId();
 | 
			
		||||
 | 
			
		||||
        const preference = await CoreUtils.ignoreErrors(CoreUserOffline.getPreference(name, siteId));
 | 
			
		||||
@ -403,20 +403,15 @@ export class CoreUserProvider {
 | 
			
		||||
 | 
			
		||||
        const wsValue = await this.getUserPreferenceOnline(name, siteId);
 | 
			
		||||
 | 
			
		||||
        if (!wsValue) {
 | 
			
		||||
            if (preference) {
 | 
			
		||||
                // Return the local value.
 | 
			
		||||
                return preference.value;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            throw new CoreError('Preference not found');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (preference && preference.value != preference.onlinevalue && preference.onlinevalue == wsValue) {
 | 
			
		||||
            // Sync is pending for this preference, return stored value.
 | 
			
		||||
            return preference.value;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!wsValue) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        await CoreUserOffline.setPreference(name, wsValue, wsValue);
 | 
			
		||||
 | 
			
		||||
        return wsValue;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user