fix: code refactoring (#5)

This commit is contained in:
Alberto Ponces
2022-08-18 15:33:33 +01:00
committed by GitHub
parent 6153e1f9e8
commit 389eae1447
31 changed files with 318 additions and 361 deletions

View File

@ -1,25 +1,21 @@
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter_i18n/flutter_i18n.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/constants.dart';
import 'package:revanced_manager/services/patcher_api.dart';
import 'package:revanced_manager/ui/views/app_selector/app_selector_viewmodel.dart';
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
class AppSelectorCard extends StatelessWidget {
final Function()? onPressed;
final Function() onPressed;
final Color? color;
AppSelectorCard({
const AppSelectorCard({
Key? key,
this.onPressed,
required this.onPressed,
this.color = const Color(0xff1B222B),
}) : super(key: key);
final PatcherAPI patcherAPI = locator<PatcherAPI>();
@override
Widget build(BuildContext context) {
return GestureDetector(
@ -36,7 +32,7 @@ class AppSelectorCard extends StatelessWidget {
children: [
const SizedBox(height: 10),
I18nText(
locator<AppSelectorViewModel>().selectedApp == null
locator<PatcherViewModel>().selectedApp == null
? 'appSelectorCard.widgetTitle'
: 'appSelectorCard.widgetTitleSelected',
child: Text(
@ -48,7 +44,7 @@ class AppSelectorCard extends StatelessWidget {
),
),
const SizedBox(height: 10),
locator<AppSelectorViewModel>().selectedApp == null
locator<PatcherViewModel>().selectedApp == null
? I18nText(
'appSelectorCard.widgetSubtitle',
child: Text(
@ -62,11 +58,9 @@ class AppSelectorCard extends StatelessWidget {
height: 16.0,
child: ClipOval(
child: Image.memory(
locator<AppSelectorViewModel>().selectedApp == null
locator<PatcherViewModel>().selectedApp == null
? Uint8List(0)
: locator<AppSelectorViewModel>()
.selectedApp!
.icon,
: locator<PatcherViewModel>().selectedApp!.icon,
fit: BoxFit.cover,
),
),
@ -85,8 +79,8 @@ class AppSelectorCard extends StatelessWidget {
}
String _getAppSelection() {
String name = locator<AppSelectorViewModel>().selectedApp!.name;
String version = locator<AppSelectorViewModel>().selectedApp!.version;
String name = locator<PatcherViewModel>().selectedApp!.name;
String version = locator<PatcherViewModel>().selectedApp!.version;
return '$name (v$version)';
}
}

View File

@ -14,7 +14,7 @@ class ApplicationItem extends StatelessWidget {
final DateTime patchDate;
final String changelog;
final bool isUpdatableApp;
final Function()? onPressed;
final Function() onPressed;
const ApplicationItem({
Key? key,

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/constants.dart';
import 'package:revanced_manager/models/patched_application.dart';
import 'package:revanced_manager/services/github_api.dart';
import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
@ -10,7 +11,7 @@ class AvailableUpdatesCard extends StatelessWidget {
Key? key,
}) : super(key: key);
final GithubAPI githubAPI = GithubAPI();
final GithubAPI _githubAPI = GithubAPI();
@override
Widget build(BuildContext context) {
@ -27,10 +28,10 @@ class AvailableUpdatesCard extends StatelessWidget {
physics: const NeverScrollableScrollPhysics(),
itemCount: snapshot.data!.length,
itemBuilder: (context, index) => FutureBuilder<String>(
future: githubAPI.getChangelog(
future: _githubAPI.getChangelog(
snapshot.data![index],
'revanced',
'revanced-patches',
ghOrg,
patchesRepo,
),
initialData: '',
builder: (context, snapshot2) => ApplicationItem(

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/constants.dart';
import 'package:revanced_manager/models/patched_application.dart';
import 'package:revanced_manager/services/github_api.dart';
import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
@ -10,7 +11,7 @@ class InstalledAppsCard extends StatelessWidget {
Key? key,
}) : super(key: key);
final GithubAPI githubAPI = GithubAPI();
final GithubAPI _githubAPI = GithubAPI();
@override
Widget build(BuildContext context) {
@ -27,10 +28,10 @@ class InstalledAppsCard extends StatelessWidget {
physics: const NeverScrollableScrollPhysics(),
itemCount: snapshot.data!.length,
itemBuilder: (context, index) => FutureBuilder<String>(
future: githubAPI.getChangelog(
future: _githubAPI.getChangelog(
snapshot.data![index],
'revanced',
'revanced-patches',
ghOrg,
patchesRepo,
),
initialData: '',
builder: (context, snapshot2) => ApplicationItem(

View File

@ -6,9 +6,11 @@ import 'package:revanced_manager/constants.dart';
import 'package:revanced_manager/ui/widgets/patch_text_button.dart';
class LatestCommitCard extends StatefulWidget {
final Function() onPressed;
final Color? color;
const LatestCommitCard({
Key? key,
required this.onPressed,
this.color = const Color(0xff1B222B),
}) : super(key: key);
@ -17,7 +19,7 @@ class LatestCommitCard extends StatefulWidget {
}
class _LatestCommitCardState extends State<LatestCommitCard> {
final GithubAPI githubAPI = GithubAPI();
final GithubAPI _githubAPI = GithubAPI();
@override
Widget build(BuildContext context) {
@ -45,10 +47,7 @@ class _LatestCommitCardState extends State<LatestCommitCard> {
),
),
FutureBuilder<String>(
future: githubAPI.latestCommitTime(
'revanced',
'revanced-patcher',
),
future: _githubAPI.latestCommitTime(ghOrg, patcherRepo),
builder: (context, snapshot) => Text(
snapshot.hasData && snapshot.data!.isNotEmpty
? FlutterI18n.translate(
@ -78,10 +77,7 @@ class _LatestCommitCardState extends State<LatestCommitCard> {
),
),
FutureBuilder<String>(
future: githubAPI.latestCommitTime(
'revanced',
'revanced-manager',
),
future: _githubAPI.latestCommitTime(ghOrg, managerRepo),
builder: (context, snapshot) => Text(
snapshot.hasData && snapshot.data!.isNotEmpty
? FlutterI18n.translate(
@ -105,7 +101,7 @@ class _LatestCommitCardState extends State<LatestCommitCard> {
context,
'latestCommitCard.updateButton',
),
onPressed: () => {},
onPressed: widget.onPressed,
backgroundColor: Theme.of(context).colorScheme.secondary,
borderColor: Theme.of(context).colorScheme.secondary,
),

View File

@ -5,10 +5,10 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/theme.dart';
class MagiskButton extends StatelessWidget {
final Function()? onPressed;
final Function() onPressed;
const MagiskButton({
Key? key,
this.onPressed,
required this.onPressed,
}) : super(key: key);
@override

View File

@ -1,7 +1,5 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_viewmodel.dart';
// ignore: must_be_immutable
class PatchItem extends StatefulWidget {
@ -10,6 +8,7 @@ class PatchItem extends StatefulWidget {
final String description;
final String version;
bool isSelected;
final Function(bool) onChanged;
PatchItem({
Key? key,
@ -18,6 +17,7 @@ class PatchItem extends StatefulWidget {
required this.description,
required this.version,
required this.isSelected,
required this.onChanged,
}) : super(key: key);
@override
@ -30,7 +30,7 @@ class _PatchItemState extends State<PatchItem> {
return InkWell(
onTap: () {
setState(() => widget.isSelected = !widget.isSelected);
locator<PatchesSelectorViewModel>().selectPatch(widget);
widget.onChanged(widget.isSelected);
},
child: Container(
decoration: BoxDecoration(
@ -82,7 +82,7 @@ class _PatchItemState extends State<PatchItem> {
activeColor: Colors.blueGrey[500],
onChanged: (newValue) {
setState(() => widget.isSelected = newValue!);
locator<PatchesSelectorViewModel>().selectPatch(widget);
widget.onChanged(widget.isSelected);
},
),
)

View File

@ -4,16 +4,15 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/constants.dart';
import 'package:revanced_manager/models/patch.dart';
import 'package:revanced_manager/ui/views/app_selector/app_selector_viewmodel.dart';
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_viewmodel.dart';
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
class PatchSelectorCard extends StatelessWidget {
final Function()? onPressed;
final Function() onPressed;
final Color? color;
const PatchSelectorCard({
Key? key,
this.onPressed,
required this.onPressed,
this.color = const Color(0xff1B222B),
}) : super(key: key);
@ -32,7 +31,7 @@ class PatchSelectorCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
I18nText(
locator<PatchesSelectorViewModel>().selectedPatches.isEmpty
locator<PatcherViewModel>().selectedPatches.isEmpty
? 'patchSelectorCard.widgetTitle'
: 'patchSelectorCard.widgetTitleSelected',
child: Text(
@ -44,7 +43,7 @@ class PatchSelectorCard extends StatelessWidget {
),
),
const SizedBox(height: 10),
locator<AppSelectorViewModel>().selectedApp == null
locator<PatcherViewModel>().selectedApp == null
? I18nText(
'patchSelectorCard.widgetSubtitle',
child: Text(
@ -52,7 +51,7 @@ class PatchSelectorCard extends StatelessWidget {
style: robotoTextStyle,
),
)
: locator<PatchesSelectorViewModel>().selectedPatches.isEmpty
: locator<PatcherViewModel>().selectedPatches.isEmpty
? I18nText(
'patchSelectorCard.widgetEmptySubtitle',
child: Text(
@ -72,7 +71,7 @@ class PatchSelectorCard extends StatelessWidget {
String _getPatchesSelection() {
String text = '';
for (Patch p in locator<PatchesSelectorViewModel>().selectedPatches) {
for (Patch p in locator<PatcherViewModel>().selectedPatches) {
text += '${p.simpleName} (v${p.version})\n';
}
return text.substring(0, text.length - 1);

View File

@ -5,13 +5,13 @@ import 'package:revanced_manager/theme.dart';
class PatchTextButton extends StatelessWidget {
final String text;
final Function()? onPressed;
final Function() onPressed;
final Color borderColor;
final Color backgroundColor;
const PatchTextButton({
Key? key,
required this.text,
this.onPressed,
required this.onPressed,
this.borderColor = const Color(0xff7792BA),
this.backgroundColor = Colors.transparent,
}) : super(key: key);