mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-12-12 02:57:22 +00:00
add force, quiet to pullAb, no force pull while switch tab, this may be
not good, because data not updated, have to do with refresh button, we may change to quiet pull in the future
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:flutter_hbb/models/model.dart';
|
||||
import 'package:flutter_hbb/models/peer_model.dart';
|
||||
import 'package:flutter_hbb/models/platform_model.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:bot_toast/bot_toast.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import '../common.dart';
|
||||
@@ -13,19 +14,23 @@ class AbModel {
|
||||
final abLoading = false.obs;
|
||||
final abError = "".obs;
|
||||
final tags = [].obs;
|
||||
final RxBool fromServer = false.obs;
|
||||
final peers = List<Peer>.empty(growable: true).obs;
|
||||
|
||||
final selectedTags = List<String>.empty(growable: true).obs;
|
||||
var initialized = false;
|
||||
|
||||
WeakReference<FFI> parent;
|
||||
|
||||
AbModel(this.parent);
|
||||
|
||||
Future<dynamic> pullAb() async {
|
||||
Future<void> pullAb({force = true, quiet = false}) async {
|
||||
if (gFFI.userModel.userName.isEmpty) return;
|
||||
abLoading.value = true;
|
||||
abError.value = "";
|
||||
if (abLoading.value) return;
|
||||
if (!force && initialized) return;
|
||||
if (!quiet) {
|
||||
abLoading.value = true;
|
||||
abError.value = "";
|
||||
}
|
||||
final api = "${await bind.mainGetApiServer()}/api/ab/get";
|
||||
try {
|
||||
var authHeaders = getHttpHeaders();
|
||||
@@ -50,25 +55,20 @@ class AbModel {
|
||||
}
|
||||
}
|
||||
}
|
||||
fromServer.value = true;
|
||||
return resp.body;
|
||||
} else {
|
||||
fromServer.value = true;
|
||||
return "";
|
||||
}
|
||||
} catch (err) {
|
||||
err.printError();
|
||||
abError.value = err.toString();
|
||||
} finally {
|
||||
abLoading.value = false;
|
||||
initialized = true;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<void> reset() async {
|
||||
await bind.mainSetLocalOption(key: "selected-tags", value: '');
|
||||
tags.clear();
|
||||
peers.clear();
|
||||
initialized = false;
|
||||
}
|
||||
|
||||
void addId(String id, String alias, List<dynamic> tags) {
|
||||
@@ -104,7 +104,6 @@ class AbModel {
|
||||
}
|
||||
|
||||
Future<void> pushAb() async {
|
||||
abLoading.value = true;
|
||||
final api = "${await bind.mainGetApiServer()}/api/ab";
|
||||
var authHeaders = getHttpHeaders();
|
||||
authHeaders['Content-Type'] = "application/json";
|
||||
@@ -113,16 +112,11 @@ class AbModel {
|
||||
"data": jsonEncode({"tags": tags, "peers": peersJsonData})
|
||||
});
|
||||
try {
|
||||
final resp =
|
||||
await http.post(Uri.parse(api), headers: authHeaders, body: body);
|
||||
abError.value = "";
|
||||
await pullAb();
|
||||
debugPrint("resp: ${resp.body}");
|
||||
await http.post(Uri.parse(api), headers: authHeaders, body: body);
|
||||
await pullAb(quiet: true);
|
||||
} catch (e) {
|
||||
abError.value = e.toString();
|
||||
} finally {
|
||||
abLoading.value = false;
|
||||
}
|
||||
BotToast.showText(contentColor: Colors.red, text: e.toString());
|
||||
} finally {}
|
||||
}
|
||||
|
||||
Peer? find(String id) {
|
||||
|
||||
Reference in New Issue
Block a user