Skip to content

Commit 50d35c1

Browse files
Merge pull request #604 from Instabug/feat/screen-render-local-store
update logic in the sample app
2 parents 37de671 + 04b5972 commit 50d35c1

File tree

3 files changed

+30
-29
lines changed

3 files changed

+30
-29
lines changed

example/lib/src/screens/screen_render_page.dart

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
part of '../../main.dart';
22

3-
class ScreenRenderPage extends StatelessWidget {
3+
class ScreenRenderPage extends StatefulWidget {
44
const ScreenRenderPage({Key? key}) : super(key: key);
55
static const String screenName = "/screenRenderPageRoute";
66

7+
@override
8+
State<ScreenRenderPage> createState() => _ScreenRenderPageState();
9+
}
10+
11+
class _ScreenRenderPageState extends State<ScreenRenderPage> {
712
@override
813
Widget build(BuildContext context) {
914
return Page(title: 'Screen Render', children: [
@@ -16,11 +21,11 @@ class ScreenRenderPage extends StatelessWidget {
1621
SizedBox.fromSize(size: const Size.fromHeight(16.0)),
1722
InstabugButton(
1823
text: 'Trigger Slow Frame',
19-
onPressed: () => _simulateHeavyComputationForSlowFrames(),
24+
onPressed: () => _simulateHeavyComputation(200),
2025
),
2126
InstabugButton(
2227
text: 'Trigger Frozen Frame',
23-
onPressed: () => _simulateHeavyComputationForFrozenFrames(),
28+
onPressed: () => _simulateHeavyComputation(1000),
2429
),
2530
InstabugButton(
2631
text: 'Monitored Complex Page',
@@ -42,19 +47,14 @@ class ScreenRenderPage extends StatelessWidget {
4247
}
4348

4449
// Simulates a computationally expensive task
45-
void _simulateHeavyComputationForSlowFrames() {
46-
Random random = Random();
47-
for (int i = 0; i < 1000000; i++) {
48-
random.nextInt(100) * random.nextInt(100);
49-
}
50-
}
51-
52-
_simulateHeavyComputationForFrozenFrames() {
53-
final startTime = DateTime.now();
54-
const pauseTime = 1000;
55-
// Block the UI thread for ~1000ms
56-
while (DateTime.now().difference(startTime).inMilliseconds <= pauseTime) {
57-
// Busy waiting
58-
}
50+
_simulateHeavyComputation(int delayInMilliseconds) {
51+
setState(() {
52+
final startTime = DateTime.now();
53+
final pauseTime = delayInMilliseconds;
54+
// Block the UI thread for ~delayInMilliseconds
55+
while (DateTime.now().difference(startTime).inMilliseconds <= pauseTime) {
56+
// Busy waiting
57+
}
58+
});
5959
}
6060
}

lib/src/utils/screen_rendering/instabug_screen_render_manager.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class InstabugScreenRenderManager {
250250
/// Initialize the static variables
251251
Future<void> _initStaticValues() async {
252252
_timingsCallback = (timings) {
253-
// 1. Establish the offset on the first available timing.
253+
// Establish the offset on the first available timing.
254254
_epochOffset ??= _getEpochOffset(timings.first);
255255

256256
for (final frameTiming in timings) {
@@ -384,6 +384,7 @@ class InstabugScreenRenderManager {
384384
);
385385
}
386386

387+
/// @nodoc
387388
int _getMicrosecondsSinceEpoch(int timeInMicroseconds) =>
388389
timeInMicroseconds + (_epochOffset ?? 0);
389390

test/utils/screen_render/instabug_screen_render_manager_test.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ void main() {
260260
});
261261

262262
test('should not save data if no custom UI trace is started', () {
263-
final frameTestdata = InstabugScreenRenderData(
263+
final frameTestData = InstabugScreenRenderData(
264264
traceId: 123,
265265
frameData: [
266266
InstabugFrameData(10000, 200),
@@ -270,18 +270,18 @@ void main() {
270270
slowFramesTotalDurationMicro: 200,
271271
);
272272

273-
manager.setFrameData(frameTestdata);
273+
manager.setFrameData(frameTestData);
274274

275275
manager.endScreenRenderCollectorForCustomUiTrace();
276276

277277
expect(manager.screenRenderForCustomUiTrace.isActive, false);
278-
expect(manager.screenRenderForCustomUiTrace == frameTestdata, false);
278+
expect(manager.screenRenderForCustomUiTrace == frameTestData, false);
279279
});
280280

281281
test(
282282
'should save data to screenRenderForCustomUiTrace if custom UI trace is started',
283283
() {
284-
final frameTestdata = InstabugScreenRenderData(
284+
final frameTestData = InstabugScreenRenderData(
285285
traceId: 123,
286286
frameData: [
287287
InstabugFrameData(10000, 200),
@@ -292,11 +292,11 @@ void main() {
292292
);
293293

294294
manager.startScreenRenderCollectorForTraceId(
295-
frameTestdata.traceId,
295+
frameTestData.traceId,
296296
UiTraceType.custom,
297297
);
298298

299-
manager.setFrameData(frameTestdata);
299+
manager.setFrameData(frameTestData);
300300

301301
manager.endScreenRenderCollectorForCustomUiTrace();
302302
});
@@ -352,7 +352,7 @@ void main() {
352352
expect(
353353
manager.screenRenderForAutoUiTrace.slowFramesTotalDurationMicro,
354354
buildDuration * 1000,
355-
); // * 1000 to convert from milli to micro
355+
); // * 1000 to convert from milliseconds to microseconds
356356
expect(
357357
manager.screenRenderForAutoUiTrace.frozenFramesTotalDurationMicro,
358358
0,
@@ -372,7 +372,7 @@ void main() {
372372
expect(
373373
manager.screenRenderForAutoUiTrace.slowFramesTotalDurationMicro,
374374
rasterDuration * 1000,
375-
); // * 1000 to convert from milli to micro
375+
); // * 1000 to convert from milliseconds to microseconds
376376
expect(
377377
manager.screenRenderForAutoUiTrace.frozenFramesTotalDurationMicro,
378378
0,
@@ -393,7 +393,7 @@ void main() {
393393
expect(
394394
manager.screenRenderForAutoUiTrace.frozenFramesTotalDurationMicro,
395395
buildDuration * 1000,
396-
); // * 1000 to convert from milli to micro
396+
); // * 1000 to convert from milliseconds to microseconds
397397
expect(
398398
manager.screenRenderForAutoUiTrace.slowFramesTotalDurationMicro,
399399
0,
@@ -414,7 +414,7 @@ void main() {
414414
expect(
415415
manager.screenRenderForAutoUiTrace.frozenFramesTotalDurationMicro,
416416
rasterBuild * 1000,
417-
); // * 1000 to convert from milli to micro
417+
); // * 1000 to convert from milliseconds to microseconds
418418
expect(
419419
manager.screenRenderForAutoUiTrace.slowFramesTotalDurationMicro,
420420
0,
@@ -433,7 +433,7 @@ void main() {
433433
expect(
434434
manager.screenRenderForAutoUiTrace.frozenFramesTotalDurationMicro,
435435
0,
436-
); // * 1000 to convert from milli to micro
436+
); // * 1000 to convert from milliseconds to microseconds
437437
expect(
438438
manager.screenRenderForAutoUiTrace.slowFramesTotalDurationMicro,
439439
0,

0 commit comments

Comments
 (0)