diff --git a/flutter/assets/android.png b/flutter/assets/android.png deleted file mode 100644 index 323100330..000000000 Binary files a/flutter/assets/android.png and /dev/null differ diff --git a/flutter/assets/insecure.png b/flutter/assets/insecure.png deleted file mode 100644 index 0c954468d..000000000 Binary files a/flutter/assets/insecure.png and /dev/null differ diff --git a/flutter/assets/insecure_relay.png b/flutter/assets/insecure_relay.png deleted file mode 100644 index 878d57467..000000000 Binary files a/flutter/assets/insecure_relay.png and /dev/null differ diff --git a/flutter/assets/linux.png b/flutter/assets/linux.png deleted file mode 100644 index 456e58675..000000000 Binary files a/flutter/assets/linux.png and /dev/null differ diff --git a/flutter/assets/logo.ico b/flutter/assets/logo.ico deleted file mode 100644 index 5ebc02809..000000000 Binary files a/flutter/assets/logo.ico and /dev/null differ diff --git a/flutter/assets/mac.png b/flutter/assets/mac.png deleted file mode 100644 index 4be16f369..000000000 Binary files a/flutter/assets/mac.png and /dev/null differ diff --git a/flutter/assets/secure.png b/flutter/assets/secure.png deleted file mode 100644 index 01dcb2a8a..000000000 Binary files a/flutter/assets/secure.png and /dev/null differ diff --git a/flutter/assets/secure_relay.png b/flutter/assets/secure_relay.png deleted file mode 100644 index 4119f05ba..000000000 Binary files a/flutter/assets/secure_relay.png and /dev/null differ diff --git a/flutter/assets/win.png b/flutter/assets/win.png deleted file mode 100644 index 5ce86a257..000000000 Binary files a/flutter/assets/win.png and /dev/null differ diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index a708a0a15..ae6f04d2d 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'dart:ui'; import 'package:back_button_interceptor/back_button_interceptor.dart'; import 'package:desktop_multi_window/desktop_multi_window.dart'; @@ -15,6 +14,7 @@ import 'package:flutter_hbb/utils/multi_window_manager.dart'; import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:window_manager/window_manager.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'common/widgets/overlay.dart'; import 'mobile/pages/file_manager_page.dart'; @@ -946,7 +946,7 @@ Widget getPlatformImage(String platform, {double size = 50}) { } else if (platform != 'linux' && platform != 'android') { platform = 'win'; } - return Image.asset('assets/$platform.png', height: size, width: size); + return SvgPicture.asset('assets/$platform.svg', height: size, width: size); } class LastWindowPosition { diff --git a/flutter/lib/common/widgets/peer_card.dart b/flutter/lib/common/widgets/peer_card.dart index 9a77eee04..6ebdccbb0 100644 --- a/flutter/lib/common/widgets/peer_card.dart +++ b/flutter/lib/common/widgets/peer_card.dart @@ -151,6 +151,7 @@ class _PeerCardState extends State<_PeerCard> color: str2color('${peer.id}${peer.platform}', 0x7f), ), alignment: Alignment.center, + width: 42, child: getPlatformImage(peer.platform, size: 30).paddingAll(6), ), Expanded( diff --git a/flutter/lib/desktop/pages/server_page.dart b/flutter/lib/desktop/pages/server_page.dart index b17fe70f4..f93591355 100644 --- a/flutter/lib/desktop/pages/server_page.dart +++ b/flutter/lib/desktop/pages/server_page.dart @@ -10,6 +10,7 @@ import 'package:flutter_hbb/models/chat_model.dart'; import 'package:get/get.dart'; import 'package:provider/provider.dart'; import 'package:window_manager/window_manager.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import '../../common.dart'; import '../../models/platform_model.dart'; @@ -200,8 +201,8 @@ class _AppIcon extends StatelessWidget { Widget build(BuildContext context) { return Container( margin: EdgeInsets.symmetric(horizontal: 4.0), - child: Image.asset( - 'assets/logo.ico', + child: SvgPicture.asset( + 'assets/logo.svg', width: 30, height: 30, ), diff --git a/flutter/lib/desktop/widgets/tabbar_widget.dart b/flutter/lib/desktop/widgets/tabbar_widget.dart index 1b82b6b55..9bfc010ec 100644 --- a/flutter/lib/desktop/widgets/tabbar_widget.dart +++ b/flutter/lib/desktop/widgets/tabbar_widget.dart @@ -11,6 +11,7 @@ import 'package:flutter_hbb/models/platform_model.dart'; import 'package:get/get.dart'; import 'package:scroll_pos/scroll_pos.dart'; import 'package:window_manager/window_manager.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import '../../utils/multi_window_manager.dart'; @@ -297,10 +298,10 @@ class DesktopTab extends StatelessWidget { Row(children: [ Offstage( offstage: !showLogo, - child: Image.asset( - 'assets/logo.ico', - width: 20, - height: 20, + child: SvgPicture.asset( + 'assets/logo.svg', + width: 16, + height: 16, )), Offstage( offstage: !showTitle, diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index c90b07daf..78d94df16 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -17,6 +17,7 @@ import 'package:flutter_hbb/models/user_model.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tuple/tuple.dart'; import 'package:flutter_custom_cursor/flutter_custom_cursor.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import '../common.dart'; import '../common/shared_state.dart'; @@ -111,13 +112,13 @@ class FfiModel with ChangeNotifier { } } - Image? getConnectionImage() { + Widget? getConnectionImage() { if (secure == null || direct == null) { return null; } else { final icon = '${secure == true ? 'secure' : 'insecure'}${direct == true ? '' : '_relay'}'; - return Image.asset('assets/$icon.png', width: 48, height: 48); + return SvgPicture.asset('assets/$icon.png', width: 48, height: 48); } } diff --git a/flutter/pubspec.lock b/flutter/pubspec.lock index 3975e1e8d..755d551db 100644 --- a/flutter/pubspec.lock +++ b/flutter/pubspec.lock @@ -140,7 +140,7 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.2.1" + version: "1.2.0" charcode: dependency: transitive description: @@ -161,7 +161,7 @@ packages: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.1" + version: "1.1.0" code_builder: dependency: transitive description: @@ -416,6 +416,13 @@ packages: url: "https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge" source: git version: "1.32.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.5" flutter_web_plugins: dependency: transitive description: flutter @@ -595,7 +602,7 @@ packages: name: material_color_utilities url: "https://pub.dartlang.org" source: hosted - version: "0.1.5" + version: "0.1.4" menu_base: dependency: transitive description: @@ -609,7 +616,7 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.7.0" mime: dependency: transitive description: @@ -686,7 +693,21 @@ packages: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.2" + version: "1.8.1" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" path_provider: dependency: "direct main" description: diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index ba0578417..95ec5f351 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -81,6 +81,7 @@ dependencies: scroll_pos: ^0.3.0 rxdart: ^0.27.5 file_picker: ^5.1.0 + flutter_svg: ^1.1.5 flutter_improved_scrolling: ^0.0.3 # currently, we use flutter 3.0.5 for windows build, latest for other builds. #