From 545cbc274bbd0fe569068e3a64abbbd5164ffe71 Mon Sep 17 00:00:00 2001 From: mrhcjones <150591975+TheHCJ@users.noreply.github.com> Date: Wed, 10 Apr 2024 12:07:38 +0100 Subject: [PATCH] add: improved import --- lib/subscriptions/_import.dart | 119 +++++++++++++-------------- lib/subscriptions/_list.dart | 10 --- lib/subscriptions/subscriptions.dart | 14 ++-- 3 files changed, 64 insertions(+), 79 deletions(-) diff --git a/lib/subscriptions/_import.dart b/lib/subscriptions/_import.dart index bc1a6fd..0d689d0 100644 --- a/lib/subscriptions/_import.dart +++ b/lib/subscriptions/_import.dart @@ -86,13 +86,10 @@ class _SubscriptionImportScreenState extends State { @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( + return AlertDialog( title: Text(L10n.of(context).import_subscriptions), - ), - body: Container( - margin: const EdgeInsets.all(16), - child: Column( + content: Column( + mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( @@ -112,7 +109,7 @@ class _SubscriptionImportScreenState extends State { padding: const EdgeInsets.only(bottom: 16), child: TextFormField( decoration: InputDecoration( - border: const UnderlineInputBorder(), + border: const OutlineInputBorder(), hintText: L10n.of(context).enter_your_twitter_username, helperText: L10n.of(context).your_profile_must_be_public_otherwise_the_import_will_not_work, prefixText: '@', @@ -127,66 +124,64 @@ class _SubscriptionImportScreenState extends State { }, ), ), - Expanded( - child: Center( - child: StreamBuilder( - stream: _streamController?.stream, - builder: (context, snapshot) { - var error = snapshot.error; - if (error != null) { - return FullPageErrorWidget( - error: snapshot.error, - stackTrace: snapshot.stackTrace, - prefix: L10n.of(context).unable_to_import, - ); - } - - switch (snapshot.connectionState) { - case ConnectionState.none: - case ConnectionState.waiting: - return Container(); - case ConnectionState.active: - return Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Padding( - padding: EdgeInsets.all(16), - child: CircularProgressIndicator(), + Center( + child: StreamBuilder( + stream: _streamController?.stream, + builder: (context, snapshot) { + var error = snapshot.error; + if (error != null) { + return FullPageErrorWidget( + error: snapshot.error, + stackTrace: snapshot.stackTrace, + prefix: L10n.of(context).unable_to_import, + ); + } + + switch (snapshot.connectionState) { + case ConnectionState.none: + case ConnectionState.waiting: + return Container(); + case ConnectionState.active: + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Padding( + padding: EdgeInsets.all(16), + child: CircularProgressIndicator(), + ), + Text( + L10n.of(context).imported_snapshot_data_users_so_far( + snapshot.data.toString(), ), - Text( - L10n.of(context).imported_snapshot_data_users_so_far( - snapshot.data.toString(), - ), - ) - ], - ); - default: - return Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Padding( - padding: EdgeInsets.all(16), - child: Icon(Icons.check_circle, size: 36, color: Colors.green), + ) + ], + ); + default: + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Padding( + padding: EdgeInsets.all(16), + child: Icon(Icons.check_circle, size: 36, color: Colors.green), + ), + Text( + L10n.of(context).finished_with_snapshotData_users( + snapshot.data.toString(), ), - Text( - L10n.of(context).finished_with_snapshotData_users( - snapshot.data.toString(), - ), - ) - ], - ); - } - }, - ), + ) + ], + ); + } + }, ), ), ], ), - ), - floatingActionButton: FloatingActionButton( - child: const Icon(Icons.cloud_download), - onPressed: () async => await importSubscriptions(), - ), - ); + actions: [ + TextButton( + child: Text(L10n.of(context).import_from_twitter), + onPressed: () async => await importSubscriptions(), + ), + ]); } } diff --git a/lib/subscriptions/_list.dart b/lib/subscriptions/_list.dart index e022a58..78dcb12 100644 --- a/lib/subscriptions/_list.dart +++ b/lib/subscriptions/_list.dart @@ -49,16 +49,6 @@ class _SubscriptionUsersState extends State { color: Theme.of(context).hintColor, )), ), - Container( - margin: const EdgeInsets.symmetric(vertical: 8), - child: ElevatedButton( - child: Text(L10n.of(context).import_from_twitter), - onPressed: () => showModalBottomSheet( - context: context, - builder: (context) => const SubscriptionImportScreen(), - ), - ), - ) ])); } diff --git a/lib/subscriptions/subscriptions.dart b/lib/subscriptions/subscriptions.dart index c44404e..ea07246 100644 --- a/lib/subscriptions/subscriptions.dart +++ b/lib/subscriptions/subscriptions.dart @@ -18,13 +18,6 @@ class SubscriptionsScreen extends StatelessWidget { appBar: AppBar( title: Text(L10n.current.subscriptions), actions: [ - IconButton( - icon: const Icon(Icons.cloud_download), - onPressed: () => showModalBottomSheet( - context: context, - builder: (context) => const SubscriptionImportScreen(), - ), - ), IconButton( icon: const Icon(Icons.refresh), onPressed: () => context.read().refreshSubscriptionData(), @@ -65,6 +58,13 @@ class SubscriptionsScreen extends StatelessWidget { ) ], ), + floatingActionButton: FloatingActionButton( + child: const Icon(Icons.cloud_download), + onPressed: () => showDialog( + context: context, + builder: (context) => const SubscriptionImportScreen(), + ), + ), ); } }