fix: remove glitchy animations for now

This commit is contained in:
Alberto Ponces 2022-09-05 15:30:26 +01:00
parent ecc2e5b688
commit de59641ede
7 changed files with 61 additions and 50 deletions

View File

@ -11,6 +11,7 @@ import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_view.dart'; import 'package:revanced_manager/ui/views/patches_selector/patches_selector_view.dart';
import 'package:revanced_manager/ui/views/root_checker/root_checker_view.dart'; import 'package:revanced_manager/ui/views/root_checker/root_checker_view.dart';
import 'package:revanced_manager/ui/views/settings/settings_view.dart'; import 'package:revanced_manager/ui/views/settings/settings_view.dart';
import 'package:revanced_manager/ui/widgets/appInfoView/app_info_view.dart';
import 'package:stacked/stacked_annotations.dart'; import 'package:stacked/stacked_annotations.dart';
import 'package:stacked_services/stacked_services.dart'; import 'package:stacked_services/stacked_services.dart';
@ -24,6 +25,7 @@ import 'package:stacked_services/stacked_services.dart';
MaterialRoute(page: SettingsView), MaterialRoute(page: SettingsView),
MaterialRoute(page: ContributorsView), MaterialRoute(page: ContributorsView),
MaterialRoute(page: RootCheckerView), MaterialRoute(page: RootCheckerView),
MaterialRoute(page: AppInfoView),
], ],
dependencies: [ dependencies: [
LazySingleton(classType: NavigationViewModel), LazySingleton(classType: NavigationViewModel),

View File

@ -8,15 +8,18 @@ import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:injectable/injectable.dart'; import 'package:injectable/injectable.dart';
import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/app/app.router.dart';
import 'package:revanced_manager/models/patched_application.dart'; import 'package:revanced_manager/models/patched_application.dart';
import 'package:revanced_manager/services/manager_api.dart'; import 'package:revanced_manager/services/manager_api.dart';
import 'package:revanced_manager/services/patcher_api.dart'; import 'package:revanced_manager/services/patcher_api.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';
import 'package:stacked_services/stacked_services.dart';
@lazySingleton @lazySingleton
class HomeViewModel extends BaseViewModel { class HomeViewModel extends BaseViewModel {
final NavigationService _navigationService = locator<NavigationService>();
final ManagerAPI _managerAPI = locator<ManagerAPI>(); final ManagerAPI _managerAPI = locator<ManagerAPI>();
final PatcherAPI _patcherAPI = locator<PatcherAPI>(); final PatcherAPI _patcherAPI = locator<PatcherAPI>();
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
@ -36,6 +39,13 @@ class HomeViewModel extends BaseViewModel {
_managerAPI.reAssessSavedApps().then((_) => _getPatchedApps()); _managerAPI.reAssessSavedApps().then((_) => _getPatchedApps());
} }
void navigateToAppInfo(PatchedApplication app) {
_navigationService.navigateTo(
Routes.appInfoView,
arguments: AppInfoViewArguments(app: app),
);
}
void toggleUpdatableApps(bool value) { void toggleUpdatableApps(bool value) {
showUpdatableApps = value; showUpdatableApps = value;
notifyListeners(); notifyListeners();

View File

@ -2,14 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/ui/views/app_selector/app_selector_view.dart';
import 'package:revanced_manager/ui/views/installer/installer_view.dart';
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart'; import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_view.dart';
import 'package:revanced_manager/ui/widgets/patcherView/app_selector_card.dart'; import 'package:revanced_manager/ui/widgets/patcherView/app_selector_card.dart';
import 'package:revanced_manager/ui/widgets/patcherView/patch_selector_card.dart'; import 'package:revanced_manager/ui/widgets/patcherView/patch_selector_card.dart';
import 'package:revanced_manager/ui/widgets/shared/custom_sliver_app_bar.dart'; import 'package:revanced_manager/ui/widgets/shared/custom_sliver_app_bar.dart';
import 'package:revanced_manager/ui/widgets/shared/open_container_wrapper.dart';
import 'package:stacked/stacked.dart'; import 'package:stacked/stacked.dart';
class PatcherView extends StatelessWidget { class PatcherView extends StatelessWidget {
@ -23,13 +19,10 @@ class PatcherView extends StatelessWidget {
builder: (context, model, child) => Scaffold( builder: (context, model, child) => Scaffold(
floatingActionButton: Visibility( floatingActionButton: Visibility(
visible: model.showPatchButton(), visible: model.showPatchButton(),
child: OpenContainerWrapper( child: FloatingActionButton.extended(
openBuilder: (_, __) => const InstallerView(), label: I18nText('patcherView.patchButton'),
closedBuilder: (_, openContainer) => FloatingActionButton.extended( icon: const Icon(Icons.build),
label: I18nText('patcherView.patchButton'), onPressed: () => model.navigateToInstaller(),
icon: const Icon(Icons.build),
onPressed: openContainer,
),
), ),
), ),
body: CustomScrollView( body: CustomScrollView(
@ -50,21 +43,16 @@ class PatcherView extends StatelessWidget {
sliver: SliverList( sliver: SliverList(
delegate: SliverChildListDelegate.fixed( delegate: SliverChildListDelegate.fixed(
<Widget>[ <Widget>[
OpenContainerWrapper( AppSelectorCard(
openBuilder: (_, __) => const AppSelectorView(), onPressed: () => model.navigateToAppSelector(),
closedBuilder: (_, openContainer) => AppSelectorCard(
onPressed: openContainer,
),
), ),
const SizedBox(height: 16), const SizedBox(height: 16),
Opacity( Opacity(
opacity: model.dimPatchesCard() ? 0.5 : 1, opacity: model.dimPatchesCard() ? 0.5 : 1,
child: OpenContainerWrapper( child: PatchSelectorCard(
openBuilder: (_, __) => const PatchesSelectorView(), onPressed: model.dimPatchesCard()
closedBuilder: (_, openContainer) => PatchSelectorCard( ? () => {}
onPressed: : () => model.navigateToPatchesSelector(),
model.dimPatchesCard() ? () => {} : openContainer,
),
), ),
), ),
], ],

View File

@ -1,13 +1,29 @@
import 'package:injectable/injectable.dart'; import 'package:injectable/injectable.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/app/app.router.dart';
import 'package:revanced_manager/models/patch.dart'; import 'package:revanced_manager/models/patch.dart';
import 'package:revanced_manager/models/patched_application.dart'; import 'package:revanced_manager/models/patched_application.dart';
import 'package:stacked/stacked.dart'; import 'package:stacked/stacked.dart';
import 'package:stacked_services/stacked_services.dart';
@lazySingleton @lazySingleton
class PatcherViewModel extends BaseViewModel { class PatcherViewModel extends BaseViewModel {
final NavigationService _navigationService = locator<NavigationService>();
PatchedApplication? selectedApp; PatchedApplication? selectedApp;
List<Patch> selectedPatches = []; List<Patch> selectedPatches = [];
void navigateToAppSelector() {
_navigationService.navigateTo(Routes.appSelectorView);
}
void navigateToPatchesSelector() {
_navigationService.navigateTo(Routes.patchesSelectorView);
}
void navigateToInstaller() {
_navigationService.navigateTo(Routes.installerView);
}
bool showPatchButton() { bool showPatchButton() {
return selectedPatches.isNotEmpty; return selectedPatches.isNotEmpty;
} }

View File

@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_i18n/flutter_i18n.dart'; import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/ui/views/contributors/contributors_view.dart';
import 'package:revanced_manager/ui/views/settings/settings_viewmodel.dart'; import 'package:revanced_manager/ui/views/settings/settings_viewmodel.dart';
import 'package:revanced_manager/ui/widgets/settingsView/about_widget.dart'; import 'package:revanced_manager/ui/widgets/settingsView/about_widget.dart';
import 'package:revanced_manager/ui/widgets/settingsView/custom_switch_tile.dart'; import 'package:revanced_manager/ui/widgets/settingsView/custom_switch_tile.dart';
@ -10,7 +9,6 @@ import 'package:revanced_manager/ui/widgets/settingsView/settings_section.dart';
import 'package:revanced_manager/ui/widgets/settingsView/social_media_widget.dart'; import 'package:revanced_manager/ui/widgets/settingsView/social_media_widget.dart';
import 'package:revanced_manager/ui/widgets/settingsView/sources_widget.dart'; import 'package:revanced_manager/ui/widgets/settingsView/sources_widget.dart';
import 'package:revanced_manager/ui/widgets/shared/custom_sliver_app_bar.dart'; import 'package:revanced_manager/ui/widgets/shared/custom_sliver_app_bar.dart';
import 'package:revanced_manager/ui/widgets/shared/open_container_wrapper.dart';
import 'package:stacked/stacked.dart'; import 'package:stacked/stacked.dart';
class SettingsView extends StatelessWidget { class SettingsView extends StatelessWidget {
@ -143,23 +141,20 @@ class SettingsView extends StatelessWidget {
SettingsSection( SettingsSection(
title: 'settingsView.teamSectionTitle', title: 'settingsView.teamSectionTitle',
children: <Widget>[ children: <Widget>[
OpenContainerWrapper( ListTile(
openBuilder: (_, __) => const ContributorsView(), contentPadding: EdgeInsets.zero,
closedBuilder: (_, openContainer) => ListTile( title: I18nText(
contentPadding: EdgeInsets.zero, 'settingsView.contributorsLabel',
title: I18nText( child: const Text(
'settingsView.contributorsLabel', '',
child: const Text( style: TextStyle(
'', fontSize: 20,
style: TextStyle( fontWeight: FontWeight.w500,
fontSize: 20,
fontWeight: FontWeight.w500,
),
), ),
), ),
subtitle: I18nText('settingsView.contributorsHint'),
onTap: openContainer,
), ),
subtitle: I18nText('settingsView.contributorsHint'),
onTap: () => model.navigateToContributors(),
), ),
const SocialMediaWidget(), const SocialMediaWidget(),
], ],

View File

@ -22,6 +22,10 @@ class SettingsViewModel extends BaseViewModel {
_navigationService.navigateTo(Routes.rootCheckerView); _navigationService.navigateTo(Routes.rootCheckerView);
} }
void navigateToContributors() {
_navigationService.navigateTo(Routes.contributorsView);
}
Future<void> updateLanguage(BuildContext context, String? value) async { Future<void> updateLanguage(BuildContext context, String? value) async {
if (value != null) { if (value != null) {
await FlutterI18n.refresh(context, Locale(value)); await FlutterI18n.refresh(context, Locale(value));

View File

@ -3,10 +3,8 @@ import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:revanced_manager/app/app.locator.dart'; import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/models/patched_application.dart'; import 'package:revanced_manager/models/patched_application.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/widgets/appInfoView/app_info_view.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';
import 'package:revanced_manager/ui/widgets/shared/open_container_wrapper.dart';
class InstalledAppsCard extends StatelessWidget { class InstalledAppsCard extends StatelessWidget {
InstalledAppsCard({Key? key}) : super(key: key); InstalledAppsCard({Key? key}) : super(key: key);
@ -41,16 +39,14 @@ class InstalledAppsCard extends StatelessWidget {
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
children: apps children: apps
.map( .map(
(app) => OpenContainerWrapper( (app) => ApplicationItem(
openBuilder: (_, __) => AppInfoView(app: app), icon: app.icon,
closedBuilder: (_, openContainer) => ApplicationItem( name: app.name,
icon: app.icon, patchDate: app.patchDate,
name: app.name, changelog: app.changelog,
patchDate: app.patchDate, isUpdatableApp: false,
changelog: app.changelog, onPressed: () =>
isUpdatableApp: false, locator<HomeViewModel>().navigateToAppInfo(app),
onPressed: openContainer,
),
), ),
) )
.toList(), .toList(),