1. 05 Jul, 2020 1 commit
  2. 24 Oct, 2019 1 commit
    • spiiroin's avatar
      [fingerprint] Use gesture actions for fingerprint wake up. Fixes JB#47437 · 64e71c69
      spiiroin authored
      Originally fingerprint wake up was modeled to:
      - wake up display like double tap does
      - exit from lockscreen when device is not locked, or
      - indicate need to unlock when device is locked
      i.e. behave as if double power key press were made.
      
      This however means that fingerprint wake up never ends up showing
      lockscreen where things like date and time would be visible.
      
      Switch from handling fingerprint wake up as something explicit into
      treating it as just another gesture with configurable actions.
      
      Add "tkunlock2" gesture action, which behaves like "tkunlock" when
      device is unlocked and does nothing when device is locked.
      
      After which users can tweak fingerprint behavior with mcetool.
      
      mcetool --set-touchscreen-gesture-actions=fpwakeup,unblank,tkunlock
      
        The default behavior.
      
      mcetool --set-touchscreen-gesture-actions=fpwakeup,unblank,tkunlock2
      
        Exits from lockscreen only if device is not locked.
      
      mcetool --set-touchscreen-gesture-actions=fpwakeup,unblank
      
        Just wakes up display, leaving lockscreen status as it is.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      64e71c69
  3. 17 May, 2019 1 commit
    • spiiroin's avatar
      [mce] Unify license blurbs. JB#33684 · 091d6e7e
      spiiroin authored
      MCE uses LGPL v2.1 (without "or later") license, but due to missing / use
      of different license blurbs this is not always clear enough.
      
      Replace blurbs referring to "LGPLv2" short form which could be either
      LGPL v2.0 or v2.1 without "or later" with the same blurb that is used
      in mce.c file.
      
      Similarly add blurb to source files that are missing one altogether.
      
      Add all authors that can be derived from git logs.
      
      Update Jolla Ltd. copyright statements to match git activity.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      091d6e7e
  4. 15 Mar, 2019 3 commits
  5. 14 Mar, 2019 1 commit
  6. 13 Mar, 2019 1 commit
  7. 08 Mar, 2019 1 commit
    • spiiroin's avatar
      [datapipe] Add enablers for logging datapipe value changes · e2f29495
      spiiroin authored
      A lot of mce functionality is based on pushing events through datapipes,
      which then causes cascade of activity on other datapipes. Tracing this
      can be cumbersome at times.
      
      Add logging hooks to datapipe structure to allow generic value tracing,
      and modify datapipe initialization so that data type specific hooks are
      bound to all datapipes so that all datapipe activity can be tracked by
      invoking mce with logging options such as:
      
        mce -T -ldatapipe.c:*_pipe
      
      Also fix couple of cases where incorrect data type were used for datapipe
      value tracking.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      e2f29495
  8. 19 Sep, 2018 5 commits
  9. 18 Sep, 2018 1 commit
  10. 15 Aug, 2018 2 commits
  11. 29 Jun, 2018 1 commit
    • spiiroin's avatar
      [powerkey] Handle synthesized gestures despite hw settings. Fixes JB#42261 · ccd4f144
      spiiroin authored
      In some devices hw based gesture (such as doubletab) detection can't be
      disabled. For this reason mce rejects gesture events if they are received
      under conditions where hw gesture detection ought to be disabled. This
      however makes also synthesized gestures (such as doubletap from lpm)
      depend on hw enable/disable setting.
      
      Mark synthesized gestures as such and do not subject them to "never"
      hw gesture detection setting.
      
      If users wish to disable synthesized double taps, there already exists
      a separate setting for that purpose.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      ccd4f144
  12. 16 Mar, 2018 1 commit
  13. 15 Mar, 2018 1 commit
  14. 01 Mar, 2018 3 commits
  15. 28 Feb, 2018 1 commit
    • spiiroin's avatar
      [datapipe] Unify naming. Contributes to JB#22475 · 5fadb870
      spiiroin authored
      Use "datapipe_"  prefix for all functions:
      
       datapipe_add_filter            <- append_filter_to_datapipe
       datapipe_add_input_trigger     <- append_input_trigger_to_datapipe
       datapipe_add_output_trigger    <- append_output_trigger_to_datapipe
       datapipe_exec_filters          <- execute_datapipe_filters
       datapipe_exec_full             <- execute_datapipe
       datapipe_exec_input_triggers   <- execute_datapipe_input_triggers
       datapipe_exec_output_triggers  <- execute_datapipe_output_triggers
       datapipe_free                  <- free_datapipe
       datapipe_init                  <- setup_datapipe
       datapipe_remove_filter         <- remove_filter_from_datapipe
       datapipe_remove_input_trigger  <- remove_input_trigger_from_datapipe
       datapipe_remove_output_trigger <- remove_output_trigger_from_datapipe
      
      Datapipes that are used for solely for requesting state changes (i.e. do not
      themselves have a state) have a verb in the name:
      
       display_state_request_pipe          <- display_state_req_pipe
       led_pattern_activate_pipe           (no change)
       led_pattern_deactivate_pipe         (no change)
       tklock_request_pipe                 <- tk_lock_pipe
      
      Datapipes that are used solely process input events without having a
      persistent state have "event" in the name:
      
       heartbeat_event_pipe                <- heartbeat_pipe
       ignore_incoming_call_event_pipe     <- ignore_incoming_call_pipe
       inactivity_event_pipe               <- device_inactive_event_pipe
       keypress_event_pipe                 <- keypress_pipe
       resume_detected_event_pipe          <- device_resumed_pipe
       touchscreen_event_pipe              <- touchscreen_pipe
       user_activity_event_pipe            <- user_activity_pipe
      
      Datapipes dealing with brightness have "brightness" included in the name:
      
       display_brightness_pipe             (no change)
       key_backlight_brightness_pipe       <- key_backlight_pipe
       led_brightness_pipe                 (no change)
       lpm_brightness_pipe                 (no change)
      
      Datapipes dealing with sensors have "sensor" in name and the one holding
      unfiltered data is called "actual":
      
       lid_sensor_actual_pipe              <- lid_cover_sensor_pipe
       lid_sensor_filtered_pipe            <- lid_cover_policy_pipe
       lid_sensor_is_working_pipe          (no change)
       light_sensor_actual_pipe            <- ambient_light_sensor_pipe
       light_sensor_filtered_pipe          <- ambient_light_level_pipe
       light_sensor_poll_request_pipe      <- ambient_light_poll_pipe
       orientation_sensor_actual_pipe      <- orientation_sensor_pipe
       proximity_sensor_actual_pipe        <- proximity_sensor_pipe
      
      Datapipes that have enumerated state reflect the enumeration type in
      datapipe name:
      
       alarm_ui_state_pipe                 (no change)
       audio_route_pipe                    (no change)
       battery_status_pipe                 (no change)
       bluez_service_state_pipe            <- bluez_available_pipe
       call_state_pipe                     (no change)
       call_type_pipe                      (no change)
       camera_button_state_pipe            <- camera_button_pipe
       charger_state_pipe                  (no change)
       compositor_service_state_pipe       <- compositor_available_pipe
       devicelock_service_state_pipe       <- devicelock_available_pipe
       devicelock_state_pipe               <- device_lock_state_pipe
       display_state_curr_pipe             <- display_state_pipe
       display_state_next_pipe             (no change)
       dsme_service_state_pipe             <- dsme_available_pipe
       jack_sense_state_pipe               <- jack_sense_pipe
       keyboard_available_state_pipe       <- keyboard_available_pipe
       keyboard_slide_state_pipe           <- keyboard_slide_pipe
       lens_cover_state_pipe               <- lens_cover_pipe
       lipstick_service_state_pipe         <- lipstick_available_pipe
       lockkey_state_pipe                  <- lockkey_pipe
       ngfd_service_state_pipe             <- ngfd_available_pipe
       submode_pipe                        (no change)
       system_state_pipe                   (no change)
       thermal_state_pipe                  (no change)
       uiexception_type_pipe               <- exception_state_pipe
       usb_cable_state_pipe                <- usb_cable_pipe
       usbmoded_service_state_pipe         <- usbmoded_available_pipe
      
      Datapipes that have boolean state should answer an
      "is" question:
      
       device_inactive_pipe                <- device_inactive_state_pipe
       interaction_expected_pipe           (no change)
       keypad_grab_active_pipe             (no change)
       keypad_grab_wanted_pipe             (no change)
       master_radio_enabled_pipe           <- master_radio_pipe
       music_playback_ongoing_pipe         <- music_playback_pipe
       osupdate_running_pipe               <- update_mode_pipe
       packagekit_locked_pipe              (no change)
       power_saving_mode_active_pipe       <- power_saving_mode_pipe
       proximity_blanked_pipe              <- proximity_blank_pipe
       shutting_down_pipe                  (no change)
       touch_detected_pipe                 (no change)
       touch_grab_active_pipe              (no change)
       touch_grab_wanted_pipe              (no change)
      
      Datapipes that have integer state should answer
      and "what is" question:
      
       battery_level_pipe                  (no change)
       inactivity_delay_pipe               <- inactivity_timeout_pipe
      
      Rename datapipe related callback functions and variables similarly as what
      was done to datapipes.
      
      Define submode bitmasks as submode_t enumeration instead of using
      gint type and preprocessor constants. Change the value naming from
      MCE_xxx_SUBMODE to MCE_SUBMODE_xxx.
      
      Change call_type_t enumeration value naming from xxx_CALL to
      CALL_TYPE_xxx.
      
      Change system_state_t enumeration value naming from MCE_STATE_xxx
      to MCE_SYSTEM_STATE_xxx.
      
      Fix setting up of power_saving_mode_active_pipe, master_radio_enabled_pipe
      and lens_cover_state_pipe so that initial values of appropriate type are
      used.
      
      Switch lockkey_state_pipe value from gboolean to key_state_t type.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      5fadb870
  16. 18 Nov, 2017 1 commit
  17. 21 Sep, 2017 2 commits
    • spiiroin's avatar
      [powerkey] Do not differentiate long/short presses in display off. JB#39431 · 208e530a
      spiiroin authored
      Whether a long press can even be detected in display off state varies from
      one device to another and depending on whether the device is suspended or
      not. This means behavior on power key press is not deterministic and
      uniform across all devices as in some scenarios display power up begins
      already on power key press and in others the power key has to be also
      released before actions are taken.
      
      Unless an attempt as been made to bind actions to long power key press
      from display is off state, synthesize power key release immediately
      after power key press event to terminate timer used to differentiate
      between long and short presses.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      208e530a
    • spiiroin's avatar
      [powerkey] Ignore bursts of power key presses. Fixes JB#37181 · 2416ce03
      spiiroin authored
      In some individual devices pressing power key button can cause a bursts
      of power key press and release events to be emitted - so that pressing
      power key just once invokes actions bound to double presses. Wear and
      tear can make the problem more likely to occur also in devices that
      initially function just fine.
      
      Assume power key presses that happen less than 50 milliseconds after
      the previous power key release are caused by hw faults and ignore them.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      2416ce03
  18. 20 Apr, 2017 1 commit
  19. 21 Feb, 2017 1 commit
    • spiiroin's avatar
      [callstate] Make it possible to ignore incoming calls. Fixes JB#37565 · 42ccef85
      spiiroin authored
      The existing workaround for allowing powerkey to be used for blanking the
      display after ignoring an incoming calls leaves the callstate to ringing
      state. When ignoring incoming call while already having an active call,
      this effectively leaves in-call proximity blanking disabled.
      
      Add ignored call state enum value for use within mce callstate plugin.
      
      Separate call state enum <-> string translations functions dealing with
      D-Bus interface from the ones dealing with internal diagnostic logging.
      
      Add ignore_incoming_calls datapipe and bind it to ignoring all calls that
      are currently in the ringing state and re-evaluating overall call state.
      
      Execute the ignore_incoming_calls datapipe when D-Bus message indicating
      that call ui has ignored incoming calls is received.
      Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
      42ccef85
  20. 31 Jan, 2017 1 commit
  21. 11 Oct, 2016 2 commits
  22. 07 Oct, 2016 1 commit
  23. 19 Aug, 2016 1 commit
    • spiiroin's avatar
      [powerkey] Add state machine for home key handling. JB#34962 · aa7176cc
      spiiroin authored
      On devices that have physical home key, it can used by ui for example
      as a shortcut to application grid. However handling home key press
      when display is off needs to be subjected to display unblanking policy
      which resides in mce.
      
      Add a state machine that deals with input & blanking policies on mce
      side and then signals compositor about the home key press when/if
      appropriate state is reached and ui should take some action.
      aa7176cc
  24. 12 Apr, 2016 3 commits
  25. 31 Mar, 2016 3 commits
    • spiiroin's avatar
      [settings] Remove gconf references from code. Fixes MER#1554 · d8f66013
      spiiroin authored
      Rename functions, variables and structure members so that only functions
      dealing directly with gconf api (implemented in builtin-gconf module)
      contain gconf in name.
      
      When local naming convention permits: Use _setting_cb postfix for
      naming change notification callback functions and _setting_id for
      naming notification tracking ids.
      
      When applicable: Move tracking ids so that they are next to the variable
      that is used for caching the setting value and remove repetitive and
      uninformative Doxygen comments.
      
      No functional changes.
      d8f66013
    • spiiroin's avatar
      [settings] Use mce-setting module. MER#1554 · 07dd89fe
      spiiroin authored
      Change all mce-gconf.[ch] references to mce-setting.[ch].
      
      No functional changes.
      07dd89fe
    • spiiroin's avatar
      [settings] Remove gconf references from interface function names. MER#1554 · 9c04e702
      spiiroin authored
      Use mce_setting prefix instead of mce_gconf.
      
      No functional changes.
      9c04e702