4
2
Fork 0

Compare commits

...

2 Commits

Author SHA1 Message Date
shihern 4d6a28339e fix: add flutter-plugin-dependencies to gitignore 2020-01-05 13:31:40 +08:00
shihern 3534fca3e5 feat: remove connection status message after 3s 2020-01-05 13:31:09 +08:00
2 changed files with 27 additions and 7 deletions

1
.gitignore vendored
View File

@ -116,3 +116,4 @@ unlinked_spec.ds
# Generated files fom json_serializable
*.g.dart
ios/Flutter/flutter_export_environment.sh
.flutter-plugins-dependencies

View File

@ -1,6 +1,7 @@
import "package:flutter/material.dart";
import 'package:frontend_flutter/src/services/connection_status.dart';
import 'dart:ui' as ui;
import 'dart:async';
import "../services/heartbeat_manager.dart";
import "../services/conversation_manager.dart";
@ -38,7 +39,9 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
// Online status
ConnectionStatus connectionStatus = ConnectionStatus();
bool isOnline = true;
bool _isOnline = true;
bool _connectionStatusVisible = false;
Timer _connectionStatusVisibilityTimer;
@override
initState() {
@ -57,7 +60,19 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
connectionStatus.connectionChange.listen((bool online) {
// TODO: implement some timer to remove the message after 3 seconds
setState(() {
isOnline = online;
_isOnline = online;
_connectionStatusVisible = true;
});
if (_connectionStatusVisibilityTimer != null) {
_connectionStatusVisibilityTimer.cancel();
_connectionStatusVisibilityTimer = null;
}
_connectionStatusVisibilityTimer = Timer(Duration(seconds: 3), () {
setState(() {
_connectionStatusVisible = false;
});
});
});
}
@ -137,11 +152,15 @@ class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
title: Container(),
);
}).toList()),
Container(
width: MediaQuery.of(context).size.width,
alignment: Alignment(0.0, 0.0),
color: isOnline ? Colors.green : Colors.red,
child: Text(isOnline ? 'Online' : 'Offline')),
Visibility(
visible: _connectionStatusVisible,
child: Container(
padding: EdgeInsets.only(top: 5.0, bottom: 5.0),
width: MediaQuery.of(context).size.width,
alignment: Alignment(0.0, 0.0),
color: _isOnline ? Colors.green : Colors.red,
child: Text(_isOnline ? 'Online' : 'Offline')),
),
]),
);
}