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