Skip to content

Commit f0266a5

Browse files
committed
Ensures default gravatar style
1 parent a57fb65 commit f0266a5

2 files changed

Lines changed: 21 additions & 13 deletions

File tree

src/avatars.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { EventEmitter, Uri } from 'vscode';
22
import { GravatarDefaultStyle } from './config';
3+
import { configuration } from './configuration';
34
import { ContextKeys } from './constants';
45
import { Container } from './container';
56
import { getContext } from './context';
@@ -186,19 +187,13 @@ function hasAvatarExpired(avatar: Avatar) {
186187
return Date.now() >= avatar.timestamp + retryDecay[Math.min(avatar.retries, retryDecay.length - 1)];
187188
}
188189

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+
);
195194
}
196195

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 {
202197
return getAvatarUriFromGravatar(md5(email.trim().toLowerCase(), 'hex'), size, defaultStyle);
203198
}
204199

@@ -307,3 +302,16 @@ export function resetAvatarCache(reset: 'all' | 'failed' | 'fallback') {
307302
break;
308303
}
309304
}
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+
}

src/container.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Autolinks } from './annotations/autolinks';
55
import { FileAnnotationController } from './annotations/fileAnnotationController';
66
import { LineAnnotationController } from './annotations/lineAnnotationController';
77
import { ActionRunners } from './api/actionRunners';
8-
import { resetAvatarCache } from './avatars';
8+
import { setDefaultGravatarsStyle } from './avatars';
99
import { GitCodeLensController } from './codelens/codeLensController';
1010
import type { ToggleFileAnnotationCommandArgs } from './commands';
1111
import type { FileAnnotationType, ModeConfig } from './configuration';
@@ -253,7 +253,7 @@ export class Container {
253253
}
254254

255255
if (configuration.changed(e, 'defaultGravatarsStyle')) {
256-
resetAvatarCache('fallback');
256+
setDefaultGravatarsStyle(configuration.get('defaultGravatarsStyle'));
257257
}
258258

259259
if (configuration.changed(e, 'mode')) {

0 commit comments

Comments
 (0)