diff --git a/src-tauri/src/adb.rs b/src-tauri/src/adb.rs index 8e9edc0..5d9a6d9 100644 --- a/src-tauri/src/adb.rs +++ b/src-tauri/src/adb.rs @@ -58,32 +58,6 @@ impl Device { .spawn() .context("Failed to execute 'adb shell'")?) } - - pub fn cmd_screen_size(res_dir: &PathBuf, id: &str) -> Result<(u16, u16)> { - let mut adb_command = Adb::cmd_base(res_dir); - let output = adb_command - .args(&["-s", id, "shell", "wm", "size"]) - .output() - .context("Failed to execute 'adb shell wm size'")?; - let lines = output.stdout.lines(); - let mut size = (0, 0); - for line in lines { - if let std::result::Result::Ok(s) = line { - println!("{}", s); - if s.starts_with("Physical size:") { - let mut iter = s.split_whitespace(); - iter.next(); - iter.next(); - let mut size_str = iter.next().unwrap().split('x'); - let width = size_str.next().unwrap().parse::().unwrap(); - let height = size_str.next().unwrap().parse::().unwrap(); - size = (width, height); - break; - } - } - } - Ok(size) - } } pub struct Adb; diff --git a/src-tauri/src/client.rs b/src-tauri/src/client.rs index 0f8f521..27a0ba2 100644 --- a/src-tauri/src/client.rs +++ b/src-tauri/src/client.rs @@ -40,11 +40,6 @@ impl ScrcpyClient { Adb::cmd_forward_remove(res_dir) } - /// get the screen size of the device - pub fn get_screen_size(res_dir: &PathBuf, id: &str) -> Result<(u16, u16)> { - Device::cmd_screen_size(res_dir, id) - } - /// push server file to current device pub fn push_server_file(res_dir: &PathBuf, id: &str) -> Result<()> { let info = Device::cmd_push( diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c3fb2a3..97d9a5a 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -20,16 +20,6 @@ fn adb_devices(app: tauri::AppHandle) -> Result, String> { } } -#[tauri::command] -/// get screen size of the device -fn get_screen_size(id: String, app: tauri::AppHandle) -> Result<(u16, u16), String> { - let dir = app.path().resource_dir().unwrap().join("resource"); - match ScrcpyClient::get_screen_size(&dir, &id) { - Ok(size) => Ok(size), - Err(e) => Err(e.to_string()), - } -} - #[tauri::command] /// forward local port to the device port fn forward_server_port( @@ -170,7 +160,6 @@ async fn main() { .plugin(tauri_plugin_os::init()) .invoke_handler(tauri::generate_handler![ adb_devices, - get_screen_size, forward_server_port, push_server_file, start_scrcpy_server diff --git a/src/components/Device.vue b/src/components/Device.vue index b03d4bd..8b2276c 100644 --- a/src/components/Device.vue +++ b/src/components/Device.vue @@ -15,7 +15,6 @@ import { pushServerFile, forwardServerPort, startScrcpyServer, - getScreenSize, } from "../invoke"; import { NH4, @@ -26,11 +25,13 @@ import { NEmpty, NTooltip, NFlex, + NFormItem, NIcon, NSpin, DataTableColumns, DropdownOption, useDialog, + useMessage, } from "naive-ui"; import { CloseCircle, InformationCircle } from "@vicons/ionicons5"; import { Refresh } from "@vicons/ionicons5"; @@ -40,6 +41,7 @@ import { useGlobalStore } from "../store/global"; const dialog = useDialog(); const store = useGlobalStore(); +const message = useMessage(); const port = ref(27183); @@ -168,14 +170,21 @@ async function onMenuSelect(key: string) { if (!port.value) { port.value = 27183; } + + if (!(store.screenSizeW > 0) || !(store.screenSizeH > 0)) { + message.error("请正确输入当前控制设备的屏幕尺寸"); + store.screenSizeW = 0; + store.screenSizeH = 0; + store.hideLoading(); + return; + } + let device = devices.value[rowIndex]; let scid = ( "00000000" + Math.floor(Math.random() * 100000).toString(16) ).slice(-8); - let screenSize = await getScreenSize(device.id); - await pushServerFile(device.id); await forwardServerPort(device.id, scid, port.value); await startScrcpyServer(device.id, scid, `127.0.0.1:${port.value}`); @@ -186,7 +195,6 @@ async function onMenuSelect(key: string) { scid, deviceName, device, - screenSize, }; nextTick(() => { store.hideLoading(); @@ -202,13 +210,6 @@ async function refreshDevices() { devices.value = await adbDevices(); store.hideLoading(); } - -const screenSizeInfo = computed(() => { - if (store.controledDevice) { - return `${store.controledDevice.screenSize[0]} x ${store.controledDevice.screenSize[1]}`; - } - return ""; -}); scid: {{ store.controledDevice.scid }}
status: {{ store.controledDevice.device.status }}
screen: - {{ screenSizeInfo }}