mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-09-02 19:32:34 +01:00
AndroidDevice: Fixed swipe_to_unlock
Previously swipe_to_unlock was not used and conflicted with a method of the same name. - swipe_to_unlock() renamed perform_unlock_swipe() - swipe_to_unlock parameter now takes a direction, this allows swipe unlocking on Android M devices - ensure_screen_is_on() will now also unlock the screen if swipe_to_unlock is set
This commit is contained in:
@@ -32,7 +32,7 @@ from wlauto.utils.android import (adb_shell, adb_background_shell, adb_list_devi
|
|||||||
adb_command, AndroidProperties, ANDROID_VERSION_MAP)
|
adb_command, AndroidProperties, ANDROID_VERSION_MAP)
|
||||||
|
|
||||||
|
|
||||||
SCREEN_STATE_REGEX = re.compile('(?:mPowerState|mScreenOn)=([0-9]+|true|false)', re.I)
|
SCREEN_STATE_REGEX = re.compile('(?:mPowerState|mScreenOn|Display Power: state)=([0-9]+|true|false|ON|OFF)', re.I)
|
||||||
SCREEN_SIZE_REGEX = re.compile(r'mUnrestrictedScreen=\(\d+,\d+\)\s+(?P<width>\d+)x(?P<height>\d+)')
|
SCREEN_SIZE_REGEX = re.compile(r'mUnrestrictedScreen=\(\d+,\d+\)\s+(?P<width>\d+)x(?P<height>\d+)')
|
||||||
|
|
||||||
|
|
||||||
@@ -72,9 +72,10 @@ class AndroidDevice(BaseLinuxDevice): # pylint: disable=W0223
|
|||||||
Specified whether the device should make sure that the screen is on
|
Specified whether the device should make sure that the screen is on
|
||||||
during initialization.
|
during initialization.
|
||||||
"""),
|
"""),
|
||||||
Parameter('swipe_to_unlock', kind=boolean, default=False,
|
Parameter('swipe_to_unlock', kind=str, default=None,
|
||||||
|
allowed_values=[None, "horizontal", "vertical"],
|
||||||
description="""
|
description="""
|
||||||
If set to ``True``, a horisonal swipe will be performed 2/3 down the screen.
|
If set a swipe of the specified direction will be performed.
|
||||||
This should unlock the screen.
|
This should unlock the screen.
|
||||||
"""),
|
"""),
|
||||||
]
|
]
|
||||||
@@ -569,13 +570,20 @@ class AndroidDevice(BaseLinuxDevice): # pylint: disable=W0223
|
|||||||
else:
|
else:
|
||||||
return (0, 0)
|
return (0, 0)
|
||||||
|
|
||||||
def swipe_to_unlock(self):
|
def perform_unlock_swipe(self):
|
||||||
width, height = self.get_screen_size()
|
width, height = self.get_screen_size()
|
||||||
|
command = 'input swipe {} {} {} {}'
|
||||||
|
if self.swipe_to_unlock == "horizontal":
|
||||||
swipe_heigh = height * 2 // 3
|
swipe_heigh = height * 2 // 3
|
||||||
start = 100
|
start = 100
|
||||||
stop = width - start
|
stop = width - start
|
||||||
command = 'input swipe {} {} {} {}'
|
|
||||||
self.execute(command.format(start, swipe_heigh, stop, swipe_heigh))
|
self.execute(command.format(start, swipe_heigh, stop, swipe_heigh))
|
||||||
|
if self.swipe_to_unlock == "vertical":
|
||||||
|
swipe_middle = height / 2
|
||||||
|
swipe_heigh = height * 2 // 3
|
||||||
|
self.execute(command.format(swipe_middle, swipe_heigh, swipe_middle, 0))
|
||||||
|
else: # Should never reach here
|
||||||
|
raise DeviceError("Invalid swipe direction: {}".format(self.swipe_to_unlock))
|
||||||
|
|
||||||
def capture_screen(self, filepath):
|
def capture_screen(self, filepath):
|
||||||
"""Caputers the current device screen into the specified file in a PNG format."""
|
"""Caputers the current device screen into the specified file in a PNG format."""
|
||||||
@@ -596,6 +604,8 @@ class AndroidDevice(BaseLinuxDevice): # pylint: disable=W0223
|
|||||||
def ensure_screen_is_on(self):
|
def ensure_screen_is_on(self):
|
||||||
if not self.is_screen_on():
|
if not self.is_screen_on():
|
||||||
self.execute('input keyevent 26')
|
self.execute('input keyevent 26')
|
||||||
|
if self.swipe_to_unlock:
|
||||||
|
self.perform_unlock_swipe()
|
||||||
|
|
||||||
def disable_screen_lock(self):
|
def disable_screen_lock(self):
|
||||||
"""
|
"""
|
||||||
|
Reference in New Issue
Block a user