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,6 +77,7 @@ class UserModel {
|
|||||||
|
|
||||||
Future<void> logOut() async {
|
Future<void> logOut() async {
|
||||||
final tag = gFFI.dialogManager.showLoading(translate('Waiting'));
|
final tag = gFFI.dialogManager.showLoading(translate('Waiting'));
|
||||||
|
try {
|
||||||
final url = await bind.mainGetApiServer();
|
final url = await bind.mainGetApiServer();
|
||||||
final _ = await http.post(Uri.parse('$url/api/logout'),
|
final _ = await http.post(Uri.parse('$url/api/logout'),
|
||||||
body: {
|
body: {
|
||||||
@ -85,9 +85,11 @@ class UserModel {
|
|||||||
'uuid': await bind.mainGetUuid(),
|
'uuid': await bind.mainGetUuid(),
|
||||||
},
|
},
|
||||||
headers: await getHttpHeaders());
|
headers: await getHttpHeaders());
|
||||||
|
} finally {
|
||||||
await reset();
|
await reset();
|
||||||
gFFI.dialogManager.dismissByTag(tag);
|
gFFI.dialogManager.dismissByTag(tag);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Future<Map<String, dynamic>> login(String userName, String pass) async {
|
Future<Map<String, dynamic>> login(String userName, String pass) async {
|
||||||
final url = await bind.mainGetApiServer();
|
final url = await bind.mainGetApiServer();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user