|
1 | 1 | import { EventEmitter, Uri } from 'vscode'; |
2 | 2 | import { GravatarDefaultStyle } from './config'; |
| 3 | +import { configuration } from './configuration'; |
3 | 4 | import { ContextKeys } from './constants'; |
4 | 5 | import { Container } from './container'; |
5 | 6 | import { getContext } from './context'; |
@@ -186,19 +187,13 @@ function hasAvatarExpired(avatar: Avatar) { |
186 | 187 | return Date.now() >= avatar.timestamp + retryDecay[Math.min(avatar.retries, retryDecay.length - 1)]; |
187 | 188 | } |
188 | 189 |
|
189 | | -function getAvatarUriFromGravatar( |
190 | | - hash: string, |
191 | | - size: number, |
192 | | - defaultStyle: GravatarDefaultStyle = GravatarDefaultStyle.Robot, |
193 | | -): Uri { |
194 | | - return Uri.parse(`https://www.gravatar.com/avatar/${hash}?s=${size}&d=${defaultStyle}`); |
| 190 | +function getAvatarUriFromGravatar(hash: string, size: number, defaultStyle?: GravatarDefaultStyle): Uri { |
| 191 | + return Uri.parse( |
| 192 | + `https://www.gravatar.com/avatar/${hash}?s=${size}&d=${defaultStyle ?? getDefaultGravatarStyle()}`, |
| 193 | + ); |
195 | 194 | } |
196 | 195 |
|
197 | | -export function getAvatarUriFromGravatarEmail( |
198 | | - email: string, |
199 | | - size: number, |
200 | | - defaultStyle: GravatarDefaultStyle = GravatarDefaultStyle.Robot, |
201 | | -): Uri { |
| 196 | +export function getAvatarUriFromGravatarEmail(email: string, size: number, defaultStyle?: GravatarDefaultStyle): Uri { |
202 | 197 | return getAvatarUriFromGravatar(md5(email.trim().toLowerCase(), 'hex'), size, defaultStyle); |
203 | 198 | } |
204 | 199 |
|
@@ -307,3 +302,16 @@ export function resetAvatarCache(reset: 'all' | 'failed' | 'fallback') { |
307 | 302 | break; |
308 | 303 | } |
309 | 304 | } |
| 305 | + |
| 306 | +let defaultGravatarsStyle: GravatarDefaultStyle | undefined = undefined; |
| 307 | +function getDefaultGravatarStyle() { |
| 308 | + if (defaultGravatarsStyle == null) { |
| 309 | + defaultGravatarsStyle = configuration.get('defaultGravatarsStyle', undefined, GravatarDefaultStyle.Robot); |
| 310 | + } |
| 311 | + return defaultGravatarsStyle; |
| 312 | +} |
| 313 | + |
| 314 | +export function setDefaultGravatarsStyle(style: GravatarDefaultStyle) { |
| 315 | + defaultGravatarsStyle = style; |
| 316 | + resetAvatarCache('fallback'); |
| 317 | +} |
0 commit comments