Skip to content

Commit d1a7d10

Browse files
chore: Integrate the absent APM APIs into the APM screen of the sample application.
1 parent 14f24b6 commit d1a7d10

File tree

5 files changed

+54
-1
lines changed

5 files changed

+54
-1
lines changed

example/lib/main.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import 'dart:convert';
55

66
import 'package:flutter/material.dart';
77
import 'package:instabug_flutter/instabug_flutter.dart';
8+
import 'package:instabug_flutter_example/src/components/apm_switch.dart';
89
import 'package:instabug_http_client/instabug_http_client.dart';
910
import 'package:instabug_flutter_example/src/app_routes.dart';
1011
import 'package:instabug_flutter_example/src/widget/nested_view.dart';
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:instabug_flutter/instabug_flutter.dart';
3+
import 'package:instabug_flutter_example/src/utils/show_messages.dart';
4+
5+
class APMSwitch extends StatefulWidget {
6+
const APMSwitch({Key? key}) : super(key: key);
7+
8+
@override
9+
State<APMSwitch> createState() => _APMSwitchState();
10+
}
11+
12+
class _APMSwitchState extends State<APMSwitch> {
13+
bool isEnabled = false;
14+
15+
@override
16+
Widget build(BuildContext context) {
17+
return Column(
18+
children: [
19+
SwitchListTile.adaptive(
20+
title: const Text('APM Enabled'),
21+
value: isEnabled,
22+
onChanged: (value) => onAPMChanged(context, value),
23+
),
24+
],
25+
);
26+
}
27+
28+
void onAPMChanged(BuildContext context, bool value) {
29+
APM.setEnabled(value);
30+
showSnackBar(context, "APM is ${value ? "enabled" : "disabled"}");
31+
setState(() => isEnabled = value);
32+
}
33+
}

example/lib/src/components/network_content.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class _NetworkContentState extends State<NetworkContent> {
1717
@override
1818
Widget build(BuildContext context) {
1919
return Column(
20+
2021
children: [
2122
InstabugClipboardInput(
2223
label: 'Endpoint Url',
@@ -26,7 +27,7 @@ class _NetworkContentState extends State<NetworkContent> {
2627
text: 'Send Request To Url',
2728
onPressed: () => _sendRequestToUrl(endpointUrlController.text),
2829
),
29-
Text("W3C Header Section"),
30+
const Text("W3C Header Section"),
3031
InstabugButton(
3132
text: 'Send Request With Custom traceparent header',
3233
onPressed: () => _sendRequestToUrl(endpointUrlController.text,

example/lib/src/screens/apm_page.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,18 @@ class _ApmPageState extends State<ApmPage> {
2222
);
2323
}
2424

25+
_endAppLaunch() => APM.endAppLaunch();
26+
2527
@override
2628
Widget build(BuildContext context) {
2729
return Page(
2830
title: 'APM',
2931
children: [
32+
const APMSwitch(),
33+
InstabugButton(
34+
text: 'End App Launch',
35+
onPressed: _endAppLaunch,
36+
),
3037
const SectionTitle('Network'),
3138
const NetworkContent(),
3239
const SectionTitle('Traces'),
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'package:flutter/material.dart';
2+
3+
void showSnackBar(BuildContext context, String message) {
4+
final messenger = ScaffoldMessenger.of(context);
5+
messenger.clearSnackBars();
6+
messenger.showSnackBar(
7+
SnackBar(
8+
content: Text(message),
9+
),
10+
);
11+
}

0 commit comments

Comments
 (0)