From 4effbfaca1b366b8f5d5c0c3566c9379b06544e9 Mon Sep 17 00:00:00 2001 From: Tristan Ritchie Date: Wed, 10 Jan 2024 10:31:05 +0000 Subject: [PATCH] clarify logic around retry to avoid unecessary adb traffic Change-Id: I8e2a4d4255e9959579a06f839301434e1e104c2f --- renderdoc/android/android.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/renderdoc/android/android.cpp b/renderdoc/android/android.cpp index 4f956f8f6..36cd23ccd 100644 --- a/renderdoc/android/android.cpp +++ b/renderdoc/android/android.cpp @@ -362,7 +362,7 @@ AndroidInstallPermissionCheckResult CheckAndroidServerInstallPermissions(const r rdcstr packageName, int apiVersion) { - // Permissions check only applicable to API > 30 + // Permissions check only applicable to API >= 30 if(apiVersion < 30) { return AndroidInstallPermissionCheckResult::Correct; @@ -528,12 +528,18 @@ RDResult InstallRenderDocServer(const rdcstr &deviceID) RDCLOG("Installed package '%s', checking for success...", apk.c_str()); + bool retryNeeded; AndroidVersionCheckResult versionCheck = CheckAndroidServerVersion(deviceID, abi); - AndroidInstallPermissionCheckResult permissionsCheck = - CheckAndroidServerInstallPermissions(deviceID, GetRenderDocPackageForABI(abi), apiVersion); + retryNeeded = (versionCheck != AndroidVersionCheckResult::Correct); - if((versionCheck != AndroidVersionCheckResult::Correct) || - (permissionsCheck != AndroidInstallPermissionCheckResult::Correct)) + if(!retryNeeded) + { + AndroidInstallPermissionCheckResult permissionsCheck = + CheckAndroidServerInstallPermissions(deviceID, GetRenderDocPackageForABI(abi), apiVersion); + retryNeeded = (permissionsCheck != AndroidInstallPermissionCheckResult::Correct); + } + + if(retryNeeded) { RDCLOG("Failed to install APK. stdout: %s, stderr: %s", adbInstall.strStdout.trimmed().c_str(), adbInstall.strStderror.trimmed().c_str()); @@ -568,7 +574,7 @@ RDResult InstallRenderDocServer(const rdcstr &deviceID) result = ResultCode::AndroidAPKVerifyFailed; } - permissionsCheck = + AndroidInstallPermissionCheckResult permissionsCheck = CheckAndroidServerInstallPermissions(deviceID, GetRenderDocPackageForABI(abi), apiVersion); if(permissionsCheck != AndroidInstallPermissionCheckResult::Correct) {