diff --git a/lib/ui/screens/patcher_screen.dart b/lib/ui/screens/patcher_screen.dart index c06b8122..87afc739 100644 --- a/lib/ui/screens/patcher_screen.dart +++ b/lib/ui/screens/patcher_screen.dart @@ -1,10 +1,58 @@ import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:revanced_manager_flutter/ui/widgets/app_selector_card.dart'; +import 'package:revanced_manager_flutter/ui/widgets/patch_selector_card.dart'; class PatcherScreen extends StatelessWidget { const PatcherScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - return const Scaffold(); + return Scaffold( + floatingActionButton: FloatingActionButton( + onPressed: () {}, + child: const Icon( + Icons.build, + color: Colors.white, + ), + ), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 12), + Text( + "Patcher", + style: GoogleFonts.inter( + fontSize: 28, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 23), + AppSelectorCard( + onPressed: () { + //show snackbar + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + "Select application", + style: GoogleFonts.inter( + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ), + ), + ); + }, + ), + const SizedBox(height: 16), + const PatchSelectorCard(), + ], + ), + ), + ), + ); } } diff --git a/lib/ui/widgets/app_selector_card.dart b/lib/ui/widgets/app_selector_card.dart new file mode 100644 index 00000000..1b63bf12 --- /dev/null +++ b/lib/ui/widgets/app_selector_card.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:revanced_manager_flutter/constants.dart'; + +class AppSelectorCard extends StatelessWidget { + final Function()? onPressed; + const AppSelectorCard({ + Key? key, + this.onPressed, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onPressed, + child: Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: const Color(0xff1B222B), + ), + padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Select application", + style: GoogleFonts.roboto( + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 10), + Text( + "No application selected", + style: robotoTextStyle, + ), + ], + ), + ), + ); + } +} diff --git a/lib/ui/widgets/patch_selector_card.dart b/lib/ui/widgets/patch_selector_card.dart new file mode 100644 index 00000000..1c2c100f --- /dev/null +++ b/lib/ui/widgets/patch_selector_card.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:revanced_manager_flutter/constants.dart'; + +class PatchSelectorCard extends StatelessWidget { + final Function()? onPressed; + const PatchSelectorCard({ + Key? key, + this.onPressed, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onPressed, + child: Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: const Color(0xff1B222B), + ), + padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Select patches", + style: GoogleFonts.roboto( + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 10), + Text( + "Select an application first.", + style: robotoTextStyle, + ), + ], + ), + ), + ); + } +}