feat: Enhance TTS player functionality and UI

- Added resume functionality to TTS player when paused.
- Display voice name or language in TTS player UI.
- Improved error handling in reader provider with debug messages.
- Updated TTS service to configure Vietnamese voice and handle platform-specific audio settings.
- Removed wakelock dependency and related code.
- Fixed search screen error handling.
- Updated settings screen to navigate to home after sign out.
- Improved splash screen with timer management.
- Enhanced main app error handling with logging.
- Removed unused package_info_plus and wakelock_plus dependencies.
- Added environment variable support for mobile runtime.
- Integrated Google Sign-In configuration for Android.
- Created logging observer for Riverpod providers.
- Added scripts for environment setup and Google Sign-In validation.
This commit is contained in:
2026-03-30 11:38:04 +07:00
parent 8da9c4152c
commit 1afff18f4d
40 changed files with 1735 additions and 312 deletions
+2
View File
@@ -15,6 +15,8 @@ class ReaderApp extends ConsumerWidget {
title: 'Reader App',
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: ThemeMode.system,
routerConfig: router,
);
}
+1 -1
View File
@@ -61,7 +61,7 @@ final appRouterProvider = Provider<GoRouter>((ref) {
GoRoute(
path: RouteNames.readerPath,
builder: (_, state) => ReaderScreen(
chapterId: state.pathParameters['chapterId'] ?? '',
chapterId: Uri.decodeComponent(state.pathParameters['chapterId'] ?? ''),
),
),
GoRoute(
+1 -1
View File
@@ -17,7 +17,7 @@ class RouteNames {
// Navigation helpers
static String novelDetail(String id) => '/novel/$id';
static String readerChapter(String chapterId) => '/reader/$chapterId';
static String readerChapter(String chapterId) => '/reader/${Uri.encodeComponent(chapterId)}';
static String commentsFor(String novelId, {String? chapterId}) {
final base = '/comments/$novelId';
return chapterId != null ? '$base?chapterId=$chapterId' : base;