refactor: AssertAppForeground

This commit is contained in:
lilong.129
2023-04-28 16:15:53 +08:00
parent 1d41d276ab
commit 6067d5ddbd
9 changed files with 32 additions and 29 deletions

View File

@@ -362,30 +362,29 @@ func (ad *adbDriver) GetLastLaunchedApp() (packageName string) {
return ad.lastLaunchedPackageName
}
func (ad *adbDriver) IsAppInForeground(packageName string) (bool, error) {
func (ad *adbDriver) AssertAppForeground(packageName string) error {
if packageName == "" {
return false, errors.New("package name is not given")
return errors.New("package name is not given")
}
// adb shell dumpsys activity activities | grep mResumedActivity
output, err := ad.adbClient.RunShellCommand("dumpsys", "activity", "activities")
if err != nil {
log.Error().Err(err).Msg("failed to dumpsys activities")
return false, err
return errors.Wrap(code.AndroidShellExecError, err.Error())
}
lines := strings.Split(string(output), "\n")
isInForeground := false
for _, line := range lines {
trimmedLine := strings.TrimSpace(line)
if strings.HasPrefix(trimmedLine, "mResumedActivity:") {
if strings.Contains(trimmedLine, packageName) {
isInForeground = true
return nil
}
break
}
}
return isInForeground, nil
return errors.New("app is not in foreground")
}