Skip to content

Commit d26bbf9

Browse files
committed
#7: Audio plays. TODO: Mantain state of which
1 parent aa19ee5 commit d26bbf9

File tree

15 files changed

+141
-48
lines changed

15 files changed

+141
-48
lines changed

lib/main.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import 'package:audioplayers/audioplayers.dart';
22
import 'package:flutter/material.dart';
33
import 'package:inside_chassidus/data/insideData.dart';
4-
import 'package:inside_chassidus/screens/lesson-screen/index.dart';
5-
import 'package:inside_chassidus/screens/top-lessons.dart';
4+
import 'package:inside_chassidus/routes/lesson-route/index.dart';
5+
import 'package:inside_chassidus/routes/top-lessons.dart';
66
import 'package:provider/provider.dart';
7-
import 'screens/site-section/index.dart';
7+
import 'routes/section-route/index.dart';
88

99
void main() => runApp(Provider<AudioPlayer>.value(
1010
value: AudioPlayer(),
@@ -22,13 +22,13 @@ class MyApp extends StatelessWidget {
2222
WidgetBuilder builder;
2323

2424
switch (settings.name) {
25-
case SiteSectionScreen.routeName:
25+
case SectionRoute.routeName:
2626
final SiteSection routeSection = settings.arguments;
27-
builder = (context) => SiteSectionScreen(section: routeSection);
27+
builder = (context) => SectionRoute(section: routeSection);
2828
break;
29-
case LessonScreen.routeName:
29+
case LessonRoute.routeName:
3030
final Lesson lesson = settings.arguments;
31-
builder = (context) => LessonScreen(lesson: lesson);
31+
builder = (context) => LessonRoute(lesson: lesson);
3232
break;
3333
default:
3434
throw ArgumentError("Unknown route: ${settings.name}");

lib/routes/lesson-route/index.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export 'lesson-route.dart';

lib/screens/lesson-screen/lesson-screen.dart renamed to lib/routes/lesson-route/lesson-route.dart

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@ import 'package:inside_chassidus/widgets/inside-scaffold.dart';
44
import 'package:inside_chassidus/widgets/media-list/index.dart';
55

66
/// Route to display all of the lessons for a given section.
7-
class LessonScreen extends StatelessWidget {
7+
class LessonRoute extends StatelessWidget {
88
static const String routeName = "/lessons";
99

1010
final Lesson lesson;
1111

12-
LessonScreen({this.lesson});
12+
LessonRoute({this.lesson});
1313

1414
@override
1515
Widget build(BuildContext context) => InsideScaffold(
1616
insideData: lesson,
17-
body: Row(children: <Widget>[
18-
if (lesson.description?.isNotEmpty) Text(lesson.description),
19-
MediaList(media: lesson.audio)
20-
]));
17+
body: Padding(
18+
padding: EdgeInsets.symmetric(horizontal: 8).copyWith(top: 8),
19+
child: Column(children: <Widget>[
20+
if (lesson.description?.isNotEmpty) Text(lesson.description),
21+
MediaList(media: lesson.audio)
22+
]),
23+
));
2124
}

lib/routes/section-route/index.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export 'section-route.dart';
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:inside_chassidus/data/insideData.dart';
3+
import 'package:inside_chassidus/routes/lesson-route/index.dart';
4+
import 'package:inside_chassidus/routes/section-route/widgets/index.dart';
5+
import 'package:inside_chassidus/widgets/inside-data-retriever.dart';
6+
import 'package:inside_chassidus/widgets/inside-navigator.dart';
7+
import 'package:inside_chassidus/widgets/inside-scaffold.dart';
8+
import 'package:inside_chassidus/widgets/navigate-to-section.dart';
9+
10+
/// Displays contents of a site section. All subsections and lessons.
11+
class SectionRoute extends StatelessWidget {
12+
static const String routeName = "/sections";
13+
14+
final SiteSection section;
15+
16+
SectionRoute({this.section});
17+
18+
@override
19+
Widget build(BuildContext context) => InsideScaffold(
20+
insideData: section,
21+
body: InsideDataRetriever(builder: (context, data) {
22+
final sections = List<SiteSection>.from(data.getSections(section));
23+
final lessons = List<Lesson>.from(data.getLessons(section));
24+
25+
return ListView.builder(
26+
itemCount: sections.length + lessons.length,
27+
itemBuilder: (context, i) {
28+
if (i < sections.length) {
29+
return NavigateToSection(
30+
section: sections[i],
31+
child: InsideDataCard(insideData: sections[i]));
32+
} else {
33+
int adjustedIndex = i - sections.length;
34+
final lesson = lessons[adjustedIndex];
35+
36+
return InsideNavigator(
37+
child: InsideDataCard(insideData: lesson),
38+
routeName: LessonRoute.routeName,
39+
data: lesson,
40+
);
41+
}
42+
},
43+
);
44+
}));
45+
}

lib/screens/site-section/widgets/inside-data-card.dart renamed to lib/routes/section-route/widgets/inside-data-card.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:expandable/expandable.dart';
22
import 'package:flutter/material.dart';
33
import 'package:inside_chassidus/data/insideData.dart';
4-
import 'package:inside_chassidus/screens/site-section/widgets/informative-text-painter.dart';
4+
import 'package:inside_chassidus/routes/section-route/widgets/informative-text-painter.dart';
55

66
class InsideDataCard extends StatefulWidget {
77
final CountableInsideData insideData;
File renamed without changes.

lib/screens/lesson-screen/index.dart

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)