)]}'
{
  "log": [
    {
      "commit": "0dfa2cce14546fb2571bda7831d1b67b0ce6d7ab",
      "tree": "10c335b8f249255985fd4b64b76a0355a5bfb7f5",
      "parents": [
        "d7cf3b48d5564037ceb02cc1799332f3852cc4a8"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 10 13:02:43 2017 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 10 13:02:43 2017 -0800"
      },
      "message": "Clean spec to deal with rename of auto_fill to autofill\n\nFixes a local build failure I was having.\n\nTest: N/A\nChange-Id: I0ad770e96e0a4d72a7d538ebc1ba0b19de5996c7\n"
    },
    {
      "commit": "2250d56a0b47b93016018340c8f4040325aa5611",
      "tree": "b9264557e60e3486858b88d578b888f014e0074b",
      "parents": [
        "3bfef0186464eea5877f6e5cb10621f9bc5bb4dc"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Mon Nov 07 15:41:02 2016 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Tue Nov 15 12:43:37 2016 -0800"
      },
      "message": "Rename MountService to StorageManagerService.\n\nBug: 30977067\nTest: Existing tests pass\nChange-Id: Ieac0f11c2b249dcd60441b14c1f391e6f8131d42\n"
    },
    {
      "commit": "9eafb823480b7f1d70ba0915abd6315f7ad99d32",
      "tree": "531f5fab95fa9030e504ded049c5af096557859c",
      "parents": [
        "212cc4ebfa1129da63c43116c863e6a7d0ca7aa2"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 03 10:19:27 2016 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 03 10:19:27 2016 -0800"
      },
      "message": "Fix incremental build\n\nRemove old generated camera AIDL code\n\nChange-Id: I8293c08abb94ca0abca1fb2e892586202ccc3443\n"
    },
    {
      "commit": "719e2d0637829ef0781a8b9e5d81fa09bec2101f",
      "tree": "544981596f47368a2a7ad825f569d3a601147cf2",
      "parents": [
        "ed5865b172fd0b6492963271aff30386ac6d579f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 19 11:39:24 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 19 11:39:24 2016 -0800"
      },
      "message": "Fix local builds by adding CleanSpec command\n\nChanged the package name of an R.java generated file, so we need\nto clean up the old one left behind from a previous build.\n\nChange-Id: I3ece312d367a30d736084736c44238b4e52d22d7\n"
    },
    {
      "commit": "d4de20df2a1e57d22db7c538b197e3db18eaaa7d",
      "tree": "3268641ec65faeddcd322048bba4f6e54d7adfeb",
      "parents": [
        "df94885e470ccf30f13238b4c3c47bf2a9fd14d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Nov 04 14:45:54 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 23 23:16:04 2015 +0000"
      },
      "message": "AudioService: remove dead code\n\nRemove dead code related to media button event receiver and\n  remote control display, now handled by MediaSession*\n\nChange-Id: I4bd621240ddddf4df079df8d551c72b232c3301d\n"
    },
    {
      "commit": "94252de384ef6ac74a46cc964c558a620a0bf996",
      "tree": "2def7be93802b7189e5b145178a763ba90a1b25b",
      "parents": [
        "008d6d034ea68a7ccc5b7c454f642fcaaf9dc2cb"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Sep 02 11:17:04 2015 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Sep 02 11:17:04 2015 -0700"
      },
      "message": "Add android.support.v7.recyclerview resource\n\nChange-Id: I74b8eba475205fae5a9bb51f35d70daed37cc475\n"
    },
    {
      "commit": "240e64828f68064b2a1074a1dda1fc41fe19d711",
      "tree": "d516c83f985036202634156922001960e2be37c4",
      "parents": [
        "60598075a0d54dcb4287d77c91b946e6c407a669"
      ],
      "author": {
        "name": "Craig Lafayette",
        "email": "craiglafa@google.com",
        "time": "Tue Jun 02 11:12:43 2015 -0400"
      },
      "committer": {
        "name": "Craig Lafayette",
        "email": "craiglafa@google.com",
        "time": "Tue Jun 02 13:28:23 2015 -0400"
      },
      "message": "Remove device initializer status messages\n\n- Remove ManagedProvision Bluetooth extras from\n  DevicePolicyManager\n- Remove ManagedProvisioning device initializer status\n  action and extras from DevicePolicyManager.\n- Remove DIA status update protected-broadcast\n  and permission\n- Remove DPM.sendDeviceInitializerStatus method\n\nBug: 21559093\nChange-Id: Ibb651ebb2772ace6a16a5830f82f75465150e6e3\n"
    },
    {
      "commit": "c05c1aeedf44b7019b6749758dffc03df7632225",
      "tree": "24126136b2dcb20e4d0d64b031bb1cb4243b4a06",
      "parents": [
        "c2ec334079375ac6a4337bd5b94e173534b51129"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 05 13:46:30 2015 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 06 16:02:21 2015 -0700"
      },
      "message": "Revert \"Initial draft of new MediaRouter APIs.\"\n\nThis reverts commit 1a937b04e63539cb1fab1bde601031d415c7156f.\n\nBug: 20641986\nChange-Id: I035d945d1561e5fc7c914aa9362635f763c83cfd\n"
    },
    {
      "commit": "c14c26b3c7894670c0b3bd8fa306942813a5ae20",
      "tree": "f381643331542d413f7b75a63b62ccdc06d700f6",
      "parents": [
        "2cfc46c91a7291c225339b848d827ceb0c8ab536"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Feb 24 12:11:37 2015 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Feb 24 12:11:37 2015 -0800"
      },
      "message": "Clean-up stale inputflinger binaries and associated libs.\n\nChange-Id: I7ea2591e701140430ab2060ae0ce51af114c3acf\n"
    },
    {
      "commit": "b10e33ff804a831c71be9303146cea892b9aeb5d",
      "tree": "a0b6158f87621aa8cd42cbaec60f0e4540d397c8",
      "parents": [
        "85bd63f461b117bf826003e671b3730255bbbe56"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Feb 04 21:57:40 2015 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Tue Feb 10 14:56:02 2015 +0100"
      },
      "message": "Split up android.policy into framework.jar and services.jar 1/3\n\nChange-Id: Ifd69f1f3dd308a7e17a1442e2f3950da8b03cec4\n"
    },
    {
      "commit": "a9ef7929b87dc92cb9d4ed65abbaf4752886e613",
      "tree": "f11fd220e4f7d03a3cc9a25b4d9613e58938b317",
      "parents": [
        "d61f2271c40cd7b3b10f39d8ffdaf8c527cb78be"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Fri Dec 19 21:07:38 2014 +0100"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Jan 07 15:20:28 2015 +0100"
      },
      "message": "Remove dead code #7: Remove unused SysUI resources\n\nChange-Id: I6e338dee76063d7d200967bef0ed1122c2769d42\n"
    },
    {
      "commit": "138b83347b8da29166ee2eb09fa8126686bda3c7",
      "tree": "0e36af3a80316410db6ab8ec28ee9df6fded3a2f",
      "parents": [
        "fc29e0b5829034d9c0a60882d2a21606b2f513b1"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Nov 11 13:51:07 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Nov 12 11:31:38 2014 +0000"
      },
      "message": "Obliterate LockPatternUtilsCache\n\nIt is disabled dead code already and not useful anymore\nwith the new caching in LockSettingsService.\n\nBug: 18163444\nChange-Id: Icc184e923e0fbeab31ed128336c01f835b24c6f2\n"
    },
    {
      "commit": "ef9f6f957d897ea0ed82114185b8fa3fefd4917b",
      "tree": "4aff42f3d54f4454e598f27829c4983ba808afa7",
      "parents": [
        "4b5c2d3cfc8aec4ab90097734a3556a0d0c0e68d"
      ],
      "author": {
        "name": "Tyler Gunn",
        "email": "tgunn@google.com",
        "time": "Fri Sep 12 22:16:17 2014 -0700"
      },
      "committer": {
        "name": "Tyler Gunn",
        "email": "tgunn@google.com",
        "time": "Fri Sep 12 22:16:17 2014 -0700"
      },
      "message": "Renaming Telecomm to Telecom.\n\n- Changing package from android.telecomm to android.telecom\n- Changing package from com.android.telecomm to\ncom.android.server.telecomm.\n- Renaming TelecommManager to TelecomManager.\n\nBug: 17364651\nChange-Id: I192cb5d189f55db012ea72ee82ccc5aedbc21638\n"
    },
    {
      "commit": "dabae759ceeb17580b431b1bd1af69f33db412a3",
      "tree": "d29b4bc17fc6d0bb82d0287eb66e3b0effd0861f",
      "parents": [
        "c54a76cbcd1e4bc7f27de2010c1c1fd4ed6f845a"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Aug 21 16:34:43 2014 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Aug 21 23:36:29 2014 +0000"
      },
      "message": "Clean up RsFountainFbo_intermediates.\n\nChange-Id: I5c041bac357466d918d3dd209f36b505fd000852\n"
    },
    {
      "commit": "101717fc9dca0a90423ffeee309d9ed1ccd90981",
      "tree": "20053554b11d6495174ec332d64b56b96c3e8a7e",
      "parents": [
        "833dcd4bea5cadccaa55f9a06942bb36d01d73ac"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Aug 19 13:16:47 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Aug 20 21:09:41 2014 +0000"
      },
      "message": "Add cleanspec for inputflinger removal\n\nChange-Id: I4fe5ca7f8024d3a8d68eea6070d8c508501da280\n"
    },
    {
      "commit": "29564cd24589867f653cd22cabbaac6493cfc530",
      "tree": "c5ee0b88f293d292d95012844097acd172a7a72a",
      "parents": [
        "bdc78678dedc6b66b9584948b908cd8cf77c6b30"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Aug 07 10:57:40 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 15 13:37:03 2014 +0100"
      },
      "message": "Remove system_server classes from the boot image.\n\nWe set the system_server classpath in the environment\n(like we do with BOOTCLASSPATH). After the zygote forks\nthe system_server, we dexopt the classpath (if needed)\nand then launch the system server with the correct\nPathClassLoader. This needed several small / medium\nrefactorings :\n\n- The logic for connecting to installd is now in a separate\n  class and belongs in the system_server.\n- SystemService / SystemServiceManager have now moved to\n  classes.jar. They are only used from there, and since they\n  use Class.forName, we want them to be loaded by the\n  system_server classloader, and not the bootclassloader.\n- BootReceiver now moves to frameworks.jar, because it is\n  used by ActivityThread and friends.\n\nbug: 16555230\n\nChange-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600\n"
    },
    {
      "commit": "609a324c7c463bcb104ad04de62ac559a13a2c79",
      "tree": "079a8ce8b215c452895fdba53fee18c5183b7713",
      "parents": [
        "65e2685dbd06cf151686132f64a9c50e07c77998"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 06 09:24:34 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 06 09:28:58 2014 -0700"
      },
      "message": "CleanSpec!\n\nChange-Id: I0f2375c281ed24615604abf41aad6e976a5d5427\n"
    },
    {
      "commit": "aa4e23bbb36994708ba72c5f4c83255025d99e07",
      "tree": "ba6776a3c108a1a31351c212abfb1ba800f34a15",
      "parents": [
        "b214efbb9170a9f6a4991684a63ca59680074cc7"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Jul 24 18:35:11 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Jul 25 16:22:59 2014 -0700"
      },
      "message": "Add getPackageName to MediaController\n\nThis removes the MediaSessionInfo class and adds a method on the\ncontroller to get the package name. This also converts code that\ndepended on the session\u0027s UUID to use the token for comparison or\nthe Tag in the case of test code that needs a string identifier.\n\nChange-Id: Icb8dc76c70e23e897da8fd07651c524b96372bf9\n"
    },
    {
      "commit": "2726e0a6eb6443f832a356c638d1831c3cbe2182",
      "tree": "1369ac302b4394916c48d165dd28d0babc3aec4d",
      "parents": [
        "4758b4134aed6b067413d4e5ba228f27aa184dbc"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Jul 25 13:29:59 2014 -0700"
      },
      "committer": {
        "name": "Erik Pasternak",
        "email": "roboerik@android.com",
        "time": "Fri Jul 25 20:36:50 2014 +0000"
      },
      "message": "Add clean step to remove old framework intermediates\n\nThe framework intermediates path moved. Failing to notice this will\ncause your classpath to be wrong and you\u0027ll get red on new aidl methods.\nThis removes the old path which makes it more obvious that it\u0027s moved.\n\nChange-Id: If1a36fefc703b7899e09687e2de598c3830fa72e\n"
    },
    {
      "commit": "88e199045bbe10296124203837b24dea116bf108",
      "tree": "025a6733eaa53585970f3abcb6ac9a1e1ccacedc",
      "parents": [
        "e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Jul 21 14:40:42 2014 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Mon Jul 21 15:23:14 2014 -0700"
      },
      "message": "Build framework.jar with multidex support.\n\nWe don\u0027t need the framework/framework2 split now with the multidex\nsupport.\n\nChange-Id: I30ee5c7e24df87b2c54e854f17fbf0b5adef4c60\n"
    },
    {
      "commit": "2a46b90222e5c9c73de012382a604a71f9c0c30c",
      "tree": "b350a21f6551c2f7640d8b2f2eb587f6b60a0b9a",
      "parents": [
        "7f87e8acbbe02cb28af35f9f6dde09e700d7c5d2"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Fri Jul 04 17:21:07 2014 -0700"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Jul 08 04:15:55 2014 +0000"
      },
      "message": "Move ICallService.aidl to IConnectionService.aidl\n\nChange-Id: I5a082e50dafea0104174cb97d3ae8af168944fc3\n"
    },
    {
      "commit": "6ee242a58c659738a58986a1c7573eb019a42ad5",
      "tree": "282260dc496a85d183d7cc11dddf9ccafcf8a898",
      "parents": [
        "d04fc42ab0dd4ce4dd8a551cada73637a33104a3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 02 18:36:07 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 02 18:37:09 2014 -0700"
      },
      "message": "CleanSpec to fix build.\n\nChange-Id: I3995214498d22fa1bdb82eb44cda2e5ca6ba02a4\n"
    },
    {
      "commit": "c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1d",
      "tree": "d35f14610cdd43912a963295aa6719ae596a1669",
      "parents": [
        "51cb97096814352127aed69e5ac97013e9172038"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jul 01 12:38:52 2014 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Jul 02 16:31:46 2014 -0700"
      },
      "message": "Use cached thumbnails in Recent tasks.\n\nThe thumbnail returned from ActivityManager.getTaskThumbnail() now\ncontains either a Bitmap or a ParcelFileDescriptor that points to\na file containing a compressed Bitmap. The Recent tasks list is\nnow responsible for all thumbnail Bitmap caching as the activity\nmanager keeps only the most recent 5. This also permits low memory\ndevices to have many more tasks in the Recent tasks list.\n\nAs part of this CL the concept of subtasks is removed eliminating\ncode supporting the TaskAccessInfo and IThumbnailRetriever classes.\n\nFixes bug 15828934.\n\nChange-Id: I0fd0320a1a04e3c78d79357899b83a2fff97abf2\n"
    },
    {
      "commit": "f8458ff9d97f8961d67c41ee107129ecba873f36",
      "tree": "b77a1aa833ceea56d849fe2a1142c0e4fc81bdd0",
      "parents": [
        "226a51958d645a8e2be3e40a6b6daaca558b4913"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jun 25 16:08:02 2014 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jun 26 02:37:08 2014 +0000"
      },
      "message": "Fix lpdk build.\n\nMove aidl files from frameworks/opt/net/ims to frameworks/base so lpdk\ncompiles. The reason is lpdk doesn\u0027t have frameworks/base sources so\nreferences to Pending and Bundle in aidl files breaks the pdk build.\n\nI had to move all of them and the ims/*java files for dependency reasons.\n\nChange-Id: I92452562591b157cecdfc01bcd892c4f35f5965c\n"
    },
    {
      "commit": "67e0789cd3870af2fbbdefbff28f6fde9095a015",
      "tree": "337d96d1cc412a20d7f16b8b809390f5c6a33b26",
      "parents": [
        "d09692de9cb3cd26927c6d992b03c61a9885cd01"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jun 18 16:43:14 2014 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sun Jun 22 14:41:22 2014 +0000"
      },
      "message": "Mobile_radio in battery history is not accurate\n\nInvoke TelephonyManager#listen to connect mPhoneStateListener to receive\nthe notifications.\n\nBug: 15568103\nChange-Id: I5a3fa6347704e96ceb34289f74ba6e3157bbb333\n"
    },
    {
      "commit": "cf1a2f73fc102be2ac7060ac97d4682bb2565ca5",
      "tree": "f00e01d283dbf43199d2d3692d578b7e18e9326c",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 16 15:51:39 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 17 12:14:45 2014 -0700"
      },
      "message": "Switch everything to scheduled jobs\n\nEverything that used the IdleMaintenance APIs/broadcasts gets to use the\nspiffy new JobScheduler instead.  Hooray!\n\nOn top of that, the now-obsolete \"idle maintenance\" APIs are now gone\nentirely.  Double hooray!\n\nBug 14993295\n\nChange-Id: I5fb67c296ca8cd0ba8a2c8760a0f0d9d962d813b\n"
    },
    {
      "commit": "fb40dd4d00bd3361b2535bc866e6c21eadc52558",
      "tree": "01786f3e2bc9c803801f43fb8bc942e55a06e859",
      "parents": [
        "6dfa6e2a9be08a3a0f152a7b772efc8ce2469bce"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jun 12 17:02:31 2014 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Jun 13 13:30:57 2014 +0000"
      },
      "message": "Merge kwd to master\n\nAdd initial IMS and MSIM support from klp-wireless-dev-mirror\n\nChange-Id: Idb607c0aa32f80fe4fe1539aedea7a221e9e7f04\n"
    },
    {
      "commit": "7060b04f6d92351b67222e636ab378a0273bf3e7",
      "tree": "82fce1e04dd58a5d79895d0869b3b0adeffbb417",
      "parents": [
        "6d7a25f317be60ae8a4d8806e517052be2398753"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 09 19:50:00 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 10 12:51:55 2014 -0700"
      },
      "message": "Out with the old; in with the new\n\nSwitch to the official \"JobScheduler\" etc naming.\n\nBug 14997851\n\nChange-Id: I73a61aaa9af0740c114d08188bd97c52f3ac86b7\n"
    },
    {
      "commit": "d5cc4a281e7ce29d1e8687ff3394b57a3a549260",
      "tree": "a54c168980e6a2fc805892d1653236f7da6ebe5c",
      "parents": [
        "e205192c722e4fa1b37ee1b31dced21cf89ffbb4"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Fri May 30 16:57:43 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 11:02:52 2014 -0700"
      },
      "message": "Put TV Input Framework under android.media.tv, including TvContract\n\nBug: 15345342\nChange-Id: I665ca23f0f074ce29cb2e047109b209178532107\n"
    },
    {
      "commit": "fe7dbba52623a6049d72b0a47dfbc65dce27c870",
      "tree": "1ae184099a92158635cc251371f2c132b61e126c",
      "parents": [
        "61a9e8635f04e5bae5f4ee81579beb9d5baf56d0"
      ],
      "author": {
        "name": "Griff Hazen",
        "email": "griff@google.com",
        "time": "Sun May 25 18:55:02 2014 -0700"
      },
      "committer": {
        "name": "Griff Hazen",
        "email": "griff@google.com",
        "time": "Sun May 25 19:37:39 2014 -0700"
      },
      "message": "DO NOT MERGE Cherry-pick: Fix build: CheckBuild line for removed wearable package\n\nChange-Id: I26e39dc11add182e07bcc13456a166c86c911210\n"
    },
    {
      "commit": "09233289624a85093b1d99e4a6a149bf09059d8d",
      "tree": "ced7eefedc4db60d4134aee3616e9b043cd950d7",
      "parents": [
        "201a24f652745c4bcbe7e26f0ffea973bcb615b3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 30 11:33:59 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 11:51:26 2014 -0700"
      },
      "message": "Make GET_TASKS signature|system.\n\nNormal apps can\u0027t hold it now.  If they try to use\ngetRecentTasks() or getRunningTasks() without the permission,\nthey will only see their own tasks and home in the list.\n\nAlso took this opportunity to eradicate all of the old pending\nthumbnail stuff.\n\nChange-Id: I6dc52a06221c78097162e4a8b482027b798bf3ee\n"
    },
    {
      "commit": "5b517bbac6caa60ae002737770e6349634c276f7",
      "tree": "582a4968168e15986637027812285d98fdce4248",
      "parents": [
        "53ad398074bd9a0c54baab3d66d5842edb0733f8"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Apr 18 14:48:24 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Apr 18 14:48:24 2014 -0700"
      },
      "message": "Add cleanspec for media Session apis.\n\nChange-Id: I58b0acda2a91b3afe6febc3bc00e26fbe27dd431\n"
    },
    {
      "commit": "3957091ba8f08c02b5e781098cb955a5f697a1ff",
      "tree": "c8739c677c87e62ea6c1e8bc45de027d1e65d87c",
      "parents": [
        "53c2cf799fddfae7f6fc9ca1840ea345308b79ee"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Thu Feb 20 18:23:25 2014 -0800"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Apr 08 13:35:21 2014 -0700"
      },
      "message": "Initial round of Television Input Framework\n\nThis provides APIs to control and create individual television inputs on\nthe system which will later be hosted by television applications.\n\nChange-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c\n"
    },
    {
      "commit": "8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda",
      "tree": "424ee490ecedaed22da440cbaf4eb34411649bac",
      "parents": [
        "17cb58137949420e83d29aeec4f933c35565027c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 24 13:46:47 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 20 16:52:59 2014 +0000"
      },
      "message": "Added accessibility APIs for introspecting interactive windows.\n\n1. The old introspection model was allowing querying only the active window\n   which is the one the user is touching or the focused one if no window is\n   touched. This was limiting as auto completion drop downs were not inspectable,\n   there was not way to know when the IME toggles, non-focusable windows were\n   not inspectable if the user taps them as until a screen-reader starts\n   introspecting the users finger is up, accessibility focus was limited to\n   only one window and the user couldn\u0027t use gestures to visit the whole UI,\n   and other things I can\u0027t remember right now.\n\n   The new APIs allow getting all interactive windows, i.e. ones that a\n   sighted user can interact with. This prevents an accessibility service\n   from interacting with content a sighter user cannot. The list of windows\n   can be obtained from an accessibility service or the host window from an\n   accessibility node info. Introspecting windows obey the same rules for\n   introspecting node, i.e. the service has to declare this capability\n   in its manifest.\n\n   When some windows change accessibility services receive a new type\n   of event. Initially the types of windows is very limited. We provide\n   the bounds in screen, layer, and some other properties which are\n   enough for a client to determined the spacial and hierarchical\n   relationship of the windows.\n\n2. Update the documentation in AccessibilityService for newer event types.\n\n3. LongArray was not removing elements properly.\n\n4. Composite accessibility node ids were not properly constructed as they\n   are composed of two ints, each taking 32 bits. However, the values for\n   undefined were -1 so composing a 64 long from -1, -1 prevents from getting\n   back these values when unpacking.\n\n5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added\n   a check that enforces such trees to be well formed on dev builds.\n\n6. Removed an necessary code for piping the touch exploration state to\n   the policy as it should just use the AccessibilityManager from context.\n\n7. When view\u0027s visibility changed it was not firing an event to notify\n   clients it disappeared/appeared. Also ViewGroup was sending accessibility\n   events for changes if the view is included for accessibility but this is\n   wrong as there may be a service that want all nodes, hence events from them.\n   The accessibility manager service takes care of delivering events from\n   not important for accessibility nodes only to services that want such.\n\n8. Several places were asking for prefetching of sibling but not predecessor\n   nodes which resulted in prefetching of unconnected subtrees.\n\n9. The local AccessibilityManager implementation was relying on the backing\n   service being ready when it is created but it can be fetched from a context\n   before that. If that happens the local manager was in a broken state forever.\n   Now it is more robust and starts working properly once the backing service\n   is up. Several places were lacking locking.\n\nbug:13331285\n\nChange-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8\n"
    },
    {
      "commit": "2f5b057da7d05d5d699a272aa24fd7c97cdda820",
      "tree": "c11d78d206773981c7057110a54d186ed02cdcc5",
      "parents": [
        "503923220cca802f6dfc12f902ab0f6d1a12434f"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Feb 21 10:30:38 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Feb 25 16:01:55 2014 -0800"
      },
      "message": "Move Session apis to android.media.session\n\nThis is to make it easier to distinguish the new apis from the old\nones.\n\nChange-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7\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"
    },
    {
      "commit": "a1f9936c6ba5ab6761e0bd9de894997ae6ba9ba6",
      "tree": "9eff96dc818c816cdf1693a8149a5f58fd028849",
      "parents": [
        "6c9138f48554136ef80696152067da7bd877d84b",
        "5c880d0d1551603dcc4366406ec9ee3b812a8fc4"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 11 10:11:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 10:11:05 2013 -0700"
      },
      "message": "am 5c880d0d: am 6f688e87: am 8f34715b: Merge \"Refactor how the print dialog activity is started.\" into klp-dev\n\n* commit \u00275c880d0d1551603dcc4366406ec9ee3b812a8fc4\u0027:\n  Refactor how the print dialog activity is started.\n"
    },
    {
      "commit": "7bfbbcb04bf4ba8f3069b2df136f708c9849bacf",
      "tree": "da453e5f618eacb7cf63de3ef1344507feeecb0a",
      "parents": [
        "1db8cf12a985425a73d24875d9d308c14c0b4359"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Oct 10 13:36:23 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 11 09:11:24 2013 -0700"
      },
      "message": "Refactor how the print dialog activity is started.\n\n1. Before the print job activity was started asyncronously with\n   respect to the print call on to the print manager. This was\n   creating a situation where the starting activity may finish\n   before the print dialog appears which may lead to an orphaned\n   print document adapter with no data to print (as the UI is\n   is gone), or strange behaviors where the print dialog starts\n   on as a separate task.\n\n   To address this the pending intent for starting the print\n   dialog is not started by the print spooler since we cannot\n   call into it synchronously as we have to start its process\n   and bind to the spooler service which leads to jankyness in\n   the client app. Now the pending intent is created by the\n   print manager service in the synchronous print call so\n   from an app\u0027s perspective calling print starts the activity.\n\n   The side effect of this design is that the print dialog\n   activity may start before the system is bound to the spooler\n   service. In such a case the print activity cannot start\n   poking the print spooler state as the system registers\n   callback to observe the spooler state. To address this\n   the print spooler activity disables the UI and also binds\n   to the spooler service which happenes immediately after it\n   is started. As soon as the print dialog binds to the\n   service it starts the UI.\n\n2. Fixed an bug in the printer adapter of the print dialog that\n   was leading to a crash if the only item in the adater is the\n   all pritners option and it is selected.\n\n3. Piping the package name that started the printing so we can\n   pass it to the storage UI as a hint to open the last location\n   the app used.\n\nbug:11127269\n\nChange-Id: Ia93820bdae0b0e7600a0930b1f10d9708bd86b68\n"
    },
    {
      "commit": "632d0381817c43dd7f1ad1720ed0ffd166d43926",
      "tree": "6434b1a40c4544e02536938aa2e7995c9f1be875",
      "parents": [
        "eddb9dc0a4011d48ace2b9f0e4f57295bf16ee1b",
        "66c8aa7413f6bbd4ecd14048ea03267cd5d96fba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 10 11:55:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 11:55:15 2013 -0700"
      },
      "message": "am 66c8aa74: am c9a4349a: am 8a9b694d: Merge \"Revert \"Headphones volume warning disabled by default\"\" into klp-dev\n\n* commit \u002766c8aa7413f6bbd4ecd14048ea03267cd5d96fba\u0027:\n  Revert \"Headphones volume warning disabled by default\"\n"
    },
    {
      "commit": "f971b1eec5f30b3ba2ed3dfc2737d51807cf0e4d",
      "tree": "0752e0c689747ec6f067a3dfffcc6a6ecac166b7",
      "parents": [
        "5bd70c5eb3ccb5d1eed3f1f7e924a4fb96b0a053"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 10 10:43:13 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 10 10:43:13 2013 -0700"
      },
      "message": "Revert \"Headphones volume warning disabled by default\"\n\nThis reverts commit 7cf06209dcdbadd41fabd7e4e7229832aa8ffff2.\n\nBug: 10297243.\nChange-Id: I95b9b34bb38550af493f9a585b6940c4e18e39cc\n"
    },
    {
      "commit": "806fa829b4d8cb1dc6520872f0d500c41d7eca17",
      "tree": "a7af477c6595361681efe29e5e87c2b26cbfcf76",
      "parents": [
        "bbfd7e3ca23aee588941e380d46a6d9d36b1f71d",
        "0cc9298320fa6f018f0a2b7292057be46964c15c"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 20 11:21:56 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 20 11:21:56 2013 -0700"
      },
      "message": "am 0cc92983: am 4e6f752f: Put soundpooled sounds in the right place.\n\n* commit \u00270cc9298320fa6f018f0a2b7292057be46964c15c\u0027:\n  Put soundpooled sounds in the right place.\n"
    },
    {
      "commit": "4e6f752f237ac5c3d96d45d1fc60ec66e10ad63e",
      "tree": "22b6adaae763c54935bd7d7e6a8270d35a93063a",
      "parents": [
        "3855b99ff088abe5c25b35e0dc000644eb2d5fcb"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 20 00:26:29 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 20 00:27:01 2013 -0400"
      },
      "message": "Put soundpooled sounds in the right place.\n\nBug: 10846839\nChange-Id: I5318c2d54ea0e25fa74bbafc35fb4f7a2883b351\n"
    },
    {
      "commit": "c9a48989ec5d92b87332bdff97e53e3cfe300d76",
      "tree": "a0b1f253432172c7290d5aaa6084687f8713a1fe",
      "parents": [
        "0bb53db2fa9fd065448939d330e3e071629422f3",
        "5bb7cefa6f4e068057065c9090a4bb09972487f0"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Thu Sep 19 08:00:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 19 08:00:28 2013 -0700"
      },
      "message": "am 5bb7cefa: am 1816375f: Merge \"New sounds for K.\" into klp-dev\n\n* commit \u00275bb7cefa6f4e068057065c9090a4bb09972487f0\u0027:\n  New sounds for K.\n"
    },
    {
      "commit": "dcbdd3b420254ce39d9793c6fde6dd05436704ff",
      "tree": "f3ccad6bfd8d702971b670682b85a8e0355d961f",
      "parents": [
        "138685d9db005cbd62ede45eb066a2e672db9588"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Sep 13 11:16:13 2013 -0400"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Sep 18 23:09:58 2013 -0400"
      },
      "message": "New sounds for K.\n\nAudioPackage12 uses the new sounds (specifically the default\nversions at 44.1kHz); device-specific makefiles can elect to\nuse the 48k versions instead by including\nAudioPackage12_48.mk.\n\nBug: 9454760\nChange-Id: If714fc4b98f6700163f08c92a6376f28f9616382\n"
    },
    {
      "commit": "c8b9ea3d027ebc2cf951f090cbcf114c6c0fca6d",
      "tree": "73f3836610ae0a2ae31642cc271954dc94dc23e1",
      "parents": [
        "6cc372b16a9e836aee751ebe31b28307e17e8422",
        "edc538a7936925edb9767148dee39f3e78b9ef08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 13 17:30:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 13 17:30:57 2013 -0700"
      },
      "message": "am edc538a7: am 0f3e1487: Merge \"Remove obsolete assets from target /system/media/video/\" into klp-dev\n\n* commit \u0027edc538a7936925edb9767148dee39f3e78b9ef08\u0027:\n  Remove obsolete assets from target /system/media/video/\n"
    },
    {
      "commit": "db8c1655ea4af060967cdaef9c1bc74a1003cdc8",
      "tree": "6e9cae349b71505ebf85b6803835d9f1f19e2245",
      "parents": [
        "b25cfdf1ece9163292e2b4c86910fe07b14c0afa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 13 10:16:12 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 13 10:27:40 2013 -0700"
      },
      "message": "Remove obsolete assets from target /system/media/video/\n\nThese were previously used for background replacement effect, but it seems\nlike they aren\u0027t needed any more and just take up space in filesystem.\n\nChange-Id: I0782ac0c8f109e4f28e9f43c20d30dc6ccd82ef7\n"
    },
    {
      "commit": "f8d80233eeabc3a4eb47b8c2f2980e828a35a96e",
      "tree": "98ce629e1f62194e1cb521413a68c762efcac3c9",
      "parents": [
        "28d8be4a45e153cd7cf22716bf9af82ecb80ab29",
        "add9898c7258563888dfda98e5de0faaaf32a201"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 15:36:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 05 15:36:38 2013 -0700"
      },
      "message": "am add9898c: am 7314eb08: Merge \"Fix broken copy of kl/kcm/idc files to system image\" into klp-dev\n\n* commit \u0027add9898c7258563888dfda98e5de0faaaf32a201\u0027:\n  Fix broken copy of kl/kcm/idc files to system image\n"
    },
    {
      "commit": "37ad207edc2b83ce23a35d1f0f4b7f3409151acc",
      "tree": "5126770ac3fbb28f019044dd779f644c7aa064e3",
      "parents": [
        "56960fbd39706278dbcb9d6ee95e16fa6eff6c6e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 15:10:20 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Sep 05 15:27:32 2013 -0700"
      },
      "message": "Fix broken copy of kl/kcm/idc files to system image\n\nBug: 10633915\nChange-Id: I244b85dc92d50bf8bdcfdf0fe32556eff8c5d279\n"
    },
    {
      "commit": "4918e7ad667eef019d231a9952cb9fda95ea927e",
      "tree": "85cfe3523494c82f3bbb86dfda47ad20055dd1fc",
      "parents": [
        "79a5feff954b496de5c156a2f228b9cdda43cfa8",
        "09ed0720288c8d4b97cfd182c630f142077854e9"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 17:19:44 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 17:19:44 2013 -0700"
      },
      "message": "resolved conflicts for merge of 09ed0720 to master\n\nChange-Id: I1ce1b48a9fb954caf4fd15237f2f608ac9c478fe\n"
    },
    {
      "commit": "d82c8ac4db7091d2e976af4c89a1734465d20cd2",
      "tree": "a3ccb4d7a4325582dfe028030e4ca2d38ba4c2be",
      "parents": [
        "2a59f3f24076d96cbb10e1c00c3264dec43f19b1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 26 14:20:16 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 14:46:38 2013 -0700"
      },
      "message": "Transition API changes from API council recommendations\n\nIssue #10460684 KLP API Review: android.view.transition and android.animation\nIssue #10570740 Transitions: inflate transition targets from xml\n\nChange-Id: I7a3f6d3aece2fcafc5efd555d033f79e86635c98\n"
    },
    {
      "commit": "24f129f2bad08aaaf4af29d76f5420b2eb029f42",
      "tree": "b3dcbbf96e2cc8b837dec6474c0c95c29a9e3cfe",
      "parents": [
        "b27776a451333fb301e4fec3cc21b81ef0650411",
        "5d73148d4269dce9ce716f022df3a69fc9813195"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 23 10:20:31 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 23 10:20:31 2013 -0700"
      },
      "message": "am 5d73148d: am c78f39d8: Merge \"Add cleanspec for bitmap jni issue\" into klp-dev\n\n* commit \u00275d73148d4269dce9ce716f022df3a69fc9813195\u0027:\n  Add cleanspec for bitmap jni issue\n"
    },
    {
      "commit": "23bf0e579064900efc5f18049b031f46fa61f7da",
      "tree": "59cc2017179402c550c03ce809de205abf8f8232",
      "parents": [
        "5bc1ea4e4ae0133d4d5eaa4ac98cf4719effd032"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 22 22:02:48 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 22 22:15:25 2013 -0700"
      },
      "message": "Add cleanspec for bitmap jni issue\n\nChange-Id: I0b270a8c1edd28a305e014ad7b0039f56787b25a\n"
    },
    {
      "commit": "5e1aa8ab8d7f706675f5726d1b8ff8037da80789",
      "tree": "1d08624d9182216323defd432364b5c5a5ddb20e",
      "parents": [
        "cd3f03d4449933b23620a750eaad2646b5e86e13",
        "8a57aac9ad63e97b507b2fd2e4c4b0b62ddf11a1"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Thu Aug 22 05:05:18 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 22 05:05:18 2013 -0700"
      },
      "message": "am 8a57aac9: am 490ca9c7: Fix incremental builds.\n\n* commit \u00278a57aac9ad63e97b507b2fd2e4c4b0b62ddf11a1\u0027:\n  Fix incremental builds.\n"
    },
    {
      "commit": "490ca9c785d4e635c4cea49f04e671c0c8c0ad6c",
      "tree": "92d25da6d519208d953d1f0a4d7379336189f6b7",
      "parents": [
        "39c9c63295ad972a82076676a6cdaf34d9508f62"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Thu Aug 22 12:13:44 2013 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Thu Aug 22 12:13:44 2013 +0100"
      },
      "message": "Fix incremental builds.\n\nAdd a cleanspec step.\n\nChange-Id: I449fb89334e73037087865e886d7108e7f60ffce\n"
    },
    {
      "commit": "605775c4edc6888e377d3f423c3b358b7b26565f",
      "tree": "b0f87dbdab27b74216aaf6b15040e7251982fb8a",
      "parents": [
        "6fd5e5503b6a7e557503b837c0d9a3967bcb1abf",
        "ba35cf7a888931d2f53a7ffd767918579af5d334"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 18:18:14 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 18:18:14 2013 -0700"
      },
      "message": "resolved conflicts for merge of ba35cf7a to master\n\nChange-Id: Id9e6fa12056fc6cef7b77c70c73591dfc82e70a9\n"
    },
    {
      "commit": "b4f6a01d51612b9e50dffd95905e9c9add79b5d8",
      "tree": "dc551e921bfbdc96a90943ad1701712cabde4adf",
      "parents": [
        "a37e2346f8856e541cd1f4aa3546b5ac2fa5262b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 16:56:46 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 17:59:01 2013 -0700"
      },
      "message": "Adding a clean spec step for removed aidl files\n\nChange-Id: I350bf6c0dfae116898b13c9f2570c7263eff1814\n"
    },
    {
      "commit": "d6f46a206ad5dec6ae0544576b411c792f48a525",
      "tree": "84212a00296b468ddf0ade4ec09d6475e24cde34",
      "parents": [
        "f95609b9af50d4dc3dc5aa9e68aee77e5677d5f8"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Tue Aug 20 17:55:08 2013 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Tue Aug 20 17:55:08 2013 -0700"
      },
      "message": "Fix build break in master/chromium-dev\n\nA cleanspec is needed in frameworks/base. Add it.\n\nChange-Id: I205cbab5e52db0a5f4841c4f072479972907f0ca\n"
    },
    {
      "commit": "9ced3cd9d6ea414523051ec872fffc68f5fdbf08",
      "tree": "22d49c8bde1a17da9c9ff1588a3af3e176d0173a",
      "parents": [
        "58514937628dfcf3b2949e4cbc45d5526ecb8019"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Aug 12 16:42:38 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 20 17:36:39 2013 -0400"
      },
      "message": "Change PacProcessor to Android Service\n\nThis switches the PacProcessor over to an Android Service.  The service\nis bound and unbound by the PacManager, which also adds it to the\nServiceManager, allowing for Context-Free access by the PacProxySelector\nin all DVMs.\n\nbug:10182711\nChange-Id: Id1ff7660be56e8976cdcccd76e041feb47a17a61\n"
    },
    {
      "commit": "ed735c9aeb34c42c4de95485385246d84c1727c2",
      "tree": "7eee89918e3fafa0f79a6ca254473e43cfbcf3d6",
      "parents": [
        "998cfa2c63c54a73d0c51d062408d370ed0b3107"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Mon Aug 12 09:33:38 2013 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Mon Aug 12 09:33:38 2013 +0100"
      },
      "message": "Add missing cleanspec\n\nChange-Id: I92d6329e3c404249876e707048f6808f35fb019b\n"
    },
    {
      "commit": "798bed6cc7d273e72b0253288605db9cd2b57740",
      "tree": "b4278847c40cf910b69773c6205395ada02543ed",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 12:29:39 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 14:40:05 2013 -0700"
      },
      "message": "Refinement of the print service APIs.\n\n1. Factored out the printer discovery APIs of a print service in a\n   dedicated session object that is created by the print service on\n   demand. This ensures that added/removed/updated printers from\n   one session do not interfere with another session.\n\n2. Updated the app facing APIs to pass in a document info along\n   with a printed file. Also exposed the print file adapter so\n   apps that create a temporary file for printing can intercept\n   when it is read by the system so the file can be deleted.\n\n3. Updated the print service documentation.\n\nChange-Id: I3473d586c26d8bda1cf7e2bdacb441aa9df982ed\n"
    },
    {
      "commit": "5839d17223e30335179e82d2a7c55d5dc39c0119",
      "tree": "40e806e084b65a0df071e35e324733a15162f251",
      "parents": [
        "5b537bf320f22e892da1d827d54b77f558909a69"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Jul 31 10:44:01 2013 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Jul 31 10:44:01 2013 +0100"
      },
      "message": "Add missing cleanspec.\n\nChange-Id: Ida9f3c7335a84b126f67535ff658b056a59247a9\n"
    },
    {
      "commit": "35d2e33136b607b94230b9e77da29878a530decb",
      "tree": "3ee06699936c394b9383fdc2e07108845baa3f52",
      "parents": [
        "cb9accefb19ba6ae6fd449dc9ab62e972b51335c"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Tue Jul 30 16:31:12 2013 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Tue Jul 30 16:31:12 2013 -0700"
      },
      "message": "Update cleanspec\n\nFix build break in master-chromium branch due to a forgotten cleanspec.\n\nChange-Id: If377c53bf3a82bff775f968ad8eb270e3c666837\n"
    },
    {
      "commit": "223cc8181553224e8ceaeca83d5a33fff497d6fe",
      "tree": "5e6557ef5c1327d5be1762f1afdb987f61ebbef0",
      "parents": [
        "8cf4e13e466bf7a9dc9a3bee73c8a74f3fc4bb85"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Jul 25 08:23:20 2013 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Jul 25 08:30:25 2013 -0700"
      },
      "message": "Use correct variables for the directories in CleanSpec\n\nThe comments in the file say what vars to use.\n\"out\" can change and should be replaced with $(OUT_DIR)\n\nBug: 7183057\nChange-Id: I3355d0e044f86709eee12873f47d7491b3f359b6\n"
    },
    {
      "commit": "0d6e7315eb302b5402535dca87ac2c4dad4709b8",
      "tree": "5cfe7ff4c350d85d457e1d2bfc054a018d7893fb",
      "parents": [
        "e58bb044701d0b092fb09103f14d9406a497c65b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 17:31:18 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 18:04:24 2013 -0700"
      },
      "message": "add static dependency on liblog\n\nChange-Id: I8056aa744b37ef0c31229329a0de79c58c5955ea\n"
    },
    {
      "commit": "023140919545a4d7e559908d84fcc05493d8ee05",
      "tree": "b41828a0ff1eaf9b083d898e69c176d781fe4905",
      "parents": [
        "a8c7e3f86ab205a557c7b8cc1e8c6a61cec06f41"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 16 13:49:44 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 16 13:49:44 2013 -0700"
      },
      "message": "Add a clean spec rule due to renamed *.aidl\n\nChange-Id: I87bfd02b8c4f3ceb43594a91ac8f501a867ccfe6\n"
    },
    {
      "commit": "7cf06209dcdbadd41fabd7e4e7229832aa8ffff2",
      "tree": "c7ac7c3bd22aef5dfd7db7b2cb1bab0f1277e50f",
      "parents": [
        "db3c19fd406c9bb9688cb041856114cb54dbaeb3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 04 16:48:41 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 03 17:59:03 2013 -0700"
      },
      "message": "Headphones volume warning disabled by default\n\nEnable headphone volume limitation explicitely for\ncountries where EN60950 is applicable.\n\nBug: 8877359.\n\nChange-Id: Ida9e6678ee451350b826492f0085726003f0d39d\n"
    },
    {
      "commit": "59076243120d1b5fd0c0ac84497da040c6cb186f",
      "tree": "6a5568baf9cf2b9cf707c4ea7be945ce2c35c6d4",
      "parents": [
        "44bd61efbfefb352ec2138915169eb63ff6724e5"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Mon Jun 24 14:48:03 2013 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Mon Jun 24 14:48:03 2013 -0700"
      },
      "message": "Update cleanspec.\n\nUpdate cleanspec to handle rename in I0df438e45ef540cc42c9ee5baafc816ebafa1c7b.\n\nChange-Id: Ifc5abe794017d1dbc4a49c645751b71e3b08c0ef\n"
    },
    {
      "commit": "45ac9645da0ceafbae8c00b0dd0a09800fdcefdf",
      "tree": "3bade83f348662e8a6e361a4f8088fdcf5b5776b",
      "parents": [
        "56cd646abeae51e806791f82ab0995fe047b1fe4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 10 10:10:42 2013 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 10 10:10:42 2013 -0700"
      },
      "message": "Allow carrier provisioning to turn toggle radio power.\n\nPreviously CarrierProvisioning toggle airplane mode, but now that\u0027s\navailable only by the system.\n\nBug: 9356811\nChange-Id: I5167f8614c07bafb688983a360a008f76403b2b8\n"
    },
    {
      "commit": "5feceebb892d4cb5777cea3c6174b206705d456b",
      "tree": "58feee1605f35b07e70887f4ec017d80b5687436",
      "parents": [
        "bab9687e6473072d6ff4f7ea5a7b21bcfbf95744"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Mar 22 18:29:23 2013 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 19:54:44 2013 +0000"
      },
      "message": "New NotificationListenerService.\n\nThis is the best and only way for apps to listen for\nnotifications: create a NotificationListenerService, wait\nfor the NoMan to bind to you (as a result of the user\nchecking a box somewhere in Settings and agreeing to a\nscary dialog box), and you\u0027ll start receiving notification\nposted and dismissed callbacks. Your service, while enabled,\nwill also be able to clear one or all notifications.\n\nUse this power wisely.\n\nThis change moves StatusBarNotification out of\ncom.android.internal into android.service.notification.\n[Internal customers, including System UI and early users of\nthe system-only listener binder API, will need to be\nupdated.]\n\nBug: 8199624\nChange-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2\n"
    },
    {
      "commit": "c28867a1d67121ce5963de135e3ae2b1dbd9a33d",
      "tree": "95da9070093882f0b95ee197f45f5b4a5e348d96",
      "parents": [
        "37f180b4a52e4c1d0b6a7b400b6579b7ff25f307"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 26 15:42:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 26 15:42:39 2013 -0700"
      },
      "message": "Use input transport for communications between app and IME.\n\nThe input method manager service now supplies an input channel for\ncommunication while creating an IME session on behalf of the\napplication.\n\nThis change significanly reduces the overhead of IME event dispatch\nby using a standard input channel to send input events rather than\nusing binder.  This results in fewer thread context switches\nand fewer object allocations.\n\nWhat\u0027s more, the IME may perform additional batching of the motion\nevents that it receives which may help it catch up if it is\ngetting behind while processing them.\n\nBug: 7984576\nBug: 8473020\nChange-Id: Ibe26311edd0060cdcae80194f1753482e635786f\n"
    },
    {
      "commit": "52a53526265c801b70eaf6dab1acf5c3f628f8a6",
      "tree": "37e128cc5a301edb375a4c106a28634b7f8d69a1",
      "parents": [
        "95ae9429ee3555f4a1f396da423413ba496bdf33"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 14 10:59:38 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 21 17:47:40 2013 -0700"
      },
      "message": "Separate sessionCreated and finishedEvents callbacks\n\nBug: 8276952\nChange-Id: If7051086c060fcce5d1e958ebbddec0784c851da\n"
    },
    {
      "commit": "5a72553ef991d4821fcab4feaa3c1b23faca8724",
      "tree": "f97e7fbbe3777c306d531573144cfbb17e52bba2",
      "parents": [
        "484f3bdcd663d4ddc9521e788c45338b34a1691d"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Feb 07 17:03:05 2013 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Feb 07 17:03:05 2013 -0800"
      },
      "message": "Move a few files from frameworks/opt/telephony to frameworks/base.\n\nBecause ISms.aidl imports PendingIntent we couldn\u0027t easily\nmake opt/telephony part of the PDK. So this change moves\nISms.aidl and SmsRawData.*, which ISms.aidl also imports,\nback to frameworks/base.\n\nChange-Id: Ia64c6e771d5a292d9bfebb413a43f3745df55c85\n"
    },
    {
      "commit": "d906a6cfff4c078c1fd4520e995cd8f835369cce",
      "tree": "3ae9a5416c4b3e99cf95fae89e4779cbea7908f9",
      "parents": [
        "923bd98f67d36cbafa58941fce5952fafd09de4b"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sun Feb 03 08:29:53 2013 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sun Feb 03 08:29:53 2013 -0800"
      },
      "message": "Cleanstep for SmsRawData.\n\nChange-Id: Ic3ae3a501a733508808866494b3bca0fcc819f3e\n"
    },
    {
      "commit": "cbb2a2a207796a68eff26be001af2797594d3b3c",
      "tree": "ae7d166136064ba408035fa741bb944441fddb47",
      "parents": [
        "29e4aa7abe6b0c62f31fb23b8572cd5b91f08f5c"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jan 28 15:27:47 2013 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jan 28 15:27:47 2013 -0800"
      },
      "message": "Delete frameworks/base/voip use voip-common from frameworks/opt/net/voip\n\nChange-Id: Ieaba759a0f69b45c4b8839cbed1fe757cdf190c5\n"
    },
    {
      "commit": "545252f4fde6fbb70b07e97a120c7d1405758017",
      "tree": "e3238e5262e77cd91751c2302c30d828c539c55c",
      "parents": [
        "224333c03f1a9e14fce09207dc15d06365bf917b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 10 18:29:24 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 14 16:27:27 2012 -0800"
      },
      "message": "Refactoring of the screen magnification feature.\n\n1. This patch takes care of the case where a magnified window is covering an unmagnigied\n   one. One example is a dialog that covers the IME window.\n\nbug:7634430\n\n2. Ensuring that the UI automator tool can connect and correctly dump the screen.\n\nbug:7694696\n\n3. Removed the partial implementation for multi display magnification. It adds\n   unnecessary complexity since it cannot be implemented without support for\n   input from multiple screens. We will revisit when necessary.\n\n4. Moved the magnified border window as a surface in the window manager.\n\n5. Moved the mediator APIs on the window manager and the policy methods on the\n   WindowManagerPolicy.\n\n6. Implemented batch event processing for the accessibility input filter.\n\nChange-Id: I4ebf68b94fb07201e124794f69611ece388ec116\n"
    },
    {
      "commit": "152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891",
      "tree": "8e955c6db3279776dc6795e125513c4f2877ea44",
      "parents": [
        "4d58730ff587645778636e87312b1b17846fcac9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 12 20:15:29 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 03 10:38:48 2012 -0800"
      },
      "message": "Refactoring of the screen magnification feature.\n\n1. The screen magnification feature was implemented entirely as a part of the accessibility\n   manager. To achieve that the window manager had to implement a bunch of hooks for an\n   external client to observe its internal state. This was problematic since it dilutes\n   the window manager interface and allows code that is deeply coupled with the window\n   manager to reside outside of it. Also the observer callbacks were IPCs which cannot\n   be called with the window manager\u0027s lock held. To avoid that the window manager had\n   to post messages requesting notification of interested parties which makes the code\n   consuming the callbacks to run asynchronously of the window manager. This causes timing\n   issues and adds unnecessary complexity.\n\n   Now the magnification logic is split in two halves. The first half that is responsible\n   to track the magnified portion of the screen and serve as a policy which windows can be\n   magnified and it is a part of the window manager. This part exposes higher level APIs\n   allowing interested parties with the right permissions to control the magnification\n   of a given display. The APIs also allow a client to be registered for callbacks on\n   interesting changes such as resize of the magnified region, etc. This part servers\n   as a mediator between magnification controllers and the window manager.\n\n   The second half is a controller that is responsible to drive the magnification\n   state based on touch interactions. It also presents a highlight when magnified to\n   suggest the magnified potion of the screen. The controller is responsible for auto\n   zooming out in case the user context changes - rotation, new actitivity. The controller\n   also auto pans if a dialog appears and it does not interesect the magnified frame.\n\nbug:7410464\n\n2. By design screen magnification and touch exploration work separately and together. If\n   magnification is enabled the user sees a larger version of the widgets and a sub section\n   of the screen content. Accessibility services use the introspection APIs to \"see\" what\n   is on the screen so they can speak it, navigate to the next item in response to a\n   gesture, etc. Hence, the information returned to accessibility services has to reflect\n   what a sighted user would see on the screen. Therefore, if the screen is magnified\n   we need to adjust the bounds and position of the infos describing views in a magnified\n   window such that the info bounds are equivalent to what the user sees.\n\n   To improve performance we keep accessibility node info caches in the client process.\n   However, when magnification state changes we have to clear these caches since the\n   bounds of the cached infos no longer reflect the screen content which just got smaller\n   or larger.\n\n   This patch propagates not only the window scale as before but also the X/Y pan and the\n   bounds of the magnified portion of the screen to the introspected app. This information\n   is used to adjust the bounds of the node infos coming from this window such that the\n   reported bounds are the same as the user sees not as the app thinks they are. Note that\n   if magnification is enabled we zoom the content and pan it along the X and Y axis. Also\n   recomputed is the isVisibleToUser property of the reported info since in a magnified\n   state the user sees a subset of the window content and the views not in the magnified\n   viewport should be reported as not visible to the user.\n\nbug:7344059\n\nChange-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2\n"
    },
    {
      "commit": "131549dd7b264e138562e8268ac45d6b0ef919e2",
      "tree": "f274e3e789b072b4fa8c9484ad46f3ebd9fabaf8",
      "parents": [
        "c1d1ececd83104c3de889928175b9f4fdcbbb131",
        "98a09c64d52aa1166a09ab071049bc3536def1cd"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Nov 30 13:26:03 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 30 13:26:03 2012 -0800"
      },
      "message": "am 98a09c64: am 43174b7d: am 718fb9f1: Fix sample code issues\n\n* commit \u002798a09c64d52aa1166a09ab071049bc3536def1cd\u0027:\n  Fix sample code issues\n"
    },
    {
      "commit": "718fb9f12e31d92e8a81b08f0f2d818dd3654b9c",
      "tree": "e802e5a64382adbd73c139e869b4b913aa88e0f9",
      "parents": [
        "b1a01ab01c2aa5136f7781c3a6ec682590e38ac4"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Nov 29 19:02:18 2012 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Nov 30 12:32:36 2012 -0800"
      },
      "message": "Fix sample code issues\n\nCorrect min SDK.\nCorrect file extension on mandelbrot\n\nChange-Id: I508c22c382f1a930b27d8c5f4414cac3a990a332\n"
    },
    {
      "commit": "aeb3751559dc6a8ed71a9463700941303cf44ba0",
      "tree": "23b68899cfdf803e673339edf166775223df250f",
      "parents": [
        "38ddedc8adfc4d58f4bebe4a51149e4768d42f70",
        "9cd8c711a7ed0690e268fc930e6f8d0d594c17e5"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Nov 30 10:05:20 2012 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Nov 30 10:05:20 2012 -0800"
      },
      "message": "resolved conflicts for merge of 9cd8c711 to master\n\nChange-Id: I5e2d13c44f6a0589648e5934c8c36790da85e828\n"
    },
    {
      "commit": "1b86d75d312996133bc0c74fcb1f2c9f2a83fba0",
      "tree": "2ca0db119fb2d3644a919ac66642cba8f775a71f",
      "parents": [
        "71175f727bc1e094e72a410aca62392badffbf11"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Nov 29 11:05:42 2012 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Nov 29 12:52:51 2012 -0800"
      },
      "message": "Remove unused IExtendedNetworkService\n\nIt was used in the cupcake era for docomo.  Is not used anymore.\n\nBug 7633569\n\nChange-Id: I2ec826fc9a70d261a340957a937ed4c9f8e67c5c\n"
    },
    {
      "commit": "ee5668cf50dbd49f1ee25fd0a767d711eb5ab69d",
      "tree": "844c3c0d69e315019324febab1ddca04fb006ad6",
      "parents": [
        "16a5ad8345f2518947bbd47f072a02fd97dd1c67"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 23 10:33:15 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 23 16:34:21 2012 -0700"
      },
      "message": "Audio assets at 48000 Hz\n\nBug: 7397767\nChange-Id: If62c2219adf61f0c1b2115a83b7394d76829c028\n"
    },
    {
      "commit": "d3d6570df4f39af697ba090fa8069aef6acfbcf4",
      "tree": "e802efda60607e84735a1af232f2bf942ea81cc7",
      "parents": [
        "6b77a76d3f8f04a4faf53c95acdbaeccafe3cf72"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Oct 11 16:12:46 2012 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Oct 12 14:50:49 2012 -0700"
      },
      "message": "Port ImageProcessing to Filterscript.\n\nThis enables testing of the Filterscript front-end for llvm-rs-cc.\n\nBug: 7166741\nChange-Id: I90bda9d2710c6652336a8c112b5654c5da3d14e4\n"
    },
    {
      "commit": "b2ae7a1a18ab278f6aed8d2b16576aa8361b358e",
      "tree": "b45cbf1dbbfc4a5e6ce5befad8551281fe83d9c7",
      "parents": [
        "fa5bc081593891959c143e0de9e59dd076a47b42"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Oct 10 18:17:53 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Oct 10 18:17:53 2012 -0700"
      },
      "message": "Update compatibility library tests\n\nbug 7327728\n\nChange-Id: If3f85fb8944d7217a4d5c035f522d1ecc7af3a07\n"
    },
    {
      "commit": "1dd273a7df89214c60a2e1ad87db224331f877c6",
      "tree": "9458e5c2733a57ebe45acb99ce9f2eb2ee202ae7",
      "parents": [
        "97e9ee2ea894a6946f3d6346b5d258ed1ca9eae8"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Sep 20 09:12:43 2012 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Sep 20 09:12:43 2012 -0700"
      },
      "message": "add cleanspec.\n\nChange-Id: I5aa58efa7c48809d1f05c8ad48332508597b9869\n"
    },
    {
      "commit": "92bd5f95ca078a795db7c2efd30e85d4260561de",
      "tree": "4396db49005a0df2562512acbe09ba16f8e680f3",
      "parents": [
        "7914fdbfa6bf49b1b346c40e1f234b2a8ed7bc63"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jul 12 10:31:06 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jul 12 10:31:06 2012 -0700"
      },
      "message": "Update cleanspec\n\nmms and telephony have been moved remove the framework_intermediates.\n\nChange-Id: I49c2128ebaddfdae6cfa91913b739900d0f8d91b\n"
    },
    {
      "commit": "708e6bc6526990f447326d13702e79d5630303b8",
      "tree": "e573c6e5c869490b8ee4a4a4411011250df052e3",
      "parents": [
        "4323d6ea5143a3f2c419b3db28f956755652d78a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 13 15:17:58 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 13 15:34:38 2012 -0700"
      },
      "message": "Remove Disco video from builds.\n\nBug: 6294985\nChange-Id: Idde6148b94a55a27740f3b4f82c2038272f06628\n"
    },
    {
      "commit": "7b1e0c7046abefc0b40884b36197c8a803d9cf6d",
      "tree": "65033ef86abd0146f183b8ed423081c057fa8a17",
      "parents": [
        "8d8176d41b8b8f08435e727f03e43e27a542dcc2"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 11:57:29 2012 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun May 13 12:39:51 2012 -0700"
      },
      "message": "Removing default accessibility gesture handling.\n\n1. The initial design was to have some accessibility gestures\n   being handled by the system if the gesture handling access\n   service does not consume the gesture. However, we are not\n   sure what a good default is and once we add a default handler\n   we cannot remove it since people may rely on it. Thus, we\n   take the simples approach and let the accessibility service\n   handle the gestures. If no gestures are handled the system\n   will work in explore by touch as before.\n\nbug:5932640\n\nChange-Id: I865a83549fa03b0141d27ce9713e9b7bb45a57b4\n"
    },
    {
      "commit": "8e638dc335900c2e886dc4ee9c2c28c010ab8f4d",
      "tree": "168dbfea77761e97ccfd977607de94ef5b8b510d",
      "parents": [
        "4e1cb3b7942d3ca05918604358b4ef83815ce448"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 16 11:27:11 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 16 11:27:11 2012 -0700"
      },
      "message": "Add missing clean steps.\n\nChange-Id: Iecb3ff4d6658e581e51414bdfc397953189e66cb\n"
    },
    {
      "commit": "b43a1e5ddf274eb5e01dc8e450bd15b640bebe9f",
      "tree": "bf9d1b5d92ef8f65afd8c51016a5da7130bc6d3e",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Wed Mar 28 14:18:15 2012 -0700"
      },
      "message": "Moving libRS\n\nChange-Id: I1e42204e862585b9c2f7818b615890c60f08faf6\n"
    },
    {
      "commit": "4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e",
      "tree": "36df1bce8fe7295d0ab778ca519232a291a3294f",
      "parents": [
        "8ca8a69d5801ad4b809e7b9dbf53bd728820924b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 17:05:00 2012 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 02 18:02:16 2012 -0800"
      },
      "message": "Rename CancellationSignal using preferred spelling.\n\nBug: 5943637\nChange-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265\n"
    },
    {
      "commit": "882ed3747145ca68b3acb26636be7a39755b5548",
      "tree": "b19e69a0d5055b0bf4c001f0b43c47bbd3be230f",
      "parents": [
        "2cba116c27f52fa7545d5131ff9e18294d87e81a",
        "83cf0313075d41b602fdbd808cd06a6efd40a43a"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 10 16:46:35 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 10 16:46:35 2011 -0700"
      },
      "message": "Resolved conflicts for merge of 83cf0313 to master\n\nChange-Id: Ib66ee7e34d0c4d845004bce635ee1ef300d3b344\n"
    },
    {
      "commit": "62dce9b57477a02f53c8038d8f2c60480509eabe",
      "tree": "8a84c461b6c7995062a34522d720af7706551e29",
      "parents": [
        "9e7caa0b270f8cea1fd2a61c5bffcf0df1037970"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 10 15:05:49 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 10 15:57:41 2011 -0700"
      },
      "message": "Ensuring previous sounds are named correctly\nBug: 5416299\n\nChange-Id: I0f2cd229be02908553368d6ff19977a0ebd3e613\n"
    },
    {
      "commit": "8e359817da14f6a4ffcf3bf4f7a59bc4fef8c211",
      "tree": "20579ef86aa311879c2fde554c076b4f41a967f4",
      "parents": [
        "ad9c5718daa556fb6907c3f600ea505c1ec3aca0"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 06 11:14:13 2011 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 06 16:00:58 2011 -0700"
      },
      "message": "Make symlinks for DroidSans.ttf and DroidSans-Bold.ttf\n\nBug: 5420351\n\nMake the following symlinks:\n/system/fonts/DroidSans.ttf -\u003e Roboto-Regular.ttf\n/system/fonts/DroidSans-Bold.ttf -\u003e Roboto-Bold.ttf\n\nChange-Id: If9a74ef4ac2386cdb46d125fed8ce5771e872310\n"
    },
    {
      "commit": "d5b9b26081b09ecd1a9701e3320bf969ae481f66",
      "tree": "527a2e21938f9f673396817281dc3114307afb6b",
      "parents": [
        "7c2d205298efcc81f6c48ee1605eae12f7d0f7fe",
        "121e805af449ccee802ae0001f4d8eaf531e6b2d"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 03 17:06:26 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 03 17:06:26 2011 -0700"
      },
      "message": "Resolve conflicts for merge 121e805a to master\n\nConflicts:\n\tCleanSpec.mk\n\nChange-Id: I750218dbd78e15c1ae3324b3bcfbcd28a4da2676\n"
    },
    {
      "commit": "18f3656eb58627fac4c788c75c9638968378d1d8",
      "tree": "c2929e19de7c0909f04d14352d71732bd43f08f7",
      "parents": [
        "8b42fcef5ac33d94b76e3002861d4ea4081a6a4f"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 03 15:37:43 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Oct 03 16:06:09 2011 -0700"
      },
      "message": "Adding additional variety to sound set 7\n\nChange-Id: I3f8c806258e47dc3b78ce81fd582722753573b54\n"
    },
    {
      "commit": "46b20e7f41ded340596b732aaf08cc2d05a8e842",
      "tree": "7966ffcd11def5209293717779060fffda88687a",
      "parents": [
        "2d56123b110ff20dd849875be328f1712d128dee"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Sep 29 18:07:41 2011 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Sep 29 20:02:05 2011 -0700"
      },
      "message": "Correction the use of SMALLER_FONT_FOOTPRINT\n\nSMALLER_FONT_FOOTPRINT is a BoardConfig variable that\u0027s only available\nin Android.mks but not product config makefiles.\n\nChange-Id: I1784b6e8c744ffcca1538e76d338f5800f150e72\n"
    },
    {
      "commit": "48704d4962f2120c62726eaa8bc6ec2d8a71071d",
      "tree": "788af0bb7d0cd1f189f14bfe8e599bbcd3c0fbad",
      "parents": [
        "a6ccaa736d18d1ee375162e9df9d2aad8db869e5"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Thu Sep 22 16:05:43 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Mon Sep 26 09:47:18 2011 -0700"
      },
      "message": "Updated key and effect sounds\n\nChange-Id: Ia7c771ed59bf1803ed7ff25d338a412906cf59c0\n"
    },
    {
      "commit": "9d8c7e82424ae2a8256157e288deb37d51509f13",
      "tree": "b82a758887bc814839f6cba9a5b9985b9d14c556",
      "parents": [
        "b20d378cec09da18301eb9c33bc88251beb81042"
      ],
      "author": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Fri Sep 23 14:57:32 2011 -0700"
      },
      "committer": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Fri Sep 23 15:09:52 2011 -0700"
      },
      "message": "Replaced Lohit_Hindi with Lohit-Devanagari\n\nLohit-Devanagari is now provided by external/lohit-fonts, replacing\nLohit_Hindi from here. Removed font from fonts.mk and renamed in\nfallback_fonts.xml.\n\nBug: 5364436\nChange-Id: I0b8f65dbfdbec1802fba526209d7f88d2cf64fc4\n"
    },
    {
      "commit": "cd3f83a55455c85fe8822e58024063d52a6d0e1c",
      "tree": "7268468ee435eb11023d0533dc62ced988d3e76f",
      "parents": [
        "88b18eb8c2034e9de35482cc737ef8d608d55867"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Tue Sep 20 17:50:39 2011 -0700"
      },
      "committer": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Tue Sep 20 17:50:39 2011 -0700"
      },
      "message": "Adding missing cleanspec for audio file cleanup\n\nChange-Id: I469601a2112994c466281a4959806a4179ffe245\n"
    }
  ],
  "next": "651cdfcbac6245f570475991588ddc2d30265e8d"
}
