mirror of
https://github.com/revanced/revanced-manager.git
synced 2025-06-12 04:37:37 +02:00
fix: code refactoring (#5)
This commit is contained in:
@ -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)';
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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(
|
||||
|
@ -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(
|
||||
|
@ -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,
|
||||
),
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
},
|
||||
),
|
||||
)
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user