* fix(ui): fix up mobile recordings display * fix(ui): some messages * fix(ui): some messages * fix(player): fix msg generation for ios messages * feat(player): add generic mmanager interface for ios player impl * feat(player): mobile player and message manager; touch manager; videoplayer * feat(player): add iphone shells, add log panel, * feat(player): detect ios sessions and inject correct player * feat(player): move screen mapper to utils * feat(player): events panel for mobile, map shell sizes to device type data, * feat(player): added network tab to mobile player; unify network message (ios and web) * feat(player): resize canvas up to phone screen size, fix capitalize util * feat(player): some general changes to support mobile events and network entries * feat(player): remove swipes from timeline * feat(player): more stuff for list walker * fix(ui): performance tab, mobile project typings and form * fix(ui):some ui touches for ios replayer shell * fix(ui): more fixes for ui, new onboarding screen for mobile projects * feat(ui): mobile overview panel (xray) * feat(ui): fixes for phone shell and tap events * fix(tracker): change phone shells and sizes * fix(tracker): fix border on replay screen * feat(ui): use crashes from db to show in session * feat(ui): use event name for xray * feat(ui): some overall ui fixes * feat(ui): IOS -> iOS * feat(ui): change tags to ant d * fix(ui): fast fix * fix(ui): fix for capitalizer * fix(ui): fix for browser display * fix(ui): fix for note popup * fix(ui): change exceptions display * fix(ui): add click rage to ios xray * fix(ui): some icons and resizing * fix(ui): fix ios context menu overlay, fix console logs creation for ios * feat(ui): added icons * feat(ui): performance warnings * feat(ui): performance warnings * feat(ui): different styles * feat(ui): rm debug true * feat(ui): fix warnings display * feat(ui): some styles for animation * feat(ui): add some animations to warnings * feat(ui): move perf warnings to performance graph * feat(ui): hide/show warns dynamically * feat(ui): new mobile touch animation * fix(tracker): update msg for ios * fix(ui): taprage fixes * fix(ui): regenerate icons and messages * fix(ui): fix msgs * fix(backend): fix events gen * fix(backend): fix userid msg
66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import ListWalker from "Player/common/ListWalker";
|
|
import type { IosPerformanceEvent } from "Player/web/messages";
|
|
|
|
const performanceEvTypes = {
|
|
MemoryUsage: 'memoryUsage',
|
|
MainThreadCPU: 'mainThreadCPU',
|
|
Background: 'background',
|
|
}
|
|
|
|
export type PerformanceChartPoint = {
|
|
time: number,
|
|
cpu: number | null,
|
|
memory: number | null,
|
|
isBackground: boolean,
|
|
}
|
|
|
|
export default class IOSPerformanceTrackManager extends ListWalker<IosPerformanceEvent> {
|
|
private chart: Array<PerformanceChartPoint> = [];
|
|
private isInBg = false;
|
|
|
|
lastData: { cpu: number | null, memory: number | null } = { cpu: null, memory: null };
|
|
append(msg: IosPerformanceEvent): void {
|
|
if (!Object.values(performanceEvTypes).includes(msg.name)) {
|
|
return console.log('Unsupported performance event type', msg.name)
|
|
}
|
|
|
|
let cpu: number | null = null;
|
|
let memory: number | null = null;
|
|
if (msg.time < 0) msg.time = 1;
|
|
if (msg.name === performanceEvTypes.Background) {
|
|
// @ts-ignore
|
|
const isBackground = msg.value === 1;
|
|
if (isBackground === this.isInBg) return;
|
|
this.isInBg = isBackground;
|
|
this.chart.push({
|
|
time: msg.time,
|
|
cpu: null,
|
|
memory: null,
|
|
isBackground,
|
|
})
|
|
return super.append(msg);
|
|
}
|
|
if (msg.name === performanceEvTypes.MemoryUsage) {
|
|
memory = msg.value;
|
|
cpu = this.lastData.cpu;
|
|
this.lastData.memory = memory;
|
|
}
|
|
if (msg.name === performanceEvTypes.MainThreadCPU) {
|
|
cpu = msg.value;
|
|
memory = this.lastData.memory;
|
|
this.lastData.cpu = cpu;
|
|
}
|
|
|
|
this.chart.push({
|
|
time: msg.time,
|
|
cpu,
|
|
memory,
|
|
isBackground: false,
|
|
});
|
|
super.append(msg);
|
|
}
|
|
|
|
get chartData(): Array<PerformanceChartPoint> {
|
|
return this.chart;
|
|
}
|
|
}
|