MOBILE-3320 user: Make preferences fail-safe
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…
Reference in New Issue