Skip to content

Instantly share code, notes, and snippets.

View SAGARSURI's full-sized avatar
💭
Building apps with Flutter

SAGAR SURI SAGARSURI

💭
Building apps with Flutter
View GitHub Profile
class MoviesBloc {
final _repository = Repository();
final _moviesFetcher = PublishSubject<ItemModel>();
Observable<ItemModel> get allMovies => _moviesFetcher.stream;
fetchAllMovies() async {
ItemModel itemModel = await _repository.fetchAllMovies();
_moviesFetcher.sink.add(itemModel);
}
@override
void didChangeDependencies() {
bloc = MovieDetailBlocProvider.of(context);
bloc.fetchTrailersById(movieId);
super.didChangeDependencies();
}
@override
void dispose() {
bloc.dispose();
super.dispose();
}
import 'dart:async';
class Bloc {
//Our pizza house
final order = StreamController<String>();
//Our order office
Stream<String> get orderOffice => order.stream.transform(validateOrder);
import 'package:flutter/material.dart';
import 'ui/login.dart';
import 'blocs/goals_bloc_provider.dart';
import 'blocs/login_bloc_provider.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return LoginBlocProvider(
child: GoalsBlocProvider(
openDetailPage(ItemModel data, int index) {
final page = MovieDetailBlocProvider(
child: MovieDetail(
title: data.results[index].title,
posterUrl: data.results[index].backdrop_path,
description: data.results[index].overview,
releaseDate: data.results[index].release_date,
voteAverage: data.results[index].vote_average.toString(),
movieId: data.results[index].id,
),
import 'package:inject/inject.dart';
import '../blocs/movies_bloc.dart';
import '../blocs/movie_detail_bloc.dart';
import '../blocs/bloc_base.dart';
import '../resources/repository.dart';
import '../resources/movie_api_provider.dart';
import 'package:http/http.dart' show Client;
@module
class BlocModule{
import 'package:inject/inject.dart';
import 'bloc_injector.inject.dart' as g;
import '../app.dart';
import 'bloc_module.dart';
@Injector(const [BlocModule])
abstract class BlocInjector{
@provide
App get app;
abstract class BlocBase{
void dispose();
}
import 'dart:async';
import 'package:rxdart/rxdart.dart';
import '../models/trailer_model.dart';
import '../resources/repository.dart';
import 'bloc_base.dart';
import 'package:inject/inject.dart';
class MovieDetailBloc extends BlocBase {