diff --git a/features/screen.py b/features/screen.py index 92fcba0..e2e3d2c 100644 --- a/features/screen.py +++ b/features/screen.py @@ -30,3 +30,23 @@ def get_screen_data(usernames: Collection) -> pd.DataFrame: with db_engine.connect() as connection: df_screen = pd.read_sql(query_screen.statement, connection) return df_screen + + +def identify_screen_sequence(df_screen: pd.DataFrame) -> pd.DataFrame: + # TODO Implement a method that identifies "interesting" sequences of screen statuses. + # The main one are: + # - OFF -> ON -> unlocked (a true phone unlock) + # - OFF -> ON -> OFF/locked (no unlocking, i.e. a screen status check) + # Consider that screen data is sometimes unreliable as shown in expl_screen.ipynb: + # "I have also seen off -> on -> unlocked (with 2 - locked missing) + # and off -> locked -> on -> off -> locked (*again*)." + # Either clean the data beforehand or deal with these inconsistencies in this function. + pass + + +def time_screen_sequence(df_screen: pd.DataFrame) -> pd.DataFrame: + # TODO Use the results of indentify_screen_sequence to calculate time statistics related to transitions. + # For example, from the two main sequences outlined above, the time of "real" phone usage can be calculated, + # i.e. how long the screen was unlocked. + # Another example might be the average time between screen unlocks and/or screen status checks. + pass \ No newline at end of file