From 4745f1338697863be9a4ffc07be00eb9b8b2be7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=AA=20Ho=C3=A0ng=20Long?=
<58676739+LEHOANGLONG1999@users.noreply.github.com>
Date: Thu, 10 Feb 2022 22:11:09 +0700
Subject: [PATCH] change ui
---
.flutter-plugins | 52 +-
.flutter-plugins-dependencies | 2 +-
.idea/libraries/Dart_Packages.xml | 884 +++++++++++-------
.idea/libraries/Dart_SDK.xml | 40 +-
.idea/libraries/Flutter_Plugins.xml | 45 +-
ios/Podfile.lock | 2 +-
ios/Runner.xcodeproj/project.pbxproj | 15 +-
lib/common/widgets/base_dialog.dart | 4 +-
.../widgets/cached_network_image_custom.dart | 5 +-
lib/common/widgets/item_category_story.dart | 55 +-
lib/common/widgets/item_tag_story.dart | 28 +-
lib/pages/classify/page.dart | 2 +-
.../widget/list_category_story_read.dart | 4 +-
.../classify/widget/tab_view_story_read.dart | 44 +-
lib/pages/detail_story/controller.dart | 43 +-
lib/pages/detail_story/page.dart | 40 +-
.../detail_story/widget/container_rating.dart | 4 +-
lib/pages/history_reading/controller.dart | 19 +-
lib/pages/history_reading/page.dart | 2 +-
.../history_reading/widget/item_guide.dart | 13 +-
.../widget/item_story_history.dart | 11 +-
lib/pages/home/controller.dart | 7 +-
lib/pages/home/page.dart | 69 +-
lib/pages/home/widget/container_story.dart | 19 +-
.../home/widget/group_story_by_type.dart | 6 +-
lib/pages/home/widget/item_story_home.dart | 2 +
lib/pages/home/widget/tab_bar_widget.dart | 39 +-
lib/pages/list_story/page.dart | 7 +-
lib/pages/list_story/widget/item_story.dart | 8 +-
lib/pages/main/controller.dart | 5 +
lib/pages/main/page.dart | 10 +-
lib/pages/read_story/controller.dart | 17 +-
lib/pages/read_story/setting_read_page.dart | 2 +-
.../read_story/widget/container_drawer.dart | 17 +-
lib/pages/search/page.dart | 19 +-
.../search/widget/container_init_search.dart | 35 +-
.../widget/title_and_widget _search.dart | 2 +-
lib/pages/storyboard/page.dart | 50 +-
.../storyboard/widget/item_story_board.dart | 2 +
lib/routes/app_pages.dart | 1 +
lib/theme/asset_colors.dart | 2 +-
lib/theme/theme_data.dart | 22 +-
truyen_chu.iml | 216 +++++
43 files changed, 1209 insertions(+), 662 deletions(-)
diff --git a/.flutter-plugins b/.flutter-plugins
index d8d92eb..1609627 100644
--- a/.flutter-plugins
+++ b/.flutter-plugins
@@ -1,27 +1,27 @@
# This is a generated file; do not edit or check into version control.
-audio_session=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\audio_session-0.1.6+1\\
-battery=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\battery-2.0.3\\
-device_info=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\device_info-2.0.2\\
-firebase_analytics=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\firebase_analytics-8.3.4\\
-firebase_analytics_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\firebase_analytics_web-0.3.0+1\\
-firebase_core=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\firebase_core-1.8.0\\
-firebase_core_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\firebase_core_web-1.1.0\\
-google_mobile_ads=C:\\src\\flutter\\.pub-cache\\git\\googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6\\packages\\google_mobile_ads\\
-just_audio=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\just_audio-0.9.14\\
-just_audio_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\just_audio_web-0.4.2\\
-path_provider=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider-2.0.4\\
-path_provider_linux=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_linux-2.1.0\\
-path_provider_macos=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_macos-2.0.2\\
-path_provider_windows=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_windows-2.0.3\\
-sqflite=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\sqflite-2.0.0+4\\
-url_launcher=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\url_launcher-6.0.10\\
-url_launcher_linux=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\url_launcher_linux-2.0.2\\
-url_launcher_macos=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\url_launcher_macos-2.0.2\\
-url_launcher_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\url_launcher_web-2.0.4\\
-url_launcher_windows=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\url_launcher_windows-2.0.2\\
-video_player=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\video_player-2.2.3\\
-video_player_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\video_player_web-2.0.4\\
-wakelock=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\wakelock-0.5.6\\
-wakelock_macos=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\wakelock_macos-0.4.0\\
-wakelock_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\wakelock_web-0.4.0\\
-webview_flutter=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\webview_flutter-2.0.13\\
+audio_session=/Users/mac/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.6+1/
+battery=/Users/mac/.pub-cache/hosted/pub.dartlang.org/battery-2.0.3/
+device_info=/Users/mac/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.3/
+firebase_analytics=/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.3.4/
+firebase_analytics_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_analytics_web-0.3.0+1/
+firebase_core=/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.10.6/
+firebase_core_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core_web-1.5.3/
+google_mobile_ads=/Users/mac/.pub-cache/git/googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6/packages/google_mobile_ads/
+just_audio=/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.18/
+just_audio_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio_web-0.4.2/
+path_provider=/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.4/
+path_provider_linux=/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.4/
+path_provider_macos=/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.4/
+path_provider_windows=/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.0.4/
+sqflite=/Users/mac/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.1/
+url_launcher=/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.10/
+url_launcher_linux=/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-2.0.2/
+url_launcher_macos=/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-2.0.2/
+url_launcher_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.5/
+url_launcher_windows=/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-2.0.2/
+video_player=/Users/mac/.pub-cache/hosted/pub.dartlang.org/video_player-2.2.3/
+video_player_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/video_player_web-2.0.5/
+wakelock=/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock-0.5.6/
+wakelock_macos=/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock_macos-0.4.0/
+wakelock_web=/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock_web-0.4.0/
+webview_flutter=/Users/mac/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.13/
diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies
index 334191f..2835c29 100644
--- a/.flutter-plugins-dependencies
+++ b/.flutter-plugins-dependencies
@@ -1 +1 @@
-{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"audio_session","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\audio_session-0.1.6+1\\\\","dependencies":[]},{"name":"battery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\battery-2.0.3\\\\","dependencies":[]},{"name":"device_info","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\device_info-2.0.2\\\\","dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_analytics-8.3.4\\\\","dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_core-1.8.0\\\\","dependencies":[]},{"name":"google_mobile_ads","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\git\\\\googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6\\\\packages\\\\google_mobile_ads\\\\","dependencies":[]},{"name":"just_audio","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\just_audio-0.9.14\\\\","dependencies":["audio_session","path_provider"]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.4\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-2.0.0+4\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher-6.0.10\\\\","dependencies":[]},{"name":"video_player","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player-2.2.3\\\\","dependencies":[]},{"name":"wakelock","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\wakelock-0.5.6\\\\","dependencies":[]},{"name":"webview_flutter","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\webview_flutter-2.0.13\\\\","dependencies":[]}],"android":[{"name":"audio_session","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\audio_session-0.1.6+1\\\\","dependencies":[]},{"name":"battery","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\battery-2.0.3\\\\","dependencies":[]},{"name":"device_info","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\device_info-2.0.2\\\\","dependencies":[]},{"name":"firebase_analytics","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_analytics-8.3.4\\\\","dependencies":["firebase_core"]},{"name":"firebase_core","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_core-1.8.0\\\\","dependencies":[]},{"name":"google_mobile_ads","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\git\\\\googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6\\\\packages\\\\google_mobile_ads\\\\","dependencies":[]},{"name":"just_audio","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\just_audio-0.9.14\\\\","dependencies":["audio_session","path_provider"]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.4\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-2.0.0+4\\\\","dependencies":[]},{"name":"url_launcher","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher-6.0.10\\\\","dependencies":[]},{"name":"video_player","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player-2.2.3\\\\","dependencies":[]},{"name":"wakelock","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\wakelock-0.5.6\\\\","dependencies":[]},{"name":"webview_flutter","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\webview_flutter-2.0.13\\\\","dependencies":[]}],"macos":[{"name":"audio_session","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\audio_session-0.1.6+1\\\\","dependencies":[]},{"name":"firebase_core","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_core-1.8.0\\\\","dependencies":[]},{"name":"just_audio","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\just_audio-0.9.14\\\\","dependencies":["audio_session"]},{"name":"path_provider_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_macos-2.0.2\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-2.0.0+4\\\\","dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher_macos-2.0.2\\\\","dependencies":[]},{"name":"wakelock_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\wakelock_macos-0.4.0\\\\","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_linux-2.1.0\\\\","dependencies":[]},{"name":"url_launcher_linux","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher_linux-2.0.2\\\\","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_windows-2.0.3\\\\","dependencies":[]},{"name":"url_launcher_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher_windows-2.0.2\\\\","dependencies":[]}],"web":[{"name":"audio_session","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\audio_session-0.1.6+1\\\\","dependencies":[]},{"name":"firebase_analytics_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_analytics_web-0.3.0+1\\\\","dependencies":[]},{"name":"firebase_core_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\firebase_core_web-1.1.0\\\\","dependencies":[]},{"name":"just_audio_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\just_audio_web-0.4.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\url_launcher_web-2.0.4\\\\","dependencies":[]},{"name":"video_player_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\video_player_web-2.0.4\\\\","dependencies":[]},{"name":"wakelock_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\wakelock_web-0.4.0\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"audio_session","dependencies":[]},{"name":"battery","dependencies":[]},{"name":"device_info","dependencies":[]},{"name":"firebase_analytics","dependencies":["firebase_analytics_web","firebase_core"]},{"name":"firebase_analytics_web","dependencies":[]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"google_mobile_ads","dependencies":[]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_linux","path_provider_macos","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_web"]},{"name":"video_player_web","dependencies":[]},{"name":"wakelock","dependencies":["wakelock_macos","wakelock_web"]},{"name":"wakelock_macos","dependencies":[]},{"name":"wakelock_web","dependencies":[]},{"name":"webview_flutter","dependencies":[]}],"date_created":"2022-01-06 16:19:12.723565","version":"2.2.3"}
\ No newline at end of file
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"audio_session","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.6+1/","dependencies":[]},{"name":"battery","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/battery-2.0.3/","dependencies":[]},{"name":"device_info","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.3/","dependencies":[]},{"name":"firebase_analytics","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.3.4/","dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.10.6/","dependencies":[]},{"name":"google_mobile_ads","path":"/Users/mac/.pub-cache/git/googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6/packages/google_mobile_ads/","dependencies":[]},{"name":"just_audio","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.18/","dependencies":["audio_session","path_provider"]},{"name":"path_provider","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.4/","dependencies":[]},{"name":"sqflite","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.1/","dependencies":[]},{"name":"url_launcher","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.10/","dependencies":[]},{"name":"video_player","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/video_player-2.2.3/","dependencies":[]},{"name":"wakelock","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock-0.5.6/","dependencies":[]},{"name":"webview_flutter","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.13/","dependencies":[]}],"android":[{"name":"audio_session","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.6+1/","dependencies":[]},{"name":"battery","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/battery-2.0.3/","dependencies":[]},{"name":"device_info","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.3/","dependencies":[]},{"name":"firebase_analytics","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_analytics-8.3.4/","dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.10.6/","dependencies":[]},{"name":"google_mobile_ads","path":"/Users/mac/.pub-cache/git/googleads-mobile-flutter-b2051250b83633c5d3a533c6c82bee8728243ec6/packages/google_mobile_ads/","dependencies":[]},{"name":"just_audio","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.18/","dependencies":["audio_session","path_provider"]},{"name":"path_provider","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider-2.0.4/","dependencies":[]},{"name":"sqflite","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.1/","dependencies":[]},{"name":"url_launcher","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.10/","dependencies":[]},{"name":"video_player","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/video_player-2.2.3/","dependencies":[]},{"name":"wakelock","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock-0.5.6/","dependencies":[]},{"name":"webview_flutter","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/webview_flutter-2.0.13/","dependencies":[]}],"macos":[{"name":"audio_session","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.6+1/","dependencies":[]},{"name":"firebase_core","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.10.6/","dependencies":[]},{"name":"just_audio","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio-0.9.18/","dependencies":["audio_session"]},{"name":"path_provider_macos","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.4/","dependencies":[]},{"name":"sqflite","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.1/","dependencies":[]},{"name":"url_launcher_macos","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-2.0.2/","dependencies":[]},{"name":"wakelock_macos","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock_macos-0.4.0/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.4/","dependencies":[]},{"name":"url_launcher_linux","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-2.0.2/","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.0.4/","dependencies":[]},{"name":"url_launcher_windows","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-2.0.2/","dependencies":[]}],"web":[{"name":"audio_session","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/audio_session-0.1.6+1/","dependencies":[]},{"name":"firebase_analytics_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_analytics_web-0.3.0+1/","dependencies":[]},{"name":"firebase_core_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_core_web-1.5.3/","dependencies":[]},{"name":"just_audio_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/just_audio_web-0.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.5/","dependencies":[]},{"name":"video_player_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/video_player_web-2.0.5/","dependencies":[]},{"name":"wakelock_web","path":"/Users/mac/.pub-cache/hosted/pub.dartlang.org/wakelock_web-0.4.0/","dependencies":[]}]},"dependencyGraph":[{"name":"audio_session","dependencies":[]},{"name":"battery","dependencies":[]},{"name":"device_info","dependencies":[]},{"name":"firebase_analytics","dependencies":["firebase_analytics_web","firebase_core"]},{"name":"firebase_analytics_web","dependencies":[]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"google_mobile_ads","dependencies":[]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_linux","path_provider_macos","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_web"]},{"name":"video_player_web","dependencies":[]},{"name":"wakelock","dependencies":["wakelock_macos","wakelock_web"]},{"name":"wakelock_macos","dependencies":[]},{"name":"wakelock_web","dependencies":[]},{"name":"webview_flutter","dependencies":[]}],"date_created":"2022-02-10 20:54:15.525653","version":"2.2.3"}
\ No newline at end of file
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index c33156d..1111b43 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -5,1254 +5,1514 @@
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
-
+
+
-
+
-
+
-
+
-
+
-
+
+
-
+
-
+
-
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
-
+
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
+
-
+
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
index 51ea5fd..1889af4 100644
--- a/.idea/libraries/Dart_SDK.xml
+++ b/.idea/libraries/Dart_SDK.xml
@@ -1,26 +1,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml
index fd3c39d..dfc750d 100644
--- a/.idea/libraries/Flutter_Plugins.xml
+++ b/.idea/libraries/Flutter_Plugins.xml
@@ -1,28 +1,29 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 6983bd9..17529a9 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -200,7 +200,7 @@ SPEC CHECKSUMS:
FirebaseCore: 599ee609343eaf4941bd188f85e3aa077ffe325b
FirebaseCoreDiagnostics: 56fb7216d87e0e6ec2feddefa9d8a392fe8b2c18
FirebaseInstallations: 830327b45345ffc859eaa9c17bcd5ae893fd5425
- Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
+ Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
Google-Mobile-Ads-SDK: be2192b51b74d74a6ed70590c2e8275412f1b71e
google_mobile_ads: a2f8b901601401bf7e691b4224d5992e9a37599a
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 494a295..d8d76bd 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -346,8 +346,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5;
- DEVELOPMENT_TEAM = XR53Z2376X;
+ DEVELOPMENT_TEAM = NKCWLF27F9;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
@@ -358,6 +360,7 @@
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = com.customer.truyenmesay;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
@@ -478,8 +481,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5;
- DEVELOPMENT_TEAM = XR53Z2376X;
+ DEVELOPMENT_TEAM = NKCWLF27F9;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
@@ -490,6 +495,7 @@
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = com.customer.truyenmesay;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -504,8 +510,10 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5;
- DEVELOPMENT_TEAM = XR53Z2376X;
+ DEVELOPMENT_TEAM = NKCWLF27F9;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
@@ -516,6 +524,7 @@
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = com.customer.truyenmesay;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
diff --git a/lib/common/widgets/base_dialog.dart b/lib/common/widgets/base_dialog.dart
index 56eb4fd..822f8e0 100644
--- a/lib/common/widgets/base_dialog.dart
+++ b/lib/common/widgets/base_dialog.dart
@@ -80,9 +80,11 @@ class DialogQuestion extends StatelessWidget {
child: Container(
alignment: Alignment.center,
width: double.infinity,
- height: 65,
+ margin: const EdgeInsets.symmetric(horizontal: 20,vertical: 10),
+ height: 50,
decoration: BoxDecoration(
color: isPrimary ? _theme.primaryColor : Colors.transparent,
+ borderRadius: BorderRadius.circular(10),
border: Border.all(
color: Colors.black.withOpacity(0.09),
),
diff --git a/lib/common/widgets/cached_network_image_custom.dart b/lib/common/widgets/cached_network_image_custom.dart
index a0e12a8..57363b1 100644
--- a/lib/common/widgets/cached_network_image_custom.dart
+++ b/lib/common/widgets/cached_network_image_custom.dart
@@ -3,6 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:shimmer/shimmer.dart';
import '../../theme/theme.dart';
+import 'package:truyen_chu/common/common.dart';
class CachedImageNetworkWidget extends StatelessWidget {
final String url;
@@ -40,9 +41,7 @@ class CachedImageNetworkWidget extends StatelessWidget {
width: double.infinity,
height: double.infinity,
color: AssetColors.shimmerBaseColor,
- child: const Icon(
- Icons.error,
- ),
+ child: Image.asset('img_splash'.assetPathPNG,fit: BoxFit.cover,),
);
}
}
diff --git a/lib/common/widgets/item_category_story.dart b/lib/common/widgets/item_category_story.dart
index b4bd18d..b25824e 100644
--- a/lib/common/widgets/item_category_story.dart
+++ b/lib/common/widgets/item_category_story.dart
@@ -9,46 +9,35 @@ class ItemCategoryStory extends StatelessWidget {
final VoidCallback? onTap;
final bool showColor;
- ItemCategoryStory({required this.model, this.color = Colors.white, this.onTap, this.showColor = true});
+ ItemCategoryStory(
+ {required this.model, this.color = Colors.white, this.onTap, this.showColor = true});
final _theme = Get.theme;
@override
Widget build(BuildContext context) {
return InkWell(
onTap: onTap,
- child: Container(
- alignment: Alignment.center,
- padding: const EdgeInsets.symmetric(horizontal: 10),
- height: 50,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(100),
- color: Colors.white,
- ),
- child: Row(
- children: [
- if (showColor)
- Container(
- width: 40,
- height: 40,
- padding: const EdgeInsets.all(10),
- decoration: BoxDecoration(
- shape: BoxShape.circle,
- color: color,
- ),
- child: Image.asset('ic_${model.id}'.assetPathPNG),
- ),
- if (showColor) 10.horizontalSpace,
- Expanded(
- child: Center(
- child: Text(
- model.name ?? '',
- maxLines: 1,
- overflow: TextOverflow.ellipsis,
- style: _theme.textTheme.subtitle2!.medium,
- ),
+ child: Stack(
+ alignment: Alignment.topLeft,
+ children: [
+ Container(
+ alignment: Alignment.center,
+ padding: const EdgeInsets.symmetric(horizontal: 10),
+ height: 50,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(10),
+ color: Colors.white,
+ ),
+ child: Center(
+ child: Text(
+ model.name ?? '',
+ maxLines: 1,
+ overflow: TextOverflow.ellipsis,
+ style: _theme.textTheme.subtitle2!.medium,
),
),
- ],
- ),
+ ),
+ Container(width: 8,height: 8,color: color),
+ ],
),
);
}
diff --git a/lib/common/widgets/item_tag_story.dart b/lib/common/widgets/item_tag_story.dart
index 590ac8d..d0133f4 100644
--- a/lib/common/widgets/item_tag_story.dart
+++ b/lib/common/widgets/item_tag_story.dart
@@ -13,18 +13,22 @@ class ItemTagStory extends StatelessWidget {
Widget build(BuildContext context) {
return InkWell(
onTap: onTap,
- child: Container(
- height: 45,
- padding: const EdgeInsets.symmetric(horizontal: 10),
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.circular(100),
- border: Border.all(color: color, width: 1),
- ),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [Text(title, style: _theme.textTheme.subtitle1!.medium, maxLines: 1, overflow: TextOverflow.ellipsis)],
- ),
+ child: Stack(
+ alignment: Alignment.bottomRight,
+ children: [
+ Container(
+ height: 45,
+ padding: const EdgeInsets.symmetric(horizontal: 10),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: Center(
+ child: Text(title, style: _theme.textTheme.subtitle1!.medium, maxLines: 1, overflow: TextOverflow.ellipsis),
+ )
+ ),
+ Container(width: 8,height: 8,color: color),
+ ],
),
);
}
diff --git a/lib/pages/classify/page.dart b/lib/pages/classify/page.dart
index f233a9a..248e20a 100644
--- a/lib/pages/classify/page.dart
+++ b/lib/pages/classify/page.dart
@@ -14,7 +14,7 @@ class ClassifyPage extends GetView {
return Scaffold(
backgroundColor: AssetColors.colorBlueF2F4FF,
appBar: AppBar(
- title: Text('Phân loại',style: _textTheme.headline6!.textBlack,),
+ title: Text('Phân loại',style: _textTheme.headline6!.textWhite,),
),
body: TabViewStoryRead(),
// TabBarTypeClassify(tabLabels: [
diff --git a/lib/pages/classify/widget/list_category_story_read.dart b/lib/pages/classify/widget/list_category_story_read.dart
index 0dfaa8c..18481e4 100644
--- a/lib/pages/classify/widget/list_category_story_read.dart
+++ b/lib/pages/classify/widget/list_category_story_read.dart
@@ -16,7 +16,7 @@ class ListCategoryStoryRead extends StatelessWidget {
child: Column(
children: [
_buildMainCategory(),
- _buildSubCategory(),
+ // _buildSubCategory(),
],
),
);
@@ -25,7 +25,7 @@ class ListCategoryStoryRead extends StatelessWidget {
}
Widget _buildMainCategory() {
- final _models = _controller.mainCategory;
+ final _models = _controller.mainCategory+_controller.subCategory;
return GridView.count(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
diff --git a/lib/pages/classify/widget/tab_view_story_read.dart b/lib/pages/classify/widget/tab_view_story_read.dart
index c05d70d..24cd815 100644
--- a/lib/pages/classify/widget/tab_view_story_read.dart
+++ b/lib/pages/classify/widget/tab_view_story_read.dart
@@ -48,38 +48,18 @@ class _TabViewStoryReadState extends State with SingleTickerPr
Widget _buildTabBar() {
final theme = Theme.of(context);
- return Obx(
- () => TabBar(
- controller: _tabController,
- unselectedLabelStyle: theme.textTheme.subtitle1!.regular,
- unselectedLabelColor: theme.hintColor,
- labelStyle: theme.textTheme.subtitle1,
- labelColor: Colors.black,
- isScrollable: true,
- labelPadding: EdgeInsets.only(right: 10),
- tabs: _listTitle.asMap().keys.map((index) {
- final _isFocus = index == _currentIndex.value;
- return Container(
- height: 47,
- padding: UIHelper.horizontalEdgeInsets20,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(100),
- color: _isFocus ? theme.primaryColor : AssetColors.colorGreyE7E7E7,
- ),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Text(
- _listTitle[index],
- style: theme.textTheme.subtitle1!.weight(_isFocus ? FontWeight.bold : FontWeight.normal),
- ),
- ],
- ),
- );
- }).toList(),
- onTap: (index) => _currentIndex.value = index,
- indicator: const BoxDecoration(),
- ),
+ return TabBar(
+ controller: _tabController,
+ unselectedLabelStyle: theme.textTheme.subtitle1!.regular,
+ unselectedLabelColor: theme.hintColor,
+ labelStyle: theme.textTheme.subtitle1,
+ labelColor: Colors.black,
+ labelPadding: EdgeInsets.only(right: 10),
+ tabs: _listTitle.map((item) {
+ return Tab(text: item);
+ }).toList(),
+ onTap: (index) => _currentIndex.value = index,
+ indicatorColor: AssetColors.primary,
);
}
diff --git a/lib/pages/detail_story/controller.dart b/lib/pages/detail_story/controller.dart
index 32f75d1..731d372 100644
--- a/lib/pages/detail_story/controller.dart
+++ b/lib/pages/detail_story/controller.dart
@@ -5,6 +5,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:truyen_chu/common/common.dart';
+import 'package:truyen_chu/pages/pages.dart';
import 'package:truyen_chu/theme/theme.dart';
import '../../biz/app_controller.dart';
import '../../main.dart';
@@ -21,7 +22,8 @@ class DetailStoryController extends GetxController {
final DBService dbService;
- DetailStoryController({required this.chapterRepository, required this.storyRepository, required this.dbService});
+ DetailStoryController(
+ {required this.chapterRepository, required this.storyRepository, required this.dbService});
int storyId = -1;
@@ -59,7 +61,7 @@ class DetailStoryController extends GetxController {
int _totalPageChapter = 0;
- final backgroundColor = AssetColors.color4F1F33.obs;
+ final backgroundColor = AssetColors.primary.obs;
late RewardedAd _rewardedAd;
@@ -93,7 +95,7 @@ class DetailStoryController extends GetxController {
EasyLoading.dismiss();
_checkStoryBoardLocal();
final _random = Random().nextInt(8);
- backgroundColor.value = AssetColors.colorRandomDetail[_random];
+ backgroundColor.value = AssetColors.primary;
} catch (e) {
EasyLoading.dismiss();
EasyLoading.showError('Đã xảy ra lỗi!');
@@ -112,7 +114,10 @@ class DetailStoryController extends GetxController {
await analytics.setUserProperty(name: DETAIL_STORY, value: '${storyModel.value.id}');
await analytics.logEvent(name: EVENT_DETAIL, parameters: {'id': storyModel.value.id});
} else {
- Get.dialog(DialogOneButton(title: 'Thông báo', message: 'Truyện đã bị xóa\nVui lòng chọn truyện khác.', titleButton: 'Đồng ý'));
+ Get.dialog(DialogOneButton(
+ title: 'Thông báo',
+ message: 'Truyện đã bị xóa\nVui lòng chọn truyện khác.',
+ titleButton: 'Đồng ý'));
return;
}
}
@@ -122,7 +127,8 @@ class DetailStoryController extends GetxController {
return;
}
_loading = true;
- final _response = await chapterRepository.fetchChapterTitleById(storyId: storyId, page: _currentPage);
+ final _response =
+ await chapterRepository.fetchChapterTitleById(storyId: storyId, page: _currentPage);
final _list = _response.items;
if (_totalPageChapter == 0) {
_totalPageChapter = _response.totalPages;
@@ -153,7 +159,7 @@ class DetailStoryController extends GetxController {
final _boardLocalModel = storyModel.value.toStoryBroadLocalModel;
final _response = await dbService.addStoryBoard(model: _boardLocalModel);
if (_response) {
- EasyLoading.showSuccess('Thêm vào tủ truyện thành công!');
+ showSnackBarSuccess(message: 'Thêm vào tủ truyện thành công!');
showButtonAddBoard.value = false;
appController.isRefreshStoryBoard.value = true;
}
@@ -190,7 +196,8 @@ class DetailStoryController extends GetxController {
return;
}
_loading = true;
- final _response = await chapterRepository.fetchChapterTitleById(storyId: storyId, page: _currentPage);
+ final _response =
+ await chapterRepository.fetchChapterTitleById(storyId: storyId, page: _currentPage);
final _list = _response.items;
_list.sort((a, b) => b.id.compareTo(a.id));
if (_currentPage > 1) {
@@ -208,7 +215,10 @@ class DetailStoryController extends GetxController {
await analytics.setUserProperty(name: AUTHOR_STORY, value: '${storyModel.value.authorId}');
await analytics.logEvent(name: EVENT_AUTHOR, parameters: {'id': storyModel.value.authorId});
if (_isFormList) {
- final _args = {'title': storyModel.value.authorName ?? '', 'url': '/stories/?author_id=${storyModel.value.authorId ?? -1}'};
+ final _args = {
+ 'title': storyModel.value.authorName ?? '',
+ 'url': '/stories/?author_id=${storyModel.value.authorId ?? -1}'
+ };
Get.back(result: _args);
} else {
final _result = await Get.toNamed(Routes.LIST_STORY, arguments: {
@@ -255,9 +265,11 @@ class DetailStoryController extends GetxController {
void onTapSendRatting() async {
try {
EasyLoading.show();
- final _response = await storyRepository.reviewStory(storyId: storyId, star: countStar.value.toInt());
+ final _response =
+ await storyRepository.reviewStory(storyId: storyId, star: countStar.value.toInt());
if (_response) {
- EasyLoading.showSuccess('Đánh giá thành công!');
+ showSnackBarSuccess(message: 'Đánh giá thành công!');
+
showReview.value = false;
}
EasyLoading.dismiss();
@@ -289,10 +301,15 @@ class DetailStoryController extends GetxController {
});
}
- String replaceHtmlData(String content, int maxSubString, {String firstStart = "[", String lastEnd = "]"}) {
- return content.replaceFirst(subStringBetweenTwo(content, firstStart, lastEnd), "").length < maxSubString + 10
+ String replaceHtmlData(String content, int maxSubString,
+ {String firstStart = "[", String lastEnd = "]"}) {
+ return content.replaceFirst(subStringBetweenTwo(content, firstStart, lastEnd), "").length <
+ maxSubString + 10
? content.replaceFirst(subStringBetweenTwo(content, firstStart, lastEnd), "")
- : content.replaceFirst(subStringBetweenTwo(content, firstStart, lastEnd), "").substring(0, maxSubString) + "...";
+ : content
+ .replaceFirst(subStringBetweenTwo(content, firstStart, lastEnd), "")
+ .substring(0, maxSubString) +
+ "...";
}
String subStringBetweenTwo(String content, String start, String end) {
diff --git a/lib/pages/detail_story/page.dart b/lib/pages/detail_story/page.dart
index 9a3eaaf..06ec768 100644
--- a/lib/pages/detail_story/page.dart
+++ b/lib/pages/detail_story/page.dart
@@ -69,6 +69,18 @@ class DetailStoryPage extends GetView {
padding: UIHelper.horizontalEdgeInsets20,
child: Row(
children: [
+ Container(
+ width: 100,
+ height: 130,
+ clipBehavior: Clip.antiAliasWithSaveLayer,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(4),
+ ),
+ child: CachedImageNetworkWidget(
+ url: _model.thumbnail ?? '',
+ ),
+ ),
+ 20.horizontalSpace,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -77,7 +89,7 @@ class DetailStoryPage extends GetView {
_model.title ?? '',
maxLines: 3,
overflow: TextOverflow.ellipsis,
- style: _theme.textTheme.subtitle1!.textWhite.medium,
+ style: _theme.textTheme.headline6!.textWhite.semiBold,
),
const Spacer(),
Row(
@@ -86,7 +98,7 @@ class DetailStoryPage extends GetView {
onTap: controller.onTapAuthorTitle,
child: Text(
'${_model.authorName ?? ''}',
- style: _theme.textTheme.subtitle2!.textColor(AssetColors.colorGreyB4B2B2).regular,
+ style: _theme.textTheme.subtitle2!.regular.textWhite,
),
).paddingOnly(bottom: 5),
5.horizontalSpace,
@@ -96,23 +108,11 @@ class DetailStoryPage extends GetView {
10.verticalSpace,
Text(
'${(_model.isFull ?? false) ? 'Hoàn thành' : 'Đang ra'} - Chương ${_model.chap ?? 0}',
- style: _theme.textTheme.subtitle2!.textColor(AssetColors.colorGreyB4B2B2).regular,
+ style: _theme.textTheme.subtitle2!.textWhite.regular,
),
],
).wrapHeight(130),
),
- 20.horizontalSpace,
- Container(
- width: 100,
- height: 130,
- clipBehavior: Clip.antiAliasWithSaveLayer,
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(4),
- ),
- child: CachedImageNetworkWidget(
- url: _model.thumbnail ?? '',
- ),
- ),
],
),
);
@@ -127,10 +127,6 @@ class DetailStoryPage extends GetView {
clipBehavior: Clip.antiAliasWithSaveLayer,
decoration: const BoxDecoration(
color: Colors.white,
- borderRadius: const BorderRadius.only(
- topRight: Radius.circular(20),
- topLeft: Radius.circular(20),
- ),
),
child: NotificationListener(
onNotification: (scrollInfo) {
@@ -174,9 +170,9 @@ class DetailStoryPage extends GetView {
child: AdWidget(ad: controller.appController.bannerAdMedium3),
),
20.verticalSpace,
- _buildIntroduce(),
- const Divider(height: 40),
ContainerRating(),
+ const Divider(height: 40),
+ _buildIntroduce(),
30.verticalSpace,
],
).paddingSymmetric(horizontal: 20);
@@ -222,7 +218,7 @@ class DetailStoryPage extends GetView {
5.horizontalSpace,
Icon(
Icons.star,
- color: _theme.primaryColor,
+ color: Colors.yellow,
),
],
),
diff --git a/lib/pages/detail_story/widget/container_rating.dart b/lib/pages/detail_story/widget/container_rating.dart
index f170535..50708ef 100644
--- a/lib/pages/detail_story/widget/container_rating.dart
+++ b/lib/pages/detail_story/widget/container_rating.dart
@@ -19,14 +19,14 @@ class ContainerRating extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
- 'Đánh giá nhanh',
+ 'Đánh giá',
style: _theme.textTheme.subtitle1,
),
TextButton(
style: TextButton.styleFrom(onSurface: Colors.grey),
onPressed: _controller.countStar.value > 0 ? _controller.onTapSendRatting : null,
child: Text(
- 'Gửi >>',
+ 'Gửi',
),
),
],
diff --git a/lib/pages/history_reading/controller.dart b/lib/pages/history_reading/controller.dart
index bd73836..9221d0a 100644
--- a/lib/pages/history_reading/controller.dart
+++ b/lib/pages/history_reading/controller.dart
@@ -1,3 +1,4 @@
+import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import '../../biz/biz.dart';
@@ -19,10 +20,10 @@ class HistoryReadingController extends GetxController {
void onInit() {
super.onInit();
analytics.setCurrentScreen(screenName: Routes.HISTORY_READING);
- _initLoadData();
+ initLoadData();
}
- void _initLoadData() async {
+ void initLoadData() async {
try {
EasyLoading.show();
await _fetchStoryHistoryLocal();
@@ -45,7 +46,7 @@ class HistoryReadingController extends GetxController {
final _response = await dbService.addStoryBoard(model: _boardLocalModel);
EasyLoading.dismiss();
if (_response) {
- EasyLoading.showSuccess('Thêm vào tủ truyện thành công!');
+ showSnackBarSuccess(message: 'Thêm vào tủ truyện thành công!');
_appController.isRefreshStoryBoard.value = true;
}
@@ -73,9 +74,9 @@ class HistoryReadingController extends GetxController {
if (_response) {
listStory.removeWhere((element) => element.id == id);
listStory.refresh();
- EasyLoading.showSuccess('Xóa thành công!');
+ showSnackBarSuccess(message: 'Xóa thành công!');
} else {
- EasyLoading.showError('Xóa thất bại!');
+ showSnackBarFailed(message: 'Xóa thất bại!');
}
} catch (e) {
EasyLoading.dismiss();
@@ -93,3 +94,11 @@ class HistoryReadingController extends GetxController {
_fetchStoryHistoryLocal();
}
}
+
+void showSnackBarSuccess({required String message}) {
+ Get.snackbar('Thành công', message, backgroundColor: Colors.green,colorText: Colors.white);
+}
+
+void showSnackBarFailed({required String message}) {
+ Get.snackbar('Lỗi', message, backgroundColor: Colors.red,colorText: Colors.white);
+}
diff --git a/lib/pages/history_reading/page.dart b/lib/pages/history_reading/page.dart
index 6ce8949..530a89c 100644
--- a/lib/pages/history_reading/page.dart
+++ b/lib/pages/history_reading/page.dart
@@ -11,7 +11,7 @@ class HistoryReadingPage extends GetView {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
- title: Text('Lịch sử truyện đã đọc',style: _textTheme.headline6!.textBlack,),
+ title: Text('Lịch sử',style: _textTheme.headline6!.textWhite,),
actions: [ItemGuide()],
),
body: Obx(
diff --git a/lib/pages/history_reading/widget/item_guide.dart b/lib/pages/history_reading/widget/item_guide.dart
index 37fb22a..bfadd5f 100644
--- a/lib/pages/history_reading/widget/item_guide.dart
+++ b/lib/pages/history_reading/widget/item_guide.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:popover/popover.dart';
+import 'package:truyen_chu/common/common.dart';
class ItemGuide extends StatelessWidget {
@override
@@ -12,7 +13,15 @@ class ItemGuide extends StatelessWidget {
bodyBuilder: (context) => Container(
padding: const EdgeInsets.all(12),
color: Colors.white,
- child: Text('Vuốt sang trái để xóa truyện trong lịch sử.'),
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text('Vuốt sang trái để xóa truyện trong lịch sử.'),
+ 10.verticalSpace,
+ Text('Bấm button + để thêm vào tủ truyện'),
+ ],
+ ),
),
onPop: () => print('Popover was popped!'),
direction: PopoverDirection.bottom,
@@ -21,7 +30,7 @@ class ItemGuide extends StatelessWidget {
arrowWidth: 10,
);
},
- icon: const Icon(Icons.error_outline),
+ icon: const Icon(Icons.speaker_notes_outlined),
);
}
}
diff --git a/lib/pages/history_reading/widget/item_story_history.dart b/lib/pages/history_reading/widget/item_story_history.dart
index 135e3f2..631c952 100644
--- a/lib/pages/history_reading/widget/item_story_history.dart
+++ b/lib/pages/history_reading/widget/item_story_history.dart
@@ -54,11 +54,15 @@ class ItemStoryHistory extends StatelessWidget {
height: 100,
margin: UIHelper.horizontalEdgeInsets20,
child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildImage(),
15.horizontalSpace,
_buildContent(),
10.horizontalSpace,
+ Obx(
+ () => Icon(Icons.add).elevatedButton(onPressed: _isAdBoard.value ? null : _onAdd).wrapHeight(30),
+ ),
],
),
),
@@ -86,7 +90,7 @@ class ItemStoryHistory extends StatelessWidget {
children: [
Text(
model.title ?? '',
- maxLines: 2,
+ maxLines: 4,
overflow: TextOverflow.ellipsis,
style: _theme.textTheme.subtitle1!.medium.heightLine(16),
),
@@ -94,10 +98,7 @@ class ItemStoryHistory extends StatelessWidget {
'Đang xem chương ${model.chapterId} - Trang ${model.pageIndex}',
style: _theme.textTheme.caption!.textBFBFBF,
),
- const Spacer(),
- Obx(
- () => Text('Thêm vào tủ truyện').elevatedButton(onPressed: _isAdBoard.value ? null : _onAdd).wrapHeight(30),
- ),
+
],
),
);
diff --git a/lib/pages/home/controller.dart b/lib/pages/home/controller.dart
index 8bdf886..dae177d 100644
--- a/lib/pages/home/controller.dart
+++ b/lib/pages/home/controller.dart
@@ -86,14 +86,12 @@ class HomeController extends GetxController {
final _response = await repository.fetchStoryHotByTagId(tagId: tagIdHotSelected);
_storyHots.addAll({'$tagIdHotSelected': _response});
}
- if (isJump) {
- pageControllerHot.jumpToPage(0);
- }
listStoryHots.value = _storyHots['$tagIdHotSelected'];
listStoryHots.refresh();
_addTheFistStoryBoard();
} catch (e) {
+ print(e);
EasyLoading.showError('Đã xảy ra lỗi!');
}
}
@@ -104,7 +102,6 @@ class HomeController extends GetxController {
final _response = await repository.fetchStoryUpdatedByTagId(tagId: tagIdUpdateSelected);
_storyUpdated.addAll({'$tagIdUpdateSelected': _response});
}
- if (isJump) pageControllerUpdated.jumpToPage(0);
listStoryUpdated.value = _storyUpdated['$tagIdUpdateSelected'];
listStoryUpdated.refresh();
} catch (e) {
@@ -118,7 +115,7 @@ class HomeController extends GetxController {
final _response = await repository.fetchStoryFullByTagId(tagId: tagIdFullSelected);
_storyFulls.addAll({'$tagIdFullSelected': _response});
}
- if (isJump) pageControllerFull.jumpToPage(0);
+
listStoryFulls.value = _storyFulls['$tagIdFullSelected'];
listStoryFulls.refresh();
} catch (e) {
diff --git a/lib/pages/home/page.dart b/lib/pages/home/page.dart
index b5ec192..4172522 100644
--- a/lib/pages/home/page.dart
+++ b/lib/pages/home/page.dart
@@ -21,11 +21,28 @@ class HomePage extends GetView {
return Scaffold(
backgroundColor: AssetColors.colorBlueF2F4FF,
body: SafeArea(
- child: TabBarTypeActionStory(
- tabLabels: ['Đọc truyện',],
- pages: [KeepAlivePage(child: _buildContainerStoryRead())],
- ),
+ child: Column(
+ children: [
+ TextFormField(
+ textInputAction: TextInputAction.search,
+ readOnly: true,
+ onTap: controller.onTapSearch,
+ decoration: InputDecoration(
+ fillColor: AssetColors.colorGreyE7E7E7,
+ hintText: 'Nhập tên truyện',
+ contentPadding: EdgeInsets.symmetric(vertical: 1),
+ prefixIcon: const Icon(
+ Icons.search,
+ size: 24,
+ color: AssetColors.colorGrey262626,
+ ),
+ ),
+ ).paddingSymmetric(horizontal: 20),
+ 20.verticalSpace,
+ Expanded(child: _buildContainerStoryRead().paddingSymmetric(horizontal: 10)),
+ ],
),
+ ),
);
}
@@ -37,6 +54,8 @@ class HomePage extends GetView {
SingleChildScrollView(
child: Column(
children: [
+ _buildTagStory(),
+ const Divider(height: 50),
GroupStoryByTypeWidget(
title: 'Truyện hot',
onTapSeeMore: controller.onTapSeeMoreHot,
@@ -49,9 +68,9 @@ class HomePage extends GetView {
},
),
),
- 20.verticalSpace,
+ const Divider(height: 50),
GroupStoryByTypeWidget(
- title: 'Truyện mới cập nhật',
+ title: 'Mới cập nhật',
onTapSeeMore: controller.onTapSeeMoreUpdate,
child: ContainerStoryHome(
models: controller.listStoryUpdated.value,
@@ -62,9 +81,9 @@ class HomePage extends GetView {
},
),
),
- 20.verticalSpace,
+ const Divider(height: 50),
GroupStoryByTypeWidget(
- title: 'Truyện đã hoàn thành',
+ title: 'Đã hoàn thành',
onTapSeeMore: controller.onTapSeeMoreFull,
child: ContainerStoryHome(
models: controller.listStoryFulls.value,
@@ -76,8 +95,7 @@ class HomePage extends GetView {
),
),
20.verticalSpace,
- _buildTagStory(),
- 20.verticalSpace,
+
],
).paddingSymmetric(horizontal: 12),
),
@@ -92,20 +110,23 @@ class HomePage extends GetView {
return GroupStoryByTypeWidget(
title: 'Thẻ truyện',
onTapSeeMore: controller.onTapSeeMoreTagStory,
- child: Wrap(
- runSpacing: 10,
- spacing: 10,
- children: _list.asMap().keys.map((index) {
- final _title = _list[index].name ?? '';
- final _index = index % AssetColors.colorRandom.length;
- final _color = AssetColors.colorRandom[_index];
- return ItemTagStory(
- title: _title,
- color: _color,
- onTap: () => controller.onTapTagStory(_list[index]),
- );
- }).toList(),
- ).fullWidth,
+ child: GridView.count(
+ shrinkWrap: true,
+ physics: const NeverScrollableScrollPhysics(),
+ crossAxisCount: 2,
+ childAspectRatio: 3.5,
+ padding: const EdgeInsets.only(bottom: 20),
+ mainAxisSpacing: 12,
+ crossAxisSpacing: 20,
+ children: _list.asMap().keys.map((index) {
+ final _title = _list[index].name ?? '';
+ final _index = index % AssetColors.colorRandom.length;
+ final _color = AssetColors.colorRandom[_index];
+ return ItemTagStory(
+ title: _title,
+ color: _color,
+ onTap: () => controller.onTapTagStory(_list[index]));
+ }).toList())
);
}
}
diff --git a/lib/pages/home/widget/container_story.dart b/lib/pages/home/widget/container_story.dart
index 16fe6b2..b7d9e83 100644
--- a/lib/pages/home/widget/container_story.dart
+++ b/lib/pages/home/widget/container_story.dart
@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
+import 'package:get/get.dart';
import '../../../common/common.dart';
import '../../../models/models.dart';
+import '../controller.dart';
import 'widget.dart';
class ContainerStoryHome extends StatelessWidget {
@@ -10,7 +12,7 @@ class ContainerStoryHome extends StatelessWidget {
final PageController pageController;
ContainerStoryHome({required this.models, required this.pageController, this.callBack});
-
+ final _controller = Get.find();
@override
Widget build(BuildContext context) {
return Column(
@@ -21,7 +23,20 @@ class ContainerStoryHome extends StatelessWidget {
onTabChanged: callBack,
),
20.verticalSpace,
- if (models.isEmpty) UIHelper.emptyBox else PageViewStoryInGroup(models: models, pageController: pageController),
+ if (models.isEmpty) UIHelper.emptyBox else GridView.count(
+ crossAxisCount: 4,
+ childAspectRatio: 75 / 150,
+ shrinkWrap: true,
+ physics: const NeverScrollableScrollPhysics(),
+ padding: EdgeInsets.zero,
+ mainAxisSpacing: 10,
+ crossAxisSpacing: 6,
+ children: (models.length>8?models.sublist(0,8):models).map((item) {
+ return ItemStoryHome(
+ model: item,
+ onTap: () => _controller.onTapStory(item.id),
+ );
+ }).toList()),
],
);
}
diff --git a/lib/pages/home/widget/group_story_by_type.dart b/lib/pages/home/widget/group_story_by_type.dart
index 5914924..a263ab4 100644
--- a/lib/pages/home/widget/group_story_by_type.dart
+++ b/lib/pages/home/widget/group_story_by_type.dart
@@ -19,13 +19,13 @@ class GroupStoryByTypeWidget extends StatelessWidget {
children: [
Text(
title,
- style: _theme.textTheme.subtitle1,
+ style: _theme.textTheme.headline6!.textPrimary,
),
const Spacer(),
InkWell(
onTap: onTapSeeMore,
child: Text(
- 'Xem thêm >',
+ 'Xem thêm',
style: _theme.textTheme.bodyText2!.medium.textPrimary,
),
)
@@ -34,6 +34,6 @@ class GroupStoryByTypeWidget extends StatelessWidget {
15.verticalSpace,
child,
],
- ).wrapCard;
+ );
}
}
diff --git a/lib/pages/home/widget/item_story_home.dart b/lib/pages/home/widget/item_story_home.dart
index 3401b3e..61962ef 100644
--- a/lib/pages/home/widget/item_story_home.dart
+++ b/lib/pages/home/widget/item_story_home.dart
@@ -15,6 +15,8 @@ class ItemStoryHome extends StatelessWidget {
return InkWell(
onTap: onTap,
child: Container(
+ padding: const EdgeInsets.all(4),
+ decoration: BoxDecoration(borderRadius: BorderRadius.circular(10), color: Colors.white),
child: Column(
children: [
_buildImage(),
diff --git a/lib/pages/home/widget/tab_bar_widget.dart b/lib/pages/home/widget/tab_bar_widget.dart
index 4fe721f..42ce38a 100644
--- a/lib/pages/home/widget/tab_bar_widget.dart
+++ b/lib/pages/home/widget/tab_bar_widget.dart
@@ -43,27 +43,24 @@ class _CustomTabBarNotTabViewState extends State with Si
final _theme = Get.theme;
Widget build(BuildContext context) {
- return Obx(() {
- return TabBar(
- controller: _tabController,
- unselectedLabelStyle: _theme.textTheme.subtitle2!.regular,
- unselectedLabelColor: _theme.hintColor,
- labelStyle: _theme.textTheme.subtitle2!.medium,
- indicatorWeight: 0,
- labelPadding: const EdgeInsets.symmetric(horizontal: 5),
- labelColor: Colors.white,
- tabs: _controller.tags.asMap().keys.map((index) {
- final _title = _controller.tags[index].name ?? '';
- return Tab(child: _buildItemTabBar(title: _title, isFocus: _index.value == index));
- }).toList(),
- indicator: const BoxDecoration(),
- isScrollable: true,
- onTap: (val) {
- widget.onTabChanged?.call(_controller.tags[val].id);
- _index.value = val;
- },
- );
- });
+ return TabBar(
+ controller: _tabController,
+ unselectedLabelStyle: _theme.textTheme.subtitle2!.regular,
+ unselectedLabelColor: _theme.hintColor,
+ labelStyle: _theme.textTheme.subtitle2!.semiBold,
+ labelPadding: const EdgeInsets.symmetric(horizontal: 5),
+ labelColor: _theme.primaryColor,
+ tabs: _controller.tags.asMap().keys.map((index) {
+ final _title = _controller.tags[index].name ?? '';
+ return Tab(text: _title,);
+ }).toList(),
+ indicatorColor: _theme.primaryColor,
+ isScrollable: true,
+ onTap: (val) {
+ widget.onTabChanged?.call(_controller.tags[val].id);
+ _index.value = val;
+ },
+ );
}
Widget _buildItemTabBar({required String title, bool isFocus = false}) {
diff --git a/lib/pages/list_story/page.dart b/lib/pages/list_story/page.dart
index a42a377..fd8a540 100644
--- a/lib/pages/list_story/page.dart
+++ b/lib/pages/list_story/page.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
+import 'package:truyen_chu/theme/theme.dart';
import '../../common/common.dart';
import 'controller.dart';
@@ -10,10 +11,10 @@ class ListStoryPage extends GetView {
@override
Widget build(BuildContext context) {
return Scaffold(
- backgroundColor: Colors.white,
+ backgroundColor: AssetColors.colorBlueF2F4FF,
appBar: AppBar(
title: Obx(
- () => Text(controller.title.value,style: _textTheme.headline6!.textBlack,),
+ () => Text(controller.title.value,style: _textTheme.headline6!.textWhite,),
),
),
body: Obx(
@@ -25,7 +26,7 @@ class ListStoryPage extends GetView {
}
return ItemStoryInList(model: controller.listStory[index], onTap: () => controller.onTapStory(controller.listStory[index].id));
},
- separatorBuilder: (_, index) => const Divider(height: 30),
+ separatorBuilder: (_, index) => 20.verticalSpace,
itemCount: controller.listStory.length,
),
),
diff --git a/lib/pages/list_story/widget/item_story.dart b/lib/pages/list_story/widget/item_story.dart
index 40450ae..c69007d 100644
--- a/lib/pages/list_story/widget/item_story.dart
+++ b/lib/pages/list_story/widget/item_story.dart
@@ -16,7 +16,13 @@ class ItemStoryInList extends StatelessWidget {
onTap: onTap,
child: Container(
width: double.infinity,
- height: 105,
+ height: 115,
+ padding: const EdgeInsets.all(8),
+
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(10)
+ ),
margin: UIHelper.horizontalEdgeInsets20,
child: Row(
children: [
diff --git a/lib/pages/main/controller.dart b/lib/pages/main/controller.dart
index 4b26db8..b859013 100644
--- a/lib/pages/main/controller.dart
+++ b/lib/pages/main/controller.dart
@@ -17,6 +17,7 @@ class MainController extends GetxController {
BottomNavBarModel(icon: 'ic_home', label: 'Trang chủ', page: HomePage()),
BottomNavBarModel(icon: 'ic_classify', label: 'Phân Loại', page: ClassifyPage()),
BottomNavBarModel(icon: 'ic_story_board', label: 'Tủ truyện', page: StoryBoardPage()),
+ BottomNavBarModel(icon: 'ic_story_board', label: 'Lịch Sử', page: HistoryReadingPage()),
];
}
@@ -31,6 +32,10 @@ class MainController extends GetxController {
if (index == 2) {
analytics.setCurrentScreen(screenName: Routes.STORY_BOARD);
}
+ if (index == 3) {
+ Get.find().initLoadData();
+ analytics.setCurrentScreen(screenName: Routes.HISTORY_READING);
+ }
}
@override
diff --git a/lib/pages/main/page.dart b/lib/pages/main/page.dart
index cde43db..961eb55 100644
--- a/lib/pages/main/page.dart
+++ b/lib/pages/main/page.dart
@@ -13,20 +13,20 @@ class MainPage extends GetResponsiveView {
items: controller.bottomNavBarItems
.map(
(item) => BottomNavigationBarItem(
- icon: Image.asset(item.icon.assetPathPNG, color: const Color(0xffCBCBCB), width: 24),
- activeIcon: Image.asset(item.icon.assetPathPNG, color: _theme.primaryColor, width: 24),
+ icon: Image.asset(item.icon.assetPathPNG, color: Colors.white, width: 24),
+ activeIcon: Image.asset(item.icon.assetPathPNG, color: Colors.white, width: 24),
label: item.label,
),
)
.toList(),
type: BottomNavigationBarType.fixed,
showSelectedLabels: true,
- backgroundColor: Colors.white,
+ backgroundColor: _theme.primaryColor,
showUnselectedLabels: true,
currentIndex: controller.currentTabIndex.value,
onTap: controller.onItemTapped,
- selectedItemColor: _theme.primaryColor,
- unselectedItemColor: Colors.grey,
+ selectedItemColor: Colors.white,
+ unselectedItemColor: Colors.white,
selectedLabelStyle: _theme.textTheme.caption!.bold,
unselectedLabelStyle: _theme.textTheme.caption!.regular,
),
diff --git a/lib/pages/read_story/controller.dart b/lib/pages/read_story/controller.dart
index e45e831..d03b684 100644
--- a/lib/pages/read_story/controller.dart
+++ b/lib/pages/read_story/controller.dart
@@ -5,6 +5,7 @@ import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
+import 'package:truyen_chu/pages/history_reading/controller.dart';
import 'package:wakelock/wakelock.dart';
import '../../biz/biz.dart';
import '../../main.dart';
@@ -25,7 +26,8 @@ class ReadStoryController extends GetxController {
final DBService dbService;
- ReadStoryController({required this.chapterRepository, required this.storyRepository, required this.dbService});
+ ReadStoryController(
+ {required this.chapterRepository, required this.storyRepository, required this.dbService});
AppController get appController => Get.find();
@@ -136,7 +138,8 @@ class ReadStoryController extends GetxController {
appController.bannerAdMedium.load();
appController.bannerAdMedium2.dispose();
appController.bannerAdMedium2.load();
- final _response = await chapterRepository.fetchChapterContentById(chapterId: chapterId, storyId: storyId);
+ final _response =
+ await chapterRepository.fetchChapterContentById(chapterId: chapterId, storyId: storyId);
chapterContentModel.value = _response;
storyHistoryLocal.chapterId = chapterId;
@@ -160,7 +163,10 @@ class ReadStoryController extends GetxController {
await Future.delayed(300.milliseconds);
itemScrollController.jumpTo(index: _firstTimeLoad ? _initPageIndex : 0);
} catch (e) {
- itemScrollController.scrollTo(index: _firstTimeLoad ? _initPageIndex - 1 : 0, duration: 150.milliseconds, curve: Curves.linear);
+ itemScrollController.scrollTo(
+ index: _firstTimeLoad ? _initPageIndex - 1 : 0,
+ duration: 150.milliseconds,
+ curve: Curves.linear);
}
_firstTimeLoad = false;
@@ -170,7 +176,8 @@ class ReadStoryController extends GetxController {
void _fetchAllChapterTitle() async {
try {
- final _response = await chapterRepository.fetchChapterTitleById(storyId: storyId, page: _currentPageChapter);
+ final _response = await chapterRepository.fetchChapterTitleById(
+ storyId: storyId, page: _currentPageChapter);
final _list = _response.items;
if (_list.length >= 50 && _currentPageChapter < _response.totalPages) {
_currentPageChapter++;
@@ -224,7 +231,7 @@ class ReadStoryController extends GetxController {
final _boardLocalModel = storyModel!.toStoryBroadLocalModel;
final _response = await dbService.addStoryBoard(model: _boardLocalModel);
if (_response) {
- EasyLoading.showSuccess('Thêm vào tủ truyện thành công!');
+ showSnackBarSuccess(message: 'Thêm vào tủ truyện thành công!');
showButtonAddBoard.value = false;
appController.isRefreshStoryBoard.value = true;
}
diff --git a/lib/pages/read_story/setting_read_page.dart b/lib/pages/read_story/setting_read_page.dart
index b2462b6..c59b17b 100644
--- a/lib/pages/read_story/setting_read_page.dart
+++ b/lib/pages/read_story/setting_read_page.dart
@@ -14,7 +14,7 @@ class SettingReadPage extends StatelessWidget {
_fontSize.value = _controller.textStyle.value.fontSize!;
return Scaffold(
appBar: AppBar(
- title: Text('Cài đặt'),
+ title: Text('Cài đặt',style: _theme.textTheme.headline6!.textWhite,),
),
body: _buildContent(),
);
diff --git a/lib/pages/read_story/widget/container_drawer.dart b/lib/pages/read_story/widget/container_drawer.dart
index bd54967..9d3f17d 100644
--- a/lib/pages/read_story/widget/container_drawer.dart
+++ b/lib/pages/read_story/widget/container_drawer.dart
@@ -19,7 +19,7 @@ class ContainerDrawer extends StatelessWidget {
}
return Container(
width: double.infinity,
- color: AssetColors.colorGreyE7E7E7,
+ color: _theme.scaffoldBackgroundColor,
child: Column(
children: [
_buildContainerHeader(),
@@ -63,7 +63,7 @@ class ContainerDrawer extends StatelessWidget {
title,
maxLines: 1,
overflow: TextOverflow.ellipsis,
- style: _theme.textTheme.subtitle1!.textColor(isSelected ? Color(0xffDF9B34) : Colors.black).weight(isSelected ? FontWeight.bold : FontWeight.w500),
+ style: _theme.textTheme.subtitle1!.textColor(isSelected ? AssetColors.primary : Colors.black).weight(isSelected ? FontWeight.bold : FontWeight.w500),
),
),
);
@@ -74,10 +74,11 @@ class ContainerDrawer extends StatelessWidget {
height: 200,
padding: const EdgeInsets.fromLTRB(10, 0, 5, 5),
width: double.infinity,
+ color: _theme.primaryColor,
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
- IconButton(onPressed: Get.back, icon: const Icon(Icons.close, size: 26)),
+ IconButton(onPressed: Get.back, icon: const Icon(Icons.close, size: 26,color: Colors.white,)),
_buildContainerStory(),
const Spacer(),
_buildTotalChapterAndSort(),
@@ -95,7 +96,7 @@ class ContainerDrawer extends StatelessWidget {
14.horizontalSpace,
_buildContent(),
10.horizontalSpace,
- const Icon(Icons.arrow_forward_ios),
+ const Icon(Icons.arrow_forward_ios,color: Colors.white,),
],
).wrapHeight(100),
);
@@ -107,13 +108,13 @@ class ContainerDrawer extends StatelessWidget {
children: [
Text(
'${_controller.storyModel?.chap ?? 0} chương - ${(_controller.storyModel?.isFull ?? false) ? 'Hoàn thành' : 'Đang ra'}',
- style: _theme.textTheme.subtitle1!.regular.text595959,
+ style: _theme.textTheme.subtitle1!.regular.textWhite,
),
InkWell(
onTap: _controller.onTapSortChapter,
child: Text(
'Đảo thứ tự',
- style: _theme.textTheme.subtitle1!.text3F2F0E,
+ style: _theme.textTheme.subtitle1!.textWhite,
),
)
],
@@ -144,14 +145,14 @@ class ContainerDrawer extends StatelessWidget {
_controller.storyModel?.title ?? '',
maxLines: 3,
overflow: TextOverflow.ellipsis,
- style: _theme.textTheme.subtitle1!.text3F2F0E.size(18).medium.heightLine(20),
+ style: _theme.textTheme.subtitle1!.textWhite.size(18).semiBold.heightLine(20),
),
10.horizontalSpace,
Text(
_controller.storyModel?.authorName ?? '',
maxLines: 1,
overflow: TextOverflow.ellipsis,
- style: _theme.textTheme.subtitle1!.regular.text595959,
+ style: _theme.textTheme.subtitle1!.regular.textWhite,
),
],
),
diff --git a/lib/pages/search/page.dart b/lib/pages/search/page.dart
index 0bed512..4e5914e 100644
--- a/lib/pages/search/page.dart
+++ b/lib/pages/search/page.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
+import 'package:truyen_chu/theme/theme.dart';
import '../../common/common.dart';
import '../../enum.dart';
@@ -10,17 +11,19 @@ class SearchPage extends GetView {
@override
Widget build(BuildContext context) {
return Scaffold(
+ backgroundColor: AssetColors.colorBlueF2F4FF,
appBar: AppBar(
elevation: 0,
titleSpacing: 0,
title: TextFieldSearch(),
actions: [
- TextButton(
- onPressed: controller.onTapSearch,
- child: Text(
- 'Tìm kiếm',
- style: TextStyle(fontSize: 15),
- )),
+ InkWell(
+ onTap: controller.onTapSearch,
+ child: Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 20),
+ child: Icon(Icons.search, color: Colors.white),
+ ),
+ ),
],
),
body: Column(
@@ -39,7 +42,9 @@ class SearchPage extends GetView {
final _status = controller.statusSearch.value;
final _widget = _status == StatusSearch.INIT_SEARCH
? ContainerInitSearch().paddingSymmetric(horizontal: 20)
- : (_status == StatusSearch.HAVE_VALUE ? ContainerSearchResult() : ContainerSearchNotResult().paddingSymmetric(horizontal: 20));
+ : (_status == StatusSearch.HAVE_VALUE
+ ? ContainerSearchResult()
+ : ContainerSearchNotResult().paddingSymmetric(horizontal: 20));
return _widget;
}
}
diff --git a/lib/pages/search/widget/container_init_search.dart b/lib/pages/search/widget/container_init_search.dart
index 92817e6..99dbb89 100644
--- a/lib/pages/search/widget/container_init_search.dart
+++ b/lib/pages/search/widget/container_init_search.dart
@@ -14,8 +14,7 @@ class ContainerInitSearch extends StatelessWidget {
return SingleChildScrollView(
child: Column(
children: [
- _buildStoryHot(),
- const Divider(height: 50),
+ // _buildStoryHot(),
_buildPopularStoryType(),
20.verticalSpace,
],
@@ -52,20 +51,24 @@ class ContainerInitSearch extends StatelessWidget {
final _list = _controller.appController.popularStoryTags;
return TitleAndWidgetSearch(
title: 'Thể loại truyện phổ biến',
- child: Wrap(
- runSpacing: 10,
- spacing: 10,
- children: _list.asMap().keys.map((index) {
- final _title = _list[index].name ?? '';
- final _index = index % AssetColors.colorRandom.length;
- final _color = AssetColors.colorRandom[_index];
- return ItemTagStory(
- title: _title,
- color: _color,
- onTap: () => _controller.onTapTypeStory(_list[index]),
- );
- }).toList(),
- ).fullWidth,
+ child: GridView.count(
+ shrinkWrap: true,
+ physics: const NeverScrollableScrollPhysics(),
+ crossAxisCount: 2,
+ childAspectRatio: 3.5,
+ padding: const EdgeInsets.only(bottom: 20),
+ mainAxisSpacing: 12,
+ crossAxisSpacing: 20,
+ children: _list.asMap().keys.map((index) {
+ final _title = _list[index].name ?? '';
+ final _index = index % AssetColors.colorRandom.length;
+ final _color = AssetColors.colorRandom[_index];
+ return ItemTagStory(
+ title: _title,
+ color: _color,
+ onTap: () => _controller.onTapTypeStory(_list[index]));
+ }).toList())
+ .fullWidth,
);
}
}
diff --git a/lib/pages/search/widget/title_and_widget _search.dart b/lib/pages/search/widget/title_and_widget _search.dart
index 7d95ef3..7c49595 100644
--- a/lib/pages/search/widget/title_and_widget _search.dart
+++ b/lib/pages/search/widget/title_and_widget _search.dart
@@ -15,7 +15,7 @@ class TitleAndWidgetSearch extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Text(title, style: _theme.textTheme.subtitle1).paddingSymmetric(horizontal: paddingTitle),
+ Text(title, style: _theme.textTheme.headline6).paddingSymmetric(horizontal: paddingTitle),
20.verticalSpace,
child,
],
diff --git a/lib/pages/storyboard/page.dart b/lib/pages/storyboard/page.dart
index 0dac134..cf2cfa2 100644
--- a/lib/pages/storyboard/page.dart
+++ b/lib/pages/storyboard/page.dart
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
+import 'package:truyen_chu/theme/theme.dart';
import '../../common/common.dart';
import 'controller.dart';
@@ -10,42 +11,31 @@ class StoryBoardPage extends GetView {
@override
Widget build(BuildContext context) {
return Scaffold(
+ backgroundColor: AssetColors.colorBlueF2F4FF,
appBar: AppBar(
- title: Text('Tủ truyện của bạn',style: _theme.textTheme.headline6!.textBlack,),
+ title: Text(
+ 'Tủ truyện',
+ style: _theme.textTheme.headline6!.textWhite,
+ ),
),
body: _buildContent(),
);
}
Widget _buildContent() {
- return Column(
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- TextButton(
- onPressed: controller.onTapHistoryStory,
- child: Text(
- 'Lịch sử truyện đã đọc >',
- style: _theme.textTheme.headline6!.size(18),
- ),
- ),
- 20.verticalSpace,
- Expanded(
- child: Obx(
- () => GridView.count(
- crossAxisCount: 3,
- childAspectRatio: 0.5,
- padding: const EdgeInsets.only(bottom: 20),
- mainAxisSpacing: 25,
- crossAxisSpacing: 30,
- children: controller.listStory
- .map(
- (item) => ItemStoryBoard(model: item, onTap: () => controller.onTapStory(item.id)),
- )
- .toList(),
- ),
- ),
- ),
- ],
- ).paddingOnly(right: 20, left: 20);
+ return Obx(
+ () => GridView.count(
+ crossAxisCount: 3,
+ childAspectRatio: 0.55,
+ padding: const EdgeInsets.only(bottom: 20),
+ mainAxisSpacing: 15,
+ crossAxisSpacing: 10,
+ children: controller.listStory
+ .map(
+ (item) => ItemStoryBoard(model: item, onTap: () => controller.onTapStory(item.id)),
+ )
+ .toList(),
+ ),
+ ).paddingOnly(right: 20, left: 20, top: 20);
}
}
diff --git a/lib/pages/storyboard/widget/item_story_board.dart b/lib/pages/storyboard/widget/item_story_board.dart
index 2b7e522..842aca3 100644
--- a/lib/pages/storyboard/widget/item_story_board.dart
+++ b/lib/pages/storyboard/widget/item_story_board.dart
@@ -15,6 +15,8 @@ class ItemStoryBoard extends StatelessWidget {
return InkWell(
onTap: onTap,
child: Container(
+ padding: const EdgeInsets.all(5),
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(10)),
child: Column(
children: [
_buildImage(),
diff --git a/lib/routes/app_pages.dart b/lib/routes/app_pages.dart
index 3a68cb9..970fcf0 100644
--- a/lib/routes/app_pages.dart
+++ b/lib/routes/app_pages.dart
@@ -18,6 +18,7 @@ abstract class AppPages {
BindingsBuilder.put(() => MainController()),
BindingsBuilder.put(() => StoryBoardController(dbService: Get.find())),
BindingsBuilder.put(() => ClassifyController()),
+ BindingsBuilder.put(() => HistoryReadingController(dbService: Get.find())),
],
),
GetPage(
diff --git a/lib/theme/asset_colors.dart b/lib/theme/asset_colors.dart
index a5c607f..04d92b4 100644
--- a/lib/theme/asset_colors.dart
+++ b/lib/theme/asset_colors.dart
@@ -4,7 +4,7 @@ class AssetColors {
static Color shimmerBaseColor = Colors.grey.withOpacity(0.8);
static Color shimmerHighlightColor = Colors.grey.withOpacity(0.5);
static const Color textBlack = Color(0xff181A20);
- static const Color primary = Color(0xffFFAC40);
+ static const Color primary = Color(0xff4285F4);
static const Color colorGreyBFBFBF = Color(0xffBFBFBF);
static const Color colorGrey333333 = Color(0xff333333);
static const Color colorGrey262626 = Color(0xff262626);
diff --git a/lib/theme/theme_data.dart b/lib/theme/theme_data.dart
index e441c67..04c364f 100644
--- a/lib/theme/theme_data.dart
+++ b/lib/theme/theme_data.dart
@@ -6,15 +6,15 @@ import 'theme.dart';
class StoryWordThemeData {
static final InputBorder _inputBorder = OutlineInputBorder(
borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.circular(100),
+ borderRadius: BorderRadius.circular(10),
);
static final InputBorder _focusInputBorder = OutlineInputBorder(
borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.circular(100),
+ borderRadius: BorderRadius.circular(10),
);
static final themeData = ThemeData(
colorScheme: _colorScheme,
- primaryColor: const Color(0xFFFFAC40),
+ primaryColor: const Color(0xFF4285F4),
// primarySwatch: MaterialColor(0xFFFFAC40, const {
// 50: const Color(0xFFFFF4E3),
// 100: const Color(0xFFFFE2B8),
@@ -31,10 +31,12 @@ class StoryWordThemeData {
accentColor: _colorScheme.primary,
appBarTheme: AppBarTheme(
centerTitle: true,
- iconTheme: IconThemeData(color: _colorScheme.onBackground),
+ iconTheme: IconThemeData(color: Colors.white),
textTheme: _textTheme,
elevation: 0,
- color: Colors.white,
+ actionsIconTheme: IconThemeData(color: Colors.white),
+ titleTextStyle: _textTheme.headline6?.copyWith(color: Colors.white),
+ color: AssetColors.primary,
),
canvasColor: _colorScheme.background,
toggleableActiveColor: _colorScheme.primary,
@@ -104,7 +106,7 @@ class StoryWordThemeData {
onPrimary: Colors.white,
onSurface: Colors.grey,
shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(100),
+ borderRadius: BorderRadius.circular(10),
),
),
),
@@ -113,7 +115,7 @@ class StoryWordThemeData {
minimumSize: Size(76.0, 56.0),
side: BorderSide(width: 1.5, color: _colorScheme.primary),
shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(100),
+ borderRadius: BorderRadius.circular(10),
),
),
),
@@ -125,9 +127,9 @@ class StoryWordThemeData {
static const _bold = FontWeight.w700;
static const _colorScheme = ColorScheme(
- primary: const Color(0xFFFFAC40),
- primaryVariant: const Color(0xFFE25D20),
- secondary: const Color(0xFFFFCF8B),
+ primary: const Color(0xFF4285F4),
+ primaryVariant: const Color(0xFF4285F4),
+ secondary: const Color(0xFF4285F4),
secondaryVariant: Color(0xFFC77D02),
background: Colors.white,
onBackground: Colors.black,
diff --git a/truyen_chu.iml b/truyen_chu.iml
index 3329c2c..8f18243 100644
--- a/truyen_chu.iml
+++ b/truyen_chu.iml
@@ -81,6 +81,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+