collect method
Collects metadata from the current device and package.
Implementation
Future<FeedbackMetadata> collect() async {
final packageInfo = await PackageInfo.fromPlatform();
String? osName;
String? osVersion;
String? deviceModel;
final deviceInfo = DeviceInfoPlugin();
if (kIsWeb) {
final webInfo = await deviceInfo.webBrowserInfo;
osName = 'web';
osVersion = webInfo.browserName.name;
} else {
switch (defaultTargetPlatform) {
case TargetPlatform.android:
final info = await deviceInfo.androidInfo;
osName = 'android';
osVersion = info.version.release;
deviceModel = info.model;
case TargetPlatform.iOS:
final info = await deviceInfo.iosInfo;
osName = 'ios';
osVersion = info.systemVersion;
deviceModel = info.model;
case TargetPlatform.macOS:
final info = await deviceInfo.macOsInfo;
osName = 'macos';
osVersion = info.osRelease;
deviceModel = info.model;
case TargetPlatform.windows:
final info = await deviceInfo.windowsInfo;
osName = 'windows';
osVersion = info.displayVersion;
deviceModel = info.productName;
case TargetPlatform.linux:
final info = await deviceInfo.linuxInfo;
osName = 'linux';
osVersion = info.version;
deviceModel = info.prettyName;
default:
osName = defaultTargetPlatform.name.toLowerCase();
}
}
return FeedbackMetadata(
osName: osName,
osVersion: osVersion,
deviceModel: deviceModel,
appName: packageInfo.appName,
buildNumber: packageInfo.buildNumber,
);
}