diff --git a/libs/utils/android/screen.py b/libs/utils/android/screen.py index af80a5f07e7e0c7492fecf09506691d94e400e97..971760660c46b73ff61b08aa7162324845549757 100644 --- a/libs/utils/android/screen.py +++ b/libs/utils/android/screen.py @@ -16,6 +16,7 @@ # import logging +from system import System class Screen(object): """ @@ -136,4 +137,20 @@ class Screen(object): """ return target.execute('getprop ro.sf.lcd_density') + @staticmethod + def set_screen(target, on=True): + log = logging.getLogger('Screen') + if not on: + log.info('Setting screen OFF') + System.sleep(target) + return + log.info('Setting screen ON') + System.wakeup(target) + + @staticmethod + def unlock(target): + Screen.set_screen(target, on=True) + System.menu(target) + System.home(target) + # vim :set tabstop=4 shiftwidth=4 expandtab diff --git a/libs/utils/android/system.py b/libs/utils/android/system.py index 42e8c4dec7516ea88b6011d7bedb357baa55a72f..c26b0dd0830691c15e74b3892634f117662a7adc 100644 --- a/libs/utils/android/system.py +++ b/libs/utils/android/system.py @@ -254,6 +254,26 @@ class System(object): """ target.execute('input keyevent KEYCODE_BACK') + @staticmethod + def wakeup(target): + """ + Wake up the system if its sleeping + + :param target: instance of devlib Android target + :type target: devlib.target.AndroidTarget + """ + target.execute('input keyevent KEYCODE_WAKEUP') + + @staticmethod + def sleep(target): + """ + Make system sleep if its awake + + :param target: instance of devlib Android target + :type target: devlib.target.AndroidTarget + """ + target.execute('input keyevent KEYCODE_SLEEP') + @staticmethod def gfxinfo_reset(target, apk_name): """ diff --git a/libs/utils/android/workloads/gmaps.py b/libs/utils/android/workloads/gmaps.py index 380686d48d967b3bbde7f8dc80d2916d2cf8869a..838f5cf0e7e5db5b5f327a0d0b4870a89a58db70 100644 --- a/libs/utils/android/workloads/gmaps.py +++ b/libs/utils/android/workloads/gmaps.py @@ -70,9 +70,7 @@ class GMaps(Workload): # Set min brightness Screen.set_brightness(self._target, auto=False, percent=0) # Unlock device screen (assume no password required) - System.menu(self._target) - # Press Back button to be sure we run the video from the start - System.back(self._target) + Screen.unlock(self._target) # Use the monkey tool to start GMaps # This allows to subsequently set the screen orientation to LANDSCAPE diff --git a/libs/utils/android/workloads/jankbench.py b/libs/utils/android/workloads/jankbench.py index fcf76e8a00640b8ffff194147e95fc799374e244..5d17ded927292095f7d8cf0d96c5c99203632a05 100644 --- a/libs/utils/android/workloads/jankbench.py +++ b/libs/utils/android/workloads/jankbench.py @@ -102,9 +102,8 @@ class Jankbench(Workload): except KeyError: raise ValueError('Jankbench test [%s] not supported', test_name) - # Make sure we exit the app if already open - System.menu(self._target) - System.back(self._target) + # Unlock device screen (assume no password required) + Screen.unlock(self._target) # Close and clear application System.force_stop(self._target, self.package, clear=True) diff --git a/libs/utils/android/workloads/uibench.py b/libs/utils/android/workloads/uibench.py index bdba69fa88fbf17cbc0e654c293d14585b963b1f..3b24030ee235213d4f700f90ce712eca2d7bc0d0 100755 --- a/libs/utils/android/workloads/uibench.py +++ b/libs/utils/android/workloads/uibench.py @@ -85,9 +85,8 @@ class UiBench(Workload): self.out_dir = out_dir self.collect = collect - # Press Back button to be sure we run the video from the start - System.menu(self._target) - System.back(self._target) + # Unlock device screen (assume no password required) + Screen.unlock(self._target) # Close and clear application System.force_stop(self._target, self.package, clear=True) diff --git a/libs/utils/android/workloads/vellamo.py b/libs/utils/android/workloads/vellamo.py index 476266efa0959ac109917e836abd1b2f6d5e9412..c8863e8d2a0be714175262dc7d6d5886dcd7a899 100644 --- a/libs/utils/android/workloads/vellamo.py +++ b/libs/utils/android/workloads/vellamo.py @@ -94,8 +94,7 @@ class Vellamo(Workload): sleep_time = 3.5 # Unlock device screen (assume no password required) - System.menu(self._target) - System.back(self._target) + Screen.unlock(self._target) System.force_stop(self._target, self.package, clear=True) diff --git a/libs/utils/android/workloads/youtube.py b/libs/utils/android/workloads/youtube.py index a2461926e59344a7849296c27329271283658cf4..cdfbf2d0462207c3fbf5cc7e1088a272ae34a75a 100644 --- a/libs/utils/android/workloads/youtube.py +++ b/libs/utils/android/workloads/youtube.py @@ -66,9 +66,10 @@ class YouTube(Workload): self.collect = collect # Unlock device screen (assume no password required) - System.menu(self._target) - # Press Back button to be sure we run the video from the start - System.back(self._target) + Screen.unlock(self._target) + + # Stop youtube if already running + System.force_stop(self._target, self.package) # Use the monkey tool to start YouTube without playing any video. # This allows to subsequently set the screen orientation to LANDSCAPE