)]}'
{
  "log": [
    {
      "commit": "b93a03f841d93498bfea6cc92a22faa34bce1337",
      "tree": "b5c2e1c097ad9dc4a3580ee661223794e0560f60",
      "parents": [
        "e97df97b6cb5e4bff8f9da9ecff7cddb7d04ff41"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:34:57 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:36:10 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nFirst step. Move libui includes to their new home: androidfw.\n\nChange-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662\n"
    },
    {
      "commit": "3a22fa057091cd6614f58ebc57a7ce4fe29462bb",
      "tree": "974dcf7edb5668a7cffd7aa629c4ccc95ed5a99f",
      "parents": [
        "06b0e5899525330119f27f0f7d9898db6f73e0e2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 04 13:07:49 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 04 18:53:32 2011 -0800"
      },
      "message": "Joystick tweaks.\n\nEnsure that the joystick can always reach -1.0, 0.0 and 1.0 positions\neven when noise filtering is applied.  (Bug: 3514510)\n\nAdd support for a few more standard axes.\n\nAdd additional mapping modes for axes.\nSome axes are inverted from standard interpretation\nor are actually intended to be split into two distict axes\nsuch as left/right trigger controls or accelerator/brake.\n\nAdd key layout file for a G25 racing wheel and XBox 360 controller\nto tweak behavior.  They work fine without them but the axis mappings\nare not ideal.\n\nChange-Id: Id4c86a0a272331c680039a9bde6815bb7eba44ab\n"
    },
    {
      "commit": "6f2fba428ca5e77a26d991ad728e346cc47609ee",
      "tree": "5dd07c24bd9b474ccfbcba4f63e078598fbd2b50",
      "parents": [
        "b1bdb64d641ac63097619e5ef08d5a25bfdc61bb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 01:08:02 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Feb 19 05:23:10 2011 -0800"
      },
      "message": "Add new axes for joysticks and mouse wheels.\n\nAdded API on InputDevice to query the set of axes available.\nAdded API on KeyEvent and MotionEvent to convert keycodes and axes\nto symbolic name strings for diagnostic purposes.\nAdded API on KeyEvent to query if a given key code is a gamepad button.\nAdded a new \"axis\" element to key layout files to specify the\nmapping between raw absolute axis values and motion axis ids.\nExpanded the axis bitfield to 64bits to allow for future growth.\nModified the Makefile for keyboard prebuilts to run the keymap\nvalidation tool during the build.\nAdded layouts for two game controllers.\nAdded default actions for game pad button keys.\nAdded more tests.\nFixed a bunch of bugs.\n\nChange-Id: I73f9166c3b3c5bcf4970845b58088ad467525525\n"
    },
    {
      "commit": "6b53e8daa69cba1a2a5a7c95a01e37ce9c53226c",
      "tree": "db912c6cdf230ef7f2cf406c545b3bbae3f09ea2",
      "parents": [
        "a914f340ae5b267dc3ab36c1156c795b8fa18f5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 10 16:03:06 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 09:49:03 2010 -0800"
      },
      "message": "Added support for full PC-style keyboards.\n\nBREAKING CHANGE: Redesigned the key character map format to\naccomodate full keyboards with more comprehensive suite of modifiers.\nOld key character maps will not work anymore and must be updated.\nThe new format is plain text only and it not compiled to a binary\nfile (so the \"kcm\" tool will be removed in a subsequent check-in).\n\nAdded FULL keyboard type to support full PC-style keyboards.\n\nAdded SPECIAL_FUNCTION keyboard type to support special function\nkeypads that do not have any printable keys suitable for typing\nand only have keys like HOME and POWER\n\nAdded a special VIRTUAL_KEYBOARD device id convention that maps\nto a virtual keyboard with a fixed known layout.  This is designed\nto work around issues injecting input events on devices whose\nbuilt-in keyboard does not have a useful key character map (ie.\nwhen the built-in keyboard is a special function keyboard only.)\n\nModified several places where events were being synthesized\nto use the virtual keyboard.\n\nRemoved support for the \"qwerty\" default layout.\nThe new default layout is \"Generic\".  For the most part \"qwerty\"\nwas being used as a backstop in case the built-in keyboard did\nnot have a key character map (probably because it was a special\nfunction keypad) and the framework needed to be able to inject\nkey events anyways.  The latter issue is resolved by using the\nspecial VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.\n\nAdded the concept of a key modifier behavior so that\nMetaKeyKeyListener can distinguish between keyboards that use\nchorded vs. toggled modifiers.\n\nWrote more robust key layout and key character map parsers\nto enable support for new keyboard features and user installable\nkey maps.\n\nFixed a bug in InputReader generating key ups when keys\nare released out of sequence.\n\nUpdated tons of documentation.\n\nCurrently QwertyKeyListener is being used for full keyboards\nwith autotext and capitalization disabled.  This mostly works\nbut causes some problems with character pickers, etc.\nThese issues will be resolved in subsequent changes.\n\nChange-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354\n"
    }
  ]
}
