revanced-manager/lib/ui/views/root_checker/root_checker_viewmodel.dart

33 lines
974 B
Dart
Raw Normal View History

2022-08-14 16:03:01 +02:00
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/app/app.router.dart';
import 'package:revanced_manager/services/manager_api.dart';
2022-08-14 16:03:01 +02:00
import 'package:stacked/stacked.dart';
import 'package:root/root.dart';
import 'package:stacked_services/stacked_services.dart';
class RootCheckerViewModel extends BaseViewModel {
2022-08-18 16:33:33 +02:00
final NavigationService _navigationService = locator<NavigationService>();
final ManagerAPI _managerAPI = locator<ManagerAPI>();
2022-08-18 16:33:33 +02:00
bool isRooted = false;
2022-08-14 16:03:01 +02:00
Future<void> navigateAsRoot() async {
2022-08-18 16:33:33 +02:00
bool? res = await Root.isRooted();
isRooted = res != null && res == true;
if (isRooted) {
await navigateToHome();
} else {
notifyListeners();
2022-08-14 20:40:34 +02:00
}
}
Future<void> navigateAsNonRoot() async {
isRooted = false;
await navigateToHome();
2022-08-14 16:03:01 +02:00
}
Future<void> navigateToHome() async {
_managerAPI.setIsRooted(isRooted);
2022-09-05 10:07:38 +02:00
_navigationService.navigateTo(Routes.navigationView);
2022-08-14 16:03:01 +02:00
}
}