mirror of
https://github.com/ReVanced/revanced-manager.git
synced 2024-11-12 18:04:28 +01:00
fix: Unable to install application regardless of preference
Signed-off-by: validcube <pun.butrach@gmail.com>
This commit is contained in:
parent
63c6412736
commit
c7627ced8e
3 changed files with 9 additions and 87 deletions
|
@ -832,82 +832,4 @@ class ManagerAPI {
|
||||||
selectedPatchesFile.deleteSync();
|
selectedPatchesFile.deleteSync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> installTypeDialog(BuildContext context) async {
|
|
||||||
final ValueNotifier<int> installType = ValueNotifier(0);
|
|
||||||
if (isRooted) {
|
|
||||||
await showDialog(
|
|
||||||
context: context,
|
|
||||||
barrierDismissible: false,
|
|
||||||
builder: (context) => AlertDialog(
|
|
||||||
title: Text(t.installerView.installType),
|
|
||||||
backgroundColor: Theme.of(context).colorScheme.secondaryContainer,
|
|
||||||
icon: const Icon(Icons.file_download_outlined),
|
|
||||||
contentPadding: const EdgeInsets.symmetric(vertical: 16),
|
|
||||||
content: SingleChildScrollView(
|
|
||||||
child: ValueListenableBuilder(
|
|
||||||
valueListenable: installType,
|
|
||||||
builder: (context, value, child) {
|
|
||||||
return Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(
|
|
||||||
horizontal: 20,
|
|
||||||
vertical: 10,
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
t.installerView.installTypeDescription,
|
|
||||||
style: TextStyle(
|
|
||||||
fontSize: 16,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
color: Theme.of(context).colorScheme.secondary,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
RadioListTile(
|
|
||||||
title: Text(t.installerView.installNonRootType),
|
|
||||||
contentPadding:
|
|
||||||
const EdgeInsets.symmetric(horizontal: 16),
|
|
||||||
value: 0,
|
|
||||||
groupValue: value,
|
|
||||||
onChanged: (selected) {
|
|
||||||
installType.value = selected!;
|
|
||||||
},
|
|
||||||
),
|
|
||||||
RadioListTile(
|
|
||||||
title: Text(t.installerView.installRootType),
|
|
||||||
contentPadding:
|
|
||||||
const EdgeInsets.symmetric(horizontal: 16),
|
|
||||||
value: 1,
|
|
||||||
groupValue: value,
|
|
||||||
onChanged: (selected) {
|
|
||||||
installType.value = selected!;
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
actions: [
|
|
||||||
OutlinedButton(
|
|
||||||
child: Text(t.cancelButton),
|
|
||||||
onPressed: () {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
),
|
|
||||||
FilledButton(
|
|
||||||
child: Text(t.installerView.installButton),
|
|
||||||
onPressed: () {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -495,7 +495,7 @@ class InstallerViewModel extends BaseViewModel {
|
||||||
Future<void> installResult(BuildContext context, bool installAsRoot) async {
|
Future<void> installResult(BuildContext context, bool installAsRoot) async {
|
||||||
isInstalling = true;
|
isInstalling = true;
|
||||||
try {
|
try {
|
||||||
_app.isRooted = await _managerAPI.installTypeDialog(context);
|
_app.isRooted = installAsRoot;
|
||||||
if (headerLogs != 'Installing...') {
|
if (headerLogs != 'Installing...') {
|
||||||
update(
|
update(
|
||||||
.85,
|
.85,
|
||||||
|
@ -512,7 +512,7 @@ class InstallerViewModel extends BaseViewModel {
|
||||||
// In case a patch changed the app name or package name,
|
// In case a patch changed the app name or package name,
|
||||||
// update the app info.
|
// update the app info.
|
||||||
final app =
|
final app =
|
||||||
await DeviceApps.getAppFromStorage(_patcherAPI.outFile!.path);
|
await DeviceApps.getAppFromStorage(_patcherAPI.outFile!.path);
|
||||||
if (app != null) {
|
if (app != null) {
|
||||||
_app.name = app.appName;
|
_app.name = app.appName;
|
||||||
_app.packageName = app.packageName;
|
_app.packageName = app.packageName;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
// ignore_for_file: use_build_context_synchronously
|
// ignore_for_file: use_build_context_synchronously
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:device_apps/device_apps.dart';
|
import 'package:device_apps/device_apps.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
@ -11,6 +12,7 @@ import 'package:revanced_manager/services/patcher_api.dart';
|
||||||
import 'package:revanced_manager/services/root_api.dart';
|
import 'package:revanced_manager/services/root_api.dart';
|
||||||
import 'package:revanced_manager/services/toast.dart';
|
import 'package:revanced_manager/services/toast.dart';
|
||||||
import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
|
import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
|
||||||
|
import 'package:revanced_manager/ui/views/installer/installer_viewmodel.dart';
|
||||||
import 'package:revanced_manager/ui/views/navigation/navigation_viewmodel.dart';
|
import 'package:revanced_manager/ui/views/navigation/navigation_viewmodel.dart';
|
||||||
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
|
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
|
||||||
import 'package:stacked/stacked.dart';
|
import 'package:stacked/stacked.dart';
|
||||||
|
@ -25,11 +27,7 @@ class AppInfoViewModel extends BaseViewModel {
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
PatchedApplication app,
|
PatchedApplication app,
|
||||||
) async {
|
) async {
|
||||||
app.isRooted = await _managerAPI.installTypeDialog(context);
|
locator<InstallerViewModel>().installTypeDialog(context);
|
||||||
final int statusCode = await _patcherAPI.installPatchedFile(context, app);
|
|
||||||
if (statusCode == 0) {
|
|
||||||
locator<HomeViewModel>().initialize(context);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> exportApp(
|
Future<void> exportApp(
|
||||||
|
@ -152,7 +150,7 @@ class AppInfoViewModel extends BaseViewModel {
|
||||||
backgroundColor: Theme.of(context).colorScheme.secondaryContainer,
|
backgroundColor: Theme.of(context).colorScheme.secondaryContainer,
|
||||||
content: Text(t.appInfoView.removeAppDialogText),
|
content: Text(t.appInfoView.removeAppDialogText),
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
OutlinedButton(
|
TextButton(
|
||||||
child: Text(t.cancelButton),
|
child: Text(t.cancelButton),
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
),
|
),
|
||||||
|
@ -160,7 +158,9 @@ class AppInfoViewModel extends BaseViewModel {
|
||||||
child: Text(t.okButton),
|
child: Text(t.okButton),
|
||||||
onPressed: () => {
|
onPressed: () => {
|
||||||
_managerAPI.deleteLastPatchedApp(),
|
_managerAPI.deleteLastPatchedApp(),
|
||||||
Navigator.of(context)..pop()..pop(),
|
Navigator.of(context)
|
||||||
|
..pop()
|
||||||
|
..pop(),
|
||||||
locator<HomeViewModel>().initialize(context),
|
locator<HomeViewModel>().initialize(context),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue