Merge pull request #2572 from Heap-Hop/master
fix Android cannot get id and logout issue
This commit is contained in:
		
						commit
						a642b8639a
					
				| @ -932,6 +932,10 @@ class _NetworkState extends State<_Network> with AutomaticKeepAliveClientMixin { | ||||
|             return false; | ||||
|           } | ||||
|         } | ||||
|         final old = await bind.mainGetOption(key: 'custom-rendezvous-server'); | ||||
|         if (old.isNotEmpty && old != idServer) { | ||||
|           await gFFI.userModel.logOut(); | ||||
|         } | ||||
|         // should set one by one | ||||
|         await bind.mainSetOption( | ||||
|             key: 'custom-rendezvous-server', value: idServer); | ||||
|  | ||||
| @ -261,6 +261,9 @@ void showServerSettingsWithValue(String id, String relay, String key, | ||||
|             }); | ||||
|             if (await validate()) { | ||||
|               if (id != id0) { | ||||
|                 if (id0.isNotEmpty) { | ||||
|                   await gFFI.userModel.logOut(); | ||||
|                 } | ||||
|                 bind.mainSetOption(key: "custom-rendezvous-server", value: id); | ||||
|               } | ||||
|               if (relay != relay0) { | ||||
|  | ||||
| @ -1,3 +1,5 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_hbb/mobile/widgets/dialog.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| @ -107,12 +109,23 @@ class ServerPage extends StatefulWidget implements PageShape { | ||||
| } | ||||
| 
 | ||||
| class _ServerPageState extends State<ServerPage> { | ||||
|   Timer? _updateTimer; | ||||
| 
 | ||||
|   @override | ||||
|   void initState() { | ||||
|     super.initState(); | ||||
|     _updateTimer = periodic_immediate(const Duration(seconds: 3), () async { | ||||
|       await gFFI.serverModel.fetchID(); | ||||
|     }); | ||||
|     gFFI.serverModel.checkAndroidPermission(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   void dispose() { | ||||
|     _updateTimer?.cancel(); | ||||
|     super.dispose(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     checkService(); | ||||
|  | ||||
| @ -1,7 +1,6 @@ | ||||
| import 'dart:async'; | ||||
| import 'dart:convert'; | ||||
| 
 | ||||
| import 'package:flutter_hbb/common/hbbs/hbbs.dart'; | ||||
| import 'package:flutter_hbb/common/widgets/peer_tab_page.dart'; | ||||
| import 'package:get/get.dart'; | ||||
| import 'package:http/http.dart' as http; | ||||
| @ -78,15 +77,18 @@ class UserModel { | ||||
| 
 | ||||
|   Future<void> logOut() async { | ||||
|     final tag = gFFI.dialogManager.showLoading(translate('Waiting')); | ||||
|     final url = await bind.mainGetApiServer(); | ||||
|     final _ = await http.post(Uri.parse('$url/api/logout'), | ||||
|         body: { | ||||
|           'id': await bind.mainGetMyId(), | ||||
|           'uuid': await bind.mainGetUuid(), | ||||
|         }, | ||||
|         headers: await getHttpHeaders()); | ||||
|     await reset(); | ||||
|     gFFI.dialogManager.dismissByTag(tag); | ||||
|     try { | ||||
|       final url = await bind.mainGetApiServer(); | ||||
|       final _ = await http.post(Uri.parse('$url/api/logout'), | ||||
|           body: { | ||||
|             'id': await bind.mainGetMyId(), | ||||
|             'uuid': await bind.mainGetUuid(), | ||||
|           }, | ||||
|           headers: await getHttpHeaders()); | ||||
|     } finally { | ||||
|       await reset(); | ||||
|       gFFI.dialogManager.dismissByTag(tag); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   Future<Map<String, dynamic>> login(String userName, String pass) async { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user