diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/data/data_providers/app_launcher.dart | 2 | ||||
-rw-r--r-- | lib/presentation/screens/apps/widgets/app_button.dart | 28 |
2 files changed, 27 insertions, 3 deletions
diff --git a/lib/data/data_providers/app_launcher.dart b/lib/data/data_providers/app_launcher.dart index 917dd21..693ce29 100644 --- a/lib/data/data_providers/app_launcher.dart +++ b/lib/data/data_providers/app_launcher.dart @@ -58,7 +58,7 @@ class AppLauncher { debugPrint("$info"); // Existing icons are currently not usable, so leave blank for now apps.add(AppLauncherInfo( - id: info.id, name: info.name, icon: "", internal: false)); + id: info.id, name: info.name, icon: info.iconPath, internal: false)); } apps.sort((a, b) => a.name.compareTo(b.name)); diff --git a/lib/presentation/screens/apps/widgets/app_button.dart b/lib/presentation/screens/apps/widgets/app_button.dart index 2e016ca..336e1e2 100644 --- a/lib/presentation/screens/apps/widgets/app_button.dart +++ b/lib/presentation/screens/apps/widgets/app_button.dart @@ -1,5 +1,6 @@ import 'package:flutter_ics_homescreen/core/utils/helpers.dart'; import 'package:flutter_ics_homescreen/export.dart'; +import 'package:mime/mime.dart'; class AppButton extends StatefulWidget { const AppButton( @@ -38,8 +39,31 @@ class _AppButtonState extends State<AppButton> { Padding( padding: const EdgeInsets.only( left: 10, right: 10, top: 6, bottom: 6), - child: SvgPicture.asset( - "assets/${widget.image}", + child: Builder( + builder: (BuildContext context) { + var filepath = widget.image; + final file = File(filepath); + if (file.existsSync()) { + final String? mimeType = lookupMimeType(filepath); + if (mimeType == 'image/png') { + return Image.file( + file, + width: 160, + height: 160, + fit: BoxFit.contain, + ); + } else if (mimeType == 'image/svg+xml') { + return SvgPicture.file( + file, + width: 160, + height: 160, + fit: BoxFit.contain, + ); + } + filepath = "app-generic.svg"; + } + return SvgPicture.asset("assets/${filepath}"); + }, ), ), Text( |