Skip to content

Commit

Permalink
[tklock] Wait for p-sensor state before acting on keyboard slide open
Browse files Browse the repository at this point in the history
Unblanking due to keyboard slide open needs to be subjected to proximity
sensor check. If on-demand proximity sensor power up is used, sensor state
is not available when input events are received.

Use the on-proximity action queue, so that proximity sensor gets powered
up and sensor state can be evaluated before considering unblanking.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed Mar 15, 2019
1 parent 8145d75 commit d865294
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions tklock.c
Expand Up @@ -3166,7 +3166,7 @@ static void tklock_keyboard_slide_opened(void)
break;

case KBD_OPEN_TRIGGER_NO_PROXIMITY:
if( proximity_sensor_actual == COVER_CLOSED ||
if( proximity_sensor_actual != COVER_OPEN ||
lid_sensor_filtered == COVER_CLOSED )
goto EXIT;
break;
Expand All @@ -3191,6 +3191,16 @@ static void tklock_keyboard_slide_opened(void)
return;
}

static void tklock_keyboard_slide_opened_cb(gpointer aptr)
{
(void)aptr;

/* Slide still open? */
if( keyboard_slide_input_state == COVER_OPEN ) {
tklock_keyboard_slide_opened();
}
}

static void tklock_keyboard_slide_closed(void)
{
/* Must not blank during active alarms / calls */
Expand Down Expand Up @@ -3240,7 +3250,9 @@ static void tklock_keyboard_slide_rethink(void)
{
switch( keyboard_slide_input_state ) {
case COVER_OPEN:
tklock_keyboard_slide_opened();
/* Delay processing until proximity sensor state is known */
common_on_proximity_schedule(MODULE_NAME,
tklock_keyboard_slide_opened_cb, 0);
break;

case COVER_CLOSED:
Expand Down

0 comments on commit d865294

Please sign in to comment.