diff --git a/lib/main.dart b/lib/main.dart index 05dee53..9a09125 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:typed_data'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -83,12 +84,14 @@ class _AppLauncherScreenState extends State with WidgetsBindi List apps = []; List filteredApps = []; bool isLoading = true; + StreamSubscription? _appsChangeSub; @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); _loadInstalledApps(); + _appsChangeSub = DeviceApps.listenToAppsChanges().listen((_) => _loadInstalledApps()); searchController.addListener(_filterApps); WidgetsBinding.instance.addPostFrameCallback((_) { if (context.read().autoFocus) { @@ -100,6 +103,7 @@ class _AppLauncherScreenState extends State with WidgetsBindi @override void dispose() { WidgetsBinding.instance.removeObserver(this); + _appsChangeSub?.cancel(); super.dispose(); }