mirror of
https://github.com/revanced/revanced-manager
synced 2024-05-14 13:56:57 +02:00
chore: merge dev
branch to main
branch (#1032)
This commit is contained in:
commit
fd43ac7581
11
.github/workflows/analyze.yml
vendored
11
.github/workflows/analyze.yml
vendored
@ -1,14 +1,25 @@
|
|||||||
name: Analyze Code
|
name: Analyze Code
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "dev" ]
|
||||||
|
paths:
|
||||||
|
- "**.dart"
|
||||||
|
- ".github/workflows/analyze.yml"
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main", "dev" ]
|
branches: [ "main", "dev" ]
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- reopened
|
||||||
|
- synchronize
|
||||||
|
- ready_for_review
|
||||||
paths:
|
paths:
|
||||||
- "**.dart"
|
- "**.dart"
|
||||||
- ".github/workflows/analyze.yml"
|
- ".github/workflows/analyze.yml"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
name: "Static analysis & format check"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
@ -2,23 +2,29 @@
|
|||||||
package="app.revanced.manager.flutter">
|
package="app.revanced.manager.flutter">
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||||
|
android:maxSdkVersion="32" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
|
android:maxSdkVersion="32" />
|
||||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
|
||||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
||||||
<application
|
<application
|
||||||
android:label="ReVanced Manager"
|
android:label="ReVanced Manager"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:largeHeap="true"
|
android:largeHeap="true"
|
||||||
|
android:requestLegacyExternalStorage="true"
|
||||||
android:extractNativeLibs="true"
|
android:extractNativeLibs="true"
|
||||||
android:enableOnBackInvokedCallback="true">
|
android:enableOnBackInvokedCallback="true">
|
||||||
<activity
|
<activity
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
org.gradle.jvmargs=-Xmx1536M
|
org.gradle.jvmargs=-Xmx1536M -XX:+UseParallelGC
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.daemon=true
|
||||||
|
org.gradle.caching=true
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
@ -1 +1 @@
|
|||||||
Patch your favourite apps, right on your device.
|
Patch your favorite apps, right on your device.
|
||||||
|
@ -93,7 +93,9 @@ class SManageApiUrl extends BaseViewModel {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
_managerAPI.setApiUrl('');
|
_managerAPI.setApiUrl('');
|
||||||
_toast.showBottom('settingsView.restartAppForChanges');
|
_toast.showBottom('settingsView.restartAppForChanges');
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context)
|
||||||
|
..pop()
|
||||||
|
..pop();
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -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());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ dependencies:
|
|||||||
root:
|
root:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/EvadeMaster/root
|
url: https://github.com/EvadeMaster/root
|
||||||
ref: 9bcf0dc06b8e2e3ccd5fbd16bc849938e817b36b
|
ref: 82803aa40f63cddff81c3e4d27ce8ce3e7c83f60
|
||||||
share_extend: ^2.0.0
|
share_extend: ^2.0.0
|
||||||
shared_preferences: ^2.1.0
|
shared_preferences: ^2.1.0
|
||||||
skeletons: ^0.0.3
|
skeletons: ^0.0.3
|
||||||
|
Loading…
Reference in New Issue
Block a user