123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- import 'dart:convert';
- import 'package:flutter/material.dart';
- import 'package:flutter_bloc/flutter_bloc.dart';
- import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
- import 'package:youtube/data/models/call_model.dart';
- import 'package:youtube/presentaion/cubit/home/home_cubit.dart';
- import 'package:youtube/shared/shared_widgets.dart';
- import '../../shared/constats.dart';
- import '../../shared/network/cache_helper.dart';
- import '../../shared/theme.dart';
- import '../cubit/auth/auth_cubit.dart';
- import '../cubit/home/home_state.dart';
- import '../views/home_views/home_screen_pageview.dart';
- class HomeScreen extends StatefulWidget {
- const HomeScreen({Key? key}) : super(key: key);
- @override
- State<HomeScreen> createState() => _HomeScreenState();
- }
- class _HomeScreenState extends State<HomeScreen> {
- @override
- void initState() {
- super.initState();
- debugPrint('UserIdIs: ${CacheHelper.getString(key: 'uId')}');
- Future.delayed(const Duration(milliseconds: 1000), () {
- checkInComingTerminatedCall();
- });
- }
- checkInComingTerminatedCall() async {
- if(CacheHelper.getString(key: 'terminateIncomingCallData').isNotEmpty){ //if there is a terminated call
- Map<String, dynamic> callMap = jsonDecode(CacheHelper.getString(key: 'terminateIncomingCallData'));
- await CacheHelper.removeData(key: 'terminateIncomingCallData');
- Navigator.pushNamed(context, callScreen,arguments: [
- true,
- CallModel.fromJson(callMap),
- ]);
- }
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- centerTitle: true,
- title: Text('Hello, ${AuthCubit.get(context).currentUser.name}'),
- ),
- body: BlocConsumer<HomeCubit, HomeState>(
- listener: (context, state) {
- //GetUserData States
- if (state is ErrorGetUsersState) {
- showToast(msg: state.message);
- }
- if (state is ErrorGetCallHistoryState) {
- // showToast(msg: state.message);
- }
- //FireCall States
- if (state is ErrorFireVideoCallState) {
- // showToast(msg: state.message);
- }
- if (state is ErrorPostCallToFirestoreState) {
- showToast(msg: state.message);
- }
- if(state is ErrorUpdateUserBusyStatus){
- showToast(msg: state.message);
- }
- if (state is SuccessFireVideoCallState) {
- Navigator.pushNamed(context, callScreen, arguments: [false,state.callModel]);
- }
- //Receiver Call States
- if(state is SuccessInComingCallState){
- Navigator.pushNamed(context, callScreen, arguments: [true,state.callModel]);
- }
- },
- builder: (context, state) {
- var homeCubit = HomeCubit.get(context);
- return ModalProgressHUD(
- inAsyncCall: homeCubit.fireCallLoading,
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: DefaultTabController(
- length: HomeTypes.values.length,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- TabBar(
- isScrollable: true,
- unselectedLabelColor: Colors.grey[400],
- indicatorColor: defaultColor,
- labelColor: defaultColor,
- tabs: HomeTypes.values
- .map((e) => Tab(
- child: Text(
- e.name,
- style: const TextStyle(fontSize: 15),
- ),
- ))
- .toList(),
- ),
- (state is LoadingGetUsersState ||
- state is LoadingGetCallHistoryState)
- ? const Padding(
- padding: EdgeInsets.symmetric(
- vertical: 8.0, horizontal: 2.0),
- child: LinearProgressIndicator(
- backgroundColor: Colors.grey,
- ),
- )
- : Container(),
- const SizedBox(
- height: 10.0,
- ),
- Expanded(
- child: TabBarView(
- physics: const BouncingScrollPhysics(),
- children: HomeTypes.values.map((e) {
- return HomeScreenPageView(
- users: homeCubit.users,
- calls: homeCubit.calls,
- isUsers: e == HomeTypes.users ? true : false,
- );
- }).toList(),
- ),
- ),
- ],
- ),
- ),
- ),
- );
- },
- ));
- }
- }
|