)]}'
{
  "log": [
    {
      "commit": "16a2e3067d7465689da117340e94df11624820a2",
      "tree": "56d93068189c9284e84869dbd4a22951b1e2a92e",
      "parents": [
        "b6d0623bbc0a33bd3c68cd81e0b567b0f1540440"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Jan 14 19:21:45 2019 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jan 16 09:13:55 2019 -0800"
      },
      "message": "Propagate MotionClassification to InputDispatcher\n\nWe added MotionClassification to MotionEvent and NotifyMotionArgs, but\nthe two have not yet been connected. Connect them here, to ensure that\napps can receive the classification.\n\nBug: 111480215\nTest: atest -a libinput_tests inputflinger_tests\nChange-Id: I67dda22d9ee8a2d89abf40dbd01200ec37a65737\n"
    },
    {
      "commit": "49e59220d127929ae73cfe81d81683bcad3dcb30",
      "tree": "6af6708ebece876326a9f9b7f765602af1a11c0e",
      "parents": [
        "bcb4be70fab707a300c1a83920805e984fcb49b8"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Dec 28 18:17:15 2018 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Jan 10 15:32:04 2019 -0800"
      },
      "message": "Add classification to MotionEvent\n\nThe classification will be used to categorize the\ncurrent motion event stream. The classification may change from ambiguous to deep press,\nfor example.\n\nTest: integration tested by printing to logcat whenever CLASSIFICATION_DEEP_PRESS\nis present.\nTest: atest libinput_tests inputflinger_tests\nBug: 62940136\n\nChange-Id: I2d93583bab42162e1fd1e95ebf624ef3ab9a58ec\n"
    },
    {
      "commit": "80109da9fde13fa27d0460486ae54a606bd7ffc4",
      "tree": "30aa93acbead19e97a6cd201f72b80ac9713523d",
      "parents": [
        "26ce864c655c436076febe1cad5825d4ca1cabdd",
        "76b5c6b244f2cb715c41a1a00c1fa7920f324414"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 21 15:02:18 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 21 15:02:18 2018 -0800"
      },
      "message": "Merge \"Fix/suppress google-explicit-constructor warnings\" am: aad7e1ccc5 am: 9a55c7aba6\nam: 76b5c6b244\n\nChange-Id: Id48300ec04692d040625176ce953e1f21e0bc6ae\n"
    },
    {
      "commit": "f43b02c408d0b6afb958c9d426480dd1b615820b",
      "tree": "fd8325677363455a0850e53adb2254e8556a6f4f",
      "parents": [
        "dab0fc8229ba6cd5d3c5bbfdcf5d539cdee22122"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 15:45:56 2018 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 21 22:16:34 2018 +0000"
      },
      "message": "Fix/suppress google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Iac8f3aa14cd04861f6bcbab56b0dfc28c9a89e53\n"
    },
    {
      "commit": "e07e103103d575789ad0a9d5a5212a000ad1f277",
      "tree": "f3be0c0f8f184db0696b4aacdb1bcb3ed6b86e0b",
      "parents": [
        "e52502e2697bc12992c46baef6f15420b5912797"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Nov 26 12:55:53 2018 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Nov 27 14:42:06 2018 -0800"
      },
      "message": "SurfaceFlinger Input: Correct screen magnification.\n\nWe need to pass the computed scaling factors through SurfaceFlinger\nas well as appropriately scaling the touchable region. We also need\nto be careful as to which axes we scale. In the past screen magnification\nhas not lead to scaling of the TOUCH_MAJOR/MINOR axes, whereas whole-screen\ndisplay compatibility scaling has. We preserve this behavior by differentiating\nbetween the global scale and a scale on any particular window. The window scale\nworks like the global scale used to and the global scale is only used for additional\nscaling of the MAJOR/MINOR axes.\n\nBug: 80101428\nBug: 113136004\nBug: 111440400\nChange-Id: I97d809826f86b452f28443cb1046e8bfef1bbf9d\n"
    },
    {
      "commit": "141a98657a7776be680d9237fae87a15536a6426",
      "tree": "8a4f4e01e4aaa661cacd7ea431e152cdd1d4cc8c",
      "parents": [
        "dc2e1d7c65755284e800945664c29e3e539fffb8"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Nov 19 14:35:56 2018 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Nov 19 14:35:56 2018 -0800"
      },
      "message": "Add flag AMOTION_EVENT_FLAG_IS_GENERATED_GESTURE to Input.h\n\nSince there is no support for touchpad gestures yet, the gestures are\nsent as MotionEvents with the flag:\nAMOTION_EVENT_FLAG_IS_GENERATED_GESTURE\n\nThis flag is already present in java as:\nMotionEvent.FLAG_IS_GENERATED_GESTURE\n\nThis change adds the flag to Input.h.\n\nBug: 119265089\nTest: none\nChange-Id: Ide0cc41d3f44a8694fa02faa0337eb2cf72de6f2\n"
    },
    {
      "commit": "2c358bf8206d591a4707d33fd2ca45f0dc5360f7",
      "tree": "302e722c58b4f30db625dfe0fd1e2f2f04ab2661",
      "parents": [
        "7b0e9118785103c763042e56642e1234935e1e58"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Aug 08 15:58:15 2018 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Nov 14 17:47:09 2018 -0800"
      },
      "message": "Add setInputWindowInfo to SurfaceComposerClient::Transaction\n\nIn preparation for passing input through SurfaceFlinger to the InputDispatcher.\n\nBug: 80101428\nBug: 113136004\nBug: 111440400\nChange-Id: I5f67fbb9894136bfb16c718ffe1cc23a02f3414d\n"
    },
    {
      "commit": "ec8f725bcc099ae63c95a5d725f3ccd63eb4ebe3",
      "tree": "889412e90feec46767f5c3bd6f54558ccf8d66b1",
      "parents": [
        "24d971f469272b59b45490487247f7c4d876c0ab"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jul 06 11:19:32 2018 +0100"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 05 09:27:25 2018 -0700"
      },
      "message": "Prefer std::string over String8\n\nString8 is deprecated, so use proper C++ std::string instead.\nChange DisplayViewport.uniqueId to std::string.\nThe current usage of String8 in\nDisplayViewport hinders refactoring of the code to use viewport types\ninside the viewports themselves.\nMost of the dependency on String8 is now removed. Once the xml for\nproperties patch is added, almost all String8 should be gone from the\ninput system.\n\nTest: atest libinput_tests inputflinger_tests\nBug: 111108021\nChange-Id: I580dc27b0449e664a7c9db2cdec1a0c18bf71a09\n"
    },
    {
      "commit": "a62a8dd15e3deb4622e3ee8fd844999cf4fafc41",
      "tree": "d7dd861bc5223a1e7b88772fa57e523e4f0f49db",
      "parents": [
        "62ce5753d8ac20feeb3681e725388700d9c87e27"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jun 08 21:17:33 2018 +0100"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jul 03 17:46:23 2018 +0100"
      },
      "message": "Move displayid into InputEvent\n\nThere are certain use cases where key events should be associated with a\nparticular display. Refactor KeyEvent and MotionEvent to have an\nassociated display id.\n\nRemove \"hasAssociatedDisplay\" variable from KeyboardInputMapper,\nit just used to mirror \"isOrientationAware\".\n\nIf the keyboard is orientation aware (\u003d it is physically attached to a\ndisplay, and therefore rotates together with that display), then\nassociate that keyboard with the internal viewport. Otherwise, the key\nevents are not associated with any particular display.\n\nRemaining to do:\n- make mInternalDisplay, mExternalDisplay, mVirtualDisplays into a\nsingle vector with type (internal, external, virtual)\n- have getDisplayViewport return std::optional (will require deep\nchanges)\n\nBug: 64258305\nTest: atest inputflinger_tests libinput_tests\n\nChange-Id: I4fe145e74cb59310efaa55bfc9dc3c2b3bd997e3\n"
    },
    {
      "commit": "777a10ba60e1b23a2d0d7f91ab3a9596cd2552d5",
      "tree": "a60d3c3f4b3e30bdf160751efef749943ae0292b",
      "parents": [
        "78e2069b7cd786dc82e346a58ef0bc97f5aadfde"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Jan 31 16:45:06 2018 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 06 12:20:01 2018 -0800"
      },
      "message": "Move display id into MotionEvent\n\nDisplay id is now part of MotionEvent.\n\nTest: m -j inputflinger_tests_InputReader_test\ninputflinger_tests_InputDispatcher_test libinput_tests_InputChannel_test\nlibinput_tests_InputEvent_test\nlibinput_tests_InputPublisherAndConsumer_test\nlibinput_tests_VelocityTracker_test StructLayout_test \u0026\u0026 adb push\nout/target/product/$TARGET_PRODUCT/data/nativetest64/*\n/data/nativetest64/\nthen run all native tests on the device\nBug: 64258305\nChange-Id: I55afcbbc25b67afe6f7cc3457a1eca4b32651e4b\n"
    },
    {
      "commit": "6db5879c8715b8397b831b23eab154f2a0f512f9",
      "tree": "36e941f1c83b71d997b517b8c129eaac73f5d42d",
      "parents": [
        "077380cc6ca69f48a930bfb43d6c74370fed846e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Sep 14 19:53:37 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 15 14:21:44 2016 +0000"
      },
      "message": "Fix signature for MotionEvent#setButtonState\n\nBug: 31441257\n\nChange-Id: I5069118d6d89f0c3a0eedf85d1d4dafbbec77ac6\n"
    },
    {
      "commit": "455f288a7db0e94be6a5c5277c8f09eb1b1ffd13",
      "tree": "5e7245fc148233297357aae3493a0b454e87f76c",
      "parents": [
        "b2ec4ab3ab3fdcfa0c0725599287b714ced54bd2",
        "c846278141c94385a2c931a1df80ed3ffcc8e7c2"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 18 19:05:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 18 19:05:04 2016 +0000"
      },
      "message": "Merge \"Add new MotionEvent flag for partially obscured windows.\" into mnc-dev am: 58dc18a am: ab4b3c3 am: 2352674\nam: c846278\n\n* commit \u0027c846278141c94385a2c931a1df80ed3ffcc8e7c2\u0027:\n  Add new MotionEvent flag for partially obscured windows.\n\nChange-Id: Ia0940c0440b94922fde7a93ef5d95df59aed3c3e\n"
    },
    {
      "commit": "cdcd8f2b25a4bf32bb7506fc98ba541d274c9a31",
      "tree": "97c48382953203975b7c2b0cc8f798e6efbdac8d",
      "parents": [
        "e98a9a910692cf7dee3bac2b58cf5f08c59db38f"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Mar 22 16:52:13 2016 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 31 15:50:05 2016 -0700"
      },
      "message": "Add new MotionEvent flag for partially obscured windows.\n\nDue to more complex window layouts resulting in lots of overlapping\nwindows, the policy around FLAG_WINDOW_IS_OBSCURED has changed to\nonly be set when the point at which the window was touched is\nobscured. Unfortunately, this doesn\u0027t prevent tapjacking attacks that\noverlay the dialog\u0027s text, making a potentially dangerous operation\nseem innocuous. To avoid this on particularly sensitive dialogs,\nintroduce a new flag that really does tell you when your window is\nbeing even partially overlapped.\n\nWe aren\u0027t exposing this as API since we plan on making the original\nflag more robust. This is really a workaround for system dialogs\nsince we generally know their layout and screen position, and that\nthey\u0027re unlikely to be overlapped by other applications.\n\nBug: 26677796\nChange-Id: I9e336afe90f262ba22015876769a9c510048fd47\n"
    },
    {
      "commit": "09be485667fc96df24d2e2ab6ce4fc4f26588739",
      "tree": "a124eed9e4674f044a30735be9d86608483eaf80",
      "parents": [
        "ce12ffb0176f1ed42caf82ad07996c06f556a582",
        "69b8174c5e184d0a314821d24893e931946ede83"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 23 04:30:05 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 23 04:30:05 2015 +0000"
      },
      "message": "resolve merge conflicts of 834ac204ce to klp-modular-dev. am: 7f1ea80d65 am: fa632f6ad7 am: 9ec978732f am: 1b28b05d2e am: 0370a03b6e am: 18e7c64ea8 am: 6eac97d4ba\nam: 69b8174c5e\n\n* commit \u002769b8174c5e184d0a314821d24893e931946ede83\u0027:\n  DO NOT MERGE: fix build breakage\n"
    },
    {
      "commit": "0370a03b6e74e40d5110b83fed2243bf072aee73",
      "tree": "6a0178fff3a8aff0986c89cc2ab9a13de732cfb0",
      "parents": [
        "a82ace99f76ed815e16ab64eae2e9e55871a8b8f",
        "1b28b05d2edf11f49717b53cd49a9161892f0388"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 23 04:15:24 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 23 04:15:24 2015 +0000"
      },
      "message": "resolve merge conflicts of 834ac204ce to klp-modular-dev. am: 7f1ea80d65 am: fa632f6ad7 am: 9ec978732f\nam: 1b28b05d2e\n\n* commit \u00271b28b05d2edf11f49717b53cd49a9161892f0388\u0027:\n  DO NOT MERGE: fix build breakage\n"
    },
    {
      "commit": "1b28b05d2edf11f49717b53cd49a9161892f0388",
      "tree": "b43ee84a8ddb15c83dadcd7225e578ff4fedc49d",
      "parents": [
        "9830f11dc6b6aa4001c79147966fdb9eaa71c2f2",
        "9ec978732f8dd82e7adef3e37097eaca3fbd65f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 23 02:02:42 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 23 02:02:42 2015 +0000"
      },
      "message": "resolve merge conflicts of 834ac204ce to klp-modular-dev. am: 7f1ea80d65 am: fa632f6ad7\nam: 9ec978732f\n\n* commit \u00279ec978732f8dd82e7adef3e37097eaca3fbd65f0\u0027:\n  DO NOT MERGE: fix build breakage\n"
    },
    {
      "commit": "fa632f6ad7be6b1f488dd3d1b825a82456db5097",
      "tree": "287cc26a71f2a901393076ff1928104cb313af9b",
      "parents": [
        "9964d83869565cf4dda432129cfe50f6ede19338",
        "7f1ea80d65996ab687ff56a884da915535cdc176"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 23 01:44:26 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 23 01:44:26 2015 +0000"
      },
      "message": "resolve merge conflicts of 834ac204ce to klp-modular-dev.\nam: 7f1ea80d65\n\n* commit \u00277f1ea80d65996ab687ff56a884da915535cdc176\u0027:\n  DO NOT MERGE: fix build breakage\n"
    },
    {
      "commit": "7f1ea80d65996ab687ff56a884da915535cdc176",
      "tree": "ce671481724fcc1cff2d15e047d23d7d742987fb",
      "parents": [
        "72c8ca4a0191827fd3265c0820b685a6cf420be1",
        "834ac204ce52d874cdd7ae921e5a4d85c5e42c52"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 22 17:26:19 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 22 17:26:28 2015 -0700"
      },
      "message": "resolve merge conflicts of 834ac204ce to klp-modular-dev.\n\nBug: 23905002\nChange-Id: Ic7262861af91a8fff27692c0f68761cb3ab12aa3\n"
    },
    {
      "commit": "a82ace99f76ed815e16ab64eae2e9e55871a8b8f",
      "tree": "84452b1e89976357675daf0e9e1582a932fddbca",
      "parents": [
        "8121177b5e8c406570f0eaf6593c6fd1db232ddf",
        "9830f11dc6b6aa4001c79147966fdb9eaa71c2f2"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Thu Oct 22 22:28:01 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 22:28:01 2015 +0000"
      },
      "message": "add number constraint for samples per MotionEvent am: 5d17838ade am: 72c8ca4a01 am: 9964d83869 am: 90dc6dc825\nam: 9830f11dc6\n\n* commit \u00279830f11dc6b6aa4001c79147966fdb9eaa71c2f2\u0027:\n  add number constraint for samples per MotionEvent\n"
    },
    {
      "commit": "834ac204ce52d874cdd7ae921e5a4d85c5e42c52",
      "tree": "0869122beccbca782a2d39b675e455a0035eeef1",
      "parents": [
        "5d17838adef13062717322e79d4db0b9bb6b2395"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 22 07:09:23 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 22 07:09:23 2015 -0700"
      },
      "message": "DO NOT MERGE: fix build breakage\n\nfix klp-dev only build breakage.\n\n  frameworks/native/libs/input/Input.cpp: In member function \u0027android::status_t android::MotionEvent::readFromParcel(android::Parcel*)\u0027:\n  frameworks/native/libs/input/Input.cpp:494:47: error: \u0027UINT16_MAX\u0027 was not declared in this scope\n\nBug: 23905002\nChange-Id: I4b6b864ca64d39a8873d045a61e0ddaea2ab9109\n"
    },
    {
      "commit": "9830f11dc6b6aa4001c79147966fdb9eaa71c2f2",
      "tree": "4d1415bf1ae0610016bc2b0db65324b7838e2eda",
      "parents": [
        "7b4863f606bdb48b188b0235447dfaba6c8c3cf0",
        "90dc6dc825ebd1f0f4c9474fad887cd7eac8e9bd"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Thu Oct 22 02:15:13 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 02:15:13 2015 +0000"
      },
      "message": "add number constraint for samples per MotionEvent am: 5d17838ade am: 72c8ca4a01 am: 9964d83869\nam: 90dc6dc825\n\n* commit \u002790dc6dc825ebd1f0f4c9474fad887cd7eac8e9bd\u0027:\n  add number constraint for samples per MotionEvent\n"
    },
    {
      "commit": "9964d83869565cf4dda432129cfe50f6ede19338",
      "tree": "04ae2f950829415086a4273d1cc121b5f4e8e5c4",
      "parents": [
        "18165848e86feab8656bfdac3173bccf45a9a6df",
        "72c8ca4a0191827fd3265c0820b685a6cf420be1"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Thu Oct 22 02:04:55 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 02:04:55 2015 +0000"
      },
      "message": "add number constraint for samples per MotionEvent am: 5d17838ade\nam: 72c8ca4a01\n\n* commit \u002772c8ca4a0191827fd3265c0820b685a6cf420be1\u0027:\n  add number constraint for samples per MotionEvent\n"
    },
    {
      "commit": "72c8ca4a0191827fd3265c0820b685a6cf420be1",
      "tree": "00af6e3ad63d89279aef20c22e729f29d696f54b",
      "parents": [
        "e2c4f4fb8b34e36a4f2760f3812c942604cabfb6",
        "5d17838adef13062717322e79d4db0b9bb6b2395"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Thu Oct 22 02:02:46 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 02:02:46 2015 +0000"
      },
      "message": "add number constraint for samples per MotionEvent\nam: 5d17838ade\n\n* commit \u00275d17838adef13062717322e79d4db0b9bb6b2395\u0027:\n  add number constraint for samples per MotionEvent\n"
    },
    {
      "commit": "5d17838adef13062717322e79d4db0b9bb6b2395",
      "tree": "9c1843b70587f232f51807d0a5fdb68d5042d04d",
      "parents": [
        "c1e6fbb52c3f85cc7610d1d07d12be38f70b4ed4"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Mon Sep 07 15:28:58 2015 +0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 20 12:28:15 2015 -0700"
      },
      "message": "add number constraint for samples per MotionEvent\n\nBug:23905002\n\nSigned-off-by: Adam Lesinski \u003cadamlesinski@google.com\u003e\n\n(cherry picked from commit 552a8a5d8df32f659b8d11311a244cdc6d3b7733)\n\nChange-Id: I9b7ea859889b7697bee4165a2746602212120543\n"
    },
    {
      "commit": "0ee1b1ff1f454e72a5b2ef2fbe78f7b66eba8bd4",
      "tree": "04950a946709ad65ffb4bfdfc6181217d51b14ff",
      "parents": [
        "8b435c07eece971ab032d450777e0e1723299de1",
        "5bba4236a86bbf4537bc27810803b9b224b0840f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 13 00:20:26 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 00:20:26 2015 +0000"
      },
      "message": "am 5bba4236: am 76fc5f18: am 16b0ae10: Merge \"add number constraint for samples per MotionEvent\" into mnc-dr-dev\n\n* commit \u00275bba4236a86bbf4537bc27810803b9b224b0840f\u0027:\n  add number constraint for samples per MotionEvent\n"
    },
    {
      "commit": "552a8a5d8df32f659b8d11311a244cdc6d3b7733",
      "tree": "88db9e790399c7f18624f75974c99e90f3e04e38",
      "parents": [
        "b0127aadafbf3b314475e48772fdcc17939c5a9c"
      ],
      "author": {
        "name": "Flanker",
        "email": "i@flanker017.me",
        "time": "Mon Sep 07 15:28:58 2015 +0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 12 11:22:37 2015 -0700"
      },
      "message": "add number constraint for samples per MotionEvent\n\nBug:23905002\nChange-Id: Ifd24802977c3dcdd1dbc5120a78aac41beae4603\n\nSigned-off-by: Adam Lesinski \u003cadamlesinski@google.com\u003e\n"
    },
    {
      "commit": "30dddd6f49b04ac5160c1de702cafe09b42ce1d1",
      "tree": "926aee8c2f79540dd8de9864b634681df977710e",
      "parents": [
        "9adfbce773ce84ca21ef88664f2b23ac7e32ee45",
        "6a846dd51885df861f4e1e30fcca86b9dd2f4092"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 23:28:34 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 23:28:34 2015 +0000"
      },
      "message": "am 6a846dd5: am 5f5a0e0f: Merge \"Lose HAVE_ANDROID_OS from frameworks/native.\"\n\n* commit \u00276a846dd51885df861f4e1e30fcca86b9dd2f4092\u0027:\n  Lose HAVE_ANDROID_OS from frameworks/native.\n"
    },
    {
      "commit": "6071da7ef84c60645572654504813d492b8b21d5",
      "tree": "4b9f98fe510268b64bc82cc473bd0ece91da0d30",
      "parents": [
        "1efe1bdde9baf40741febbf965ce01a4168a7860"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 15:27:47 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 15:27:47 2015 -0700"
      },
      "message": "Lose HAVE_ANDROID_OS from frameworks/native.\n\nChange-Id: I8e6af2a46a9d875192fc7957ada9b5f66d84bad6\n"
    },
    {
      "commit": "21957b9c6d731dc67067e702c644dc7f4c4ff48d",
      "tree": "f4425011d4176d4ef5355772dc3521b9d1fa0ccc",
      "parents": [
        "8f37aa5011bf5d8c0a67126b92e3b435ffd4dca0"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jun 17 21:06:54 2015 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jun 17 21:06:54 2015 +0100"
      },
      "message": "Add method to set action button on MotionEvent\n\nChange-Id: I09f00fa1c2b793a88772f67fe195860ec436179d\n"
    },
    {
      "commit": "7b159c9a4f589da7fdab7c16f3aefea25e0e7e4f",
      "tree": "c30586e4c77090e21da1c3abb05900806059d358",
      "parents": [
        "70b41ef580644fd0fe6fa9b8ac7e4a745cfb6db3"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 14 14:48:03 2015 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 14 14:48:03 2015 +0100"
      },
      "message": "Revert \"Revert \"Add new MotionEvent actions for button press and release.\"\"\n\nThis reverts commit 70b41ef580644fd0fe6fa9b8ac7e4a745cfb6db3.\n"
    },
    {
      "commit": "70b41ef580644fd0fe6fa9b8ac7e4a745cfb6db3",
      "tree": "0a15a5d433a0b65a5bb8946ddbccc22de4dbae3b",
      "parents": [
        "48a8a0e4322969e1551536d6183af3a1faa2240b"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 14 14:46:17 2015 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 14 14:46:17 2015 +0100"
      },
      "message": "Revert \"Add new MotionEvent actions for button press and release.\"\n\nThis reverts commit 48a8a0e4322969e1551536d6183af3a1faa2240b.\n"
    },
    {
      "commit": "48a8a0e4322969e1551536d6183af3a1faa2240b",
      "tree": "c30586e4c77090e21da1c3abb05900806059d358",
      "parents": [
        "53dca3aadda499824d3d0b2bbc25a72fc1a37877"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon May 11 19:52:27 2015 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu May 14 13:25:41 2015 +0100"
      },
      "message": "Add new MotionEvent actions for button press and release.\n\nIntroduce ACTION_BUTTON_PRESS and ACTION_BUTTON_RELEASE as actions to\nsignal a button press or release. If these actions happen\nsimulanteously with a DOWN or UP event then they\u0027re explicitly\nordered to happen after the DOWN or preceding the UP in order to send\nthem to the most recently targeted view.\n\nAlso, introduce new stylus button constants that differ from the\nconstants we use for mouse buttons.\n\nBug: 20704355\nChange-Id: Ib960a5004db5429ad2fc8db020704773e2978327\n"
    },
    {
      "commit": "c9aa628d065eb08d6fa30f0ac21c6eca4cfbab75",
      "tree": "9ed87795c384a4eb0e44282381862d02728c3c18",
      "parents": [
        "b9bb1f139bd1cbf3b3faa002b509f3f0a167e20b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Feb 11 19:03:28 2015 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 12 11:27:24 2015 -0800"
      },
      "message": "Cancel touch events when a low-level touch gesture occurs.\n\nWhen the touch firmware or driver sends a key event that is triggered\nby a low-level gesture such as a palm slap.  For this to work, the\ntouch device\u0027s .kl file must specify the \"GESTURE\" flag for each\nkey that is produced by a gesture.\n\nNote that the \"VIRTUAL\" flag should also be specified for any such\nkeys for which we would like to generate haptic feedback.\n\neg. key 142   SLEEP   VIRTUAL GESTURE\n\nBug: 19264992\nChange-Id: Ief494ec7e3ca66d2358a1001fdfae4f263ee1cd1\n"
    },
    {
      "commit": "8f6710fdeb96a3482adf1a6a2d46d67b0ce8e9db",
      "tree": "1d1e811e7ff266cc983ca88e61c90609699135fe",
      "parents": [
        "0d7271527fa48c26b657d689faffbc94c93e5b3c"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Jun 09 18:56:43 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Jun 09 18:56:43 2014 -0700"
      },
      "message": "Bump axis limit\n\nChange-Id: I53d18646be2b884c5022f10c7c4ea8f6cda176c8\n"
    },
    {
      "commit": "db1972bd8e9b055f2df77d57ac55f1c02ebdd278",
      "tree": "763f55625627c024b6319296ab58a527cb49df5b",
      "parents": [
        "edcf7f4d3ac452500d68e254d367f559d538695d",
        "26063a9155ddd18d858cea7fac7c1ddf71e1bcb7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 03 13:58:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 03 13:58:40 2014 +0000"
      },
      "message": "am 26063a91: am f1dd859b: Merge \"x86_64: Align uint64_t/int64_t structure member to 8 bytes\"\n\n* commit \u002726063a9155ddd18d858cea7fac7c1ddf71e1bcb7\u0027:\n  x86_64: Align uint64_t/int64_t structure member to 8 bytes\n"
    },
    {
      "commit": "26063a9155ddd18d858cea7fac7c1ddf71e1bcb7",
      "tree": "0ea7717b7ea4a8a010d615df62ff1086de532a0e",
      "parents": [
        "ea3f1da9013b33ecf3f3f8771393c1754a9aec59",
        "f1dd859baa114995bcbcfb7119e939d0b4f45ed5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 03 13:29:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 03 13:29:00 2014 +0000"
      },
      "message": "am f1dd859b: Merge \"x86_64: Align uint64_t/int64_t structure member to 8 bytes\"\n\n* commit \u0027f1dd859baa114995bcbcfb7119e939d0b4f45ed5\u0027:\n  x86_64: Align uint64_t/int64_t structure member to 8 bytes\n"
    },
    {
      "commit": "83e0e425c61c4e03f61114a88f117db1553cd44c",
      "tree": "98c5e19957fb5dc572af416b04a52767a2691b20",
      "parents": [
        "63645c69e03cf3862c52cfde6cbd5f5143ccd38a"
      ],
      "author": {
        "name": "Fengwei Yin",
        "email": "fengwei.yin@intel.com",
        "time": "Sat May 24 05:32:09 2014 +0800"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri May 30 14:13:29 2014 +0100"
      },
      "message": "x86_64: Align uint64_t/int64_t structure member to 8 bytes\n\nTo make sure the stature which pass between 32/64bit process have\nsame memory layout for 32/64bit.\n\nSigned-off-by: Fengwei Yin \u003cfengwei.yin@intel.com\u003e\nCo-Authored-by: Narayan Kamath \u003cnarayan@google.com\u003e (Unit test only.)\nChange-Id: I1bc2d12cce41ec0bc484adcaf968f274bec75c12\n"
    },
    {
      "commit": "872db4f11e407accccba9d37c335ef7e3597eba4",
      "tree": "e527c6316160e6e2dcb062f0440fd7c4afc43eed",
      "parents": [
        "4cbf3c53447215a31f69d3ac615ba0daa902f717"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 22 15:03:51 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 22 16:55:36 2014 -0700"
      },
      "message": "Move key attribute information out of native.\n\nNative doesn\u0027t ever actually care about the attributes of keys, so\nmove all of it up into the managed layer and move all of the key\nnames down so they\u0027re defined once.\n\nChange-Id: Ic8ded13ce050b2b98744735ff50d11e8d882d7d5\n"
    },
    {
      "commit": "db19e463fe5a4e00a0214c564527ba67f31e1afb",
      "tree": "17958bc1b7f26d498b12560f669b63601c2c93b1",
      "parents": [
        "6dbcebd0430e026fd5d99ba4b4f005bfaa9b8e2b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 08 19:55:38 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 09 17:04:44 2014 -0700"
      },
      "message": "Remove unnecessary policy flags.\n\nBug: 13133142\nChange-Id: Ib6c63ebad25d84f78623b4a46ccf83953d235fe7\n"
    },
    {
      "commit": "d0bd3911462f42487944dbaf85d87d569e2f9633",
      "tree": "0f5fdb11559f992295177207b71d78dc7d9cf0b3",
      "parents": [
        "40c68757ef51d270174103f31a39a7d268bab3e2"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 19 12:06:10 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 24 17:26:52 2014 -0700"
      },
      "message": "Generate ACTION_CANCEL on joystick disconnect. DO NOT MERGE\n\nBug: 11480300\nChange-Id: I5a4096970c9e588d134f05dd0eb3a9c91c836b2f\n"
    },
    {
      "commit": "9b04f860f23481d39c3b45379a324d3630966825",
      "tree": "0018b1168cbd3fb6a9cf0ddaa7b4d9c63d7789b2",
      "parents": [
        "37bf0789f5c1167f6f7f5667b09cad70e0bb27d4"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Oct 18 17:53:50 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Mar 11 14:19:33 2014 -0700"
      },
      "message": "Add MAX_CONTROLLER_LEDS constant. DO NOT MERGE\n\nChange-Id: Ie6dbce926280c748f39e3c54d2ed4accbdcf9e59\n"
    },
    {
      "commit": "962a108856767d6f5c17cf2854b13fef0315f8ca",
      "tree": "c8d578db376fad7d5924a7155ffe27b1fdf24a23",
      "parents": [
        "d5a354c6b7f2ae0b93e018f3024a2fca5f6543a1"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Oct 17 17:35:53 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 03 13:59:35 2014 -0800"
      },
      "message": "Parse LED mappings in keylayout files. DO NOT MERGE\n\nChange-Id: I2b34939cc0df256e6b872502ea93f2884b4c8334\n"
    },
    {
      "commit": "ed4d28dd70448b13eb74a3166ec8d1c1a530e2d4",
      "tree": "14c881e204f113307a474f613ea41f02e2ec37cc",
      "parents": [
        "0f0ccf07bad594b618f4fcce9a8f79a5bc188bb3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 11 14:28:48 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 11 14:43:19 2014 -0800"
      },
      "message": "Add method to apply offset to PointerCoords.  (DO NOT MERGE)\n\nChange-Id: I3dc2ba22b026e5b8e1c3d90f7366ec09a59ce6b6\n"
    },
    {
      "commit": "313eff7bb7e5eedbdbea805343451fd473241266",
      "tree": "b182f23d315b014c87066bee557c2ff1d78f9bac",
      "parents": [
        "5a2f68e5a5526ba80b5192776e2f0e349626777d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 18:07:09 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 18:49:00 2013 -0700"
      },
      "message": "Completely remove skia dependency from libinput.\n\nIncluding the tests...\n\nChange-Id: I6ec8f1a5ae7e7514831d7e3b430b3b37b0841b92\n"
    },
    {
      "commit": "5a2f68e5a5526ba80b5192776e2f0e349626777d",
      "tree": "d5669895ee7d77945cb3d73b6dedde24662d8106",
      "parents": [
        "40c9e0a3989222b4c27c88f54b6acf67b58a68cf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 17:28:19 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 17:31:13 2013 -0700"
      },
      "message": "Fix PDK build.\n\nQuick hack to remove Skia dependency from libinput.\n\nChange-Id: Ibaf2e312236f5e3f7251fa903ce381456a77467c\n"
    },
    {
      "commit": "5912f95d26f77d2b6df13e1f2672e48e3f9b871c",
      "tree": "552318f9477af6cddc8dd5e26958a733a9a23fbe",
      "parents": [
        "23e81a2103b08fa14f208fec1d1e2e16347f8b2f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 19:10:31 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 20:11:26 2013 -0700"
      },
      "message": "Move input library code from frameworks/base.\n\nChange-Id: I4983db61b53e28479fc90d9211fafff68f7f49a6\n"
    }
  ]
}
