fix: patched applications not showing at launch (#1031)

This commit is contained in:
Aabed Khan 2023-07-16 11:31:01 +05:45 committed by GitHub
parent 768ad0c9bc
commit d161d55aaf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,24 +8,14 @@ import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
import 'package:revanced_manager/ui/widgets/shared/application_item.dart'; import 'package:revanced_manager/ui/widgets/shared/application_item.dart';
import 'package:revanced_manager/ui/widgets/shared/custom_card.dart'; import 'package:revanced_manager/ui/widgets/shared/custom_card.dart';
class InstalledAppsCard extends StatefulWidget { //ignore: must_be_immutable
const InstalledAppsCard({Key? key}) : super(key: key); class InstalledAppsCard extends StatelessWidget {
InstalledAppsCard({Key? key}) : super(key: key);
@override
State<InstalledAppsCard> createState() => _InstalledAppsCardState();
}
class _InstalledAppsCardState extends State<InstalledAppsCard> {
List<PatchedApplication> apps = locator<HomeViewModel>().patchedInstalledApps; List<PatchedApplication> apps = locator<HomeViewModel>().patchedInstalledApps;
final ManagerAPI _managerAPI = locator<ManagerAPI>(); final ManagerAPI _managerAPI = locator<ManagerAPI>();
List<PatchedApplication> patchedApps = []; List<PatchedApplication> patchedApps = [];
@override
void initState() {
super.initState();
_getApps();
}
Future _getApps() async { Future _getApps() async {
if (apps.isNotEmpty) { if (apps.isNotEmpty) {
patchedApps = [...apps]; patchedApps = [...apps];
@ -41,54 +31,66 @@ class _InstalledAppsCardState extends State<InstalledAppsCard> {
apps.clear(); apps.clear();
apps = [...patchedApps]; apps = [...patchedApps];
} }
setState(() {});
} }
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return apps.isEmpty return FutureBuilder(
? CustomCard( future: _getApps(),
child: Center( builder: (context, snapshot) {
child: Column( if (snapshot.connectionState == ConnectionState.done) {
children: <Widget>[ return apps.isEmpty
Icon( ? CustomCard(
size: 40, child: Center(
Icons.file_download_off, child: Column(
color: Theme.of(context).colorScheme.secondary, children: <Widget>[
), Icon(
const SizedBox(height: 16), size: 40,
I18nText( Icons.file_download_off,
'homeView.noInstallations', color: Theme.of(context).colorScheme.secondary,
child: Text( ),
'', const SizedBox(height: 16),
textAlign: TextAlign.center, I18nText(
style: Theme.of(context).textTheme.titleMedium!.copyWith( 'homeView.noInstallations',
color: Theme.of(context).colorScheme.secondary, child: Text(
'',
textAlign: TextAlign.center,
style: Theme.of(context)
.textTheme
.titleMedium!
.copyWith(
color:
Theme.of(context).colorScheme.secondary,
),
), ),
)
],
), ),
)
],
),
),
)
: ListView(
shrinkWrap: true,
padding: EdgeInsets.zero,
physics: const NeverScrollableScrollPhysics(),
children: apps
.map(
(app) => ApplicationItem(
icon: app.icon,
name: app.name,
patchDate: app.patchDate,
changelog: app.changelog,
isUpdatableApp: false,
onPressed: () =>
locator<HomeViewModel>().navigateToAppInfo(app),
), ),
) )
.toList(), : ListView(
); shrinkWrap: true,
padding: EdgeInsets.zero,
physics: const NeverScrollableScrollPhysics(),
children: apps
.map(
(app) => ApplicationItem(
icon: app.icon,
name: app.name,
patchDate: app.patchDate,
changelog: app.changelog,
isUpdatableApp: false,
onPressed: () =>
locator<HomeViewModel>().navigateToAppInfo(app),
),
)
.toList(),
);
} else {
return const Center(child: CircularProgressIndicator());
}
},
);
} }
} }