import 'package:connectivity/connectivity.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:photolink_beta/Custome_Script/size_config.dart'; import 'package:photolink_beta/Model/CustomResponse/APIResponse.dart'; import 'package:photolink_beta/Model/Trip/Trip.dart'; import 'package:photolink_beta/customWidget/Card_Trip.dart'; import 'package:photolink_beta/customWidget/loader.dart'; import 'package:photolink_beta/services/Trip/GetAllMytripe.dart'; class AllMytrip extends StatefulWidget { @override _AllMytripState createState() => _AllMytripState(); } class _AllMytripState extends State { final GetAllMytripe getAllMytripe = GetAllMytripe(); APIResponse> _apiResponsetrip = new APIResponse>(); int statusCode = -1; bool isLoading = false; bool Connection = false; List tripList = []; Widget DroobLoader(){ return Center( child: Container( child: ColorLoader1(), ), ); } /*************ProviderInisialization************/ void checkConnection() async { var connectivityResult = await (Connectivity().checkConnectivity()); if (connectivityResult == ConnectivityResult.none) { setState(() { Connection = false; isLoading = true; }); checkConnection(); } else { setState(() { Connection = true; }); await _fetchTrips(); if (!Connection) { setState(() { isLoading = false; }); } } } _fetchTrips() async { setState(() { isLoading=false; }); _apiResponsetrip = await getAllMytripe.GetAllMyTripe(); print(_apiResponsetrip.data); if (_apiResponsetrip.statusCode == 200 ||_apiResponsetrip.statusCode == 201) { if (_apiResponsetrip.data != null) { tripList.addAll(_apiResponsetrip.data); } statusCode = _apiResponsetrip.statusCode; setState(() { isLoading=true; }); } } int _GetShowCount() { return _apiResponsetrip.data.length!=null ? _apiResponsetrip.data.length : 0; } @override void initState() { super.initState(); checkConnection(); } double ScaleFactorWith() { if (SizeConfig.screenWidth > 270.0 && SizeConfig.screenWidth <= 760) { return 0.73; } else if (SizeConfig.screenWidth > 760 && SizeConfig.screenWidth <= 1024.0) { return 0.65; } else { return 1; } } double ScaleFactorHight() { if (SizeConfig.screenHeight > 450 && SizeConfig.screenHeight <= 750.0) { return 0.8; } else if (SizeConfig.screenHeight > 750.0 && SizeConfig.screenHeight <= 1366.0) { return 0.8; } else { return 0.6; } } Widget _ConnectionFaild(BuildContext context){ return Center( child: Row( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.error, color: Colors.pink, size: SizeConfig.textMultiplier * 8 * ScaleFactorWith(), ), Text( 'Please fix your internet connection', style: TextStyle( fontSize: SizeConfig.textMultiplier * 5 * ScaleFactorWith(), fontFamily: 'Almarai extra Bold', color: Colors.pink, ), ), ], )); } @override Widget build(BuildContext context) { //if user use advanced filter if (!Connection) {return _ConnectionFaild(context);} if (statusCode != 200 && statusCode != 201) {return DroobLoader();} return Scaffold( backgroundColor:Colors.white30, body: GestureDetector( onTap: () { FocusScope.of(context).requestFocus(new FocusNode()); }, child: SingleChildScrollView( physics: ScrollPhysics(), child: Column( children: [ //if the user use the advanced search or not use a filter at all ListView.builder( shrinkWrap: true, physics: NeverScrollableScrollPhysics(), itemCount: _GetShowCount(), itemBuilder: (_, index) { return Card_Trip(trip: _apiResponsetrip.data[index]); }, ), ], ), ), ), ); } }