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