aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/data/data_providers/app_launcher.dart2
-rw-r--r--lib/presentation/screens/apps/widgets/app_button.dart28
-rw-r--r--pubspec.lock8
-rw-r--r--pubspec.yaml1
4 files changed, 36 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(
diff --git a/pubspec.lock b/pubspec.lock
index f256dbb..51c7761 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -380,6 +380,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.15.0"
+ mime:
+ dependency: "direct main"
+ description:
+ name: mime
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
nested:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 1304544..b23d600 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -57,6 +57,7 @@ dependencies:
flutter_calendar_carousel:
path: ./packages/flutter_calendar_carousel
dart_mpd: ^0.4.1
+ mime: ^2.0.0
dev_dependencies:
flutter_test: