[automerge] Changes to reduce flakiness of TrustTests 2p: c7dd3cabf3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17391844

Bug: 226652325
Change-Id: I576f382720d0c95c6660eb4fa5528810ba1e6f29
This commit is contained in:
Presubmit Automerger Backend
2022-03-24 23:24:01 +00:00
3 changed files with 19 additions and 9 deletions

View File

@@ -16,6 +16,13 @@
-->
<configuration description="TrustTests configuration">
<option name="test-tag" value="TrustTests" />
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
<!-- Disable the double-tap power button for camera -->
<option name="run-command"
value="settings put secure camera_double_tap_power_gesture_disabled 1" />
<option name="teardown-command"
value="settings delete secure camera_double_tap_power_gesture_disabled" />
</target_preparer>
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="TrustTests.apk" />

View File

@@ -38,7 +38,7 @@ import org.junit.runner.RunWith
*/
@RunWith(AndroidJUnit4::class)
class UserUnlockRequestTest {
private val context: Context = getApplicationContext()
private val context = getApplicationContext<Context>()
private val trustManager = context.getSystemService(TrustManager::class.java) as TrustManager
private val userId = context.userId
private val activityScenarioRule = ActivityScenarioRule(TrustTestActivity::class.java)

View File

@@ -18,6 +18,7 @@ package android.trust.test.lib
import android.content.Context
import android.util.Log
import android.view.KeyEvent
import android.view.WindowManagerGlobal
import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
@@ -64,17 +65,19 @@ class ScreenLockRule : TestRule {
fun dismissKeyguard() {
wait("keyguard dismissed") { count ->
windowManager.dismissKeyguard(null, null)
// Sometimes, bouncer gets shown due to a race, so we have to put display to sleep
// and wake it back up to get it to go away
if (count >= 10 && count % 5 == 0) {
Log.i(TAG, "Escalation: attempting screen off/on to get rid of bouncer")
uiDevice.sleep()
Thread.sleep(250)
if (!uiDevice.isScreenOn) {
Log.i(TAG, "Waking device, +500ms")
uiDevice.wakeUp()
}
// Bouncer may be shown due to a race; back dismisses it
if (count >= 10) {
Log.i(TAG, "Pressing back to dismiss Bouncer")
uiDevice.pressKeyCode(KeyEvent.KEYCODE_BACK)
}
windowManager.dismissKeyguard(null, null)
!windowManager.isKeyguardLocked
}
}