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:
@@ -5,11 +5,28 @@ import 'package:go_router/go_router.dart';
|
||||
import '../../../app/router/route_names.dart';
|
||||
import '../providers/auth_provider.dart';
|
||||
|
||||
class LoginScreen extends ConsumerWidget {
|
||||
class LoginScreen extends ConsumerStatefulWidget {
|
||||
const LoginScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
ConsumerState<LoginScreen> createState() => _LoginScreenState();
|
||||
}
|
||||
|
||||
class _LoginScreenState extends ConsumerState<LoginScreen> {
|
||||
bool _startedSignIn = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (!mounted || _startedSignIn) return;
|
||||
_startedSignIn = true;
|
||||
ref.read(authProvider.notifier).signInWithGoogle();
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final authState = ref.watch(authProvider);
|
||||
|
||||
ref.listen<AuthState>(authProvider, (_, next) {
|
||||
@@ -42,6 +59,16 @@ class LoginScreen extends ConsumerWidget {
|
||||
Text(errorMsg, style: const TextStyle(color: Colors.red)),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
if (authState is AuthLoading) ...[
|
||||
const SizedBox(
|
||||
width: 22,
|
||||
height: 22,
|
||||
child: CircularProgressIndicator(strokeWidth: 2),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
const Text('Đang mở Google Sign-In...'),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
FilledButton.icon(
|
||||
onPressed: isLoading
|
||||
? null
|
||||
|
||||
Reference in New Issue
Block a user