Skip to content
Snippets Groups Projects
  1. Sep 20, 2024
  2. Sep 19, 2024
  3. Jun 11, 2024
    • Dominik Laskowski's avatar
      FTL: Amend outdated ftl::Function example usage · 021ab8c2
      Dominik Laskowski authored
      Bug: 185536303
      Flag: DOCS_ONLY
      Test: N/A
      Change-Id: I96246cacb63dec70caa732064fd5159d596d4e25
      021ab8c2
    • Dominik Laskowski's avatar
      FTL: Add FTL_EXPECT · 1f39c3d3
      Dominik Laskowski authored
      Like FTL_TRY, FTL_EXPECT unwraps T for Expected<T, E> or does an early
      out on error, but it bails out with E instead of Expected<T, E>.
      
      Fix a line in the Expected.Try test to call the intended helper.
      
      Bug: 185536303
      Test: ftl_test
      Change-Id: I238ae2978ff606c5c035e9791496c2b20729ca7f
      1f39c3d3
  4. Jun 10, 2024
    • Prabir Pradhan's avatar
      MotionEvent: Consolidate functions to transform PointerCoords · 4b8d36c0
      Prabir Pradhan authored
      Remove PointerCoords::transform(), which is a duplicate of
      MotionEvent::calculateTranformedCoords().
      
      Bug: 342349872
      Test: atest inputflinger_tests libinput_tests
      Change-Id: I7610a0475a16e9964817f63efa67b291cb7aaf0a
      4b8d36c0
    • Prabir Pradhan's avatar
      MotionEvent: Differentiate directional support for AXIS_ORIENTATION · 9a53b55a
      Prabir Pradhan authored
      We have three cases for handling AXIS_ORIENTATION:
      1. Orientation is not supported by the input device, so the value for
         AXIS_ORIENTATION should always be 0, regardless of display rotation.
      2. Orientation is supported, but a "direction" is not specified, like
         for touchscreens and touchpads. The orientation must be in the range
         [-pi/2, pi/2] for all display rotations.
      3. Orientation is fully supported, and the value is in the range [-pi,
         pi] for all display rotations.
      
      It is insufficient to rely on whether or not the PointerCoords has the
      bit for AXIS_ORIENTATION set to determine whether the event has a valid
      orientation. This is because we always skip setting values of 0 for any
      axis in PointerCoords to save space during serialization.
      
      To support these three cases, we introduce two new MotionEvent private
      flags. These are flags that are not exposed to Java and to the public
      APIs.
      
      Bug: 263310669
      Test: atest TouchScreenTest libinput_tests inputflinger_tests
      Change-Id: Iaa38afe35b00de74fbc5eefce25191bea52c2ea6
      9a53b55a
  5. Jun 07, 2024
    • Vaibhav Devmurari's avatar
      Implement KeyboardClassifier interface in rust · e58ffb9d
      Vaibhav Devmurari authored
      DD: go/project-imposter-android
      This CL includes:
      - Rust interface setup
      
      Next CL to include:
      - Basic categorization into alphabetic and non-alphabetic
      - Updating categorization based on key presses
      
      Test: atest --host libinput_rust_test
      Test: atest inputflinger_tests
      Bug: 263559234
      Flag: com.android.input.flags.enable_keyboard_classifier_rust_impl
      Change-Id: I52773be992ddd8efaa9546e0af8b0a78515d931c
      e58ffb9d
  6. May 23, 2024
    • Frederick Mayle's avatar
      libbinder: support exporting fewer symbols · f7b65d1f
      Frederick Mayle authored
      This commit explicitly marks symbols in the code with default visibility
      if they should be part of the libbinder ABI. Later, we'll set the
      default symbol visibility to hidden and so any symbols not explicitly
      marked as exported will be hidden.
      
      We are still overexporting symbols a bit. When `LIBBINDER_EXPORTED` is
      applied to a class, it exports all of that class's symbols. I've tried
      to only export class members, but in a few cases it didn't seem worth
      the trouble, e.g. where all the members need to be exported.
      
      Additionally, we are exporting some symbols only needed by binder test
      binaries. Since those tests run against the standard libbinder.so, we
      need to include the symbols as part of the ABI.
      
      On aarch64, this reduces the size of libbinder_on_trusty_mock.so by
      10.7% and libbinder.so by 7.5%, primarily in the .text, .dynstr, and
      .dynsym sections (but none of this takes effect until we actually
      enabled it in a later commit).
      
      Bug: 338458975
      Test: TH
      Change-Id: Idc348c2b12124a8bbcebeea49920267a995367b6
      f7b65d1f
  7. May 14, 2024
    • Dominik Laskowski's avatar
      FTL: Add Optional<T>::ok_or and FTL_TRY · 189d1825
      Dominik Laskowski authored
      Optional<T>::ok_or maps to Expected<T, E> where nullopt becomes E.
      
      FTL_TRY unwraps T for Expected<T, E> or does an early out on error.
      
      Bug: 185536303
      Test: ftl_test
      Change-Id: Ia03f7e3d8773878db1c493b62772ab2c2b7a4fed
      189d1825
    • Dominik Laskowski's avatar
      FTL: Touch up Concat · a7873cc6
      Dominik Laskowski authored
      - Silence warning about signedness change.
      - Disable copying to prevent stray end_ pointer.
      
      Bug: 185536303
      Test: Build
      Change-Id: Ief31910bd51e9582a576ace554a5f7bafe46bf02
      a7873cc6
    • Siarhei Vishniakou's avatar
      Move ADISPLAY_ID_ definitions into LogicalDisplayId · cfbee530
      Siarhei Vishniakou authored
      These will eventually replace the existing definitions as follows:
           ADISPLAY_ID_NONE -->> LogicalDisplayId::INVALID
           ADISPLAY_ID_DEFAULT -->> LogicalDisplayId::DEFAULT
      
      We are keeping the old definitions for now, to reduce the merge
      conflicts. These will be removed in subsequent CLs, after the
      frameworks/base and other repository patches go in.
      
      The constant "NONE" was renamed to "INVALID" to make it consistent with
      the Java definitions.
      
      Bug: 339106983
      Test: m checkinput
      Change-Id: I0274be345159c85cb51fcea743d8acd3d298cd07
      cfbee530
  8. May 11, 2024
  9. May 09, 2024
    • Linnan Li's avatar
      Use a strongly typed LogicalDisplayId for displayId(2/n) · 13bf76a8
      Linnan Li authored
      
      Currently, we use int32_t for displayId, which is not a safe type, and
      it may also lead to misdefinition of types. Here, we introduce
      LogicalDisplayId as a strong type for displayId and move all contents
      of constants.h into LogicalDisplayId.h.
      
      Bug: 339106983
      Test: atest inputflinger_tests
      Test: atest InputTests
      Test: m checkinput
      Test: m libsurfaceflinger_unittest
      Test: presubmit
      
      Change-Id: If44e56f69553d095af5adb59b595e4a852ab32ce
      Signed-off-by: default avatarLinnan Li <lilinnan@xiaomi.corp-partner.google.com>
      13bf76a8
  10. May 08, 2024
    • Yi Kong's avatar
      Turn off integer overflow UBSAN checks for hash functions · 77527b97
      Yi Kong authored
      These functions intentionally overflows integers. The upcoming compiler
      update, clang-r522817, will start complaining about these overflows.
      
      Test: boot with new compiler
      Bug: 325934863
      Change-Id: Idb3730c652ae739b73c09517665b518a79b60345
      77527b97
  11. May 06, 2024
  12. May 03, 2024
    • Dan Albert's avatar
      Allow a message argument for __DEPRECATED_IN. · 22242fb8
      Dan Albert authored
      The messages come from a different CL in AOSP, but that CL breaks
      internally because this code doesn't exist in AOSP. Merging the
      compatibility thing first so I can land the rest in AOSP.
      
      Bug: None
      Test: None
      Change-Id: I906c6ea7bd6d891aba9e185756131ac5b34f3c3d
      22242fb8
  13. May 02, 2024
    • Dan Albert's avatar
      Define the error conditions for ALooper_pollOnce. · 26620a62
      Dan Albert authored
      "Unrecoverable internal errors" here means that ALOOPER_POLL_ERROR
      will be returned if the internal epoll_wait call fails with something
      other than EINTR. I could say that explicitly, but I think the
      important info for the caller is "you're doomed, just abort".
      
      Bug: None
      Test: None
      Change-Id: I869f29122500ee8c71390cae1c28108a63088a77
      26620a62
    • Dan Albert's avatar
      Expand Choreographer docs. · dc9c4118
      Dan Albert authored
      This (hopefully) explains all the bits that confused me when I tried
      to use these APIs for the first time. The existing docs leaned a lot
      on developers already understanding the Java API, and even the Java
      API docs didn't explain how to use this portion of the API well.
      
      Bug: None
      Test: I am the test
      Change-Id: I48490112f92ef754b38daef7a4ebf6c031cc20f8
      dc9c4118
    • Dan Albert's avatar
      Restore docs for deprecated Choreographer APIs. · 9ca6b3d5
      Dan Albert authored
      They're deprecated, but still needed by most users, as the replacement
      is not available until API 29. Restore the docs and explain the bugs.
      
      Bug: None
      Test: treehugger
      Change-Id: I4227ce3f0ee57a73a13e394cd48373accf4a58a3
      9ca6b3d5
    • Dan Albert's avatar
      Improve ALooper_pollAll/ALooper_pollOnce docs. · b06c7fba
      Dan Albert authored
      Add the soon-to-be-required removal message for ALooper_pollAll, and
      expand the docs for both ALooper_pollAll and ALooper_pollOnce to make
      the reason for removal clear, and to explain the fix callers should
      apply.
      
      Bug: https://github.com/android/ndk/issues/2014
      Test: treehugger
      Change-Id: I020a280346d1ff9f5fcbec4c153dee8319cdf539
      b06c7fba
    • Dan Albert's avatar
      Add deprecation message. · c47ac844
      Dan Albert authored
      Bug: None
      Test: treehugger
      Change-Id: I3a52883fba0e31f05e50cd51193bbb306418b18a
      c47ac844
    • Lloyd Pique's avatar
      ftl: non_null improvements · 2e85e1b3
      Lloyd Pique authored
      * Disallow NonNull<bool> by checking for nullptr, instead of false.
      * Add an "operator bool()" to work like other smart pointers.
      * Add [[nodiscard]] where it makes sense.
      * Implement the full set of comparison operations, and allow
        comparisons between NonNull<P> and another type Q. This allows the
        use of NonNull<P> in sorted containers like std::set, and allows
        easier lookup via unwrapped pointers.
      * Specialize std::hash for NonNull. This allows the use of NonNull<P> in
        hashed containers like std::unordered_set.
      
      Test: atest ftl_test
      Bug: 185536303
      Change-Id: Ib1090e393ea5f5641be2cd9c61011049039ea615
      2e85e1b3
    • Lloyd Pique's avatar
      ftl: contains · 23550ef3
      Lloyd Pique authored
      ftl::contains(container, value) returns true if the container contains
      the value. It's implemented in terms of std::find(), so has the same
      runtime complexity.
      
      It is otherwise a simplified version of the C++23 std::ranges::contains,
      which has some additional options, and can be deprecated once C++23 is
      the minimal supported version.
      
      Test: atest ftl_test
      Bug: 185536303
      Change-Id: I98aefe7cf6645ac3a20fddfe0657fa6822d669de
      23550ef3
  14. May 01, 2024
  15. Apr 29, 2024
  16. Apr 24, 2024
    • Harry Cutts's avatar
      input: fix -Wformat warnings · c57cd3c5
      Harry Cutts authored
      These occur when an enum value is formatted as an integer without a
      cast. In all these cases the debug logs are nicer if we use the actual
      name of the enum value, so wrap them all in ftl::enum_string calls.
      
      Bug: 245989146
      Test: Check there are no -Wformat warnings in the output of
            $ m checkinput
      Change-Id: I26333123e9fb445f1640c5e73757ddf4ad2d6e98
      c57cd3c5
  17. Apr 23, 2024
  18. Apr 19, 2024
  19. Apr 16, 2024
  20. Apr 12, 2024
  21. Apr 02, 2024
  22. Mar 30, 2024
    • Derek Wu's avatar
      Add jerk thresholded pruning. · aaa47312
      Derek Wu authored
      This will change MotionPredictor::predict() outputs once
      enable_prediction_pruning_via_jerk_thresholding is enabled.
      
      Test: atest libinput_tests --host with local flag override to enable
      enable_prediction_pruning_via_jerk_thresholding.
      Test: atest CtsInputTestCases
      Test: atest MotionPredictorBenchmark MotionPredictorTest
      Bug: 266747654
      
      Change-Id: I11eb1972246468a1f3824656f5ac57e01e0359cd
      aaa47312
  23. Mar 29, 2024
    • Siarhei Vishniakou's avatar
      Add tracing for InputConsumer lifetime · c0bf3899
      Siarhei Vishniakou authored
      This will help understand when it's created and destroyed. This also helps disambiguate between multiple InputConsumers in the same process.
      
      Test procedure:
      1. Add "system tracing" to quick settings from developer options (enable
         the quick settings tile for system tracing)
      2. Start system tracing via UI of quick settings
      3. Open all apps and do some swipes
      4. Click "stop tracing"
      5. Pull the logs to the device `adb pull /data/local/traces/ ~/trace`
      6. Go to https://ui.perfetto.dev/
      7. Click "open trace file" and navigate to the local file
      8. In the trace, open the process of interest. In this case, it's the
         launcher process
      9. Scroll down to "InputConsumer processing"
      10. The "cookie" field of each entry is the sequence number of this
          event (but not the event id).
      
      Bug: 311142655
      Test: perfetto test procedure described above
      
      Change-Id: If8cdadd3604e8e3ab24c45a5ccf4ea9ffa9fee4a
      c0bf3899
  24. Mar 27, 2024
  25. Mar 26, 2024
    • Yuichiro Hanada's avatar
      Move PointerIconType to AIDL · 56afd1e2
      Yuichiro Hanada authored
      to be shared between Java and C++.
      The values of PointerIconStyle in Input.h and the constants in
      PointerIcon.java are manually synced now.
      This change introduces an AIDL file which can be used by both.
      
      Bug: 235023317, 330827347
      Test: presubmit
      Change-Id: I01f31868e7c13270047673d97035783deaf0a7f6
      56afd1e2
  26. Mar 21, 2024
    • Linnan Li's avatar
      Add owner for include/android/keycodes.h · 04cb6b2e
      Linnan Li authored
      Because of the existence of extra spaces, the owner of keycodes.h is
      not configured as expected. We should delete this extra spaces.
      
      Bug: none
      Test: After merging, check whether the owner of keycodes.h includes
      all users under INPUT_OWNER
      
      Change-Id: I634c49f53a4633bdee3cdefbf0debae4dff90a47
      04cb6b2e
  27. Mar 20, 2024
Loading