diff --git a/.github/workflows/analyze.yml b/.github/workflows/analyze.yml index 3b961add..e3f0f063 100644 --- a/.github/workflows/analyze.yml +++ b/.github/workflows/analyze.yml @@ -1,14 +1,25 @@ name: Analyze Code on: + push: + branches: [ "dev" ] + paths: + - "**.dart" + - ".github/workflows/analyze.yml" pull_request: branches: [ "main", "dev" ] + types: + - opened + - reopened + - synchronize + - ready_for_review paths: - "**.dart" - ".github/workflows/analyze.yml" jobs: build: + name: "Static analysis & format check" runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e8307c84..69b3f6d6 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -2,23 +2,29 @@ package="app.revanced.manager.flutter"> + - - + + + - + + createState() => _InstalledAppsCardState(); -} - -class _InstalledAppsCardState extends State { List apps = locator().patchedInstalledApps; final ManagerAPI _managerAPI = locator(); List patchedApps = []; - @override - void initState() { - super.initState(); - _getApps(); - } - Future _getApps() async { if (apps.isNotEmpty) { patchedApps = [...apps]; @@ -41,54 +31,66 @@ class _InstalledAppsCardState extends State { apps.clear(); apps = [...patchedApps]; } - setState(() {}); } } @override Widget build(BuildContext context) { - return apps.isEmpty - ? CustomCard( - child: Center( - child: Column( - children: [ - Icon( - size: 40, - Icons.file_download_off, - color: Theme.of(context).colorScheme.secondary, - ), - const SizedBox(height: 16), - I18nText( - 'homeView.noInstallations', - child: Text( - '', - textAlign: TextAlign.center, - style: Theme.of(context).textTheme.titleMedium!.copyWith( - color: Theme.of(context).colorScheme.secondary, + return FutureBuilder( + future: _getApps(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + return apps.isEmpty + ? CustomCard( + child: Center( + child: Column( + children: [ + Icon( + size: 40, + Icons.file_download_off, + color: Theme.of(context).colorScheme.secondary, + ), + const SizedBox(height: 16), + I18nText( + 'homeView.noInstallations', + 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().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().navigateToAppInfo(app), + ), + ) + .toList(), + ); + } else { + return const Center(child: CircularProgressIndicator()); + } + }, + ); } } diff --git a/pubspec.yaml b/pubspec.yaml index 52ecea22..c5917c80 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -59,7 +59,7 @@ dependencies: root: git: url: https://github.com/EvadeMaster/root - ref: 9bcf0dc06b8e2e3ccd5fbd16bc849938e817b36b + ref: 82803aa40f63cddff81c3e4d27ce8ce3e7c83f60 share_extend: ^2.0.0 shared_preferences: ^2.1.0 skeletons: ^0.0.3