diff --git a/assets/animations/loading_animation.flr b/assets/animations/loading_animation.flr new file mode 100644 index 0000000..30ff410 Binary files /dev/null and b/assets/animations/loading_animation.flr differ diff --git a/assets/animations/loading_animation_looped.flr b/assets/animations/loading_animation_looped.flr new file mode 100644 index 0000000..165c411 Binary files /dev/null and b/assets/animations/loading_animation_looped.flr differ diff --git a/lib/src/screens/home_screen.dart b/lib/src/screens/home_screen.dart index 55db7dd..b4773b1 100644 --- a/lib/src/screens/home_screen.dart +++ b/lib/src/screens/home_screen.dart @@ -1,18 +1,37 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import '../models/task_model.dart'; import '../resources/authService.dart'; +import '../resources/firestore_provider.dart'; import '../widgets/task_list_tile.dart'; +import '../widgets/loading_indicator.dart'; class HomeScreen extends StatelessWidget { final _auth = authService; + final _firestore = firestoreProvider; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Main Screen'), ), - body: TaskListTile(task: TaskModel.sample()), + body: StreamBuilder( + stream: _firestore.getUserTasks('mariano159357'), + builder: (BuildContext context, AsyncSnapshot> snap) { + if (!snap.hasData) { + return Center( + child: LoadingIndicator(), + ); + } + return ListView( + padding: EdgeInsets.all(0.0), + children: + snap.data.map((task) => TaskListTile(task: task)).toList(), + ); + }, + ), ); } } diff --git a/lib/src/widgets/loading_indicator.dart b/lib/src/widgets/loading_indicator.dart new file mode 100644 index 0000000..7bdbe48 --- /dev/null +++ b/lib/src/widgets/loading_indicator.dart @@ -0,0 +1,16 @@ +import 'package:flare_flutter/flare_actor.dart'; +import 'package:flutter/material.dart'; + +class LoadingIndicator extends StatelessWidget { + Widget build(BuildContext context) { + return Container( + width: 70, + height: 70, + child: FlareActor( + 'assets/animations/loading_animation_looped.flr', + animation: 'Flip', + fit: BoxFit.contain, + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index e5aee24..9af46eb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,6 +47,8 @@ dev_dependencies: flutter: assets: - assets/animations/loading_logo.flr + - assets/animations/loading_animation_looped.flr + - assets/animations/loading_animation.flr fonts: - family: IBM Plex Sans