WoofnWalk / lib / main.dart
main.dart
Raw
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:woofnwalk/providers/accountAuth.dart';
import 'package:woofnwalk/providers/googleSignIn.dart';
import 'package:woofnwalk/screens/maps/filter_walkers_screen.dart';
import 'package:woofnwalk/screens/maps/walkers_list_screen.dart';
import 'package:woofnwalk/screens/splashScreen.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:woofnwalk/providers/utils.dart';

Future main() async{
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  runApp(MyApp());
}

final ThemeData appTheme = ThemeData(
  primaryColor: Colors.grey,
  colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.deepPurple)
      .copyWith(secondary: Colors.deepPurpleAccent[700])
);

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        Provider<AuthenticateService>(
          create: (_) => AuthenticateService(FirebaseAuth.instance)
        ),
        StreamProvider(
            create: (context)=> context.read<AuthenticateService>().authStateChanges, initialData: null,
        ),
        ChangeNotifierProvider<GoogleSignInProvider>(
          create: (context) => GoogleSignInProvider()
        ),
      ],
      child: MaterialApp(
        title: 'Woof n Walk',
        theme: appTheme,
        scaffoldMessengerKey: Utils.messengerKey,
        initialRoute: '/',
        routes: {
          '/': (context) => Splash(),
          WalkersList.routeName: (context) => WalkersList(),
          FilterWalkersScreen.routeName: (context) => FilterWalkersScreen(),
        },
      ),
    );
  }
}