Refact. Flutter web, mid commit (#7482)

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou
2024-03-23 10:08:55 +08:00
committed by GitHub
parent 1c3a2e475d
commit a15cd62fd4
8 changed files with 187 additions and 68 deletions

View File

@@ -3,19 +3,19 @@
"version": "1.0.0",
"scripts": {
"dev": "vite",
"build": "./gen_js_from_hbb.py > src/gen_js_from_hbb.ts && ./ts_proto.py && tsc && vite build",
"build": "python ./gen_js_from_hbb.py > src/gen_js_from_hbb.ts && python ./ts_proto.py && tsc && vite build",
"preview": "vite preview"
},
"devDependencies": {
"typescript": "^4.4.4",
"vite": "^2.7.2"
"vite": "2.8"
},
"dependencies": {
"fast-sha256": "^1.3.0",
"libsodium": "^0.7.9",
"libsodium-wrappers": "^0.7.9",
"pcm-player": "^0.0.11",
"ts-proto": "^1.101.0",
"ts-proto": "^1.169.1",
"wasm-feature-detect": "^1.2.11",
"zstddec": "^0.0.2"
}

View File

@@ -443,9 +443,9 @@ export default class Connection {
if (this._videoTestSpeed[0] >= 30) {
console.log(
"video decoder: " +
parseInt(
"" + this._videoTestSpeed[1] / this._videoTestSpeed[0]
)
parseInt(
"" + this._videoTestSpeed[1] / this._videoTestSpeed[0]
)
);
this._videoTestSpeed = [0, 0];
}
@@ -456,6 +456,7 @@ export default class Connection {
}
handlePeerInfo(pi: message.PeerInfo) {
localStorage.setItem('last_remote_id', this._id);
this._peerInfo = pi;
if (pi.displays.length == 0) {
this.msgbox("error", "Remote Error", "No Display");
@@ -540,6 +541,15 @@ export default class Connection {
return this._options[name];
}
// TODO:
getStatus(): String {
return JSON.stringify({status_num: 10});
}
// TODO:
checkConnStatus() {
}
setOption(name: string, value: any) {
if (value == undefined) {
delete this._options[name];

View File

@@ -257,6 +257,14 @@ window.setByName = (name, value) => {
value = JSON.parse(value);
localStorage.setItem(value.name, value.value);
break;
case 'option:local':
value = JSON.parse(value);
localStorage.setItem('option:local:' + value.name, value.value);
break;
case 'option:flutter:local':
value = JSON.parse(value);
localStorage.setItem('option:flutter:local:' + value.name, value.value);
break;
case 'peer_option':
value = JSON.parse(value);
curConn.setOption(value.name, value.value);
@@ -264,6 +272,15 @@ window.setByName = (name, value) => {
case 'input_os_password':
curConn.inputOsPassword(value);
break;
case 'check_conn_status':
curConn.checkConnStatus();
break;
case 'remove_discovered':
removeDiscovered(value);
break;
case 'discover':
// TODO: discover
break;
default:
break;
}
@@ -300,6 +317,10 @@ function _getByName(name, arg) {
return curConn.getOption(arg) || false;
case 'option':
return localStorage.getItem(arg);
case 'option:local':
return localStorage.getItem('option:local:' + arg);
case 'option:flutter:local':
return localStorage.getItem('option:flutter:local:' + arg);
case 'image_quality':
return curConn.getImageQuality();
case 'translate':
@@ -307,10 +328,38 @@ function _getByName(name, arg) {
return translate(arg.locale, arg.text);
case 'peer_option':
return curConn.getOption(arg);
case 'get_conn_status':
if (curConn) {
return curConn.getStatus();
} else {
return JSON.stringify({ status_num: 0 });
}
case 'test_if_valid_server':
break;
case 'version':
return version;
case 'load_recent_peers':
const peersRecent = localStorage.getItem('peers-recent');
if (peersRecent) {
onRegisteredEvent(JSON.stringify({ name: 'load_recent_peers', peers: peersRecent }));
}
break;
case 'load_fav_peers':
const peersFav = localStorage.getItem('peers-fav');
if (peersFav) {
onRegisteredEvent(JSON.stringify({ name: 'load_fav_peers', peers: peersFav }));
}
break;
case 'load_lan_peers':
const peersLan = localStorage.getItem('peers-lan');
if (peersLan) {
onRegisteredEvent(JSON.stringify({ name: 'load_lan_peers', peers: peersLan }));
}
break;
case 'load_recent_peers_sync':
return localStorage.getItem('peers-recent') ?? '{}';
case 'load_lan_peers_sync':
return localStorage.getItem('peers-lan') ?? '{}';
}
return '';
}
@@ -342,8 +391,20 @@ window.init = async () => {
}
export function getPeers() {
return _getJsonObj('peers');
}
export function getRecentPeers() {
return _getJsonObj('peers-recent');
}
export function getLanPeers() {
return _getJsonObj('peers-lan');
}
export function getJsonObj(key) {
try {
return JSON.parse(localStorage.getItem('peers')) || {};
return JSON.parse(localStorage.getItem(key)) || {};
} catch (e) {
return {};
}
@@ -380,4 +441,18 @@ export function copyToClipboard(text) {
document.body.removeChild(textarea);
}
}
}
}
// ========================== peers begin ==========================
function removeDiscovered(id) {
try {
const v = localStorage.getItem('discovered');
if (!v) return;
const discovered = JSON.parse(localStorage.getItem('discovered'));
delete discovered[id];
localStorage.setItem('discovered', JSON.stringify(discovered));
} catch (e) {
console.error(e);
}
}
// ========================== peers end ===========================