@@ -8,14 +8,16 @@ client with a pre-filled feedback message.
88## Features
99
1010- Pre-fills the recipient, subject, and optional email body.
11- - Optionally includes application and operating-system diagnostics.
11+ - Optionally includes privacy-safe application, operating-system, device, and
12+ display diagnostics.
1213- Accepts application-specific diagnostic fields.
1314
1415## Requirements
1516
16- - Dart 3.6 or later.
17- - Flutter 3.27 or later.
17+ - Dart 3.7 or later.
18+ - Flutter 3.29 or later.
1819- This package uses ` package_info_plus ` 8.3.1 through 8.x.
20+ - This package uses ` device_info_plus ` 11.3.3 through 11.x.
1921- Android builds require API 19 or later, compile SDK 34, Java 17, Android
2022 Gradle Plugin 8.3 or later, and Gradle 8.4 or later.
2123- Apple builds require iOS 12 or later and macOS 10.14 or later.
@@ -47,9 +49,16 @@ class FeedbackButton extends StatelessWidget {
4749```
4850
4951When runtime diagnostics are enabled, the package includes the application
50- name, package identifier, version/build number, operating-system name, and OS
51- version. Values passed through ` additionalDiagnostics ` are controlled entirely
52- by the calling application.
52+ name, package identifier, version/build number, operating-system name and
53+ version, system locales, native process architecture, and a non-identifying
54+ device model where the platform provides one reliably. The widget also reports
55+ the resolved app locale, logical window size, and device pixel ratio from its
56+ own widget context.
57+
58+ The default diagnostics deliberately exclude CPU names, emulator status,
59+ user-assigned device and host names, usernames, GUIDs, machine IDs, vendor
60+ identifiers, and other unique identifiers. Values passed through
61+ ` additionalDiagnostics ` are controlled entirely by the calling application.
5362
5463If runtime metadata cannot be collected, the email launch is still attempted
5564and the message reports that runtime diagnostics were unavailable.
@@ -70,6 +79,7 @@ final launchRequested = await sendEmail(
7079 emailSubject: 'App feedback',
7180 emailBody: 'Please describe the issue:',
7281 includeRuntimeDiagnostics: true,
82+ diagnosticsContext: context,
7383 additionalDiagnostics: {
7484 'Current screen': 'Export',
7585 },
@@ -79,3 +89,9 @@ if (!launchRequested) {
7989 // Show an alternative contact method.
8090}
8191```
92+
93+ Passing ` diagnosticsContext ` lets the utility report the locale resolved by the
94+ nearest Flutter ` Localizations ` widget and metrics for the current view. It is
95+ optional: calls without it still receive system locales and the other global
96+ runtime diagnostics. This distinction matters when an app falls back to a
97+ different language than the user's first system locale.
0 commit comments