From 1708bcffc8d972747b2569b3e9bb7f5ed563508c Mon Sep 17 00:00:00 2001 From: OkaykOrhmn Date: Mon, 16 Sep 2024 17:05:18 +0330 Subject: [PATCH] last version 3.3.0 houshvan --- lib/assets/animations/bookmark.gif | Bin 0 -> 341115 bytes lib/constants/assets.dart | 1 + lib/main.dart | 34 +- lib/models/infography/infography_content.dart | 3 + lib/models/news_details_data.dart | 4 + lib/models/overview_data.dart | 3 + lib/models/view/action_sheet_data.dart | 4 +- lib/routes/route_generator.dart | 4 +- lib/services/notification/firebase_api.dart | 2 +- lib/utils/action_sheet.dart | 7 +- lib/views/ai/ai.dart | 12 +- lib/views/ai/ai_chat_page.dart | 10 +- lib/views/ai/ai_chat_state.dart | 14 +- lib/views/ai/widgets/ai_message_bar.dart | 139 +++++---- lib/views/ai/widgets/audio_wave.dart | 47 ++- .../authentication/screens/password.dart | 75 +---- .../authentication/screens/username.dart | 2 +- lib/views/hashtag/hashtag.dart | 1 + lib/views/home/bookmarks/bookmarks.dart | 24 +- lib/views/home/home.dart | 87 +++++- .../home/infography/infography_screen.dart | 28 +- .../home/main/widgets/infography_item.dart | 26 +- lib/views/home/search/search.dart | 1 + lib/views/mentions/mentions.dart | 292 +++++++++--------- lib/views/podcasts/widgets/slider.dart | 28 +- lib/views/podcasts/widgets/tab_bar.dart | 2 +- lib/views/profile/profile.dart | 2 +- lib/views/web/web_view.dart | 31 +- lib/views/widgets/categories_list.dart | 6 +- lib/views/widgets/liked_button.dart | 81 +++-- lib/views/widgets/logo_app_bar.dart | 29 +- lib/views/widgets/overview/multitype.dart | 1 + lib/views/widgets/overview/news.dart | 4 + lib/views/widgets/overview/radar.dart | 4 + lib/views/widgets/search_app_bar.dart | 29 +- .../state_handlers/sliver_state_handler.dart | 5 +- pubspec.yaml | 2 +- 37 files changed, 582 insertions(+), 462 deletions(-) create mode 100644 lib/assets/animations/bookmark.gif diff --git a/lib/assets/animations/bookmark.gif b/lib/assets/animations/bookmark.gif new file mode 100644 index 0000000000000000000000000000000000000000..9edbcf548508f7c6ed94f3572776da6717d1b974 GIT binary patch literal 341115 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 Gr&a}TWQ@~FzJ2L8*F%TnQa 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�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 RI9k7ApJzqxyTa>NYXA;t@Z '$_baseLogosPath/studio-$_themeSuffix.svg'; static String loadingAnimation = '$_baseAnimationsPath/loading.gif'; + static String bookmarkAnimation = '$_baseAnimationsPath/bookmark.gif'; static String get businessCategoryIcon => '$_baseCategoriesPath/business-$_themeSuffix.svg'; diff --git a/lib/main.dart b/lib/main.dart index 24a782b..861dcdb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -61,28 +61,24 @@ Future _backgroundCallbackHomeWidget(Uri? uri) async { } void main() async { - await runZonedGuarded(() async { - WidgetsFlutterBinding.ensureInitialized(); + WidgetsFlutterBinding.ensureInitialized(); - try { - if (!kIsWeb) { - HomeWidget.registerBackgroundCallback(_backgroundCallbackHomeWidget); - HomeWidget.registerInteractivityCallback(_backgroundCallbackHomeWidget); - await NotificationService.initializeNotification(); - } - - FirebaseMessaging.onBackgroundMessage(_initPushNotification); - await Firebase.initializeApp( - options: DefaultFirebaseOptions.currentPlatform); - await FirebaseApi().initNotification(); - } catch (e) { - debugPrint; + try { + if (!kIsWeb) { + HomeWidget.registerBackgroundCallback(_backgroundCallbackHomeWidget); + HomeWidget.registerInteractivityCallback(_backgroundCallbackHomeWidget); + await NotificationService.initializeNotification(); } - runApp(const Didvan()); - }, (error, stack) async { - error.printError(); - }); + FirebaseMessaging.onBackgroundMessage(_initPushNotification); + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform); + await FirebaseApi().initNotification(); + } catch (e) { + debugPrint; + } + + runApp(const Didvan()); } class Didvan extends StatefulWidget { diff --git a/lib/models/infography/infography_content.dart b/lib/models/infography/infography_content.dart index 5f9efad..d91b1c2 100644 --- a/lib/models/infography/infography_content.dart +++ b/lib/models/infography/infography_content.dart @@ -23,6 +23,7 @@ class Content { final String createdAt; bool marked; bool liked; + int likes; final List tags; @@ -30,6 +31,7 @@ class Content { {required this.id, required this.marked, required this.liked, + required this.likes, required this.createdAt, required this.title, required this.image, @@ -41,6 +43,7 @@ class Content { id: json['id'], marked: json['marked'], liked: json['liked'], + likes: json['likes'], createdAt: json['createdAt'], title: json['title'], image: json['image'], diff --git a/lib/models/news_details_data.dart b/lib/models/news_details_data.dart index bc11421..cfab02d 100644 --- a/lib/models/news_details_data.dart +++ b/lib/models/news_details_data.dart @@ -10,6 +10,7 @@ class NewsDetailsData { final String createdAt; bool marked; bool liked; + int likes; int comments; final int order; final List tags; @@ -25,6 +26,7 @@ class NewsDetailsData { required this.createdAt, required this.marked, required this.liked, + required this.likes, required this.comments, required this.tags, required this.contents, @@ -41,6 +43,7 @@ class NewsDetailsData { createdAt: json['createdAt'], marked: json['marked'], liked: json['liked'] ?? false, + likes: json['likes'], comments: json['comments'], order: json['order'], tags: List.from(json['tags'].map((tag) => Tag.fromJson(tag))), @@ -59,6 +62,7 @@ class NewsDetailsData { 'createdAt': createdAt, 'marked': marked, 'liked': liked, + 'likes': likes, 'comments': comments, 'tags': tags.map((e) => e.toJson()).toList(), 'contents': contents.map((e) => e.toJson()).toList(), diff --git a/lib/models/overview_data.dart b/lib/models/overview_data.dart index 2855509..169fdf9 100644 --- a/lib/models/overview_data.dart +++ b/lib/models/overview_data.dart @@ -20,6 +20,7 @@ class OverviewData { int comments; bool marked; bool liked; + int likes; final List? categories; OverviewData({ @@ -31,6 +32,7 @@ class OverviewData { required this.type, required this.marked, required this.liked, + required this.likes, required this.comments, required this.forManagers, this.category, @@ -87,6 +89,7 @@ class OverviewData { type: json['type'] ?? '', marked: json['marked'] ?? true, liked: json['liked'] ?? true, + likes: json['likes'] ?? 0, link: json['link'], iframe: json['iframe'], categories: json['categories'] != null diff --git a/lib/models/view/action_sheet_data.dart b/lib/models/view/action_sheet_data.dart index e463af9..4f3c2d5 100644 --- a/lib/models/view/action_sheet_data.dart +++ b/lib/models/view/action_sheet_data.dart @@ -4,8 +4,8 @@ class ActionSheetData { final Widget content; final String? confrimTitle; final String? dismissTitle; - final VoidCallback? onConfirmed; - final VoidCallback? onDismissed; + final Function()? onConfirmed; + final Function()? onDismissed; final String? title; final bool hasPadding; final IconData? titleIcon; diff --git a/lib/routes/route_generator.dart b/lib/routes/route_generator.dart index 6c32ec3..5d75759 100644 --- a/lib/routes/route_generator.dart +++ b/lib/routes/route_generator.dart @@ -132,7 +132,9 @@ class RouteGenerator { ChangeNotifierProvider( create: (context) => NewStatisticState()) ], - child: const Home(), + child: Home( + showDialogs: settings.arguments as bool?, + ), ), ); case Routes.editProfile: diff --git a/lib/services/notification/firebase_api.dart b/lib/services/notification/firebase_api.dart index 6581c95..21786e0 100644 --- a/lib/services/notification/firebase_api.dart +++ b/lib/services/notification/firebase_api.dart @@ -20,7 +20,7 @@ class FirebaseApi { e.printError(); } - await _firebaseMessaging.requestPermission( + _firebaseMessaging.requestPermission( alert: true, announcement: true, badge: true, diff --git a/lib/utils/action_sheet.dart b/lib/utils/action_sheet.dart index 9f440a1..86677a9 100644 --- a/lib/utils/action_sheet.dart +++ b/lib/utils/action_sheet.dart @@ -169,8 +169,8 @@ class ActionSheetUtils { child: DidvanButton( style: ButtonStyleMode.primary, onPressed: () { - Navigator.of(context).pop(); data.onConfirmed?.call(); + pop(); }, title: data.confrimTitle ?? 'تایید', ), @@ -251,7 +251,10 @@ class ActionSheetUtils { if (data.hasDismissButton) Expanded( child: DidvanButton( - onPressed: data.onDismissed ?? () => pop(), + onPressed: () { + data.onDismissed?.call(); + pop(); + }, title: data.dismissTitle ?? 'بازگشت', style: ButtonStyleMode.flat, ), diff --git a/lib/views/ai/ai.dart b/lib/views/ai/ai.dart index 36024e5..20e07a7 100644 --- a/lib/views/ai/ai.dart +++ b/lib/views/ai/ai.dart @@ -58,7 +58,7 @@ class _AiState extends State { Column( children: [ const SizedBox( - height: 12, + height: 24, ), Icon( DidvanIcons.ai_solid, @@ -134,16 +134,6 @@ class _AiState extends State { const SizedBox( width: 8, ), - Container( - width: 32, - height: 32, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Theme.of(context).colorScheme.border), - child: const Icon( - DidvanIcons.mic_regular, - ), - ), Expanded( child: Padding( padding: const EdgeInsets.symmetric( diff --git a/lib/views/ai/ai_chat_page.dart b/lib/views/ai/ai_chat_page.dart index 659c98c..bdcb2d7 100644 --- a/lib/views/ai/ai_chat_page.dart +++ b/lib/views/ai/ai_chat_page.dart @@ -409,9 +409,13 @@ class _AiChatPageState extends State { }, ); }), - SpinKitThreeBounce( - color: Theme.of(context).colorScheme.primary, - size: 18, + Padding( + padding: + const EdgeInsets.symmetric(vertical: 8.0), + child: SpinKitThreeBounce( + color: Theme.of(context).colorScheme.primary, + size: 18, + ), ) ], ) diff --git a/lib/views/ai/ai_chat_state.dart b/lib/views/ai/ai_chat_state.dart index 82ad607..a7e3f5e 100644 --- a/lib/views/ai/ai_chat_state.dart +++ b/lib/views/ai/ai_chat_state.dart @@ -34,11 +34,6 @@ class AiChatState extends CoreProvier { FilesModel? file; TextEditingController message = TextEditingController(); - @override - void dispose() { - super.dispose(); - } - Future _scrolledEnd() async { WidgetsBinding.instance.addPostFrameCallback((_) async { await scrollController.animateTo( @@ -166,12 +161,8 @@ class AiChatState extends CoreProvier { file = null; update(); - final stream = res - .transform(utf8.decoder) - .transform(const LineSplitter()); // <--- Add this line - - final r = stream.listen((str) { - // var str = utf8.decode(value); + final r = res.listen((value) async { + var str = utf8.decode(value); if (!kIsWeb) { if (str.contains('{{{')) { dataMessgae += str; @@ -197,6 +188,7 @@ class AiChatState extends CoreProvier { } } messageOnstream.value = Stream.value(responseMessgae); + print("responseMessgae: $str"); // update(); }); diff --git a/lib/views/ai/widgets/ai_message_bar.dart b/lib/views/ai/widgets/ai_message_bar.dart index 953e6b7..2063910 100644 --- a/lib/views/ai/widgets/ai_message_bar.dart +++ b/lib/views/ai/widgets/ai_message_bar.dart @@ -27,7 +27,6 @@ import 'package:get/get.dart'; import 'package:image_cropper/image_cropper.dart'; import 'package:image_picker/image_picker.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:permission_handler/permission_handler.dart'; import 'package:persian_number_utility/persian_number_utility.dart'; import 'package:provider/provider.dart'; import 'package:record/record.dart'; @@ -161,23 +160,25 @@ class _AiMessageBarState extends State { FilePickerResult? result = await MediaService.pickPdfFile(); if (result != null) { - // if (kIsWeb) { - // Uint8List bytes = result.files.first - // .bytes!; // Access the bytes property + if (kIsWeb) { + Uint8List? bytes = result.files.first + .bytes; // Access the bytes property + String? name = result.files.first.name; - // File file = File.fromRawPath(bytes); - // state.file = FilesModel(file.path, - // name: result.files.first.name, - // bytes: bytes, - // audio: false, - // image: false); - // print(result.files.first.name); - // } else { - state.file = FilesModel( - result.files.single.path!, + // Store bytes and file name directly in your state or model + state.file = FilesModel( + '', // No need for a file path on web + name: name, + bytes: bytes, audio: false, - image: false); - // } + image: false, + ); + } else { + state.file = FilesModel( + result.files.single.path!, + audio: false, + image: false); + } openAttach = false; } @@ -243,44 +244,45 @@ class _AiMessageBarState extends State { ); }, ), - if (historyState.bot!.attachmentType! - .contains('audio')) - attachBtn( - title: "صوت", - icon: CupertinoIcons.music_note_2, - color: Colors.indigoAccent, - click: () async { - MediaService.onLoadingPickFile(context); + if (!kIsWeb || !Platform.isIOS) + if (historyState.bot!.attachmentType! + .contains('audio')) + attachBtn( + title: "صوت", + icon: CupertinoIcons.music_note_2, + color: Colors.indigoAccent, + click: () async { + MediaService.onLoadingPickFile(context); - FilePickerResult? result = - await MediaService.pickAudioFile(); - if (result != null) { - if (kIsWeb) { - Uint8List bytes = result.files.first - .bytes!; // Access the bytes property + FilePickerResult? result = + await MediaService.pickAudioFile(); + if (result != null) { + if (kIsWeb) { + Uint8List bytes = result.files.first + .bytes!; // Access the bytes property - File file = File.fromRawPath(bytes); + File file = File.fromRawPath(bytes); - state.file = FilesModel(file.path, - name: result.files.first.name, - bytes: bytes, - audio: true, - image: false); - print(result.files.first.name); - } else { - state.file = FilesModel( - result.files.single.path!, - audio: true, - image: false); + state.file = FilesModel(file.path, + name: result.files.first.name, + bytes: bytes, + audio: true, + image: false); + print(result.files.first.name); + } else { + state.file = FilesModel( + result.files.single.path!, + audio: true, + image: false); + } + openAttach = false; } - openAttach = false; - } - await Future.delayed( - Duration.zero, - () => ActionSheetUtils(context).pop(), - ); - }, - ) + await Future.delayed( + Duration.zero, + () => ActionSheetUtils(context).pop(), + ); + }, + ) ], ), )), @@ -319,7 +321,8 @@ class _AiMessageBarState extends State { Padding( padding: const EdgeInsets.only( bottom: 8.0), - child: (snapshot.hasData && + child: (!kIsWeb && + snapshot.hasData && snapshot.data! != RecordState.stop) ? MessageBarBtn( @@ -342,7 +345,9 @@ class _AiMessageBarState extends State { state.update(); }, ) - : widget.bot.attachmentType! + : (!kIsWeb || !Platform.isIOS) && + widget.bot + .attachmentType! .contains( 'audio') && value.isEmpty && @@ -523,15 +528,27 @@ class _AiMessageBarState extends State { mainAxisAlignment: MainAxisAlignment .center, - children: List - .generate( - 3, - (index) => - SpinKitWave( - color: Theme.of(context).colorScheme.primary.withOpacity(0.4), - size: 32, - itemCount: 10, - ))), + children: List.generate( + 4, + (index) => snapshot.data! == RecordState.pause + ? Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate( + 8, + (index) => Padding( + padding: const EdgeInsets.symmetric(horizontal: 1.0, vertical: 12), + child: Container( + width: 3, + height: 8, + decoration: BoxDecoration(color: Theme.of(context).colorScheme.primary.withOpacity(0.4)), + ), + )), + ) + : SpinKitWave( + color: Theme.of(context).colorScheme.primary.withOpacity(0.4), + size: 32, + itemCount: 10, + ))), ), ValueListenableBuilder< int>( diff --git a/lib/views/ai/widgets/audio_wave.dart b/lib/views/ai/widgets/audio_wave.dart index 884272a..9f644ae 100644 --- a/lib/views/ai/widgets/audio_wave.dart +++ b/lib/views/ai/widgets/audio_wave.dart @@ -11,6 +11,7 @@ import 'package:didvan/views/ai/widgets/message_bar_btn.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:get/get.dart'; import 'package:just_audio/just_audio.dart'; @@ -35,6 +36,7 @@ class _AudioWaveState extends State { double currentPosition = 0; bool loading = true; bool faile = false; + bool onChanging = false; @override void initState() { @@ -56,7 +58,7 @@ class _AudioWaveState extends State { void setRandoms() { for (var i = 0; i < itemCount; i++) { randoms.value.add(0); - randomsDisable.value.add(2 + Random().nextDouble() * (42 - 2)); + randomsDisable.value.add(1 + Random().nextDouble() * (38 - 1)); } } @@ -94,7 +96,7 @@ class _AudioWaveState extends State { Future listeners() async { audioPlayer.positionStream.listen((position) async { - if (randomsDisable.value.isEmpty) return; + if (randomsDisable.value.isEmpty || onChanging) return; try { for (var i = 0; i < itemCount; i++) { @@ -219,12 +221,9 @@ class _AudioWaveState extends State { .primary .withOpacity(0.4)), if (totalDuration != Duration.zero) - Opacity( - opacity: 0, - child: Container( - width: 12, - color: Colors.transparent - .withOpacity(1), + Positioned.fill( + child: Opacity( + opacity: 0, child: Theme( data: Theme.of(context) .copyWith( @@ -252,22 +251,22 @@ class _AudioWaveState extends State { // audioPlayer.pause(); }, onChanged: (value) { - for (var i = 0; - i < itemCount; - i++) { - if (i < - ((value * 40) / - totalDuration - .inMilliseconds)) { - final ran = - randomsDisable - .value[i]; - randoms.value[i] = - ran; - } else { - randoms.value[i] = 0; - } - } + // for (var i = 0; + // i < itemCount; + // i++) { + // if (i < + // ((value * 40) / + // totalDuration + // .inMilliseconds)) { + // final ran = + // randomsDisable + // .value[i]; + // randoms.value[i] = + // ran; + // } else { + // randoms.value[i] = 0; + // } + // } setState(() { currentPosition = value; }); diff --git a/lib/views/authentication/screens/password.dart b/lib/views/authentication/screens/password.dart index 5145a15..872a919 100644 --- a/lib/views/authentication/screens/password.dart +++ b/lib/views/authentication/screens/password.dart @@ -80,78 +80,11 @@ class _PasswordInputState extends State { await ServerDataProvider.getData(); if (mounted) { - Future.delayed(Duration.zero, - () => Navigator.of(context).pushReplacementNamed(Routes.home)); + await Future.delayed( + Duration.zero, + () => Navigator.of(context) + .pushReplacementNamed(Routes.home, arguments: true)); } - - _showResetPasswordDialog(); } } - - void _showResetPasswordDialog() { - ActionSheetUtils(context).openDialog( - data: ActionSheetData( - content: const DidvanText( - 'خوش آمدید!\nبرای امنیت بیشتر، رمز عبور خود را تغییر دهید.', - ), - onConfirmed: () => Navigator.of(navigatorKey.currentContext!).pushNamed( - Routes.authenticaion, - arguments: true, - ), - isBackgroundDropBlur: false, - confrimTitle: 'تغییر رمز عبور', - onDismissed: Navigator.of(navigatorKey.currentContext!).pop, - dismissTitle: 'بعدا', - ), - ); - _showCustomizeDialog(); - } - - void _showCustomizeDialog() { - ActionSheetUtils(context).openDialog( - data: ActionSheetData( - backgroundColor: Theme.of(context).colorScheme.background, - isBackgroundDropBlur: true, - content: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - InkWrapper( - onPressed: Navigator.of(navigatorKey.currentContext!).pop, - child: const Icon( - DidvanIcons.close_solid, - size: 24, - ), - ), - DidvanText( - 'شخصی سازی محتوا', - style: Theme.of(context).textTheme.displaySmall, - color: Theme.of(context).colorScheme.text, - ), - const InkWrapper( - child: Icon( - DidvanIcons.close_regular, - size: 24, - color: Colors.transparent, - ), - ), - ], - ), - const SizedBox( - height: 12, - ), - const DidvanText( - "کاربر گرامی\nلطفا جهت شخصی‌سازی و استفاده بهتر از برنامه، دسته‌بندی‌های مورد علاقه خود و زمان دریافت اعلانات را انتخاب نمایید.") - ], - ), - hasDismissButton: false, - onConfirmed: () => Navigator.of(navigatorKey.currentContext!).pushNamed( - Routes.favouritesStep, - arguments: {"toTimer": true}, - ), - confrimTitle: 'تایید', - ), - ); - } } diff --git a/lib/views/authentication/screens/username.dart b/lib/views/authentication/screens/username.dart index 16cde21..23ccb2a 100644 --- a/lib/views/authentication/screens/username.dart +++ b/lib/views/authentication/screens/username.dart @@ -51,7 +51,7 @@ class _UsernameInputState extends State { Padding( padding: const EdgeInsets.all(8.0), child: DidvanText( - 'نام کاربری می‌تواند شامل کاراکترهای کوچک و بزرگ انگلیسی و اعداد باشد.', + 'نام کاربری می‌تواند شامل کاراکترهای انگلیسی و اعداد باشد.', style: Theme.of(context).textTheme.labelSmall, ), ), diff --git a/lib/views/hashtag/hashtag.dart b/lib/views/hashtag/hashtag.dart index db26270..37ee34a 100644 --- a/lib/views/hashtag/hashtag.dart +++ b/lib/views/hashtag/hashtag.dart @@ -74,6 +74,7 @@ class _HashtagState extends State { liked: item.liked, onLikedChanged: (_, value, __) => _changeLiked(item.id, value, 'banner'), + likes: item.likes, ); case 'radar': diff --git a/lib/views/home/bookmarks/bookmarks.dart b/lib/views/home/bookmarks/bookmarks.dart index ad4df89..8a04010 100644 --- a/lib/views/home/bookmarks/bookmarks.dart +++ b/lib/views/home/bookmarks/bookmarks.dart @@ -1,11 +1,14 @@ import 'dart:async'; import 'package:didvan/config/design_config.dart'; +import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/app_icons.dart'; +import 'package:didvan/constants/assets.dart'; import 'package:didvan/models/view/app_bar_data.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/views/home/bookmarks/bookmark_state.dart'; import 'package:didvan/views/widgets/didvan/scaffold.dart'; +import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/menu_item.dart'; import 'package:didvan/views/widgets/overview/multitype.dart'; // import 'package:didvan/views/widgets/search_field.dart'; @@ -124,7 +127,9 @@ class _BookmarksState extends State { ), ), SliverPadding( - padding: const EdgeInsets.symmetric(horizontal: 16), + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), sliver: SliverStateHandler( state: state, centerEmptyState: state.searching, @@ -144,9 +149,24 @@ class _BookmarksState extends State { }, placeholder: MultitypeOverview.placeholder, itemPadding: const EdgeInsets.only(bottom: 8), + paddingEmptyState: 0, emptyState: state.searching ? EmptyResult(onNewSearch: _focuseNode.requestFocus) - : const EmptyList(), + : Column( + children: [ + DidvanText( + 'در قسمت رصدخانه من، تمامی محتواهایی که در قسمت‌های مختلف سوپراپلیکیشن دیدوان، بوکمارک (نشان‌دار) کرده‌اید، به تفکیک نمایش داده می‌شوند. هم‌چنین امکان درج یادداشت شخصی بصورت ضمیمه برای هر محتوا وجود دارد.', + fontSize: 14, + color: Theme.of(context).colorScheme.title, + textAlign: TextAlign.justify, + ), + Image.asset( + Assets.bookmarkAnimation, + width: MediaQuery.sizeOf(context).width, + height: 180, + ), + ], + ), enableEmptyState: state.bookmarks.isEmpty, childCount: state.bookmarks.length + (state.page != state.lastPage ? 1 : 0), diff --git a/lib/views/home/home.dart b/lib/views/home/home.dart index 4e9d5f5..df88bc7 100644 --- a/lib/views/home/home.dart +++ b/lib/views/home/home.dart @@ -27,6 +27,7 @@ import 'package:didvan/views/home/new_statistic/new_statistic.dart'; import 'package:didvan/views/home/search/search.dart'; import 'package:didvan/views/widgets/didvan/divider.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; +import 'package:didvan/views/widgets/ink_wrapper.dart'; import 'package:didvan/views/widgets/logo_app_bar.dart'; import 'package:didvan/views/widgets/didvan/bnb.dart'; import 'package:didvan/views/widgets/shimmer_placeholder.dart'; @@ -35,13 +36,15 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:get/get.dart'; import 'package:provider/provider.dart'; import '../../services/app_home_widget/home_widget_repository.dart'; final GlobalKey homeScaffKey = GlobalKey(); class Home extends StatefulWidget { - const Home({Key? key}) : super(key: key); + final bool? showDialogs; + const Home({Key? key, this.showDialogs}) : super(key: key); @override State createState() => _HomeState(); @@ -51,8 +54,90 @@ class _HomeState extends State with SingleTickerProviderStateMixin, WidgetsBindingObserver { late final TabController _tabController; + Future _showDialog(BuildContext context) async { + WidgetsBinding.instance?.addPostFrameCallback((_) { + ActionSheetUtils(context) + .openDialog( + data: ActionSheetData( + content: const DidvanText( + 'خوش آمدید!\nبرای امنیت بیشتر، رمز عبور خود را تغییر دهید.', + ), + onConfirmed: () { + Future.delayed( + Duration.zero, + () => Navigator.of(context) + .pushNamed(Routes.authenticaion, arguments: true), + ); + }, + isBackgroundDropBlur: false, + confrimTitle: 'تغییر رمز عبور', + dismissTitle: 'بعدا', + ), + ) + .then((value) => ActionSheetUtils(context).openDialog( + data: ActionSheetData( + backgroundColor: Theme.of(context).colorScheme.background, + isBackgroundDropBlur: true, + content: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + InkWrapper( + onPressed: () { + Future.delayed( + Duration.zero, + () => Navigator.of(context).pop(), + ); + }, + child: const Icon( + DidvanIcons.close_solid, + size: 24, + ), + ), + DidvanText( + 'شخصی سازی محتوا', + style: Theme.of(context).textTheme.displaySmall, + color: Theme.of(context).colorScheme.text, + ), + const InkWrapper( + child: Icon( + DidvanIcons.close_regular, + size: 24, + color: Colors.transparent, + ), + ), + ], + ), + const SizedBox( + height: 12, + ), + const DidvanText( + "کاربر گرامی\nلطفا جهت شخصی‌سازی و استفاده بهتر از برنامه، دسته‌بندی‌های مورد علاقه خود و زمان دریافت اعلانات را انتخاب نمایید.") + ], + ), + // hasDismissButton: false, + onConfirmed: () { + Future.delayed( + Duration.zero, + () => + Navigator.of(navigatorKey.currentContext!).pushNamed( + Routes.favouritesStep, + arguments: {"toTimer": true}, + ), + ); + }, + confrimTitle: 'تایید', + ), + )); + }); + } + @override void initState() { + if (widget.showDialogs ?? false) { + _showDialog(context); + } if (!kIsWeb) { NotificationService.startListeningNotificationEvents(); } diff --git a/lib/views/home/infography/infography_screen.dart b/lib/views/home/infography/infography_screen.dart index d76bca5..ce209cf 100644 --- a/lib/views/home/infography/infography_screen.dart +++ b/lib/views/home/infography/infography_screen.dart @@ -142,20 +142,21 @@ class _InfographyScreenState extends State { Wrap( children: [ for (var i = 0; i < state.categories.length; i++) - SizedBox( - width: (MediaQuery.of(context).size.width - 40) / 2, - child: DidvanCheckbox( - title: state.categories[i].label, - value: state.selectedCats.contains(state.categories[i]), - onChanged: (value) { - if (value) { - state.selectedCats.add(state.categories[i]); - return; - } - state.selectedCats.remove(state.categories[i]); - }, + if (state.categories[i].label != 'هوشان') + SizedBox( + width: (MediaQuery.of(context).size.width - 40) / 2, + child: DidvanCheckbox( + title: state.categories[i].label, + value: state.selectedCats.contains(state.categories[i]), + onChanged: (value) { + if (value) { + state.selectedCats.add(state.categories[i]); + return; + } + state.selectedCats.remove(state.categories[i]); + }, + ), ), - ), ], ), ], @@ -232,6 +233,7 @@ class _InfographyScreenState extends State { liked: state.contents[index].liked, onLikedChanged: (id, value, _) => state.changeLiked(id, value), + likes: state.contents[index].likes, ), ), ), diff --git a/lib/views/home/main/widgets/infography_item.dart b/lib/views/home/main/widgets/infography_item.dart index d29ad02..027e757 100644 --- a/lib/views/home/main/widgets/infography_item.dart +++ b/lib/views/home/main/widgets/infography_item.dart @@ -58,6 +58,7 @@ class InfographyItem extends StatelessWidget { final int id; final bool marked; final bool liked; + final int likes; final void Function(int id, bool value, bool shouldUpdate) onMarkChanged; final void Function(int id, bool value, bool shouldUpdate) onLikedChanged; @@ -72,6 +73,7 @@ class InfographyItem extends StatelessWidget { required this.id, required this.marked, required this.liked, + required this.likes, required this.onLikedChanged}); void _openInteractiveViewer(BuildContext context, String image) { @@ -152,6 +154,17 @@ class InfographyItem extends StatelessWidget { ), Row( children: [ + LikedButton( + itemId: id, + type: 'infography', + gestureSize: 32, + value: liked, + onMarkChanged: (value) => onLikedChanged(id, value, true), + likes: likes, + ), + const SizedBox( + width: 4.0, + ), DidvanIconButton( gestureSize: 32, onPressed: () => Navigator.of(context).pushNamed( @@ -164,19 +177,6 @@ class InfographyItem extends StatelessWidget { ), icon: DidvanIcons.mention_icon, ), - const SizedBox( - width: 8.0, - ), - LikedButton( - itemId: id, - type: 'infography', - gestureSize: 32, - value: liked, - onMarkChanged: (value) => onLikedChanged(id, value, true), - ), - const SizedBox( - width: 8.0, - ), BookmarkButton( itemId: id, type: 'infography', diff --git a/lib/views/home/search/search.dart b/lib/views/home/search/search.dart index 86d5ae8..2b3ad53 100644 --- a/lib/views/home/search/search.dart +++ b/lib/views/home/search/search.dart @@ -50,6 +50,7 @@ class SearchPage extends StatelessWidget { isColapsed: state.selectedCats.length <= 1, selectedCats: state.selectedCats, categories: state.categoryFilters, + disableHoushan: true, onSelected: (id) { state.selectedCats.clear(); final cat = state.categoryFilters diff --git a/lib/views/mentions/mentions.dart b/lib/views/mentions/mentions.dart index f415eb3..50e00fd 100644 --- a/lib/views/mentions/mentions.dart +++ b/lib/views/mentions/mentions.dart @@ -70,150 +70,166 @@ class _MentionsState extends State { } } _bottomPadding = bottomViewInset; - return Material( - child: Stack( - children: [ - DidvanScaffold( - hidePlayer: true, - physics: const BouncingScrollPhysics(), - backgroundColor: Theme.of(context).colorScheme.surface, - appBarData: _isPage - ? AppBarData( - hasBack: true, - title: 'فراخوانی‌ها', - subtitle: widget.pageData['title'], - ) - : null, - padding: const EdgeInsets.only(left: 16, right: 16, bottom: 92), - showSliversFirst: false, - slivers: [ - Consumer( - builder: (context, state, child) => - SliverStateHandler( - onRetry: state.getComments, - state: state, - itemPadding: const EdgeInsets.symmetric(vertical: 16), - childCount: state.comments.length, - placeholder: const _MentionPlaceholder(), - centerEmptyState: _isPage, - enableEmptyState: state.comments.isEmpty, - emptyState: EmptyState( - asset: Assets.emptyChat, - title: 'دوستان خود را فراخوانی کنید'), - builder: (context, state, index) => Mention( - key: ValueKey( - state.comments[index].id.toString() + - state.comments[index].text, + return WillPopScope( + onWillPop: () async { + if (mentionsState.showUsersForMentionsLayout) { + mentionsState.showUsersForMentionsLayout = false; + mentionsState.searchUsers.text = ''; + + mentionsState.update(); + return false; + } + return true; + }, + child: Material( + child: Stack( + children: [ + DidvanScaffold( + hidePlayer: true, + physics: const BouncingScrollPhysics(), + backgroundColor: Theme.of(context).colorScheme.surface, + appBarData: _isPage + ? AppBarData( + hasBack: true, + title: 'فراخوانی‌ها', + subtitle: widget.pageData['title'], + ) + : null, + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 92), + showSliversFirst: false, + slivers: [ + Consumer( + builder: (context, state, child) => + SliverStateHandler( + onRetry: state.getComments, + state: state, + itemPadding: const EdgeInsets.symmetric(vertical: 16), + childCount: state.comments.length, + placeholder: const _MentionPlaceholder(), + centerEmptyState: _isPage, + enableEmptyState: state.comments.isEmpty, + emptyState: EmptyState( + asset: Assets.emptyChat, + title: 'دوستان خود را فراخوانی کنید'), + builder: (context, state, index) => Mention( + key: ValueKey( + state.comments[index].id.toString() + + state.comments[index].text, + ), + focusNode: _focusNode, + comment: state.comments[index], ), - focusNode: _focusNode, - comment: state.comments[index], + ), + ), + ], + ), + AnimatedVisibility( + duration: DesignConfig.lowAnimationDuration, + isVisible: mentionsState.showUsersForMentionsLayout, + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 8.0, sigmaY: 8.0), + child: Container( + decoration: BoxDecoration( + color: Theme.of(context) + .colorScheme + .focused + .withOpacity(0.5)), + child: DidvanScaffold( + hidePlayer: true, + appBarData: null, + padding: const EdgeInsets.only( + left: 16, right: 16, top: 16, bottom: 92), + backgroundColor: Colors.white.withOpacity(0.0), + showSliversFirst: false, + slivers: [ + Consumer( + builder: (context, state, child) => + SliverStateHandler( + onRetry: () { + state.getUsersMention( + context.read().user.id); + }, + state: state, + childCount: state.users.length, + placeholder: const _UsersPlaceholder(), + centerEmptyState: _isPage, + enableEmptyState: state.users.isEmpty, + emptyState: EmptyState( + asset: Assets.emptyBookmark, + title: 'لیست افراد خالی است', + ), + builder: (context, state, index) { + return UserMention( + user: state.users[index], + index: index, + ); + }, + ), + ), + ], + children: [ + Row( + children: [ + Expanded( + child: TextField( + controller: mentionsState.searchUsers, + focusNode: _focusNodeMention, + keyboardType: TextInputType.multiline, + textInputAction: TextInputAction.send, + style: Theme.of(context).textTheme.bodyMedium, + onEditingComplete: () {}, + onChanged: (val) => _onChange(mentionsState, val), + decoration: InputDecoration( + icon: const Icon(DidvanIcons.search_regular), + border: InputBorder.none, + hintText: 'نام فرد مورد نظر را بنویسید...', + hintStyle: Theme.of(context) + .textTheme + .bodySmall! + .copyWith( + color: Theme.of(context) + .colorScheme + .disabledText), + ), + ), + ), + DidvanIconButton( + icon: DidvanIcons.close_regular, + onPressed: () { + mentionsState.showUsersForMentionsLayout = + false; + mentionsState.searchUsers.text = ''; + + mentionsState.update(); + }), + ], + ), + const SizedBox( + height: 4, + ), + Divider( + height: 1, + color: Theme.of(context).colorScheme.splash, + ), + const SizedBox( + height: 12, + ) + ], ), ), ), - ], - ), - AnimatedVisibility( - duration: DesignConfig.lowAnimationDuration, - isVisible: mentionsState.showUsersForMentionsLayout, - child: BackdropFilter( - filter: ImageFilter.blur(sigmaX: 8.0, sigmaY: 8.0), - child: Container( - decoration: BoxDecoration( - color: - Theme.of(context).colorScheme.focused.withOpacity(0.5)), - child: DidvanScaffold( - appBarData: null, - padding: const EdgeInsets.only( - left: 16, right: 16, top: 16, bottom: 92), - backgroundColor: Colors.white.withOpacity(0.0), - showSliversFirst: false, - slivers: [ - Consumer( - builder: (context, state, child) => - SliverStateHandler( - onRetry: () { - state.getUsersMention( - context.read().user.id); - }, - state: state, - childCount: state.users.length, - placeholder: const _UsersPlaceholder(), - centerEmptyState: _isPage, - enableEmptyState: state.users.isEmpty, - emptyState: EmptyState( - asset: Assets.emptyBookmark, - title: 'لیست افراد خالی است', - ), - builder: (context, state, index) { - return UserMention( - user: state.users[index], - index: index, - ); - }, - ), - ), - ], - children: [ - Row( - children: [ - Expanded( - child: TextField( - controller: mentionsState.searchUsers, - focusNode: _focusNodeMention, - keyboardType: TextInputType.multiline, - textInputAction: TextInputAction.send, - style: Theme.of(context).textTheme.bodyMedium, - onEditingComplete: () {}, - onChanged: (val) => _onChange(mentionsState, val), - decoration: InputDecoration( - icon: const Icon(DidvanIcons.search_regular), - border: InputBorder.none, - hintText: 'نام فرد مورد نظر را بنویسید...', - hintStyle: Theme.of(context) - .textTheme - .bodySmall! - .copyWith( - color: Theme.of(context) - .colorScheme - .disabledText), - ), - ), - ), - DidvanIconButton( - icon: DidvanIcons.close_regular, - onPressed: () { - mentionsState.showUsersForMentionsLayout = false; - mentionsState.searchUsers.text = ''; - - mentionsState.update(); - }), - ], - ), - const SizedBox( - height: 4, - ), - Divider( - height: 1, - color: Theme.of(context).colorScheme.splash, - ), - const SizedBox( - height: 12, - ) - ], - ), + ), + Positioned( + left: 0, + right: 0, + bottom: MediaQuery.of(context).viewInsets.bottom, + child: _MessageBox( + focusNode: _focusNode, + focusNodeMention: _focusNodeMention, ), ), - ), - Positioned( - left: 0, - right: 0, - bottom: MediaQuery.of(context).viewInsets.bottom, - child: _MessageBox( - focusNode: _focusNode, - focusNodeMention: _focusNodeMention, - ), - ), - ], + ], + ), ), ); } diff --git a/lib/views/podcasts/widgets/slider.dart b/lib/views/podcasts/widgets/slider.dart index 71d08fe..41e53ff 100644 --- a/lib/views/podcasts/widgets/slider.dart +++ b/lib/views/podcasts/widgets/slider.dart @@ -80,11 +80,9 @@ class _StudioSliderState extends State { horizontal: 8, ), decoration: BoxDecoration( - color: (state.videosSelected - ? Theme.of(context) - .colorScheme - .secondaryDisabled - : Theme.of(context).colorScheme.focused) + color: Theme.of(context) + .colorScheme + .focused .withOpacity(0.9), borderRadius: const BorderRadius.vertical( bottom: Radius.circular(10), @@ -103,9 +101,11 @@ class _StudioSliderState extends State { width: 52, decoration: BoxDecoration( shape: BoxShape.circle, - color: Theme.of(context) - .colorScheme - .secondary + color: (state.videosSelected + ? Theme.of(context).colorScheme.secondary + : Theme.of(context) + .colorScheme + .focusedBorder) .withOpacity(0.7), ), child: Icon( @@ -155,13 +155,6 @@ class _SliderIndicator extends StatelessWidget { required this.isVideo, }) : super(key: key); - Color _color(BuildContext context) { - if (isVideo) { - return Theme.of(context).colorScheme.secondary; - } - return Theme.of(context).colorScheme.focusedBorder; - } - @override Widget build(BuildContext context) { return AnimatedContainer( @@ -171,10 +164,11 @@ class _SliderIndicator extends StatelessWidget { margin: const EdgeInsets.only(left: 4), decoration: BoxDecoration( border: Border.all( - color: _color(context), + color: Theme.of(context).colorScheme.focusedBorder, ), shape: BoxShape.circle, - color: isCurrentIndex ? _color(context) : null, + color: + isCurrentIndex ? Theme.of(context).colorScheme.focusedBorder : null, ), ); } diff --git a/lib/views/podcasts/widgets/tab_bar.dart b/lib/views/podcasts/widgets/tab_bar.dart index e480c94..31fa32f 100644 --- a/lib/views/podcasts/widgets/tab_bar.dart +++ b/lib/views/podcasts/widgets/tab_bar.dart @@ -29,7 +29,7 @@ class StudioTabBar extends StatelessWidget { Expanded( child: _StudioTypeButton( icon: DidvanIcons.video_solid, - selectedColor: Theme.of(context).colorScheme.secondary, + selectedColor: Theme.of(context).colorScheme.focusedBorder, title: 'ویدیو', onTap: () => state.videosSelected = true, isSelected: state.videosSelected, diff --git a/lib/views/profile/profile.dart b/lib/views/profile/profile.dart index d933cf9..c391646 100644 --- a/lib/views/profile/profile.dart +++ b/lib/views/profile/profile.dart @@ -347,7 +347,7 @@ class _ProfilePageState extends State { ), const SizedBox(height: 16), DidvanText( - 'نسخه نرم‌افزار: 3.2.2', + 'نسخه نرم‌افزار: 3.3.0', style: Theme.of(context).textTheme.bodySmall, ), ], diff --git a/lib/views/web/web_view.dart b/lib/views/web/web_view.dart index 05f0e0b..f1ac75c 100644 --- a/lib/views/web/web_view.dart +++ b/lib/views/web/web_view.dart @@ -1,6 +1,7 @@ // ignore_for_file: library_private_types_in_public_api, deprecated_member_use import 'package:didvan/constants/assets.dart'; +import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:flutter/material.dart'; import 'package:webview_flutter/webview_flutter.dart'; @@ -62,14 +63,26 @@ class _WebViewState extends State { return true; } }, - child: loading - ? Center( - child: Image.asset( - Assets.loadingAnimation, - width: 60, - height: 60, - ), - ) - : WebViewWidget(controller: controller)); + child: Scaffold( + appBar: AppBar( + title: const Padding( + padding: EdgeInsets.only(top: 12.0), + child: DidvanText( + 'بازگشت به دیدوان', + fontSize: 18, + ), + ), + toolbarHeight: 32, + ), + body: loading + ? Center( + child: Image.asset( + Assets.loadingAnimation, + width: 60, + height: 60, + ), + ) + : WebViewWidget(controller: controller), + )); } } diff --git a/lib/views/widgets/categories_list.dart b/lib/views/widgets/categories_list.dart index 2f1af44..b62c741 100644 --- a/lib/views/widgets/categories_list.dart +++ b/lib/views/widgets/categories_list.dart @@ -10,6 +10,7 @@ class CategoriesList extends StatefulWidget { final bool isAppBar; final List selectedCats; final List categories; + final bool disableHoushan; final void Function(int id) onSelected; final double top; const CategoriesList({ @@ -19,6 +20,7 @@ class CategoriesList extends StatefulWidget { required this.categories, required this.onSelected, this.isAppBar = true, + this.disableHoushan = false, required this.top, }) : super(key: key); @@ -69,7 +71,9 @@ class _CategoriesListState extends State { context, ), for (var i = 0; i < widget.categories.length; i++) - _itemBuilder(widget.categories[i], context), + widget.disableHoushan && widget.categories[i].label == 'هوشان' + ? const SizedBox() + : _itemBuilder(widget.categories[i], context), ], ), ); diff --git a/lib/views/widgets/liked_button.dart b/lib/views/widgets/liked_button.dart index ba649e7..395784d 100644 --- a/lib/views/widgets/liked_button.dart +++ b/lib/views/widgets/liked_button.dart @@ -5,6 +5,7 @@ import 'package:didvan/providers/user.dart'; import 'package:didvan/utils/action_sheet.dart'; import 'package:didvan/views/widgets/didvan/icon_button.dart'; import 'package:didvan/views/widgets/didvan/text.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class LikedButton extends StatefulWidget { @@ -15,6 +16,7 @@ class LikedButton extends StatefulWidget { final double gestureSize; final String type; final int itemId; + final int likes; const LikedButton({ Key? key, required this.value, @@ -22,6 +24,7 @@ class LikedButton extends StatefulWidget { required this.gestureSize, required this.type, required this.itemId, + required this.likes, this.askForConfirmation = false, this.color, }) : super(key: key); @@ -45,38 +48,58 @@ class _LikedButtonState extends State { super.initState(); } + late int likes = widget.likes; + @override Widget build(BuildContext context) { - return DidvanIconButton( - gestureSize: widget.gestureSize, - color: widget.color ?? - (DesignConfig.isDark || !_value - ? null - : Theme.of(context).colorScheme.primary), - icon: _value ? DidvanIcons.like_solid : DidvanIcons.like_regular, - onPressed: () async { - bool confirm = false; - if (widget.askForConfirmation) { - await ActionSheetUtils(context).openDialog( - data: ActionSheetData( - content: const DidvanText( - 'آیا می‌خواهید این محتوا از نشان‌ شده‌ها حذف شود؟', - ), - titleIcon: DidvanIcons.bookmark_regular, - titleColor: Theme.of(context).colorScheme.secondary, - title: 'تایید عملیات', - onConfirmed: () => confirm = true, + return Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + if (likes != 0) + SizedBox( + height: 16, + child: DidvanText( + likes.toString(), + fontSize: 14, ), - ); - } - if (!widget.askForConfirmation || confirm) { - setState(() { - _value = !_value; - }); - widget.onMarkChanged(_value); - UserProvider.changeItemLiked(widget.type, widget.itemId, _value); - } - }, + ), + InkWell( + onTap: () async { + bool confirm = false; + if (widget.askForConfirmation) { + await ActionSheetUtils(context).openDialog( + data: ActionSheetData( + content: const DidvanText( + 'آیا می‌خواهید این محتوا از نشان‌ شده‌ها حذف شود؟', + ), + titleIcon: DidvanIcons.bookmark_regular, + titleColor: Theme.of(context).colorScheme.secondary, + title: 'تایید عملیات', + onConfirmed: () => confirm = true, + ), + ); + } + if (!widget.askForConfirmation || confirm) { + setState(() { + _value = !_value; + if (_value) { + likes += 1; + } else { + likes -= 1; + } + }); + widget.onMarkChanged(_value); + UserProvider.changeItemLiked(widget.type, widget.itemId, _value); + } + }, + child: Icon( + _value ? CupertinoIcons.heart_fill : CupertinoIcons.heart, + size: 24, + color: widget.color ?? + (!_value ? null : Theme.of(context).colorScheme.error), + ), + ), + ], ); } } diff --git a/lib/views/widgets/logo_app_bar.dart b/lib/views/widgets/logo_app_bar.dart index 0b7c1db..4476711 100644 --- a/lib/views/widgets/logo_app_bar.dart +++ b/lib/views/widgets/logo_app_bar.dart @@ -193,21 +193,22 @@ class LogoAppBar extends StatelessWidget implements PreferredSizeWidget { Wrap( children: [ for (var i = 0; i < state.categoryFilters.length; i++) - SizedBox( - width: (MediaQuery.of(context).size.width - 40) / 2, - child: DidvanCheckbox( - title: state.categoryFilters[i].label, - value: - state.selectedCats.contains(state.categoryFilters[i]), - onChanged: (value) { - if (value) { - state.selectedCats.add(state.categoryFilters[i]); - return; - } - state.selectedCats.remove(state.categoryFilters[i]); - }, + if (state.categoryFilters[i].label != 'هوشان') + SizedBox( + width: (MediaQuery.of(context).size.width - 40) / 2, + child: DidvanCheckbox( + title: state.categoryFilters[i].label, + value: state.selectedCats + .contains(state.categoryFilters[i]), + onChanged: (value) { + if (value) { + state.selectedCats.add(state.categoryFilters[i]); + return; + } + state.selectedCats.remove(state.categoryFilters[i]); + }, + ), ), - ), ], ), ], diff --git a/lib/views/widgets/overview/multitype.dart b/lib/views/widgets/overview/multitype.dart index 038e741..fa713f4 100644 --- a/lib/views/widgets/overview/multitype.dart +++ b/lib/views/widgets/overview/multitype.dart @@ -74,6 +74,7 @@ class MultitypeOverview extends StatelessWidget { case 'podcast': return DidvanIcons.podcast_light; case 'delphi': + case 'survey': return DidvanIcons.saha_light; case 'infography': return DidvanIcons.infography_regular; diff --git a/lib/views/widgets/overview/news.dart b/lib/views/widgets/overview/news.dart index 1cda2c1..4f67df2 100644 --- a/lib/views/widgets/overview/news.dart +++ b/lib/views/widgets/overview/news.dart @@ -93,6 +93,10 @@ class NewsOverview extends StatelessWidget { onMarkChanged: (value) => onLikedChanged(news.id, value, false), askForConfirmation: hasUnmarkConfirmation, + likes: news.likes, + ), + const SizedBox( + width: 4.0, ), BookmarkButton( itemId: news.id, diff --git a/lib/views/widgets/overview/radar.dart b/lib/views/widgets/overview/radar.dart index 72172d3..df13ec9 100644 --- a/lib/views/widgets/overview/radar.dart +++ b/lib/views/widgets/overview/radar.dart @@ -132,6 +132,10 @@ class RadarOverview extends StatelessWidget { onMarkChanged: (value) => onLikedChanged(radar.id, value, false), askForConfirmation: hasUnmarkConfirmation, + likes: radar.likes, + ), + const SizedBox( + width: 4.0, ), BookmarkButton( itemId: radar.id, diff --git a/lib/views/widgets/search_app_bar.dart b/lib/views/widgets/search_app_bar.dart index 269b3c9..0e607cf 100644 --- a/lib/views/widgets/search_app_bar.dart +++ b/lib/views/widgets/search_app_bar.dart @@ -133,21 +133,22 @@ class SearchAppBar extends StatelessWidget implements PreferredSizeWidget { Wrap( children: [ for (var i = 0; i < state.categoryFilters.length; i++) - SizedBox( - width: (MediaQuery.of(context).size.width - 40) / 2, - child: DidvanCheckbox( - title: state.categoryFilters[i].label, - value: - state.selectedCats.contains(state.categoryFilters[i]), - onChanged: (value) { - if (value) { - state.selectedCats.add(state.categoryFilters[i]); - return; - } - state.selectedCats.remove(state.categoryFilters[i]); - }, + if (state.categoryFilters[i].label != 'هوشان') + SizedBox( + width: (MediaQuery.of(context).size.width - 40) / 2, + child: DidvanCheckbox( + title: state.categoryFilters[i].label, + value: state.selectedCats + .contains(state.categoryFilters[i]), + onChanged: (value) { + if (value) { + state.selectedCats.add(state.categoryFilters[i]); + return; + } + state.selectedCats.remove(state.categoryFilters[i]); + }, + ), ), - ), ], ), ], diff --git a/lib/views/widgets/state_handlers/sliver_state_handler.dart b/lib/views/widgets/state_handlers/sliver_state_handler.dart index b05cbbe..689e5d3 100644 --- a/lib/views/widgets/state_handlers/sliver_state_handler.dart +++ b/lib/views/widgets/state_handlers/sliver_state_handler.dart @@ -15,6 +15,7 @@ class SliverStateHandler extends SliverList { final bool centerEmptyState; final bool hasConstraints; final int placeholderCount; + final double? paddingEmptyState; SliverStateHandler({ Key? key, required this.state, @@ -28,6 +29,7 @@ class SliverStateHandler extends SliverList { this.centerEmptyState = true, this.hasConstraints = false, this.placeholderCount = 3, + this.paddingEmptyState, }) : super( key: key, delegate: SliverChildBuilderDelegate( @@ -45,7 +47,8 @@ class SliverStateHandler extends SliverList { if (enableEmptyState && state.appState == AppState.idle) { return Padding( padding: EdgeInsets.only( - top: centerEmptyState ? deviceHight / 4 : deviceHight / 8, + top: paddingEmptyState ?? + (centerEmptyState ? deviceHight / 4 : deviceHight / 8), bottom: 20, ), child: emptyState, diff --git a/pubspec.yaml b/pubspec.yaml index ba42aa4..41033d7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 3.2.2+3220 +version: 3.3.0+3300 environment: sdk: ">=2.19.0 <3.0.0"