Initial commit
Some checks failed
Main Deploy Workflow / deploy_web (push) Has been cancelled
Main Deploy Workflow / deploy_playstore_internal (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled

This commit is contained in:
2026-09-11 15:59:56 -03:00
commit 0037b0b9cf
651 changed files with 199705 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
// SPDX-FileCopyrightText: 2019-Present Christian Kußowski
// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat
//
// SPDX-License-Identifier: AGPL-3.0-or-later
import 'package:material_ui/material_ui.dart';
import 'package:matrix/matrix.dart';
IconData _getIconFromName(String displayname) {
final name = displayname.toLowerCase();
if ({'android'}.any(name.contains)) {
return Icons.phone_android_outlined;
}
if ({'ios', 'ipad', 'iphone', 'ipod'}.any(name.contains)) {
return Icons.phone_iphone_outlined;
}
if ({
'web',
'http://',
'https://',
'firefox',
'chrome',
'/_matrix',
'safari',
'opera',
}.any(name.contains)) {
return Icons.web_outlined;
}
if ({'desktop', 'windows', 'macos', 'linux', 'ubuntu'}.any(name.contains)) {
return Icons.desktop_mac_outlined;
}
return Icons.device_unknown_outlined;
}
extension DeviceExtension on Device {
String get displayname =>
(displayName?.isNotEmpty ?? false) ? displayName! : 'Unknown device';
IconData get icon => _getIconFromName(displayname);
}
extension DeviceKeysExtension on DeviceKeys {
String get displayname => (deviceDisplayName?.isNotEmpty ?? false)
? deviceDisplayName!
: 'Unknown device';
IconData get icon => _getIconFromName(displayname);
}