From 11b96d07286ce5a02a505d8c9d9b142feea5f44e Mon Sep 17 00:00:00 2001 From: "lilong.129" Date: Thu, 1 Jun 2023 21:47:12 +0800 Subject: [PATCH] fix: adb wm size may contain both Physical and Override size --- hrp/pkg/uixt/android_adb_driver.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/hrp/pkg/uixt/android_adb_driver.go b/hrp/pkg/uixt/android_adb_driver.go index 9ab9a7cb..0ac9b3b2 100644 --- a/hrp/pkg/uixt/android_adb_driver.go +++ b/hrp/pkg/uixt/android_adb_driver.go @@ -57,17 +57,29 @@ func (ad *adbDriver) BatteryInfo() (batteryInfo BatteryInfo, err error) { func (ad *adbDriver) WindowSize() (size Size, err error) { // adb shell wm size - resp, err := ad.adbClient.RunShellCommand("wm", "size") + output, err := ad.adbClient.RunShellCommand("wm", "size") if err != nil { return size, errors.Wrap(err, "get window size failed with adb") } + // output may contain both Physical and Override size // Physical size: 1080x2340 - s := strings.Trim(strings.Split(resp, ": ")[1], "\n") - ss := strings.Split(s, "x") - width, _ := strconv.Atoi(ss[0]) - height, _ := strconv.Atoi(ss[1]) - size = Size{Width: width, Height: height} + // Override size: 1080x2220 + var resolution string + sizeList := strings.Split(output, "\n") + log.Info().Msgf("window size: %v", sizeList) + for _, size := range sizeList { + if strings.Contains(size, "Physical") { + resolution = strings.Split(size, ": ")[1] + // 1080x2340 + ss := strings.Split(resolution, "x") + width, _ := strconv.Atoi(ss[0]) + height, _ := strconv.Atoi(ss[1]) + return Size{Width: width, Height: height}, nil + } + } + + err = errors.New("physical window size not found by adb") return }