diff --git a/lib/models/home_page_content/home_page_content.dart b/lib/models/home_page_content/home_page_content.dart index c7c6f84..bd2df86 100644 --- a/lib/models/home_page_content/home_page_content.dart +++ b/lib/models/home_page_content/home_page_content.dart @@ -5,10 +5,8 @@ import 'home_page_list.dart'; class MainPageContent { final List> banners; final List lists; - final int unread; - const MainPageContent( - {required this.banners, required this.lists, required this.unread}); + const MainPageContent({required this.banners, required this.lists}); factory MainPageContent.fromJson(Map json) { return MainPageContent( @@ -24,7 +22,6 @@ class MainPageContent { (x) => MainPageList.fromJson(x), ), ), - unread: json['unread'], ); } } diff --git a/lib/views/home/main/main_page.dart b/lib/views/home/main/main_page.dart index 1126352..de8e6a1 100644 --- a/lib/views/home/main/main_page.dart +++ b/lib/views/home/main/main_page.dart @@ -11,7 +11,8 @@ import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; +import 'package:didvan/services/network/request.dart'; class MainPage extends StatefulWidget { const MainPage({super.key}); @@ -69,7 +70,10 @@ class _MainPageSection extends StatelessWidget { void _moreHandler(BuildContext context) { if (list.link.startsWith('http')) { - launchUrl(Uri.parse(list.link)); + launchUrlString( + '${list.link}?accessToken=${RequestService.token}', + mode: LaunchMode.inAppWebView, + ); return; } Navigator.of(context).pushNamed(list.link); diff --git a/lib/views/home/main/main_page_state.dart b/lib/views/home/main/main_page_state.dart index d800497..c1fe655 100644 --- a/lib/views/home/main/main_page_state.dart +++ b/lib/views/home/main/main_page_state.dart @@ -12,11 +12,14 @@ import 'package:url_launcher/url_launcher_string.dart'; class MainPageState extends CoreProvier { late MainPageContent content; + int unread = 0; + Future _getMainPageContent() async { final service = RequestService(RequestHelper.mainPageContent); await service.httpGet(); if (service.isSuccess) { content = MainPageContent.fromJson(service.result); + unread = service.result['unread']; appState = AppState.idle; return; } diff --git a/lib/views/home/main/widgets/banner.dart b/lib/views/home/main/widgets/banner.dart index c96ddbe..cfc3cb3 100644 --- a/lib/views/home/main/widgets/banner.dart +++ b/lib/views/home/main/widgets/banner.dart @@ -37,6 +37,7 @@ class MainPageBanner extends StatelessWidget { itemCount: state.content.banners[isFirst ? 0 : 1].length, viewportFraction: 1, enableIndicator: true, + height: (MediaQuery.of(context).size.width - 8) * 9.0 / 16.0, ); } diff --git a/lib/views/podcasts/podcasts_state.dart b/lib/views/podcasts/podcasts_state.dart index 3cba203..05bf73d 100644 --- a/lib/views/podcasts/podcasts_state.dart +++ b/lib/views/podcasts/podcasts_state.dart @@ -58,7 +58,7 @@ class PodcastsState extends CoreProvier { if (selectedSortTypeIndex == 0) return 'تازه‌ترین‌ها'; if (selectedSortTypeIndex == 1) return 'قدیمی‌ترین‌ها'; if (selectedSortTypeIndex == 2) return 'پربازدیدترین‌ها'; - return 'پربحث‌نرین‌ها'; + return 'پربحث‌ترین‌ها'; } String get type { diff --git a/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart b/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart index b530f42..172c27d 100644 --- a/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart +++ b/lib/views/podcasts/studio_details/widgets/studio_details_widget.dart @@ -208,7 +208,7 @@ class _StudioPreview extends StatelessWidget { String get _previewTitle { if (studio.type == 'video') { - return 'ویدیو ${isNext ? 'بعدی' : 'قبلی'} '; + return 'ویدیوی ${isNext ? 'بعدی' : 'قبلی'} '; } return 'پادکست ${isNext ? 'بعدی' : 'قبلی'} '; } diff --git a/lib/views/profile/direct_list/widgets/direct_item.dart b/lib/views/profile/direct_list/widgets/direct_item.dart index abd622b..33acc62 100644 --- a/lib/views/profile/direct_list/widgets/direct_item.dart +++ b/lib/views/profile/direct_list/widgets/direct_item.dart @@ -54,12 +54,13 @@ class ChatRoomItem extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(width: 40), - Icon( - chatRoom.lastMessage.readed - ? DidvanIcons.check_double_light - : DidvanIcons.check_light, - size: 16, - ), + if (!chatRoom.lastMessage.writedByAdmin) + Icon( + chatRoom.lastMessage.readed + ? DidvanIcons.check_double_light + : DidvanIcons.check_light, + size: 16, + ), const SizedBox(width: 4), Expanded( child: Column( diff --git a/lib/views/widgets/logo_app_bar.dart b/lib/views/widgets/logo_app_bar.dart index 9cc6ea6..0bb9f13 100644 --- a/lib/views/widgets/logo_app_bar.dart +++ b/lib/views/widgets/logo_app_bar.dart @@ -7,6 +7,7 @@ import 'package:didvan/providers/theme.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/utils/action_sheet.dart'; import 'package:didvan/views/home/home_state.dart'; +import 'package:didvan/views/home/main/main_page_state.dart'; import 'package:didvan/views/widgets/date_picker_button.dart'; import 'package:didvan/views/widgets/didvan/checkbox.dart'; import 'package:didvan/views/widgets/item_title.dart'; @@ -66,31 +67,33 @@ class LogoAppBar extends StatelessWidget implements PreferredSizeWidget { width: 1, color: Theme.of(context).colorScheme.border, ), - Stack( - children: [ - DidvanIconButton( - icon: state.unreadCount == 0 - ? DidvanIcons.message_light - : DidvanIcons.message_solid, - size: 32, - onPressed: () => - Navigator.of(context).pushNamed(Routes.directList), - ), - if (state.unreadCount != 0) - Positioned( - top: 8, - right: 4, - child: Container( - height: 12, - width: 12, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Theme.of(context).colorScheme.secondary, + Consumer( + builder: (_, state, __) => Stack( + children: [ + DidvanIconButton( + icon: state.unread == 0 + ? DidvanIcons.message_light + : DidvanIcons.message_solid, + size: 32, + onPressed: () => Navigator.of(context) + .pushNamed(Routes.directList), + ), + if (state.unread > 0) + Positioned( + top: 8, + right: 4, + child: Container( + height: 12, + width: 12, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Theme.of(context).colorScheme.secondary, + ), ), ), - ), - ], - ), + ], + ), + ) ], ), ],