option to stop animated avatar, fix #335
This commit is contained in:
parent
450a0088d5
commit
2def5725f5
@ -214,6 +214,12 @@
|
|||||||
(change)="onEnableAltLabelChanged()" type="checkbox" name="enableAltLabel"
|
(change)="onEnableAltLabelChanged()" type="checkbox" name="enableAltLabel"
|
||||||
value="enableAltLabel" id="enableAltLabel">
|
value="enableAltLabel" id="enableAltLabel">
|
||||||
<label class="noselect sub-section__label" for="enableAltLabel">enable alt label</label>
|
<label class="noselect sub-section__label" for="enableAltLabel">enable alt label</label>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<input class="sub-section__checkbox" [(ngModel)]="enableFreezeAvatarEnabled"
|
||||||
|
(change)="onEnableFreezeAvatarChanged()" type="checkbox" name="enableFreezeAvatar"
|
||||||
|
value="enableFreezeAvatar" id="enableFreezeAvatar">
|
||||||
|
<label class="noselect sub-section__label" for="enableFreezeAvatar">freeze animated avatar</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4 class="panel__subtitle">About</h4>
|
<h4 class="panel__subtitle">About</h4>
|
||||||
|
@ -31,6 +31,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
|
|||||||
disableSoundsEnabled: boolean;
|
disableSoundsEnabled: boolean;
|
||||||
disableLangAutodetectEnabled: boolean;
|
disableLangAutodetectEnabled: boolean;
|
||||||
enableAltLabelEnabled: boolean;
|
enableAltLabelEnabled: boolean;
|
||||||
|
enableFreezeAvatarEnabled: boolean;
|
||||||
version: string;
|
version: string;
|
||||||
|
|
||||||
hasPleromaAccount: boolean;
|
hasPleromaAccount: boolean;
|
||||||
@ -150,6 +151,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
|
|||||||
this.configuredLangs = this.languageService.getConfiguredLanguages();
|
this.configuredLangs = this.languageService.getConfiguredLanguages();
|
||||||
this.disableLangAutodetectEnabled = settings.disableLangAutodetec;
|
this.disableLangAutodetectEnabled = settings.disableLangAutodetec;
|
||||||
this.enableAltLabelEnabled = settings.enableAltLabel;
|
this.enableAltLabelEnabled = settings.enableAltLabel;
|
||||||
|
this.enableFreezeAvatarEnabled = settings.enableFreezeAvatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
@ -277,6 +279,12 @@ export class SettingsComponent implements OnInit, OnDestroy {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onEnableFreezeAvatarChanged(){
|
||||||
|
this.notifyRestartNeeded();
|
||||||
|
let settings = this.settingsService.getSettings();
|
||||||
|
settings.enableFreezeAvatar = this.enableFreezeAvatarEnabled;
|
||||||
|
this.settingsService.saveSettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
onEnableAltLabelChanged(){
|
onEnableAltLabelChanged(){
|
||||||
this.notifyRestartNeeded();
|
this.notifyRestartNeeded();
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="reblog" *ngIf="reblog">
|
<div class="reblog" *ngIf="reblog">
|
||||||
<a class="reblog__profile-link" href title="{{ status.account.acct }}"
|
<a class="reblog__profile-link" href title="{{ status.account.acct }}"
|
||||||
(click)="openAccount(status.account)"
|
(click)="openAccount(status.account)"
|
||||||
(auxclick)="openUrl(status.account.url)"><span innerHTML="{{ status.account | accountEmoji }}"></span> <img *ngIf="reblog" class="reblog__avatar" src="{{ status.account.avatar | ensureHttps }}" /></a> boosted
|
(auxclick)="openUrl(status.account.url)"><span innerHTML="{{ status.account | accountEmoji }}"></span> <img *ngIf="reblog" class="reblog__avatar" src="{{ getAvatar(status.account) | ensureHttps }}" /></a> boosted
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="statusWrapper.status.pinned && !notificationType" class="pinned">
|
<div *ngIf="statusWrapper.status.pinned && !notificationType" class="pinned">
|
||||||
<div class="notification--icon">
|
<div class="notification--icon">
|
||||||
@ -60,9 +60,9 @@
|
|||||||
<div [ngClass]="{'notification--status': notificationAccount }">
|
<div [ngClass]="{'notification--status': notificationAccount }">
|
||||||
<a href class="status__profile-link" title="{{displayedStatus.account.acct}}"
|
<a href class="status__profile-link" title="{{displayedStatus.account.acct}}"
|
||||||
(click)="openAccount(displayedStatus.account)" (auxclick)="openUrl(displayedStatus.account.url)">
|
(click)="openAccount(displayedStatus.account)" (auxclick)="openUrl(displayedStatus.account.url)">
|
||||||
<img [class.status__avatar--boosted]="reblog || notificationAccount" class="status__avatar" src="{{ displayedStatus.account.avatar | ensureHttps }}" />
|
<img [class.status__avatar--boosted]="reblog || notificationAccount" class="status__avatar" src="{{ getAvatar(displayedStatus.account) | ensureHttps }}" />
|
||||||
<!-- <img *ngIf="reblog" class="status__avatar--reblog" src="{{ status.account.avatar }}" /> -->
|
<!-- <img *ngIf="reblog" class="status__avatar--reblog" src="{{ status.account.avatar }}" /> -->
|
||||||
<img *ngIf="notificationAccount" class="notification--avatar" src="{{ notificationAccount.avatar | ensureHttps }}" />
|
<img *ngIf="notificationAccount" class="notification--avatar" src="{{ getAvatar(notificationAccount) | ensureHttps }}" />
|
||||||
<span class="status__name">
|
<span class="status__name">
|
||||||
<span class="status__name--displayname"
|
<span class="status__name--displayname"
|
||||||
innerHTML="{{displayedStatus.account | accountEmoji}}"></span><span
|
innerHTML="{{displayedStatus.account | accountEmoji}}"></span><span
|
||||||
|
@ -10,6 +10,7 @@ import { EmojiConverter, EmojiTypeEnum } from '../../../tools/emoji.tools';
|
|||||||
import { ContentWarningPolicyEnum } from '../../../states/settings.state';
|
import { ContentWarningPolicyEnum } from '../../../states/settings.state';
|
||||||
import { StatusesStateService, StatusState } from "../../../services/statuses-state.service";
|
import { StatusesStateService, StatusState } from "../../../services/statuses-state.service";
|
||||||
import { DatabindedTextComponent } from "./databinded-text/databinded-text.component";
|
import { DatabindedTextComponent } from "./databinded-text/databinded-text.component";
|
||||||
|
import { SettingsService } from "../../../services/settings.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "app-status",
|
selector: "app-status",
|
||||||
@ -44,6 +45,8 @@ export class StatusComponent implements OnInit {
|
|||||||
isSelected: boolean;
|
isSelected: boolean;
|
||||||
isRemote: boolean;
|
isRemote: boolean;
|
||||||
|
|
||||||
|
private freezeAvatarEnabled: boolean;
|
||||||
|
|
||||||
hideStatus: boolean = false;
|
hideStatus: boolean = false;
|
||||||
|
|
||||||
@Output() browseAccountEvent = new EventEmitter<string>();
|
@Output() browseAccountEvent = new EventEmitter<string>();
|
||||||
@ -103,6 +106,7 @@ export class StatusComponent implements OnInit {
|
|||||||
constructor(
|
constructor(
|
||||||
public elem: ElementRef,
|
public elem: ElementRef,
|
||||||
private readonly toolsService: ToolsService,
|
private readonly toolsService: ToolsService,
|
||||||
|
private readonly settingsService: SettingsService,
|
||||||
private readonly statusesStateService: StatusesStateService) { }
|
private readonly statusesStateService: StatusesStateService) { }
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@ -111,12 +115,22 @@ export class StatusComponent implements OnInit {
|
|||||||
this.statusWrapper = notification.editedStatus;
|
this.statusWrapper = notification.editedStatus;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.freezeAvatarEnabled = this.settingsService.getSettings().enableFreezeAvatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
if (this.statusesStateServiceSub) this.statusesStateServiceSub.unsubscribe();
|
if (this.statusesStateServiceSub) this.statusesStateServiceSub.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAvatar(acc: Account): string {
|
||||||
|
if(this.freezeAvatarEnabled){
|
||||||
|
return acc.avatar_static;
|
||||||
|
} else {
|
||||||
|
return acc.avatar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ensureMentionAreDisplayed(data: string): string {
|
private ensureMentionAreDisplayed(data: string): string {
|
||||||
const mentions = this.displayedStatus.mentions;
|
const mentions = this.displayedStatus.mentions;
|
||||||
if (!mentions || mentions.length === 0) return data;
|
if (!mentions || mentions.length === 0) return data;
|
||||||
|
@ -87,6 +87,7 @@ export class GlobalSettings {
|
|||||||
disableLangAutodetec: boolean;
|
disableLangAutodetec: boolean;
|
||||||
|
|
||||||
enableAltLabel: boolean;
|
enableAltLabel: boolean;
|
||||||
|
enableFreezeAvatar: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ILanguage {
|
export interface ILanguage {
|
||||||
@ -186,6 +187,7 @@ export class SettingsState {
|
|||||||
newSettings.selectedLanguage = oldSettings.selectedLanguage;
|
newSettings.selectedLanguage = oldSettings.selectedLanguage;
|
||||||
newSettings.disableLangAutodetec = oldSettings.disableLangAutodetec;
|
newSettings.disableLangAutodetec = oldSettings.disableLangAutodetec;
|
||||||
newSettings.enableAltLabel = oldSettings.enableAltLabel;
|
newSettings.enableAltLabel = oldSettings.enableAltLabel;
|
||||||
|
newSettings.enableFreezeAvatar = oldSettings.enableFreezeAvatar;
|
||||||
|
|
||||||
return newSettings;
|
return newSettings;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user