Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Ardi Baskoro
flutter_modular
Commits
2a79e737
Commit
2a79e737
authored
Apr 05, 2022
by
Ardi Baskoro
Browse files
Implement Bloc at HomePage
parent
1b3c6c28
Changes
15
Hide whitespace changes
Inline
Side-by-side
lib/bloc/movie_list_bloc.dart
0 → 100644
View file @
2a79e737
import
'package:flutter_modular/network/model/movie.dart'
;
import
'package:flutter_modular/repository/repository.dart'
;
import
'package:rxdart/rxdart.dart'
;
class
MovieListBloc
{
final
_repository
=
Repository
();
final
_movieFetcher
=
PublishSubject
<
Movie
>();
Stream
<
Movie
>
get
allMovie
=>
_movieFetcher
.
stream
;
fetchAllMovie
()
async
{
Movie
movie
=
await
_repository
.
fetchAllMovie
();
_movieFetcher
.
sink
.
add
(
movie
);
}
dispose
()
{
_movieFetcher
.
close
();
}
}
\ No newline at end of file
lib/main.dart
View file @
2a79e737
import
'package:flutter/material.dart'
;
import
'package:flutter_modular/ui/home_page.dart'
;
import
'package:flutter_modular/ui/
page/
home_page.dart'
;
void
main
(
)
=>
runApp
(
const
MyApp
());
...
...
lib/repository/repository.dart
0 → 100644
View file @
2a79e737
import
'package:flutter_modular/network/api/api_provider.dart'
;
import
'package:flutter_modular/network/model/movie.dart'
;
class
Repository
{
final
apiProvider
=
ApiProvider
();
Future
<
Movie
>
fetchAllMovie
()
=>
apiProvider
.
getMovieList
();
}
lib/common/color_helper.dart
→
lib/
ui/
common/color_helper.dart
View file @
2a79e737
File moved
lib/ui/detail_page.dart
→
lib/ui/
page/
detail_page.dart
View file @
2a79e737
import
'package:flutter/material.dart'
;
import
'package:flutter_modular/widget/movie_detail_header.dart'
;
import
'package:flutter_modular/widget/story_line.dart'
;
import
'../widget/movie_detail_header.dart'
;
import
'../widget/story_line.dart'
;
class
DetailPage
extends
StatelessWidget
{
final
List
<
Widget
>
genre
;
...
...
lib/ui/home_page.dart
→
lib/ui/
page/
home_page.dart
View file @
2a79e737
import
'package:flutter/material.dart'
;
import
'package:flutter_modular/network/api/api_provider.dart'
;
import
'package:flutter_modular/network/model/movie.dart'
;
import
'package:flutter_modular/ui/detail_page.dart'
;
import
'package:flutter_modular/widget/card_list_movie.dart'
;
import
'package:flutter_modular/widget/chip_genre_movie.dart'
;
import
'package:flutter_modular/ui/page/detail_page.dart'
;
import
'../../bloc/movie_list_bloc.dart'
;
import
'../widget/card_list_movie.dart'
;
import
'../widget/chip_genre_movie.dart'
;
class
HomePage
extends
StatefulWidget
{
final
String
title
;
...
...
@@ -15,6 +16,20 @@ class HomePage extends StatefulWidget {
}
class
_HomePageState
extends
State
<
HomePage
>
{
final
bloc
=
MovieListBloc
();
@override
void
initState
()
{
super
.
initState
();
bloc
.
fetchAllMovie
();
}
@override
void
dispose
()
{
bloc
.
dispose
();
super
.
dispose
();
}
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
...
...
@@ -35,8 +50,8 @@ class _HomePageState extends State<HomePage> {
getListMovie
()
{
return
Center
(
child:
Future
Builder
(
future:
ApiProvider
().
getMovieList
()
,
child:
Stream
Builder
(
stream:
bloc
.
allMovie
,
builder:
(
context
,
AsyncSnapshot
<
Movie
>
snapshot
)
{
if
(
snapshot
.
hasData
)
{
return
showListMovie
(
snapshot
);
...
...
lib/widget/arc_banner_image.dart
→
lib/
ui/
widget/arc_banner_image.dart
View file @
2a79e737
File moved
lib/widget/card_list_movie.dart
→
lib/
ui/
widget/card_list_movie.dart
View file @
2a79e737
import
'package:cached_network_image/cached_network_image.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_modular/common/color_helper.dart'
;
import
'../common/color_helper.dart'
;
class
CardListMovies
extends
StatelessWidget
{
final
String
image
;
...
...
@@ -61,8 +62,7 @@ class CardListMovies extends StatelessWidget {
height:
40
,
decoration:
BoxDecoration
(
color:
Colors
.
blueGrey
,
borderRadius:
BorderRadius
.
circular
(
20
)),
borderRadius:
BorderRadius
.
circular
(
20
)),
),
),
Center
(
...
...
@@ -71,10 +71,9 @@ class CardListMovies extends StatelessWidget {
height:
30
,
child:
CircularProgressIndicator
(
strokeWidth:
3.0
,
valueColor:
AlwaysStoppedAnimation
<
Color
>(
VoteColorHelper
.
getColor
(
double
.
parse
(
vote
))),
valueColor:
AlwaysStoppedAnimation
<
Color
>(
VoteColorHelper
.
getColor
(
double
.
parse
(
vote
))),
backgroundColor:
Colors
.
grey
,
value:
double
.
parse
(
vote
)
/
10.0
,
)),
...
...
@@ -111,8 +110,7 @@ class CardListMovies extends StatelessWidget {
title
,
overflow:
TextOverflow
.
ellipsis
,
style:
const
TextStyle
(
fontWeight:
FontWeight
.
w600
,
fontSize:
20
),
fontWeight:
FontWeight
.
w600
,
fontSize:
20
),
),
Text
(
releaseDate
,
...
...
lib/widget/chip_genre_movie.dart
→
lib/
ui/
widget/chip_genre_movie.dart
View file @
2a79e737
File moved
lib/widget/movie_detail_header.dart
→
lib/
ui/
widget/movie_detail_header.dart
View file @
2a79e737
import
'package:flutter/material.dart'
;
import
'package:flutter_modular/widget/arc_banner_image.dart'
;
import
'package:flutter_modular/widget/poster.dart'
;
import
'package:flutter_modular/widget/rating_information.dart'
;
import
'../widget/arc_banner_image.dart'
;
import
'../widget/poster.dart'
;
import
'../widget/rating_information.dart'
;
class
MovieDetailHeader
extends
StatelessWidget
{
final
List
<
Widget
>
genre
;
...
...
lib/widget/poster.dart
→
lib/
ui/
widget/poster.dart
View file @
2a79e737
File moved
lib/widget/rating_information.dart
→
lib/
ui/
widget/rating_information.dart
View file @
2a79e737
File moved
lib/widget/story_line.dart
→
lib/
ui/
widget/story_line.dart
View file @
2a79e737
File moved
pubspec.lock
View file @
2a79e737
...
...
@@ -264,7 +264,7 @@ packages:
source: hosted
version: "4.2.4"
rxdart:
dependency:
transitive
dependency:
"direct main"
description:
name: rxdart
url: "https://pub.dartlang.org"
...
...
pubspec.yaml
View file @
2a79e737
...
...
@@ -30,6 +30,7 @@ dependencies:
flutter
:
sdk
:
flutter
http
:
^0.13.4
rxdart
:
^0.27.3
cached_network_image
:
^3.2.0
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment