From 0e07a0da68635863e5c065a4b6babb4ec81775f2 Mon Sep 17 00:00:00 2001 From: Aunali321 Date: Mon, 1 Aug 2022 17:00:06 +0530 Subject: [PATCH] refactor: split into smaller widgets. --- lib/main.dart | 52 ++------------------- lib/theme.dart | 45 ++++++++++++++++++ lib/ui/screens/patcher_screen.dart | 4 +- lib/ui/widgets/app_details.dart | 51 +++++++++++++++++++++ lib/ui/widgets/available_update.dart | 68 ++++++---------------------- 5 files changed, 115 insertions(+), 105 deletions(-) create mode 100644 lib/theme.dart create mode 100644 lib/ui/widgets/app_details.dart diff --git a/lib/main.dart b/lib/main.dart index 86be8b0a..fd601a65 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -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 { int currentPageIndex = 0; final List screens = [ - HomeScreen(), - PatcherScreen(), + const HomeScreen(), + const PatcherScreen(), ]; @override diff --git a/lib/theme.dart b/lib/theme.dart new file mode 100644 index 00000000..c71c3999 --- /dev/null +++ b/lib/theme.dart @@ -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, + ), +); diff --git a/lib/ui/screens/patcher_screen.dart b/lib/ui/screens/patcher_screen.dart index 01f2bffa..c06b8122 100644 --- a/lib/ui/screens/patcher_screen.dart +++ b/lib/ui/screens/patcher_screen.dart @@ -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(); } } diff --git a/lib/ui/widgets/app_details.dart b/lib/ui/widgets/app_details.dart new file mode 100644 index 00000000..bb1e957c --- /dev/null +++ b/lib/ui/widgets/app_details.dart @@ -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: () {}, + ), + ); + } +} diff --git a/lib/ui/widgets/available_update.dart b/lib/ui/widgets/available_update.dart index 9c0f8847..e7757c3f 100644 --- a/lib/ui/widgets/available_update.dart +++ b/lib/ui/widgets/available_update.dart @@ -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(