From 06b90244b43a200e16cda4a1da906997ace235b5 Mon Sep 17 00:00:00 2001 From: Aunali321 Date: Tue, 23 Aug 2022 22:21:11 +0530 Subject: [PATCH] feat: expandable card for social media cards. --- assets/i18n/en.json | 3 + .../settingsView/social_media_cards.dart | 248 ++++++++++-------- 2 files changed, 137 insertions(+), 114 deletions(-) diff --git a/assets/i18n/en.json b/assets/i18n/en.json index aa459c52..f5662ae1 100644 --- a/assets/i18n/en.json +++ b/assets/i18n/en.json @@ -45,6 +45,9 @@ "widgetSubtitle": "Select an application first.", "widgetEmptySubtitle": "No patches selected." }, + "socialMediaCards": { + "widgetTitle": "Social Media" + }, "appSelectorView": { "searchBarHint": "Search applications", "fabButton": "Storage", diff --git a/lib/ui/widgets/settingsView/social_media_cards.dart b/lib/ui/widgets/settingsView/social_media_cards.dart index 53916545..ab5f2ca1 100644 --- a/lib/ui/widgets/settingsView/social_media_cards.dart +++ b/lib/ui/widgets/settingsView/social_media_cards.dart @@ -1,4 +1,7 @@ +import 'package:expandable/expandable.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_i18n/widgets/I18nText.dart'; +import 'package:revanced_manager/constants.dart'; import 'package:url_launcher/url_launcher.dart'; class SocialMediaCards extends StatelessWidget { @@ -6,121 +9,138 @@ class SocialMediaCards extends StatelessWidget { @override Widget build(BuildContext context) { - return Card( - color: Theme.of(context).backgroundColor, - child: Column( - children: [ - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/github.png', - height: 24, - width: 24, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('GitHub'), - subtitle: const Text('github.com/revanced'), - onTap: () => launchUrl( - Uri.parse('https://github.com/revanced'), - mode: LaunchMode.externalApplication, - ), - ), - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - Icons.discord, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('Discord'), - subtitle: const Text('discord.gg/revanced'), - onTap: () => launchUrl( - Uri.parse('https://discord.gg/3E2pTWR4Yd'), - mode: LaunchMode.externalApplication, - ), - ), - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - Icons.telegram, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('Telegram'), - subtitle: const Text('t.me/app_revanced'), - onTap: () => launchUrl( - Uri.parse('https://t.me/app_revanced'), - mode: LaunchMode.externalApplication, - ), - ), - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - Icons.reddit, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('Reddit'), - subtitle: const Text('r/revancedapp'), - onTap: () => launchUrl( - Uri.parse('https://reddit.com/r/revancedapp'), - mode: LaunchMode.externalApplication, - ), - ), - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/twitter.png', - height: 24, - width: 24, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('Twitter'), - subtitle: const Text('@revancedapp'), - onTap: () => launchUrl( - Uri.parse('https://twitter.com/@revancedapp'), - mode: LaunchMode.externalApplication, - ), - ), - ListTile( - contentPadding: - const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), - leading: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/youtube.png', - height: 24, - width: 24, - color: Theme.of(context).iconTheme.color, - ), - ), - title: const Text('YouTube'), - subtitle: const Text('youtube.com/revanced'), - onTap: () => launchUrl( - Uri.parse( - 'https://www.youtube.com/channel/UCLktAUh5Gza9zAJBStwxNdw'), - mode: LaunchMode.externalApplication, - ), - ), - ], + return ExpandablePanel( + theme: ExpandableThemeData( + hasIcon: true, + iconColor: Theme.of(context).iconTheme.color, + animationDuration: const Duration(milliseconds: 450), ), + header: SizedBox( + width: double.infinity, + child: ListTile( + title: I18nText( + 'socialMediaCards.widgetTitle', + child: Text('', style: kSettingItemTextStyle), + ), + ), + ), + expanded: Card( + color: Theme.of(context).backgroundColor, + child: Column( + children: [ + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/github.png', + height: 24, + width: 24, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('GitHub'), + subtitle: const Text('github.com/revanced'), + onTap: () => launchUrl( + Uri.parse('https://github.com/revanced'), + mode: LaunchMode.externalApplication, + ), + ), + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + Icons.discord, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('Discord'), + subtitle: const Text('discord.gg/revanced'), + onTap: () => launchUrl( + Uri.parse('https://discord.gg/3E2pTWR4Yd'), + mode: LaunchMode.externalApplication, + ), + ), + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + Icons.telegram, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('Telegram'), + subtitle: const Text('t.me/app_revanced'), + onTap: () => launchUrl( + Uri.parse('https://t.me/app_revanced'), + mode: LaunchMode.externalApplication, + ), + ), + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + Icons.reddit, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('Reddit'), + subtitle: const Text('r/revancedapp'), + onTap: () => launchUrl( + Uri.parse('https://reddit.com/r/revancedapp'), + mode: LaunchMode.externalApplication, + ), + ), + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/twitter.png', + height: 24, + width: 24, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('Twitter'), + subtitle: const Text('@revancedapp'), + onTap: () => launchUrl( + Uri.parse('https://twitter.com/@revancedapp'), + mode: LaunchMode.externalApplication, + ), + ), + ListTile( + contentPadding: + const EdgeInsets.symmetric(horizontal: 16).copyWith(top: 0), + leading: Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/youtube.png', + height: 24, + width: 24, + color: Theme.of(context).iconTheme.color, + ), + ), + title: const Text('YouTube'), + subtitle: const Text('youtube.com/revanced'), + onTap: () => launchUrl( + Uri.parse( + 'https://www.youtube.com/channel/UCLktAUh5Gza9zAJBStwxNdw'), + mode: LaunchMode.externalApplication, + ), + ), + ], + ), + ), + collapsed: const Text(""), ); } }