diff --git a/src/components/CallView/shared/VideoBackground.vue b/src/components/CallView/shared/VideoBackground.vue index 161a4075b56..523e61da5ca 100644 --- a/src/components/CallView/shared/VideoBackground.vue +++ b/src/components/CallView/shared/VideoBackground.vue @@ -46,6 +46,22 @@ import axios from '@nextcloud/axios' import usernameToColor from '@nextcloud/vue/dist/Functions/usernameToColor' import { generateUrl } from '@nextcloud/router' import { ResizeObserver } from 'vue-resize' +import { getBuilder } from '@nextcloud/browser-storage' + +const browserStorage = getBuilder('nextcloud').persist().build() + +// note: this info is shared with the Avatar component +function getUserHasAvatar(userId) { + const flag = browserStorage.getItem('user-has-avatar.' + userId) + if (typeof flag === 'string') { + return Boolean(flag) + } + return null +} + +function setUserHasAvatar(userId, flag) { + browserStorage.setItem('user-has-avatar.' + userId, flag) +} export default { name: 'VideoBackground', @@ -96,10 +112,20 @@ export default { return } + // check if hasAvatar info is already known + const userHasAvatar = getUserHasAvatar(this.user) + if (typeof userHasAvatar === 'boolean') { + this.hasPicture = userHasAvatar + return + } + try { const response = await axios.get(generateUrl(`avatar/${this.user}/300`)) if (response.headers[`x-nc-iscustomavatar`] === '1') { this.hasPicture = true + setUserHasAvatar(this.user, true) + } else { + setUserHasAvatar(this.user, false) } } catch (exception) { console.debug(exception)