refactor: split into smaller widgets.

This commit is contained in:
Aunali321 2022-08-01 17:00:06 +05:30
parent 6bf7411074
commit 0e07a0da68
5 changed files with 115 additions and 105 deletions

View file

@ -1,8 +1,7 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager_flutter/theme.dart';
import 'package:revanced_manager_flutter/ui/screens/home_screen.dart';
import 'package:revanced_manager_flutter/ui/screens/patcher_screen.dart';
import 'constants.dart';
void main() {
runApp(const MyApp());
@ -16,49 +15,8 @@ class MyApp extends StatelessWidget {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'ReVanced Manager',
theme: ThemeData.light().copyWith(
navigationBarTheme: NavigationBarThemeData(
labelTextStyle: MaterialStateProperty.all(
GoogleFonts.roboto(
fontSize: 12,
),
),
),
backgroundColor: Colors.red,
textTheme: GoogleFonts.interTextTheme(
Theme.of(context).textTheme,
),
useMaterial3: true,
colorScheme: const ColorScheme.light(
primary: purple40,
secondary: purpleGrey40,
tertiary: pink40,
background: Colors.red,
),
),
darkTheme: ThemeData.dark().copyWith(
navigationBarTheme: NavigationBarThemeData(
iconTheme: MaterialStateProperty.all(const IconThemeData(
color: Colors.white,
)),
indicatorColor: const Color(0xff223144),
backgroundColor: const Color(0x1b222b6b),
labelTextStyle: MaterialStateProperty.all(
GoogleFonts.roboto(
fontSize: 12,
),
),
),
backgroundColor: Colors.red,
useMaterial3: true,
scaffoldBackgroundColor: const Color(0xff0A0D11),
colorScheme: const ColorScheme.dark(
primary: purple80,
secondary: purpleGrey80,
tertiary: pink80,
background: Colors.red,
),
),
theme: lightTheme,
darkTheme: darkTheme,
home: const Navigation(),
);
}
@ -74,8 +32,8 @@ class Navigation extends StatefulWidget {
class _NavigationState extends State<Navigation> {
int currentPageIndex = 0;
final List<Widget> screens = [
HomeScreen(),
PatcherScreen(),
const HomeScreen(),
const PatcherScreen(),
];
@override

45
lib/theme.dart Normal file
View file

@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager_flutter/constants.dart';
var lightTheme = ThemeData.light().copyWith(
navigationBarTheme: NavigationBarThemeData(
labelTextStyle: MaterialStateProperty.all(
GoogleFonts.roboto(
fontSize: 12,
),
),
),
backgroundColor: Colors.red,
useMaterial3: true,
colorScheme: const ColorScheme.light(
primary: purple40,
secondary: purpleGrey40,
tertiary: pink40,
background: Colors.red,
),
);
var darkTheme = ThemeData.dark().copyWith(
navigationBarTheme: NavigationBarThemeData(
iconTheme: MaterialStateProperty.all(const IconThemeData(
color: Colors.white,
)),
indicatorColor: const Color(0xff223144),
backgroundColor: const Color(0x1b222b6b),
labelTextStyle: MaterialStateProperty.all(
GoogleFonts.roboto(
fontSize: 12,
),
),
),
backgroundColor: Colors.red,
useMaterial3: true,
scaffoldBackgroundColor: const Color(0xff0A0D11),
colorScheme: const ColorScheme.dark(
primary: purple80,
secondary: purpleGrey80,
tertiary: pink80,
background: Colors.red,
),
);

View file

@ -1,12 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter/src/foundation/key.dart';
import 'package:flutter/src/widgets/framework.dart';
class PatcherScreen extends StatelessWidget {
const PatcherScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold();
return const Scaffold();
}
}

View file

@ -0,0 +1,51 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager_flutter/constants.dart';
import 'package:revanced_manager_flutter/ui/widgets/patch_text_button.dart';
class AppDetails extends StatelessWidget {
final String asset;
final String name;
final String releaseDate;
const AppDetails({
Key? key,
required this.asset,
required this.name,
required this.releaseDate,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final isSVG = asset.endsWith(".svg");
return ListTile(
horizontalTitleGap: 12.0,
leading: isSVG
? SvgPicture.asset(
asset,
height: 24,
width: 24,
)
: Image.asset(
asset,
height: 39,
width: 39,
),
title: Text(
name,
style: GoogleFonts.roboto(
color: const Color(0xff7792BA),
),
),
subtitle: Text(
releaseDate,
style: robotoTextStyle,
),
trailing: PatchTextButton(
text: "Patch",
onPressed: () {},
),
);
}
}

View file

@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager_flutter/constants.dart';
import 'package:revanced_manager_flutter/ui/widgets/app_details.dart';
import 'package:revanced_manager_flutter/ui/widgets/patch_text_button.dart';
class AvailableUpdatesWidget extends StatelessWidget {
@ -30,63 +29,22 @@ class AvailableUpdatesWidget extends StatelessWidget {
fontWeight: FontWeight.w500,
),
),
TextButton(
PatchTextButton(
text: "Patch all",
onPressed: () {},
style: TextButton.styleFrom(
primary: Colors.white,
backgroundColor: const Color(0xff7792BA),
padding: const EdgeInsets.symmetric(
vertical: 8,
horizontal: 18,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24),
),
),
child: const Text("Patch all"),
)
backgroundColor: const Color(0xff7792BA),
),
],
),
ListTile(
horizontalTitleGap: 12.0,
leading: SvgPicture.asset(
"lib/assets/images/revanced.svg",
height: 26,
width: 26,
),
title: Text(
"ReVanced",
style: GoogleFonts.roboto(
color: const Color(0xff7792BA),
),
),
subtitle: Text(
"Released 2 days ago",
style: robotoTextStyle,
),
trailing: PatchTextButton(
text: "Patch",
onPressed: () {},
),
const AppDetails(
asset: "lib/assets/images/revanced.svg",
name: "ReVanced",
releaseDate: "2 days ago",
),
ListTile(
horizontalTitleGap: 12.0,
leading: const Image(
image: AssetImage("lib/assets/images/reddit.png"),
height: 39,
width: 39,
),
title: Text(
"ReReddit",
style: GoogleFonts.roboto(
color: const Color(0xff7792BA),
),
),
subtitle: Text("Released 1 month ago", style: robotoTextStyle),
trailing: PatchTextButton(
text: "Patch",
onPressed: () {},
),
const AppDetails(
asset: "lib/assets/images/reddit.png",
name: "ReReddit",
releaseDate: "Released 1 month ago",
),
const SizedBox(height: 4),
Text(