)]}'
{
  "log": [
    {
      "commit": "6d09d547b06b86b337e8e16c2585b3882a5bb1dc",
      "tree": "0c81514e6726b36c90433e9d25eeb861702615f9",
      "parents": [
        "c4c4a1e76e4de30a43c3396d3e0b55209666346d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:51:31 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:51:31 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Ic550902559b0800bdcfc0b1d301313a909434eed\n"
    },
    {
      "commit": "778e3b91acad6da04341d439f0c66a4fd09def4f",
      "tree": "2c01c845476a9362e81725f3bd657ea50f8a1162",
      "parents": [
        "f9d9ce7705475874c82af04eb9b208a7fb556792"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon May 16 15:21:03 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue May 17 18:02:37 2016 +0100"
      },
      "message": "DO NOT MERGE Remove Pointer Capture API\n\nThe underlying implementation needs to be completely rethought. If a\nprocess crashed while you were in pointer capture mode, you were\npretty much stuck in it. If the mouse happened to move outside of\nyour bounds right before you called the API, you\u0027d never actually get\nan event (whatever it was hovering over would). There\u0027s no easy way\nfor the system to tell you when you enter or exit this mode because\nit doesn\u0027t actually track who the current request is from.\n\nThese are all solvable, but not in the N time frame. Maybe next time.\n\nBug: 26830970\nChange-Id: I03efd63c499b86dc278491ca3284566c1965581f\n"
    },
    {
      "commit": "f9d9ce7705475874c82af04eb9b208a7fb556792",
      "tree": "a8f7403f319741c752426d917b043ce0f554b614",
      "parents": [
        "cef3337cb5e27d4f571fb350be055c26d339833d"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri May 13 17:44:16 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue May 17 18:02:32 2016 +0100"
      },
      "message": "DO NOT MERGE Rename PointerIcon and Pointer Capture APIs\n\nThis is a response to API council feedback.\n\nBug: 26830970\nChange-Id: Ia2d284b5c1ab8365bedfdc37d129be4b8146036b\n"
    },
    {
      "commit": "347e5d498f4c216d588e98776a386d8bdf93d05c",
      "tree": "8f9b85983dcee4deeefc7fcbaa64124b6ea176f8",
      "parents": [
        "92e432c30e2304272c2f5b1b33366f32c3d763cf"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Thu Dec 03 01:13:31 2015 -0800"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Dec 18 10:22:43 2015 -0800"
      },
      "message": "Introduce pointer capture API.\n\nThis depends on I4189eb4d93f50c2865b7a325727be5ceebcc71f8 of\nframeworks/native.\n\nBug: 5452473\nChange-Id: Ie21e521f3e5c581f976dc0feb5d84bfa48b046cd\n"
    },
    {
      "commit": "d4eaef7f4c5a5d281de4fff272cd33e892e26264",
      "tree": "7141708f5759a078b74932d487dc8fe83c29887f",
      "parents": [
        "40aa9f1b989a7896fb683a5a7dd664aa3174012d"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Oct 30 15:54:33 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Mon Dec 14 19:45:10 2015 -0800"
      },
      "message": "Make public pointer icon API with custom icons.\n\nBUG: 25778347, 23804184\nChange-Id: If138b97c750c912e9848412c27b65004899961eb\n"
    },
    {
      "commit": "19a560197950425f7e1856d5bd1216fbc680bf70",
      "tree": "c5eed0b4dab09ad562f41a13d61743b4a7a7be18",
      "parents": [
        "28860b7570d2b3e7bc6a136a7bb7312e5aaf6e61"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Tue Nov 24 11:25:52 2015 -0800"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Mon Nov 30 14:42:53 2015 -0800"
      },
      "message": "Introduce accessibility large pointer icons.\n\nThis patch does the following things:\n- add new graphic assets of large icons for accessibility needs\n  (imported from ChromeOS data)\n- add the logic to choose the set of normal icons or accessibility icons\n- make InputManagerService to observe the settings change, so that\n  it can reload the new resources\n\nThis patch misses non-1x graphic though, because ChromeOS doesn\u0027t\nhave such data.\n\nBug: 25778857\nChange-Id: Ia5f95d47f50b3f6eea555c3af8069bc6bae0b400\n"
    },
    {
      "commit": "808196f139e93395f1f331f6c7e92ddd66c05979",
      "tree": "d49536f01f2148eb381101f7883abaffedf9fff7",
      "parents": [
        "ff814adfdda376ceeeff5765cd50195b88e567ad"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Wed Oct 28 16:46:44 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Tue Nov 17 17:36:08 2015 -0800"
      },
      "message": "Introduce animated pointer icon for STYLE_WAIT.\n\nChange-Id: I893f8276e09351db6187c553f349008794b95690\n"
    },
    {
      "commit": "c0c0ac37abe6f0b1ab780765b4a48beada7d3444",
      "tree": "40cb4eb99cc3108f3b2f0aa5e51a37170e18993e",
      "parents": [
        "f789ef7e381ea57a4f515fde470d40f93bc5f345"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Tue Oct 27 10:09:21 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Oct 30 10:24:55 2015 -0700"
      },
      "message": "Bring DisplayEventReceiver to PointerController.\n\nNow the fading animation of pointers is handled at vsync.\n\nChange-Id: I10fe27d9d7a0d46c4e6504ca487e80bb56e2fd98\n"
    },
    {
      "commit": "5ec7420ecd0e94be0a07fc77b0bc950deb0178fd",
      "tree": "71eff50268fe0f4e860458a43ed6b6cc87d2032d",
      "parents": [
        "3a36f0a3ab7af0fde7267c70c4866c145b23aeb3"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Wed Oct 07 16:58:09 2015 +0900"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Wed Oct 21 13:03:01 2015 -0700"
      },
      "message": "Use invisible icon for POINTER_ICON_STYLE_NULL.\n\nChange-Id: I10d35bdc4da4817d769eb164e6f15e4618670a05\n"
    },
    {
      "commit": "1db5397d88e722b1ab82ccb2b429ceec1179ccd8",
      "tree": "016fcb17678d0e555626c318956e11f7a99b9843",
      "parents": [
        "0a5e256d9fd56607ab4bbd987268fbfa3fe935fe"
      ],
      "author": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Fri Sep 11 18:08:31 2015 -0700"
      },
      "committer": {
        "name": "Jun Mukai",
        "email": "mukai@google.com",
        "time": "Thu Oct 15 01:47:29 2015 -0700"
      },
      "message": "Allow changing mouse pointer icon for the current context.\n\nRight now, it only supports I-beam on EditText, but further\nrules will come in the future.\n\nThe png files for the icons are from chromium.\n\nBug: 24180385\nChange-Id: I8de4ec8a5412b4830c08aa232c5083841c5c751c\n"
    },
    {
      "commit": "6b83b76dd18e2a727936839b397e6ed2ed4f5a46",
      "tree": "a39292b12b28be4287c4b3cfe3a24514df2096b1",
      "parents": [
        "487ae9b8dc3e08c1a830d519a801a07cd59c8f2b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 15:55:11 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 15:55:11 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in libs/input\n\nEnable -Wall -Werror in libs/input. Mask warnings from Skia.\n\nChange-Id: I0deeffde07fcf3a09eadec2852e9bf5666b55ee8\n"
    },
    {
      "commit": "68eccdade2aad22b7eb34a28572c204dcd54f7b9",
      "tree": "9e967e1283ee29ddfe54864d2e43c593b52cded9",
      "parents": [
        "03cab4cbe696cf6c5cfe58934c5aaf1c5533a2c5"
      ],
      "author": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Mon Jul 07 11:47:35 2014 -0700"
      },
      "committer": {
        "name": "Riley Andrews",
        "email": "riandrews@google.com",
        "time": "Mon Jul 28 22:04:06 2014 +0000"
      },
      "message": "Add cursor flags into SpriteController to suppor async cursor updates.\n- This is fairly blindly taken from nvidia\u0027s implementation.\n\nChange-Id: I825ecbd9cb4b394793dce079591b37efca546bbe\n"
    },
    {
      "commit": "4a9c3891d4f890109e02bc83fecf9bcdf56a9395",
      "tree": "d0ad820a4e7b143df8d71708a7790e59b0467189",
      "parents": [
        "904a1045ced36e844605b9764c3cb184976ea0a9"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Jul 07 15:44:40 2014 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Jul 07 15:47:55 2014 -0400"
      },
      "message": "kNative_8888_SkColorType is now kN32_SkColorType\n\nChange-Id: I13421a21de611203c62c1c1c36570a8cc803907b\n"
    },
    {
      "commit": "b933055cf3f7f8ea89bfd3bc9c37a3891ff7310a",
      "tree": "7d68b96a6fd02ca6ece664d5c53ee9778ef49d17",
      "parents": [
        "9285d1bf9c57e5f1da8f8d8ef7a6a38b2f0e4ec3"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Jun 16 17:31:48 2014 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Jun 20 10:28:37 2014 -0400"
      },
      "message": "stop using (deprecated) SkBitmap::Config\n\nChange-Id: Ic75b5fc6996578e9d95bd3a220439ec1541d7c3b\n"
    },
    {
      "commit": "cc11f15f76a62ded3e403cb2bc818c6aa5bf261c",
      "tree": "1df94766a0343820a8b542d3a79705a33d9fcf59",
      "parents": [
        "35dec44394358bac2cdf31d5e8377687a1723476"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Mar 31 16:52:13 2014 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 04 14:42:39 2014 -0400"
      },
      "message": "Update to call new Skia APIs.\n\nI816129d49c0118453222916f3c818eccac33663d merges a new version of\nSkia that updates various APIs. Call the new ones.\n\nSkBitmap::copyTo now takes an SkColorType instead of an\nSkBitmap::Config, so do the conversion with\nSkBitmapConfigToColorType or use the enum when it makes sense.\n\nCall SkImageDecoder::decodeSubset instead of (deprecated)\nSkImageDecoder::decodeRegion.\n\nOverride SkCanvas::ClipVisitor::clipRRect in ClipCopier.\n\nIn Canvas::clip calls, call SkCanvas::isClipEmpty(), which was\npreviously called inside the clip call, to determine the return value.\n\nFor various SkPaint effects, call the new factories (as the constructors\nhave been made protected).\n\nImplement SkJavaOutputStream::bytesWritten(), overriding a new pure\nvirtual function on SkWStream.\n\nUpdate Matrix calls to always return true (since SkMatrix calls no\nlonger return a value).\n\nDepends on I816129d49c0118453222916f3c818eccac33663d (skia).\n\nChange-Id: I5cdcea827ebff587df0bbddc0965e3e0fbf48002\n"
    },
    {
      "commit": "950fe8f8d4d654e645fa7205ca275b5a03feb214",
      "tree": "4a4e2dfd3f32ebdaf2b57835c19e42afa7f9ee5d",
      "parents": [
        "94b5ca811e5716bddb4a4d86df35c29bb9165e5f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 11:14:55 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 16:21:24 2014 +0000"
      },
      "message": "Cleanup unnecessary includes for libskia.\n\nThe libskia target exports all of its public includes directories so\nredefining them here is redundant. Also this cleans up and makes it\nobvious where the framework is making using of private Skia headers.\n\nChange-Id: Ie7ecc9ddd3df780bed6b9af54ba58ca58274e043"
    },
    {
      "commit": "d6b473713f43dec0828971854fe1018642cfaf27",
      "tree": "4f946766a00098f6f7e33ed74a6e6df7dbab40df",
      "parents": [
        "66ebe94757b18146d429855274e451545ed7ea75"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 15:56:36 2014 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Feb 11 10:47:36 2014 -0800"
      },
      "message": "Move inputservice over to frameworks/native\n\nRemove all of the pieces except the PointerController and SpriteController over\nto frameworks/native in preparation for inputflinger. Those two need to stay in\nframeworks/base for now because they depend on Skia currently. In the long run\nthey should be merged into either the InputManager or the WindowManager rather\nthan as a part of the inputservice / inputflinger.\n\nTry 2.\n\nChange-Id: I84259356d3eb8efc5aefb9d6b311b5fc590ea3ed\n"
    },
    {
      "commit": "453fa30ab2dbff5934e551323763200fac96d723",
      "tree": "47f16be39026a324f3aeff1d534932c7cb3cd03a",
      "parents": [
        "89e5c7ebb37fabc4368e87e17a502db62598bd61"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 15:08:26 2014 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 15:08:26 2014 -0800"
      },
      "message": "Revert \"Move inputservice over to frameworks/native\"\n\nThis reverts commit 89e5c7ebb37fabc4368e87e17a502db62598bd61.\n"
    },
    {
      "commit": "89e5c7ebb37fabc4368e87e17a502db62598bd61",
      "tree": "5e6352b31d6ac184a54dd34d88ec4cb71072210b",
      "parents": [
        "a407d6a003d746fa0aff50f7ba5da61f19a85b75"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 14:10:27 2014 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 14:10:27 2014 -0800"
      },
      "message": "Move inputservice over to frameworks/native\n\nRemove all of the pieces except the PointerController and SpriteController over\nto frameworks/native in preparation for inputflinger. Those two need to stay in\nframeworks/base for now because they depend on Skia currently. In the long run\nthey should be merged into either the InputManager or the WindowManager rather\nthan as a part of the inputservice / inputflinger.\n\nChange-Id: Iebef71f3030fb3d26a5f338eb66d75bb37c17734\n"
    },
    {
      "commit": "a407d6a003d746fa0aff50f7ba5da61f19a85b75",
      "tree": "47f16be39026a324f3aeff1d534932c7cb3cd03a",
      "parents": [
        "d5154ec2bc7e7c0bdfd14fc784912d390afe43cc"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Feb 05 18:02:40 2014 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Feb 10 12:59:34 2014 -0800"
      },
      "message": "Remove SkRegion dependency from libinput\n\nThis gets us one step closer to removing our dependency on Skia, which is at\nleast one of the things blocking us from moving the input system out of\nf/b.\n\nChange-Id: I755e6267996c93fe700f1056327386923287575a\n"
    },
    {
      "commit": "fb290df3c9a6f37ec050163029e25844de2f8590",
      "tree": "eadba9942f884e930224c83d1939ab98db3e1e62",
      "parents": [
        "6c6a11648fc6ed9bf058fba51d82d467472ed8e6"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Mon Dec 16 11:27:55 2013 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Jan 07 17:37:24 2014 -0800"
      },
      "message": "b/12068020 Make kb layouts only unique to vendor/product\n\nInstead of storing a kb layout per device descriptor (which is expected\nto be unique), store it for each vendor/product. This way we can keep\na consistent layout between identical but physically different keyboards.\n\nThere are some corner cases this is expected to fail on, namely devices\nthat incorrectly have the same vendor/product id. Devices that don\u0027t\ndefine a vendor/product id will continue to use the descriptor to store\nlayout files.\n\nChange-Id: Id0890d13e1c859eaf993d4831b7b1acbaf5df80f\n"
    },
    {
      "commit": "49782e46c0eb85a25ae2abcf80880c48dbab5aea",
      "tree": "9fab2a40c41004d78b7001dc766d85f61d24f582",
      "parents": [
        "4dace6f66d498c2d119adf265776aa83b28452af",
        "9158825f9c41869689d6b1786d7c7aa8bdd524ce"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 23:30:35 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 19 23:30:35 2013 +0000"
      },
      "message": "am 9158825f: Move some system services to separate directories\n\n* commit \u00279158825f9c41869689d6b1786d7c7aa8bdd524ce\u0027:\n  Move some system services to separate directories\n"
    },
    {
      "commit": "9158825f9c41869689d6b1786d7c7aa8bdd524ce",
      "tree": "f41944461539f0c70030668b4558296469c307d3",
      "parents": [
        "30d032928a294fbb6f385e9d0367a75b7bf2649b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Nov 22 08:25:26 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Dec 19 15:25:37 2013 -0800"
      },
      "message": "Move some system services to separate directories\n\nRefactored the directory structure so that services can be optionally\nexcluded. This is step 1. Will be followed by another change that makes\nit possible to remove services from the build.\n\nChange-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85\n"
    }
  ]
}
