perisst
continuous-integration/drone/push Build is passing Details

AUTH_PERSISTENCE_LDE
Lucas Delanier 2 years ago
parent 8a561bd4ed
commit c9404a2f0e

@ -18,6 +18,7 @@ import 'package:justmusic/screens/profile_screen.dart';
import 'package:justmusic/screens/registration_screen.dart'; import 'package:justmusic/screens/registration_screen.dart';
import 'package:justmusic/screens/verify_email_screen.dart'; import 'package:justmusic/screens/verify_email_screen.dart';
import 'package:justmusic/screens/welcome_screen.dart'; import 'package:justmusic/screens/welcome_screen.dart';
import 'package:justmusic/values/constants.dart';
import 'package:justmusic/view_model/CommentViewModel.dart'; import 'package:justmusic/view_model/CommentViewModel.dart';
import 'package:justmusic/view_model/MusicViewModel.dart'; import 'package:justmusic/view_model/MusicViewModel.dart';
import 'package:justmusic/view_model/PostViewModel.dart'; import 'package:justmusic/view_model/PostViewModel.dart';
@ -53,33 +54,35 @@ class MyApp extends StatefulWidget {
} }
class _MyAppState extends State<MyApp> { class _MyAppState extends State<MyApp> {
late StreamSubscription<User?> user; Strem<> usercurrent;
Stream<userJustMusic.User?> userCurrent = Stream.empty();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
checkSignIn();
} }
Future<userJustMusic.User?> checkSignIn() async { @override
user = FirebaseAuth.instance.authStateChanges().listen((user) async { void dispose() {
super.dispose();
}
Future<userJustMusic.User?> checkAuth() async {
try {
FirebaseAuth.instance.authStateChanges().listen((User? user) async {
if (user == null) { if (user == null) {
print('User is currently signed out!'); print("User is currently signed out!");
return null; throw Exception('User is currently signed out!');
} else { } else {
MyApp.userViewModel.userCurrent = (await (MyApp.userViewModel.getUser(user.uid)))!;
userCurrent = Stream.value(MyApp.userViewModel.userCurrent);
print('User is signed in!'); print('User is signed in!');
usercurrent = await MyApp.userViewModel.getUser(FirebaseAuth.instance.currentUser!.uid);
MyApp.userViewModel.userCurrent = usercurrent!;
print(usercurrent?.pseudo);
} }
}); });
} catch (e) {
return null; return null;
} }
return usercurrent;
@override
void dispose() {
user.cancel();
super.dispose();
} }
// This widget is the root of your application. // This widget is the root of your application.
@ -87,6 +90,12 @@ class _MyAppState extends State<MyApp> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
Paint.enableDithering = true; Paint.enableDithering = true;
return StreamBuilder(
stream: usercurrent,
builder: (BuildContext context, snapshot) {
if (snapshot.hasData) {
print("has dataaaa");
return ScreenUtilInit( return ScreenUtilInit(
useInheritedMediaQuery: true, useInheritedMediaQuery: true,
builder: (context, child) { builder: (context, child) {
@ -107,9 +116,21 @@ class _MyAppState extends State<MyApp> {
theme: ThemeData( theme: ThemeData(
primarySwatch: Colors.blue, primarySwatch: Colors.blue,
), ),
home: WellcomeScreen()); home: usercurrent == null ? WellcomeScreen() : FeedScreen());
}, },
designSize: Size(390, 844), designSize: Size(390, 844),
); );
} else {
return Container(
width: double.infinity,
height: double.infinity,
color: bgColor,
child: Center(
child: CupertinoActivityIndicator(),
),
);
}
},
);
} }
} }

Loading…
Cancel
Save