)]}'
{
  "log": [
    {
      "commit": "2738c96d998dedfae5b4670d588d0cd299c4ca0f",
      "tree": "76b8571676d42a9c0b3bfa00f1937eebf2c05698",
      "parents": [
        "038959e851603500eb39b52fef33cbe75dbd73e3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 14 14:25:36 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 15 15:10:58 2015 -0700"
      },
      "message": "Add -round and -notround qualifier to android runtime/aapt\n\nThe round qualifier denotes a device with a screen shape that\nis round. The qualifier shows up after the \u0027long/notlong\u0027 qualifier\nand before the orientation \u0027port/land/square\u0027 qualifiers.\n\nChange-Id: I3044258b2703a9165694b79725bade770fa6cea1\n"
    },
    {
      "commit": "b5228ac07621a26ef5717ee5dcf74ecc9e3e1f68",
      "tree": "ac925fce1659f10daf7fa06c00067bf663b0c1d2",
      "parents": [
        "e48f44f55b5cdb9c4c3fa6ae6eae56768c6b12af"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 08 14:03:19 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 08 14:18:38 2015 -0700"
      },
      "message": "Switch libjnigraphics.so to hash-style\u003dboth\n\nBug: http://b/19059885\nChange-Id: I15f70b434b1d450e5b62ca7c204c628e2dc9edcc\n(cherry picked from commit 2e84bc6948bb24ec67bf289ee1d0ed937a0fd4ff)\n"
    },
    {
      "commit": "cbb56a8f4e8a47fad95db9b1ae6c343055b07acd",
      "tree": "dfcd6faaeeb078c7a68d8fc4e898b79cf598119e",
      "parents": [
        "e91768d4b5c5e185b884a25bcf60457fb2ba8a5c"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 07 10:49:07 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 07 12:56:48 2015 -0700"
      },
      "message": "Fix broke NDK sensor manager API\n\nChange-Id: I0f4e2a3ce20ce20e0aa5a7d38d1f988497c033c0\n"
    },
    {
      "commit": "ae2e8b4891491e8e89bed5f2c9626415adee09cb",
      "tree": "13904c288c850c7bdc6d3fa3e38f1a477763d40e",
      "parents": [
        "fbb34dd8df7bc89ae972c545130e76c5bbb4176e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 06 14:55:05 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 06 15:30:16 2015 -0700"
      },
      "message": "Add warning if an in-use Bitmap is reconfigured\n\nBug: 18928352\n\nAlso fix an issue around re-configure not properly handling\nmPinnedCount in android::Bitmap\n\nChange-Id: I1815b121f1474ad931060771bb1d52ef31d2aac7\n"
    },
    {
      "commit": "b9d71a6f89b1183f6389b1774652445a420c6cbf",
      "tree": "b6f17102b2f86b40630e4a7cd681721797a8f324",
      "parents": [
        "9fc943d1a69f2ab0f6d8285b09aef7e344a1fd1a"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 30 10:38:13 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 13:56:04 2015 -0700"
      },
      "message": "Add body sensors app op - framework base\n\nChange-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9\n"
    },
    {
      "commit": "ed207b92747234eac88dd3664ecfb535e45d8ed1",
      "tree": "1dbef1ad7b0dc01fbcbb2da189c6824005153c4e",
      "parents": [
        "b77a7551121561f4ea7d5ce0c4030aeb7ce709e8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 13:52:57 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 30 12:46:57 2015 -0700"
      },
      "message": "Change how Java Bitmaps are accessed in a few places\n\nStop assuming that a Java Bitmap has a SkBitmap* that\nhas some externally managed lifecycle, and instead switch\na bunch of users to accessing the bitmap by providing\ntheir own SkBitmap* on which to set the (ref counted!)\nSkPixelRef* instead\n\nAttempt #2 to land this, original issue was in getSkBitmap\nand should be fixed\n\nChange-Id: I0fd9e193968b41e5597784140d56b4885906864a\n"
    },
    {
      "commit": "c1b33d665c8caf5760f68c45c6ca0baa649b832a",
      "tree": "9c89975587ac76b4d10589fdc15d7af4baa22dbf",
      "parents": [
        "bb2979d61c9cabd6f0476cc9e2121616d8001567"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 22 09:04:45 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 22 09:34:34 2015 -0700"
      },
      "message": "GraphicsJNI Canvas cleanup\n\nChange-Id: I72e142986a8bc9f464c1951b6b5187919de3462e\n"
    },
    {
      "commit": "8222a7ec81552276de1814541201c424b392d90b",
      "tree": "e6d3ab0569338f3ade22f973019e6d7c7d45a13b",
      "parents": [
        "2eec3d14249640988ad6f89c49e6ea155f3ec744",
        "edc22fba5921f5c2d3502727e707f959b8c3a460"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 20 22:07:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 20 22:07:45 2015 +0000"
      },
      "message": "Merge \"Revert \"Change how Java Bitmaps are accessed in a few places\"\""
    },
    {
      "commit": "edc22fba5921f5c2d3502727e707f959b8c3a460",
      "tree": "947113958a48609f55d003e2735739727b6cc70f",
      "parents": [
        "a771b9861d11671c780092d35c0062eeefcf37c0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 20 22:06:31 2015 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 20 22:06:31 2015 +0000"
      },
      "message": "Revert \"Change how Java Bitmaps are accessed in a few places\"\n\nBug: 20207616\n\nThis reverts commit a771b9861d11671c780092d35c0062eeefcf37c0.\n\nChange-Id: Ifd891cc075274a7986e987229e0fed5a04ed9ff0\n"
    },
    {
      "commit": "9d4efdf2802f06ccf7031610891f75af70ea5538",
      "tree": "a86a7a833af6b45b466a391c5ff72fbffcdca329",
      "parents": [
        "7809f835cae637c12eebdc92103ad88890228d97"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:45:40 2015 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 17 20:47:27 2015 +0000"
      },
      "message": "Revert \"A bunch more cleanups\"\n\nThis reverts commit c294d128d03bc9a9982b273a82516c04583438cc.\n\nChange-Id: Id1ebb236950f7c36c6d86e1dd95566d3a200748d\n"
    },
    {
      "commit": "f7a61483bc2a763145b0f1b6e6809c44cdc97187",
      "tree": "81eb425828851d3d725b93fd64fd342860f8c465",
      "parents": [
        "50d9509c34a48cfc4d076195f8c9a23a703dfd8f",
        "c294d128d03bc9a9982b273a82516c04583438cc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 15 14:48:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 14:48:19 2015 +0000"
      },
      "message": "Merge \"A bunch more cleanups\""
    },
    {
      "commit": "25f3b7bb2d05e4a020e7d82ada1543d2cdc75fbb",
      "tree": "726c4e5c76261b4df5be07a3fd5564e20a206869",
      "parents": [
        "0e08a225dab277d367b6665b933869dc7587090e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Mar 05 15:13:37 2015 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Apr 15 15:32:08 2015 +0900"
      },
      "message": "multinetwork API: native implementation\n\nBug: 19537384\nChange-Id: I04f4a7de2b1e583989b67a853df6ab50289c2185\n"
    },
    {
      "commit": "c294d128d03bc9a9982b273a82516c04583438cc",
      "tree": "fd6c7ae3a6a292caf48160f0c0c8cc82e4729225",
      "parents": [
        "4fc266bbef6129b5cefc910f0680eb9d61794faf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 13 15:20:29 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 14 15:38:22 2015 -0700"
      },
      "message": "A bunch more cleanups\n\nSwitch a few places to using android::canvas\ninstead of SkCanvas as well which eliminated\nsome JNI\n\nChange-Id: I8f98b56442a06362b82b984cd1bd3a92398d8dbc\n"
    },
    {
      "commit": "a771b9861d11671c780092d35c0062eeefcf37c0",
      "tree": "a575dc870712330cb8ddc70b5dccd0df26806a6a",
      "parents": [
        "4147877b388eb4a6f4e1ee116edfa58a018891ca"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 10 13:52:57 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 13 09:50:42 2015 -0700"
      },
      "message": "Change how Java Bitmaps are accessed in a few places\n\nStop assuming that a Java Bitmap has a SkBitmap* that\nhas some externally managed lifecycle, and instead switch\na bunch of users to accessing the bitmap by providing\ntheir own SkBitmap* on which to set the (ref counted!)\nSkPixelRef* instead\n\nChange-Id: I0fd9e193968b41e5597784140d56b4885906864a\n"
    },
    {
      "commit": "5a565ef01cd40cf17c90643fef6b5f107f793d7e",
      "tree": "bd9ba6ce965691fb2b4b711f821d516a5ac16326",
      "parents": [
        "ed755abbb0205cd441068943359fd17fe528d409",
        "1c8b3778e1c380992a9ca96e965cdc4e6f3bca66"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 13 21:59:25 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 13 21:59:25 2015 +0000"
      },
      "message": "am 1c8b3778: am 9aeb080e: Merge \"Switch libjnigraphics to sysv-only hash style\"\n\n* commit \u00271c8b3778e1c380992a9ca96e965cdc4e6f3bca66\u0027:\n  Switch libjnigraphics to sysv-only hash style\n"
    },
    {
      "commit": "ca4f2e838c144bd7e51e8f58cbaa40793c580dc4",
      "tree": "8a1f77fa09e1e42cb372f0b8390881790b373ca8",
      "parents": [
        "a6ed1b9547dcd592031a415739cc7e672c068f7c"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 13 12:49:47 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Mar 13 12:49:47 2015 -0700"
      },
      "message": "Switch libjnigraphics to sysv-only hash style\n\nBug: 19059885\nChange-Id: I3474974983931c67dce30dfc581a8d28d8b62e6a\n"
    },
    {
      "commit": "b8d342da4e16ced2290c1c19b96057e8be5b9318",
      "tree": "63e3121f4ff30f8ab83adf1ecc70dcd115caf5a1",
      "parents": [
        "41cd70e3647c3ce3faeb285b219d0c0637d97bf6",
        "3b9cfe30ed4ae34d06a8f005c8ada593c314316b"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 11 20:09:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 11 20:09:17 2015 +0000"
      },
      "message": "am 3b9cfe30: am a6ed1b95: am 6e116429: Merge \"Generate gnu hash for arm only\"\n\n* commit \u00273b9cfe30ed4ae34d06a8f005c8ada593c314316b\u0027:\n  Generate gnu hash for arm only\n"
    },
    {
      "commit": "ae0d6f34c5b06063467a934f7d533b741ed48f6b",
      "tree": "3e6a8b7b3db3b1e59c1d60ffdcb9a6ef35f5bb67",
      "parents": [
        "8ccfe899a7b7edebf776584d0e32139cc990c8d5",
        "1944667b7f70c336da66cc3fbdee3a2fbd766980"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Mar 11 00:23:26 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 11 00:23:26 2015 +0000"
      },
      "message": "am 1944667b: am 8ced0357: am 2a88ff2f: Merge \"Generate sysv hash for libjnigraphics\"\n\n* commit \u00271944667b7f70c336da66cc3fbdee3a2fbd766980\u0027:\n  Generate sysv hash for libjnigraphics\n"
    },
    {
      "commit": "12f4749df86698170718f80aabf8243b7c55833c",
      "tree": "b2d4cefcdb11b3e73e386f5526dcbb516cbd68b7",
      "parents": [
        "3d333c745f928ca1595aca111d9938fa3cf3e282"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@imgtec.com",
        "time": "Tue Mar 10 17:26:01 2015 +0100"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 10 09:50:51 2015 -0700"
      },
      "message": "Generate gnu hash for arm only\n\nFixes build failure caused by:\nhttps://android-review.googlesource.com/#/c/139670/\n\nAs previously discussed [1], MIPS does not support GNU-style ELF hashes.\n\n[1] https://android-review.googlesource.com/#/c/49282/2/tests/Android.mk\n\nChange-Id: I8edb8a1595308db2ecd1bd6650a069b1224ae64f\n"
    },
    {
      "commit": "1dc91a5f7a673649f5c1c56b561212c20b841cf7",
      "tree": "052ec8a49dcb0b17fc32a786bcb187cafb1a17ea",
      "parents": [
        "7f383873566024c7121cadae3bbdd2a7c47150bc"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 09 19:42:16 2015 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 09 19:42:16 2015 -0700"
      },
      "message": "Generate sysv hash for libjnigraphics\n\nBug: 19059885\nChange-Id: I9b227fda6549e15a5ce50ac6b59250dff1371bb3\n"
    },
    {
      "commit": "f4faeac3525fe1ce3707ab785a1651aec367589d",
      "tree": "b49502dc2381517f3314d16fae1eef7414314a8f",
      "parents": [
        "cd4ed96d10d49cb182e66aa1735f2de7596707ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 13:50:31 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 13:56:16 2015 -0800"
      },
      "message": "Cleanup Bitmap JNI attempt #2\n\nOriginal version missed a spot\n\nThis reverts commit c02977e3bbfaaedcb1b1d67e1692becc7dddd59b.\n\nChange-Id: I56244ce10d709fcdef42a001fe4c6ba7b6bbb04d\n"
    },
    {
      "commit": "c02977e3bbfaaedcb1b1d67e1692becc7dddd59b",
      "tree": "24564767d59138f5c039efefe4744ee35c23ac7e",
      "parents": [
        "b2915245b74b3b5541b123e38403f8e26426b4b7"
      ],
      "author": {
        "name": "Chad Jones",
        "email": "chadj@google.com",
        "time": "Thu Mar 05 19:34:26 2015 +0000"
      },
      "committer": {
        "name": "Chad Jones",
        "email": "chadj@google.com",
        "time": "Thu Mar 05 19:34:26 2015 +0000"
      },
      "message": "Revert \"Cleanup Bitmap JNI\"\n\nThis reverts commit b2915245b74b3b5541b123e38403f8e26426b4b7.\n\nChange-Id: Idd7d7f33eec4ea5024c83de6b10d3d1a6ab2b17a\n"
    },
    {
      "commit": "b2915245b74b3b5541b123e38403f8e26426b4b7",
      "tree": "295bee60e89bba1ae2221bf40833a80e6d2c41ef",
      "parents": [
        "f855b0d2d0c0c157d657668fcb98097e2aca097e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 04 08:36:12 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 05 09:55:02 2015 -0800"
      },
      "message": "Cleanup Bitmap JNI\n\nFix a bunch of places where mNativeBitmap was being\npoked at directly, switch them either to the NDK API\nor to GraphicsJNI where it made sense\n\nChange-Id: I6b3df3712d6497cba828c2d3012e725cb4ebb64d\n"
    },
    {
      "commit": "ce23ecffea9ec4ebe97d91a59e1997aaa77562c9",
      "tree": "e27837a28ea723369612ea450d081605e51c9d86",
      "parents": [
        "827909fca34fc144a058ca91cd909bd4265774d0",
        "cad87d78da79c3d2ac83e1dce6ee2a9d2f6d64e5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 11 01:56:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 11 01:56:11 2014 +0000"
      },
      "message": "Merge \"Frameworks/base: Wall Werror in native/graphics\""
    },
    {
      "commit": "cad87d78da79c3d2ac83e1dce6ee2a9d2f6d64e5",
      "tree": "55fb5cd78661bbc54875a7273605aba16c55c729",
      "parents": [
        "a31318620bce4e00e80188ee2778b7799cbdf0dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 17:13:06 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 17:14:31 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in native/graphics\n\nTurn on -Wall -Werror in native/graphics. Mask skia warnings.\n\nChange-Id: Ia671e91348296ace84d9a24b3c6c025fa889bead\n"
    },
    {
      "commit": "d2361f2f1f54c8f244d4a25c59a6a0d2b29fe515",
      "tree": "83d7f5d04f19cbcb01c2c1eddd6cf1c94efeeff0",
      "parents": [
        "a31318620bce4e00e80188ee2778b7799cbdf0dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 16:48:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 16:48:58 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in native/android\n\nTurn on -Wall -Werror in native/android.\n\nChange-Id: I28bab9ebd2fe3f6935878816773a04531e26450f\n"
    },
    {
      "commit": "99fe16508200510e3d8ea2e3c34872be8cce826d",
      "tree": "64f2c001356aa78c883f338230b45e2e0c33a410",
      "parents": [
        "66b9e91801ba8867514fbcf0ef8f03a2f4fb8798"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 05 15:02:11 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 05 19:34:04 2014 -0700"
      },
      "message": "Sensor related changes for NDK.\n\n     i) Add ASensor_isWakeUpSensor and ASensorManager_getDefaultSensorEx\n        methods.\n\nBug: 16399898\nChange-Id: Icc252aad068fa337bef8b22f20584f98cd5a155d\n"
    },
    {
      "commit": "1103b3255945d2eb2fa9c191e84e2270b343cca9",
      "tree": "3dd01f46c6a3479974410024250408950ad9859f",
      "parents": [
        "a3bf3e5c849bfb3bf0a74dcc06ef032355183c2e"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Jul 08 12:36:44 2014 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Tue Jul 08 15:05:38 2014 -0400"
      },
      "message": "SkBitmap::Config is deprecated, use SkColorType\n\nChange-Id: Ic953741325607bf85598c097bb3ab648d4a08996\n"
    },
    {
      "commit": "27900358f2f5b89e8b01516b28a916d16c99ba9b",
      "tree": "e298a6f85f6afe5f47f885b7574f01c15ebb7fa3",
      "parents": [
        "13d6cfb3b51c4740585cb7881f83ce789527901a"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Jun 03 19:20:42 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Jun 09 16:56:29 2014 -0700"
      },
      "message": "Add java APIs for Sensor reportingMode.\n\nChange-Id: Iba6bb11f990d9966b86bf02d70ced7312f3e64a8\n"
    },
    {
      "commit": "b5e3f4ea13ad331c0bc4bf9b3a56df7c87cd2f85",
      "tree": "157864caa591b3aff8db95e07d99b301d6223530",
      "parents": [
        "c9c88429a65812b618cf9d14cfd6a4ae6412060b",
        "c7153377cf03303e97185397544a13971a089961"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri May 23 18:04:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 18:04:18 2014 +0000"
      },
      "message": "am c7153377: am 73da981f: Merge \"Remove getRequiredPermission from NDK.\" into klp-modular-dev\n\n* commit \u0027c7153377cf03303e97185397544a13971a089961\u0027:\n  Remove getRequiredPermission from NDK.\n"
    },
    {
      "commit": "c7153377cf03303e97185397544a13971a089961",
      "tree": "372f52faae2f2842bc28c5fccbe4aa8d078c9a76",
      "parents": [
        "1af1371e1b3256b9405f6ef7d828297d152637ca",
        "73da981fd60f9dc855a04ea53e9fff59a011577e"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 22:44:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 22:44:49 2014 +0000"
      },
      "message": "am 73da981f: Merge \"Remove getRequiredPermission from NDK.\" into klp-modular-dev\n\n* commit \u002773da981fd60f9dc855a04ea53e9fff59a011577e\u0027:\n  Remove getRequiredPermission from NDK.\n"
    },
    {
      "commit": "8bcdd9b7a5c99e9a5bf1e45f7924b67037898e75",
      "tree": "bc8436e4986410d3a6eb22cb1174561bcc8c9e76",
      "parents": [
        "adb0a906dc71a0133b9345031dd88682e49a519a"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 13:33:52 2014 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu May 22 13:33:52 2014 -0700"
      },
      "message": "Remove getRequiredPermission from NDK.\n\nChange-Id: Ieb1e97e44ef335e6087ba9164058fe3535e9998a\n"
    },
    {
      "commit": "35187bd5c1e40ea52a672c525411d05cbcdd6482",
      "tree": "0eaae3cec2a38f4123c836e5170c93b2afb05bff",
      "parents": [
        "3a025393b50658b988411fbbb7435f8f87a4e16e"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Feb 11 18:44:42 2014 -0800"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Wed Apr 23 17:05:41 2014 -0700"
      },
      "message": "Bug fix for wakeup sensors.\n\nSensorService should hold a wakelock till the app reads events from a wakeup sensor. Currently drivers hold a wakelock with a\ntimeout while delivering events from a wake up sensor like Significant Motion. This hack can be removed now.\nBug: 9774884\n\nChange-Id: I6cab0147c63f57a494a61f4dfe2a64a27dfe1b4e\n"
    },
    {
      "commit": "d951ab230d80631731ef12b5d76c678c30165d6a",
      "tree": "62de29e78b420aab4917ed60001863e906940e80",
      "parents": [
        "68b9d97593d2ec79892813ab06f1b89c41de64b0",
        "8ebd66c259602f6b0be26fdfd3fe2f55538f6424"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Apr 11 19:40:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 19:40:31 2014 +0000"
      },
      "message": "am 8ebd66c2: am cd4c1c71: Merge \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\" into klp-modular-dev\n\n* commit \u00278ebd66c259602f6b0be26fdfd3fe2f55538f6424\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "8ebd66c259602f6b0be26fdfd3fe2f55538f6424",
      "tree": "aa5e2f41ebf2eeb723cfd464ce4a51f54307b31d",
      "parents": [
        "9e99cab7d9a0ec2315140c21bb1958eb7ff76a09",
        "cd4c1c714c37a1bc7ba35ebd2509eca4f0f6a314"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Apr 11 19:34:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 11 19:34:51 2014 +0000"
      },
      "message": "am cd4c1c71: Merge \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\" into klp-modular-dev\n\n* commit \u0027cd4c1c714c37a1bc7ba35ebd2509eca4f0f6a314\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "cd9a7bb3ba742606f93dcbd549d6d6eeb1cb5247",
      "tree": "d073c795af27b374151ddb9481e3789924d1614c",
      "parents": [
        "819239e5bec90ee3c861ac45fffac4a832a183a1"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Apr 07 22:55:21 2014 +0000"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Fri Apr 11 00:05:24 2014 +0000"
      },
      "message": "Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\nThis reverts commit 819239e5bec90ee3c861ac45fffac4a832a183a1.\n\nChange-Id: I4bbb222e5c9dc65aed03aa28fd9e0f00fe335819\n"
    },
    {
      "commit": "acf395fd9441bce9fbe68c1b7efbf824570284bc",
      "tree": "de95b1b5999e82a26832560cfdfa7cf663bd6973",
      "parents": [
        "bdfe384106de364ea2effac6ab80108556d11649",
        "819239e5bec90ee3c861ac45fffac4a832a183a1"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 09:05:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 05 09:05:50 2014 +0000"
      },
      "message": "am 819239e5: Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n\n* commit \u0027819239e5bec90ee3c861ac45fffac4a832a183a1\u0027:\n  Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n"
    },
    {
      "commit": "fa1d2417d296e28a48a8c4a5cfb932172edbdd65",
      "tree": "06113724fefaaa7b1bfd1c16d41658653b518571",
      "parents": [
        "ded264733036bb566c54da5b771d63f57213c84e"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 04:47:14 2014 +0000"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Sat Apr 05 06:14:24 2014 +0000"
      },
      "message": "Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n\nThis reverts commit fd53d8352a4617941b0a0449390aa562a01ea1d3.\n\nChange-Id: I1c6322d1d992147bb5ef201238374966128c1a61\n(cherry picked from commit 819239e5bec90ee3c861ac45fffac4a832a183a1)\n"
    },
    {
      "commit": "819239e5bec90ee3c861ac45fffac4a832a183a1",
      "tree": "1191459c7cfef8e68928b0d1b320116fc7c8e2a3",
      "parents": [
        "fd53d8352a4617941b0a0449390aa562a01ea1d3"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 04:47:14 2014 +0000"
      },
      "committer": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 04:47:14 2014 +0000"
      },
      "message": "Revert \"Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\"\n\nThis reverts commit fd53d8352a4617941b0a0449390aa562a01ea1d3.\n\nChange-Id: I1c6322d1d992147bb5ef201238374966128c1a61\n"
    },
    {
      "commit": "ded264733036bb566c54da5b771d63f57213c84e",
      "tree": "4724e6e67137101f9141b5fbfcac8d41e1e6f524",
      "parents": [
        "706f50c3abe0d899304313fd8631c35098d9866d",
        "bdfe384106de364ea2effac6ab80108556d11649"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 03:53:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 05 03:53:49 2014 +0000"
      },
      "message": "am bdfe3841: am fd53d835: Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\n* commit \u0027bdfe384106de364ea2effac6ab80108556d11649\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "bdfe384106de364ea2effac6ab80108556d11649",
      "tree": "a35fa2f1dffa3cd29947563ed584a4115b7a634c",
      "parents": [
        "8e2a4b539509f03c4b3521574a910f2ea3296a66",
        "fd53d8352a4617941b0a0449390aa562a01ea1d3"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Sat Apr 05 01:52:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 05 01:52:27 2014 +0000"
      },
      "message": "am fd53d835: Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\n* commit \u0027fd53d8352a4617941b0a0449390aa562a01ea1d3\u0027:\n  Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n"
    },
    {
      "commit": "fd53d8352a4617941b0a0449390aa562a01ea1d3",
      "tree": "d073c795af27b374151ddb9481e3789924d1614c",
      "parents": [
        "8e63696a73dfebae9b2ec123611db6b21968dbfd"
      ],
      "author": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Mon Mar 24 21:29:28 2014 -0700"
      },
      "committer": {
        "name": "Etienne Le Grand",
        "email": "etn@google.com",
        "time": "Fri Apr 04 16:31:08 2014 -0700"
      },
      "message": "Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor\n\nChange-Id: I16e5da68f860494e24cca64075be76fad02617bc\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": "9ae000ca8c05ad6f700ad7bf119bbc92fb964b57",
      "tree": "39535e468bacaef05410d512d0794c41d27f8181",
      "parents": [
        "7825334929b098b36e1144872200e75ba6d24b13"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 17:22:33 2014 +0000"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 17:22:33 2014 +0000"
      },
      "message": "Revert \"Split AndroidRuntime into AndroidRuntimeBase base-class and the rest.\"\n\nThis reverts commit 7825334929b098b36e1144872200e75ba6d24b13.\n\nChange-Id: I1702eb3ff9d7192d64039c8bf4bc3fc5d8e458c4\n"
    },
    {
      "commit": "7825334929b098b36e1144872200e75ba6d24b13",
      "tree": "18f4d807ba8d59e0849ccd2032164d1613dddb9b",
      "parents": [
        "faa91f852e9526b2f112122da9ae0956526cf662"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 06 15:25:25 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 12 15:00:05 2014 -0800"
      },
      "message": "Split AndroidRuntime into AndroidRuntimeBase base-class and the rest.\n\nAndroidRuntimeBase (exported by libandroid_runtime_base.so) is all you need\nto link against to gain the ability to do AndroidRuntimeBase::getJNIEnv()\nthus minimizing build dependencies.\n\nChange-Id: Ia7f0c94c8c02b974c068e0db34774827f96aa95b\n"
    },
    {
      "commit": "896043d67d3ac75760bd99db8a1561e31ebee1e1",
      "tree": "8f2ca459558ed89495990bf51d967b4f05363b3e",
      "parents": [
        "1cadc07dd1e3711fb1e57548038e3026682c5ef8"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Fri Jan 17 16:02:38 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 14:14:29 2014 +0000"
      },
      "message": "AArch64: Make AssetManager and related classes 64-bit compatible\n\nFollowing changes have been done:\n\n[x] Long is used to store native pointers as pointers can be\n    64-bit.\n\n[x] AssetManager openAsset native function returned -1 if\n    file name was empty and java function considered any\n    non-zero value as success. This has been fixed by native\n    function throwing Illegal Argument Exception as well.\n\n[x] AssetManager incRefsLocked and decRefsLocked now accept\n    long as input to support 64-bit native references.\n\n[x] AssetManager incRefsLocked method incorrecly used\n    \u0027this.hashCode()\u0027 instead of the passed parameter id.\n    This has been fixed.\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: I095b9f900d49e51f43ad6afc47cbc23116a6a64a\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "82b007d7572dceb0981b269338bd1ac6c40496c5",
      "tree": "0adfd7d709e3fd4252f3f96c7ef72a9fae1f11d4",
      "parents": [
        "7f8c70a1a48df91ee5541b03dc380c08ab6ebf42"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 12 23:12:55 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 18 17:56:35 2013 -0800"
      },
      "message": "Track Looper decoupling from ALooper\n\nChange-Id: I54f4d36f105e60eaaa453ae60f591d634c681fd7\n"
    },
    {
      "commit": "9d3b1a424c5c61e24e9659d15fb353026a00d925",
      "tree": "0e543391e3ac7b6ac0bff377e08cd2e233ef7363",
      "parents": [
        "8f5e3d13e166e4873e130a5ef7c987333dbac917"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 19:07:15 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 01 20:11:42 2013 -0700"
      },
      "message": "Move input library code to frameworks/native.\n\nNo longer compile libandroidfw as a static library on the device\nsince it already exists as a shared library.  Keeping the static\nlibrary would force us to provide a static library version of\nlibinput for the device as well which doesn\u0027t make sense.\n\nChange-Id: I3517881b87b47dcc209d80dbd0ac6b5cf29a766f\n"
    },
    {
      "commit": "64b5f7cc4ca094754d4631ffb801b7bb771081ec",
      "tree": "2b1b8d46bf0f32e321174b0cd7c507e4634ee0be",
      "parents": [
        "ab4a0541994d5de9520ad4ba37c3a11c5f540eb5",
        "09377ddb93a964b9e0def6d84b8beb3a515f4a18"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Tue May 28 17:08:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 28 17:08:54 2013 -0700"
      },
      "message": "am 09377ddb: Merge \"Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\"\n\n* commit \u002709377ddb93a964b9e0def6d84b8beb3a515f4a18\u0027:\n  Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\n"
    },
    {
      "commit": "c01e1ed68885edafd4ad9d62e0f31e7875651867",
      "tree": "2fc24c931a9bc90ae01fd4d940b6a7f3adf09d70",
      "parents": [
        "7f3ff133c19ed50dd245e025a44e1de7bcc3d38a"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon May 27 12:27:10 2013 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon May 27 12:27:10 2013 +0800"
      },
      "message": "Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event\n\nSee b.android.com/55873\n\nChange-Id: Idff7b71480991e16f57e55748fafa57d5827b10b\n"
    },
    {
      "commit": "a44dd26a75e24cc021802288fb81f4761e47be6b",
      "tree": "ce61491d8a35cc7a61af5597f6709b3c92504a54",
      "parents": [
        "c3d0a81a4a1809446bc1fa9abc9b5b74b01e676e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 10 21:12:00 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Apr 22 17:01:51 2013 -0700"
      },
      "message": "Rewrite input handling for native applications\n\nBug: 8473020\nChange-Id: Ic4353d8924ab877bec21aff8c2dba9fe725bf906\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "0482291f45a8fa1be8bbfe87e3c8a4eb7f43ddef",
      "tree": "83211b4429e43793aa7098a63e5ade5b5f83694d",
      "parents": [
        "9b64c4906be5314a6c2cde520317b8cb36e7b3e4"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Dec 19 11:21:38 2012 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Dec 19 11:21:38 2012 +0800"
      },
      "message": "Fix typo\n\nChange-Id: I58f863c4eb1eb4196d001c280027ab59bee51ce4\n"
    },
    {
      "commit": "eba8254c8cae92d653c5203f65cb36f3fc724f9d",
      "tree": "d6a64c61729b3ede1e42ba12574152e9e88401a0",
      "parents": [
        "2331b42328fcdd54d3b26152f998554c610ae1b4"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Dec 12 11:27:44 2012 +0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Dec 12 11:27:44 2012 +0800"
      },
      "message": "Fix typo\n\nChanged ANDROID_BITMAP_RESUT_SUCCESS -\u003e ANDROID_BITMAP_RESULT_SUCCESS\n\nChange-Id: I3d5525d7dacbf8f007e3230e1ca87b69245a96b1\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "4fbbda4cecb078bd3867f416b02cc75f5455284f",
      "tree": "e4d988ec4be9e86e7fa5a2cfb1e20ecb1342ce72",
      "parents": [
        "5e21bf934b2a71b595deb9856a2044eea4dbce86"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 24 18:34:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 25 17:34:48 2012 -0700"
      },
      "message": "Handle multi-user mountObb() requests.\n\nSince emulated external storage paths differ based on execution\ncontext, carefully fix up paths for various use-cases:\n\n1. When sending paths to DefaultContainerService, always scope\n   OBB paths as belonging to USER_OWNER.\n2. When sending paths to vold, always build emulated storage paths\n   visible to root.\n3. Always use the original untouched path when talking with apps.\n\nMount OBB containers using shared app GID, so that an app can read\nthe mount point across users.\n\nHandle legacy paths like \"/sdcard\" by resolving the canonical path\nbefore sending to MountService.  Move tests to servicestests, and\nadd tests for new path generation logic.\n\nBug: 7212801\nChange-Id: I078c52879cd08d9c8a52cc8c83ac7ced1e8035e7\n"
    },
    {
      "commit": "035ce2ca92742894f7f906c93d7d217c647aa19a",
      "tree": "091278302dd86f6009db3d86ff95dd607fef8c11",
      "parents": [
        "167611811d4fd6318bc366128590701274488e84",
        "5f7979993979466c79ab4f38d83c6f2aca361662"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 15:01:03 2012 -0700"
      },
      "message": "Merge \"Add support for \"-rtl\" in resources\" into jb-mr1-dev"
    },
    {
      "commit": "64a55af0ac700baecb0877235eb42caac59a3560",
      "tree": "0f3c36ce8204e6cf8eedf04ce9ae24373239ddd8",
      "parents": [
        "0b722fe9ce98d97dbcb6fefd170b85ab7037e528"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Aug 26 02:47:39 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 27 14:34:54 2012 -0700"
      },
      "message": "Add plumbing for new surface flinger display API.\n\nCleaned up the implementation of Surface and SurfaceSession\nto use more consistent naming and structure.\n\nAdded JNI for all of the new surface flinger display API calls.\n\nEnforced the requirement that all Surfaces created by\nthe window manager be named.\n\nUpdated the display manager service to use the new methods.\n\nChange-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2\n"
    },
    {
      "commit": "5f7979993979466c79ab4f38d83c6f2aca361662",
      "tree": "90c8b098b3c9a53a90c039641b0b7ba379d6b4eb",
      "parents": [
        "5e8e41e41aecd2a4951659a1f3507f3371e0cc47"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Jun 15 20:16:41 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 23 14:55:33 2012 -0700"
      },
      "message": "Add support for \"-rtl\" in resources\n\n- fix bug #7035019 Need to have \"-rtl\" support for Resource\n\nChange-Id: Ic82145c2ac672729d8a6c695a5f343276a1a0a2c\n"
    },
    {
      "commit": "89269cf98d263a4dd2e6e771e18c02a472b7bd78",
      "tree": "4104a5235e8432d0868c0f6a08cd6974501f0591",
      "parents": [
        "6113ce3be4ba7208bac7d9f0cad7e83104dbc8d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:39:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:39:22 2012 -0700"
      },
      "message": "libnativehelper is implicitly available.\n\n(And is moving for the PDK.)\n\nBug: 6369821\nChange-Id: I9e082ef294cfb2d70384255eb06d97d8cb92b382\n"
    },
    {
      "commit": "544f1c334c603fad888037c9f2a595faaf2479cc",
      "tree": "3bf565fef0cb6c9c3eb17bfc354787a1b4ba15f9",
      "parents": [
        "b990893ffc591bc7de9d5fd54dbe1707388717a8",
        "0e5ed706a2a7c85ddb11bcac55a6e210f725c3f9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Apr 11 18:52:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:52:12 2012 -0700"
      },
      "message": "Merge \"ANativeWindow: support for application buffer dimensions\""
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "0e5ed706a2a7c85ddb11bcac55a6e210f725c3f9",
      "tree": "5a569d941bd660a061aa4b95021a4b93f94293e8",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Michael I. Gold",
        "email": "gold@nvidia.com",
        "time": "Mon Apr 09 19:51:55 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 10 18:15:47 2012 -0700"
      },
      "message": "ANativeWindow: support for application buffer dimensions\n\nMake the NDK use the new native_window_set_buffers_user_dimensions to implement\nthe ANativeWindow_setBuffersGeometry call.\n\nChange-Id: I2d5981cbd619ee2e090fe8f2ddc69217915c9d9e\n"
    },
    {
      "commit": "60b82263a11e655408bbae1470728d58e1631b21",
      "tree": "1a92204b100e71f5c2e6906544d70eb6e07f1a3d",
      "parents": [
        "3e93e433e28a617bb1c85958dde8d7fd11e327a5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:19:18 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:59:35 2012 -0700"
      },
      "message": "move ndk headers to frameworks/native\n\nChange-Id: I44e48b8993e8b574ae366b9e76629099154998a9\n"
    },
    {
      "commit": "7efec15fef97e4ff7c4c023c8fdbf17f7d0dbfeb",
      "tree": "7e1081558433a1037d5c1e32948c6ef39a6748f9",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:57:16 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:57:16 2012 -0700"
      },
      "message": "add missing include\n\nChange-Id: I7eb05f6cb6de170aeb3b72d28490cdcf46982d13\n"
    },
    {
      "commit": "8335f1ccccedb6655d96d9d5b697a7f0938235dd",
      "tree": "30a7f8b3e646157365dd51222665a68753fa25e3",
      "parents": [
        "57235fc65b5920f4867e66c8263efab49e92a21b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "83c64e6b624a876436d2ef5d2f173b10407e27b4",
      "tree": "c4effc3260ab399e8fdae23baf06b076cd87a604",
      "parents": [
        "94d0024557f415b8463f085c9784a3e1d02b58c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 16:58:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 22:38:43 2012 -0800"
      },
      "message": "frameworks/base refactoring\n\ncreate the new libandroidfw from parts of libui and libutils\n\nChange-Id: I1584995616fff5d527a2aba63921b682a6194d58\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "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": "d96e3dfa02b203b1fc826e80d6f9aa074ba9c250",
      "tree": "a91a318c43620b6523bd2e83be01632f223b153c",
      "parents": [
        "43ea4e10dc402d20f506cdb4b4f27e49b4dc0443"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 15:12:23 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 25 15:14:50 2012 -0800"
      },
      "message": "Add xxhdpi; fix ActivityManager.getLauncherLargeIconSize() etc.\n\nChange-Id: I519d6cdc527a402d93b98df17a64fc1da52ad598\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5",
      "tree": "fa31802ed64676368447b67d20567fc1e806c79d",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "44fcb83b38b062a650ddf556fe7f5e34905df9ea",
      "tree": "f5726b3011934023b43a46eb3ce3be6742a274ba",
      "parents": [
        "3766a7a27535101e62af958b1d2d710daa166d7d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Dec 14 20:59:30 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Dec 15 16:16:14 2011 -0800"
      },
      "message": "Add a new ui mode for \"appliance\"\n\nThe idea is that this is a device which is more-or-less headless.  It\nmight have some limited interaction capabilities, but it\u0027s not something\nthat you want to rely on having.\n\nChange-Id: Ib92f53a120bf83de781728011721a4859def7d9f\n"
    },
    {
      "commit": "0475f82c95e6e9657580820b16b0e48d814119b5",
      "tree": "2ce0fb9ad7b9b7294bcf7a1617d45b21d246141f",
      "parents": [
        "8e6115f622ee2d6ef8023357231b6663b1c091e6",
        "c339fe302bc5083f0a110569eec06676be511088"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 29 13:17:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 13:17:42 2011 -0800"
      },
      "message": "am c339fe30: am be6ab576: Merge \"Fix application launch shortcuts.\" into ics-mr1\n\n* commit \u0027c339fe302bc5083f0a110569eec06676be511088\u0027:\n  Fix application launch shortcuts.\n"
    },
    {
      "commit": "6651a638348c15e89e265b0a53c775cac9beafa2",
      "tree": "f42e59d99363cada07cdb6f4bff69fa51bfae2ad",
      "parents": [
        "500afb87a7a8b5928ef1a5196bdfd0bcc2b87e4a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 28 12:59:11 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 29 12:17:22 2011 -0800"
      },
      "message": "Fix application launch shortcuts.\n\nImproved quick launch bookmarks to support category-based shortcuts\ninstead of hardcoding package and class names for all apps.\n\nAdded a set of Intent categories for typical applications on the\nplatform.\n\nAdded support for some of the HID application launch usages to\nreduce reliance on quick launch for special purpose keys.  Some\nkeyboard vendors have hardcoded launch keys that synthesize\n\"Search + X\" type key combos.  The goal is to encourage them\nto stop doing this by implementing more of HID.\n\nBug: 5674723\nChange-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593\n"
    },
    {
      "commit": "2c42edf3c04cd6bc11021394f5612827b835a812",
      "tree": "87339864e71ce6cd3063a21e3b725deb4d5be4bb",
      "parents": [
        "6a24bb3ec86b85a4b4a41d28fa49850a3e57cdea",
        "809820e28bdeb13a7625e0ce80e0dc2e2d76929f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Nov 15 15:25:38 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 15 15:25:38 2011 -0800"
      },
      "message": "Merge \"Remove obsolete NativeWindow_fromSurfaceTexture\""
    },
    {
      "commit": "dd00e734f335f13b4a9e24a27e280b6112d919a5",
      "tree": "89a206487c4addc1ddc49dab8abc5fb5c7b73e81",
      "parents": [
        "c4c13f970468286a19906a67a0dc81dbe4b81262"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 08 14:18:11 2011 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 08 14:18:11 2011 +0100"
      },
      "message": "NDK: ANativeActivity: Fix documentation for \u0027clazz\u0027 member.\n\nAs discussed on the android-ndk forum, it turns out that the\nmember named \u0027clazz\u0027 is really a global reference to the NativeActivity\ninstance. As such, it\u0027s really a handle to a VM object, not a VM class.\n\nIdeally, we would rename it to \u0027activity\u0027, but this cannot be done\nwithout breaking NDK source compatibility.\n\nChange-Id: I82ca1549b35346a3eacf9e84c4c836387fc883a6\n"
    },
    {
      "commit": "809820e28bdeb13a7625e0ce80e0dc2e2d76929f",
      "tree": "680c1e03b493dea02ccf2be0e3bb0e44ec09a281",
      "parents": [
        "5c405feb786d6d5f93a77d0cb26cc1c86ca4f3a4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 21 12:52:29 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 21 12:52:29 2011 -0700"
      },
      "message": "Remove obsolete NativeWindow_fromSurfaceTexture\n\nChange-Id: I9351103929da515cb411fb2e7906bb9f27c4da20\n"
    },
    {
      "commit": "83b186a246e8ffd52b91a17c0019dd8c9c9d21b1",
      "tree": "0cd1c181c99cb42a8775a27b7911e62d20945ddd",
      "parents": [
        "4b5441a7201a2f28becf3ab7fb33694f137e1998"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 19 16:00:46 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 19 16:50:07 2011 -0700"
      },
      "message": "fix the float Rect in OpenGLRenderer to handle NANs\n\n- we want functions like isEmpty() to return true if NANs are\ninvolved in the Rect\n\n- also clean-up the intersect familly of calls\n\n- minor cleanup in the int32_t Rect as well\n\nThese played a role in http://b/5331198.\n\nBug: 5331198\n\nChange-Id: I5369725ab482e4b83da9f1bd4cee5256e5de75b2\n"
    },
    {
      "commit": "65fd251c3913fc921468a3dad190810db19eb9df",
      "tree": "7cc9e086b96a4e2c77ec5b77aab6bed5679e89f0",
      "parents": [
        "c0a2222552f48a2543a64a4cbe913d0b9ffc3cbf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 18 11:20:58 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 19 15:02:26 2011 -0700"
      },
      "message": "Input system bug fixes, particularly for stylus.\nBug: 5049148\n\nFinished stylus support, including support for indirect stylus\nand mouse tools.\n\nAdded TILT axis.  When stylus tilt X/Y is available, it is transformed\ninto an orientation and tilt inclination which is a more convenient\nrepresentation and a simpler extension to the exiting API.\n\nTouch devices now only report touch data using a single input\nsource.  Previously touch devices in pointer mode would report\nboth absolute touch pad data and cooked pointer gestures.\nNow we just pick one.  The touch device switches modes as needed\nwhen the focused application enables/disables pointer gestures.\nThis change greatly simplifies the code and reduces the load\non the input dispatcher.\n\nFixed an incorrect assumption that the value of ABS_(MT_)DISTANCE\nwould be zero whenever the stylus was in direct contact.  It appears\nthat the correct way to determine whether the stylus is in direct\ncontact (rather than hovering) is by checking for a non-zero\nreported pressure.\n\nAdded code to read the initial state of tool buttons and axis values\nwhen the input devices are initialized or reset.  This fixes\nproblems where the input mapper state might have the wrong initial\nstate.\n\nMoved responsibility for cancelling pending inputs (keys down,\ntouches, etc.) to the InputDispatcher by sending it a device reset\nnotification.  This frees the InputReader from having to synthesize\nevents during reset, which was cumbersome and somewhat brittle\nto begin with.\n\nConsolidated more of the common accumulator logic from\nSingleTouchInputMapper and MultiTouchInputMapper into\nTouchInputMapper.\n\nImproved the PointerLocation output.\n\nChange-Id: I595d3647f7fd7cb1e3eff8b3c76b85043b5fe2f0\n"
    },
    {
      "commit": "1ee60119c4fa51ebfa781cf5fdc33f192e8551b8",
      "tree": "2fb0ce22107a1d3f0c73f3bd5d63a877f5a16d44",
      "parents": [
        "61bb11cfa03abc345f27ec14f63929b6f600edff"
      ],
      "author": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Tue Jul 26 09:51:18 2011 -0700"
      },
      "committer": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Thu Aug 11 19:58:25 2011 -0700"
      },
      "message": "Remove ParcelSurfaceTexture and update MediaPlayer\n\nThis removes the ParcelSurfaceTexture class since that functionality has been\nfolded into Surface.java. The change also updates the MediaPlayer to get rid\nof setParcelSurfaceTexture() and modifies setTexture() to use the new Surface\nfunctionality in order to simplify the code.\n\nChange-Id: Iafa75ea3188263928128325d8a726786971b4de4\n"
    },
    {
      "commit": "b3a900d7cd3842a208c0448b26806ed9f6d7fa2d",
      "tree": "8cd653d4a27b3ed3983254d8e37e7534c2e399ca",
      "parents": [
        "8d88cde56dc6624501482f6a11bab4115025d78b",
        "17e5f4cc706bed08367af8fa60ffb8c7c3ca7f62"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 28 16:26:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 16:26:08 2011 -0700"
      },
      "message": "Merge \"Add notifyPixelsChanged() call to NDK unlockPixels().\""
    },
    {
      "commit": "49754db5a304d995c1cc108ff6f19e4ba4265572",
      "tree": "cb09f23e7dd81ea505f90962fd550e36afbbc422",
      "parents": [
        "44e504e089b7483448c386741c5ee31d2c325400"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 01 17:37:58 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 25 20:04:18 2011 -0700"
      },
      "message": "Handle stylus buttons and tool types.\n\nAdded TOOL_TYPE_ERASER.\n\nRefactored the InputReader to share more code between the\nvarious input mappers that handle button states and to\nsimplify the accumulator implementations by having each\none only handle a single type of input.\n\nRemoved the concept of direct/indirect tool types from the API.\nIf we add it back, it should be done in a manner that is orthogonal\nto the tool type itself, perhaps as a flags field on the pointer.\nThe device source may well provide sufficient information anyhow.\n\nChange-Id: I811c22d95e8304269b6ee4f6d11a6b04f3cfc1b2\n"
    },
    {
      "commit": "09d7ed7b395d66be97c6bcb052039f5c0dce646c",
      "tree": "f707f6e46bd9a0edeaac9b33bffe054a64e3062c",
      "parents": [
        "9d29d155c51a26d789cce2c4c24c659487c63554"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 15:24:42 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 19 13:05:11 2011 -0700"
      },
      "message": "Add set_scaling_mode() to ANativeWindow.\n\nThis allows to specify the scaling mode independently from\nthe buffer size.\n\nChange-Id: Iaa2baa660445531a97d3fac192e580f4929c5d3b\n"
    },
    {
      "commit": "949be32b671304d5281ac0abbf30dcf4ebaa9eaf",
      "tree": "f12cbc9997bd2270f1a7604ba4d78739688975c3",
      "parents": [
        "8d96f19692815aa14979c811a130b38eafc1bf65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 17:39:11 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 15 17:47:08 2011 -0700"
      },
      "message": "move lock/unlock implementaion outside of Surface into SurfaceTextureClient\n\nThis makes ANativeWindow_lock/ANativeWindow_unlockAndPost work\nwith ANativeWindows implemented by Surface and SurfaceTextureClient.\n\nAlso, Surface now inherits directly from SurfaceTextureClient.\n\nBug: 5003724\nChange-Id: I9f285877c7bae9a262e9a7af91c2bae78804b2ef\n"
    },
    {
      "commit": "17e5f4cc706bed08367af8fa60ffb8c7c3ca7f62",
      "tree": "458df7b689548331f22489c9487cbe969dc3fdc3",
      "parents": [
        "30e8f982770e4c79f2703f11d100e1ff1bb3b7bf"
      ],
      "author": {
        "name": "Alexandre Elias",
        "email": "aelias@google.com",
        "time": "Tue Jul 12 17:58:23 2011 -0700"
      },
      "committer": {
        "name": "Alexandre Elias",
        "email": "aelias@google.com",
        "time": "Tue Jul 12 18:08:10 2011 -0700"
      },
      "message": "Add notifyPixelsChanged() call to NDK unlockPixels().\n\nWithout this call, the NDK bitmap methods don\u0027t work in\nhardware-accelerated mode ( http://b/5017848 ).\n\nChange-Id: Icae6975757c9c9e83c0e9fc132161aa3004f8f28\n"
    },
    {
      "commit": "53ca3f13e70fda98aa9f39bb0c15afaf435e3904",
      "tree": "3e6dc47b4bf8fa93d5cd1d79c8cdf4a00f506f66",
      "parents": [
        "9df32619f376768c408969a40d40c54324e30b99"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 27 18:36:00 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jun 27 21:35:59 2011 -0700"
      },
      "message": "Hover and stylus API cleanup.\n\nAdded missing setOnHoverListener method.\nRemoved BUTTON_STATE_ERASER.\n\nChange-Id: I5d820d0a8e47fe5fd2d88e9fd9fc3fc6ce0dea0d\n"
    },
    {
      "commit": "050316184b01c0d1a01c46afae7429b89a27c31b",
      "tree": "b21b202cd5345f3989b512b74b227f3fc910383a",
      "parents": [
        "890e013c05ed62bea9781168f3f65efebcbac4d5"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Mon Jun 06 16:02:47 2011 -0700"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Thu Jun 09 11:59:23 2011 -0700"
      },
      "message": "Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder.\n\nThis adds a new ParcelSurfaceTexture.java class that can be instantiated with\na SurfaceTexture and used to send the corresponding ISurfaceTexture interface\nto another process via Binder. The ParcelSurfaceTexture java object can then\nbe used to create an ANativeWindow based on the SurfaceTextureClient interface.\n\nChange-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817\n"
    },
    {
      "commit": "8a7d44e8248cf7078da6094068b039dacc0a3971",
      "tree": "dbb6847bc8af2033321069e3ff1a2e0506f0ba14",
      "parents": [
        "0e5e16a656b0002f377f1bcda2e43a97206e4046",
        "54cb63e26e41b80c013b8665878b9c7c7fb328c1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 16:44:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 02 16:44:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 54cb63e2 to master\n\nChange-Id: I5b741a1781e3f76c03fc1534ffce871117effd10\n"
    },
    {
      "commit": "b96cbbd11c4590bec846212c33361e02293f18b5",
      "tree": "ac02f12136339bb608c07d8b26eaae1cddccf792",
      "parents": [
        "ff7622992f39d8e401ab23c5ce6a84f318906e52"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 13:40:26 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 13:40:26 2011 -0700"
      },
      "message": "Add \"tv\" density for 720p screens.\n\nChange-Id: I028969b007f2fceea66947d77a2ae31ef1d1a630\n"
    },
    {
      "commit": "e2c7715c772d5121397591b532d04a31b3ffcc99",
      "tree": "a528b89349ba2b367aeae8b442b5c696a7c8c99e",
      "parents": [
        "6895c4994350bc10a06481ecf42c4ba8abb3eedb",
        "bbca81334e3603c7328dc526bd63032b23d5261d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 24 11:27:11 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 24 11:27:11 2011 -0700"
      },
      "message": "resolved conflicts for merge of bbca8133 to master\n\nChange-Id: I81493674dceab848e41d380a77a37e5a9be06db6\n"
    },
    {
      "commit": "e360bb6bd8ea84b8d37604fc11dfc744b18fb0de",
      "tree": "7e833a630e8108be1345d8595438eea5a30e7173",
      "parents": [
        "1b144e625fb0d34cd680c44cbcfb2deb8a76d4c6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 20 16:11:04 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 23 15:11:08 2011 -0700"
      },
      "message": "Add \"television\" mode.\n\nChange-Id: Ida1fdb61b036a8b489dbeda196fb4bc82e651b2b\n"
    },
    {
      "commit": "161e67ff3ba26408eea09221734ad2e29a1eed11",
      "tree": "6e98ff836fb5f134e01a7e9ef420ec35a78ad5d2",
      "parents": [
        "9e735541beed238d3b99d4bd284af1fc953c3775",
        "06a8ceacb0dc2713cb0bb2c93d2a750f2a58db68"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 21:44:52 2011 -0700"
      },
      "message": "resolved conflicts for merge of 06a8ceac to master\n\nChange-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69\n"
    },
    {
      "commit": "69cb87576ba163b61bb0e6477a3b7c57a9b11d40",
      "tree": "a44be0af3d008409403be133358bdcd628741c01",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:13:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:23:29 2011 -0700"
      },
      "message": "Add new \"-swNNNdp\" resource qualifier.\n\nChange-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce\n"
    },
    {
      "commit": "fe9f8ab03a63b1037f07dd85799fbea80ec6adaa",
      "tree": "c0cfa91d0537321eeee0ede693fb414d8778a1a2",
      "parents": [
        "1abf1c59f8b15d5b4b198063b884e268bd79fb32"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 06 18:20:01 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 13 12:11:17 2011 -0700"
      },
      "message": "Add initial API for stylus and mouse buttons.\n\nAdded the concept of pointer properties in a MotionEvent.\nThis is currently used to track the pointer tool type to enable\napplications to distinguish finger touches from a stylus.\n\nButton states are also reported to application as part of touch events.\n\nThere are no new actions for detecting changes in button states.\nThe application should instead query the button state from the\nMotionEvent and take appropriate action as needed.\n\nA good time to check the button state is on ACTION_DOWN.\n\nAs a side-effect, applications that do not support multiple buttons\nwill treat primary, secondary and tertiary buttons identically\nfor all touch events.\n\nThe back button on the mouse is mapped to KEYCODE_BACK\nand the forward button is mapped to KEYCODE_FORWARD.\n\nAdded basic plumbing for the secondary mouse button to invoke\nthe context menu, particularly in lists.\n\nAdded clamp and split methods on MotionEvent to take care of\ncommon filtering operations so we don\u0027t have them scattered\nin multiple places across the framework.\n\nBug: 4260011\nChange-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83\n"
    },
    {
      "commit": "50e657bb2d005568f5dd8bc1d904d07b0d94018f",
      "tree": "bcf319e64984c80f4793602aeb366e7f6b33afdd",
      "parents": [
        "720dd9a89857512d14adabea4efbb542d25fbb02"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Mar 08 16:00:40 2011 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Apr 15 10:04:31 2011 +0100"
      },
      "message": "Add Java API for writing TTS engines\n\nThis removes the old non-public C++ API for TTS\nengines and replaces it with a Java API.\n\nThe new API is still @hidden, until it has been approved.\n\nBug: 4148636\nChange-Id: I7614ff788e11f897e87052f684f1b4938d539fb7\n"
    },
    {
      "commit": "da5a4440f019074e7aa61c5531c5c61755adc44d",
      "tree": "acff4b9a3239978abe7033d56a182059d97e8725",
      "parents": [
        "616fb9a38a5b558b1245b0e7f6dc0c4e5ef1a985"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 20:59:58 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 20:59:58 2011 -0700"
      },
      "message": "ANativeWindow_setBuffersGeometry now returns proper error codes\n\nChange-Id: Iac59d513fa1d4a55b8378000714d344ef3e2e0a4\n"
    },
    {
      "commit": "696257ccf315a1da042787c5b2d1f80c7146fc94",
      "tree": "39c185c6f97540243e5d071e545343822f46f2cc",
      "parents": [
        "1be6cce70175bd90744498d5fca95e3f9eec1cf6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "message": "merge libsurfaceflinger_client into libgui\n\nthis is the first step in unifying surfacetexture and surface.\nfor this reason the header files were not moved, as most of them\nwill eventually go away.\n\nNOTE: currently we keep libsurfaceflinger_client.so as an empty\nlibrary to workaround prebuilt binaries wrongly linking against\nit.\n\nChange-Id: I130f0de2428e8579033dc41394d093f4e1431a00\n"
    },
    {
      "commit": "a032cc008618b83ecbbede537517d1e7998e3264",
      "tree": "735a1f6f5fd7dc5607a0edb18a85abc831e5b7de",
      "parents": [
        "e9f66af90a886cc55fc20c14375d8572bdf6dbd3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 07 16:56:21 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 24 15:37:04 2011 -0700"
      },
      "message": "Add MotionEvent.HOVER_ENTER and HOVER_EXIT.\n\nThe input dispatcher sends a HOVER_ENTER to a window before dispatching\nit any HOVER_MOVE events.  For compatibility reasons, the window will\n*also* receive the HOVER_MOVE.  When the pointer moves into a different\nwindow or the pointer goes down or when events are canceled for some reason,\nthe input dispatcher sends a HOVER_EXIT to the previously hovered window.\n\nThe view hierarchy behavior is similar.  All views under the pointer\nreceive onHoverEvent with HOVER_ENTER followed by any number of HOVER_MOVE\nevents.  When the pointer leaves a view, the view receives HOVER_EXIT.\nSimilarly, if a parent view decides to capture hover by returning true\nfrom onHoverEvent, the hovered descendants will receive HOVER_EXIT.\n\nThe default behavior of onHoverEvent is to update the view\u0027s hovered\nstate by calling setHovered(true/false).  Views can query their current\nhovered state using isHovered().\n\nFor testing purposes, the hovered state is mapped to the pressed\ndrawable state.  This will change in a subsequent commit with the\nintroduction of a new hovered drawable state.\n\nChange-Id: Ib76a7a90236c8f2c7336e55773acade6346cacbe\n"
    }
  ],
  "next": "e3d0022be8363411f27dc493d45b966be6d31efe"
}
