|
@@ -1,7 +1,9 @@
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:flutter_blue/flutter_blue.dart';
|
|
|
+import 'package:flutter_tracker/dio/login_dao.dart';
|
|
|
import 'package:flutter_tracker/dio/track_dao.dart';
|
|
|
import 'package:flutter_tracker/model/user_model.dart';
|
|
|
+import 'package:flutter_tracker/utils/app_util.dart';
|
|
|
import 'package:flutter_tracker/views/contact_card.dart';
|
|
|
import 'package:nearby_connections/nearby_connections.dart';
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
@@ -26,8 +28,7 @@ class _TrackPageState extends State<TrackPage> {
|
|
|
List<BluetoothDevice> devices = [];
|
|
|
List<ScanResult> myScanResult = [];
|
|
|
List<String> updateTime = [];
|
|
|
-
|
|
|
- List<UserModel> users = [];
|
|
|
+ String token = "";
|
|
|
FlutterBlue flutterBlue = FlutterBlue.instance;
|
|
|
|
|
|
@override
|
|
@@ -111,10 +112,12 @@ class _TrackPageState extends State<TrackPage> {
|
|
|
return ListView.builder(
|
|
|
itemBuilder: (context, index) {
|
|
|
return ContactCard(
|
|
|
- imagePath: 'assets/images/green.jpg',
|
|
|
- infection: '健康',
|
|
|
- username: "李四",
|
|
|
- updateTime: updateTime[index],
|
|
|
+ imagePath: blueList[index].healthStatus == 1
|
|
|
+ ? 'assets/images/green.jpg'
|
|
|
+ : 'assets/images/red.jpg',
|
|
|
+ infection: blueList[index].healthStatus == 1 ? "阳性" : "阴性",
|
|
|
+ username: blueList[index].username,
|
|
|
+ updateTime: blueList[index].updateTime,
|
|
|
deviceid: blueList[index].deviceid,
|
|
|
);
|
|
|
},
|
|
@@ -179,65 +182,46 @@ class _TrackPageState extends State<TrackPage> {
|
|
|
@override
|
|
|
void initState() {
|
|
|
super.initState();
|
|
|
- addContactsToList();
|
|
|
getPermissions();
|
|
|
+ getCurrentUser();
|
|
|
+ addContactsToList();
|
|
|
}
|
|
|
|
|
|
- void discovery() async {
|
|
|
- try {
|
|
|
- bool a = await Nearby().startDiscovery(currentUser.username, strategy,
|
|
|
- onEndpointFound: (id, name, serviceId) async {
|
|
|
- // 保存数据
|
|
|
- }, onEndpointLost: (id) {
|
|
|
- print(id);
|
|
|
- });
|
|
|
- print('DISCOVERING: ${a.toString()}');
|
|
|
- } catch (e) {
|
|
|
- print(e);
|
|
|
- }
|
|
|
+ void getCurrentUser() async {
|
|
|
+ var sharedPreferences = await SharedPreferences.getInstance();
|
|
|
+ token = sharedPreferences.getString("token");
|
|
|
+
|
|
|
+ UserEntity userEntity = await LoginDao.getUserInfo(token);
|
|
|
+ currentUser = userEntity.user;
|
|
|
+ print("token" + token);
|
|
|
+ print("user----------" + currentUser.username);
|
|
|
}
|
|
|
|
|
|
void getPermissions() async {
|
|
|
Nearby().askLocationAndExternalStoragePermission();
|
|
|
}
|
|
|
|
|
|
- Future<void> getCurrentUser() async {
|
|
|
- SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
|
- UserModel user = sharedPreferences.get("user");
|
|
|
- }
|
|
|
-
|
|
|
void addContactsToList() async {
|
|
|
- await getCurrentUser();
|
|
|
// 服务器获取当前用户数据
|
|
|
- SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
|
|
|
- String token = sharedPreferences.getString("token");
|
|
|
setState(() async {
|
|
|
- users = await TrackDao.getContactList(token);
|
|
|
+ blueList = await TrackDao.getContactList(token);
|
|
|
+ print("----------" + blueList.length.toString());
|
|
|
});
|
|
|
}
|
|
|
|
|
|
void startTrack(bool flag) async {
|
|
|
+ AppUtil.buildToast("正在获取...");
|
|
|
try {
|
|
|
- bool a = await Nearby().startAdvertising(
|
|
|
- currentUser.username,
|
|
|
- strategy,
|
|
|
- onConnectionInitiated: null,
|
|
|
- onConnectionResult: (id, status) {
|
|
|
- print(status);
|
|
|
- },
|
|
|
- onDisconnected: (id) {
|
|
|
- print('Disconnected $id');
|
|
|
- },
|
|
|
- );
|
|
|
- // 上传追踪数据
|
|
|
- SharedPreferences sharedPreferences =
|
|
|
- await SharedPreferences.getInstance();
|
|
|
- String token = sharedPreferences.getString("token");
|
|
|
- TrackDao.uploadContact(token);
|
|
|
- print('ADVERTISING ${a.toString()}');
|
|
|
+ bool a = await Nearby().startDiscovery(currentUser.username, strategy,
|
|
|
+ onEndpointFound: (id, name, serviceId) async {
|
|
|
+ print('I saw id:$id with name:$name'); // the name here is an email
|
|
|
+ TrackDao.uploadContact("token", name);
|
|
|
+ }, onEndpointLost: (id) {
|
|
|
+ print(id);
|
|
|
+ });
|
|
|
+ print('DISCOVERING: ${a.toString()}');
|
|
|
} catch (e) {
|
|
|
print(e);
|
|
|
}
|
|
|
- discovery();
|
|
|
}
|
|
|
}
|