import 'package:chat/data/constants.dart'; import 'package:chat/generated/i18n.dart'; import 'package:chat/utils/screen.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'NetUtil.dart'; class NetStateWidget extends StatelessWidget { @override Widget build(BuildContext context) { return StreamBuilder( stream: NetWork().stream, initialData: ChatState.connecting, builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.data == ChatState.connecting.index) { return Container( color: Colors.white70, padding: EdgeInsets.symmetric(vertical: 5), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ CupertinoActivityIndicator(), SizedBox(width: 10), fixedText(I18n.of(context).connecting, color: Colors.grey[300]) ])); } else if (snapshot.data == ChatState.logining.index) { return Container( color: Colors.white70, padding: EdgeInsets.symmetric(vertical: 5), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ CupertinoActivityIndicator(), SizedBox(width: 10), fixedText(I18n.of(context).logining, color: Colors.grey[300]) ])); } else if (snapshot.data == ChatState.connectFailed.index || snapshot.data == ChatState.loginFailed.index) { return InkWell( onTap: () { if (snapshot.data == ChatState.connectFailed.index) { NetWork().reconnect(); } else { NetWork().reLogin(); } }, child: Container( color: Colors.white70, padding: EdgeInsets.symmetric(vertical: 5), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( IconData(0xe649, fontFamily: Constants.IconFontFamily), color: Colors.grey), SizedBox(width: 10), fixedText(I18n.of(context).net_error, color: Colors.grey) ]))); } else { return Container( height: 0, ); } }, ); } }