)]}'
{
  "log": [
    {
      "commit": "e7a9ae8ba0fb7fc61960e3facd0c5534e9ffce1e",
      "tree": "cc5172cc643067df271ac91c222cc8336ffdc894",
      "parents": [
        "74e4156e5c62392c37f4a70358de30dcfff4956f"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 08 15:19:19 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 11 17:58:22 2013 -0700"
      },
      "message": "Add touch navigation input source\n\nBug: 8276741\nChange-Id: I674b9804bf9ae76d694ae7073b54a7d43474a43c\n"
    },
    {
      "commit": "74e4156e5c62392c37f4a70358de30dcfff4956f",
      "tree": "ff7079cdfb9615ea100bcbc2535e7d325530adbc",
      "parents": [
        "e70748e78b0819bf485efdeabe7f8447b201b13a"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Mar 08 14:58:14 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 11 16:02:51 2013 -0700"
      },
      "message": "Add InputDevice#isFromSource convenience method\n\nChange-Id: If2d2e37bc3fff5a862ea3652c7ef9778018e7ecc\n"
    },
    {
      "commit": "68ccf103a10c674f1db649bb15bb3e790bc6dad3",
      "tree": "a7687a6d17497efef433df381e6920e568fcc80c",
      "parents": [
        "a509b6b1396d414b424ddfbea292b23bba46a4aa"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Feb 13 14:07:02 2013 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Mar 11 12:30:56 2013 -0700"
      },
      "message": "Java API for MediaMuxer\n\nImplement the Java API for MediaMuxer.\n\nbug:7991013\n\nChange-Id: Ibf3aa256cc1d89f1c7636b74c9fb53073d173636\n"
    },
    {
      "commit": "d6875e3334899be84b98d0fd32efff1f1b5775da",
      "tree": "4594c0e734ad4f20260fe6581dc1e1c63ae68248",
      "parents": [
        "6e5d6492db4f0bed604e67ee53b0c99e0685c55f",
        "2cb314ebc7bb6495a94f577dfb57f9e6c56033ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 16:21:21 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 08 16:21:21 2013 -0800"
      },
      "message": "am 2cb314eb: am e0cd3c19: Merge \"Improve DateFormat.format.\"\n\n* commit \u00272cb314ebc7bb6495a94f577dfb57f9e6c56033ef\u0027:\n  Improve DateFormat.format.\n"
    },
    {
      "commit": "c8a1ff4036f9ca1e5d971ba231ea2d12aeff4019",
      "tree": "4e56bae6e5953db7dba402cc0fa798747f40f53f",
      "parents": [
        "b349883487e06ec8cd07d3e1adc97819c8c66d93"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 08 15:29:55 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 08 15:29:55 2013 -0800"
      },
      "message": "Make account cloning API public\n\nChange-Id: If48d93dab49afcaaa301a5a3aa514f3d4dd3bab8\n"
    },
    {
      "commit": "8326b9a429b63b680aa9af116c670ce674744d80",
      "tree": "7caa33842712e0ba213f69d8fe545029a6bcc681",
      "parents": [
        "3f7a49904cef7ea14808590b63b115a4381537a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:06:14 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 08 15:06:14 2013 -0800"
      },
      "message": "Improve DateFormat.format.\n\nAdd support for the \u0027c\u0027 format character, required in many non-English locales.\nReimplement \u0027c\u0027 and \u0027E\u0027, and \u0027L\u0027 and \u0027M\u0027, so they correctly interpret 5-count\npattern characters.\n\nReplace the old incorrect class documentation with a pointer to the\nwell-maintained libcore equivalent and the Unicode UTS to which these two\nimplementations are supposed to conform.\n\nDeprecate the useless constants for pattern characters. No one sane is going\nto write MONTH + MONTH + MONTH + MONTH instead of \"MMMM\".\n\nCorrect the documentation for getLongDateFormat and getMediumDateFormat.\n\nAlso fix DateUtils.getStandaloneMonthString for LENGTH_SHORTEST.\n\nTests are in https://android-review.googlesource.com/53291.\n\nChange-Id: I4dda8b18070f05ccdc11c1f0a9381a9d233db4e8\n"
    },
    {
      "commit": "dd3e75fa6b9fd93790eec010f40c8bc1c3aeda3c",
      "tree": "b6dd681e60c5cc6307773300f78407ae806486da",
      "parents": [
        "15061d747d578fb542f1a11856dae5515036b4ce",
        "34f17dd1f615c6285f4f344eb700923e2432e48e"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Mar 08 01:50:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 08 01:50:00 2013 +0000"
      },
      "message": "Merge \"Publish new MediaCodec API\" into jb-mr2-dev"
    },
    {
      "commit": "34f17dd1f615c6285f4f344eb700923e2432e48e",
      "tree": "430ffa928c1855257dfa4a257f4a9cb5a9c920e3",
      "parents": [
        "098b3ba5ef6e472b419c83b5e1d7c79bce05f2f5"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Mar 06 14:26:34 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Mar 07 14:20:46 2013 -0800"
      },
      "message": "Publish new MediaCodec API\n\nUn-hide two new methods in MediaCodec, one new constant, and a new\nEGL extension.\n\nBug 7991062\nBug 8191230\n\nChange-Id: I028669132d9ffda1e4b34a561bab3997bbd7dae5\n"
    },
    {
      "commit": "3afc18af2cea898753b10e8575dcf20c11356bca",
      "tree": "a2928e5ac63788215467a3cc93e135acd9829acc",
      "parents": [
        "9f3443c55c51562e22abb6b16c83cbe036dd2db4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 07 13:21:13 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 07 13:26:40 2013 -0800"
      },
      "message": "Enhance MediaRouter API.\n\nThe support library MediaRouter implementation needs a couple\nof extra generally useful APIs in the platform MediaRouter to ensure\nthat it can safely synchronize its state.\n\nChange-Id: I72c5652e10f3b6de48800abfa922affbefbd250f\n"
    },
    {
      "commit": "a55136169eb3367c70f7b8686d51289483310586",
      "tree": "171bfb6b73e3073e20b246b13c40012829cc3e31",
      "parents": [
        "9c9aec721a78f23b4315ac920c26b109999a07f1",
        "e3f23a36d86fedf6c8c6503378cd6d2190c5ab23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 05 17:37:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 17:37:43 2013 +0000"
      },
      "message": "Merge \"Add new WindowId for cross-process monitoring of focus.\" into jb-mr2-dev"
    },
    {
      "commit": "e3f23a36d86fedf6c8c6503378cd6d2190c5ab23",
      "tree": "cb4cb3a9598cd94d320203f7f1ba34842599b435",
      "parents": [
        "7be6d4c421cfa6f93079517d3ee54024c8049ae5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 01 13:25:35 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 05 09:33:48 2013 -0800"
      },
      "message": "Add new WindowId for cross-process monitoring of focus.\n\nThis is a class representing a window and providing limited\ninteraction with it, which can be handed across processes.\n\nChange-Id: I22885f2064a9cc8c68d690a5858c2e28bbb6a0f3\n"
    },
    {
      "commit": "cdac497289fd2c39a352f6167dae3f77cc608cb8",
      "tree": "f56b99436d16832d6d6a8e5df89ad9450e864d22",
      "parents": [
        "7ac02bfb862aec324b00f3919ff00a95ff1effa6"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Feb 22 16:08:30 2013 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Mar 04 10:10:15 2013 -0500"
      },
      "message": "Deprecate read/write Pictures to streams.\n\nbug: 8241089\nChange-Id: I435a534f5110cb2b8aba87c047b509020a22fd67\n"
    },
    {
      "commit": "bc086862e216bbe8ffc2dfb68f09a872505d9d48",
      "tree": "4a6e35eff8fa87cdd18fe1ea053a8297c03dd8d2",
      "parents": [
        "84ea20d0ba7611782c7aa364cd41744fca359e35"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Mar 01 12:59:24 2013 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Mar 01 12:59:24 2013 +0000"
      },
      "message": "Declare VOICE_ASSIST intent\n\nBug: 8289964\nChange-Id: I241b5166a98a7a462691f0169bf1b6f4fe7b2e0f\n"
    },
    {
      "commit": "0af1c59762d0cad2ef9755b15217a253cbb32005",
      "tree": "5f1c2d74669e631b5186e994b4ca99a54c1b8900",
      "parents": [
        "aaa46155ec80f02b37ec858408d7dabbf9bc289a",
        "835b1fcc3193e0860ec33cca1c4cdff31f409473"
      ],
      "author": {
        "name": "Jonathan Dixon",
        "email": "joth@google.com",
        "time": "Thu Feb 28 22:11:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 28 22:11:36 2013 +0000"
      },
      "message": "Merge \"Deprecate various WebView related methods\" into jb-mr2-dev"
    },
    {
      "commit": "835b1fcc3193e0860ec33cca1c4cdff31f409473",
      "tree": "743e67f4488839da51f73f094e71bc78ab546499",
      "parents": [
        "42bd71e0319e8c38f7439849fef3e8a9111006be"
      ],
      "author": {
        "name": "Jonathan Dixon",
        "email": "joth@google.com",
        "time": "Mon Feb 25 12:29:33 2013 -0800"
      },
      "committer": {
        "name": "Jonathan Dixon",
        "email": "joth@google.com",
        "time": "Thu Feb 28 13:01:48 2013 -0800"
      },
      "message": "Deprecate various WebView related methods\n\nWebSettings:\nPluginState - plugins depreacted and will not be supported in future.\nsetRenderPriotity - b/6335436\nsetLightTouchEnabled - b/7683972 it\u0027s s no-op.\nsetAppCacheMaxSize - has a sensible default and will  be obsolete in\n                     future with HTML Quota Management API. b/6236763\n\nWebStorage.setQuotaForOrigin - same as setAppCacheMaxSize\n\nWebView:\nclearView, showFindDialog - buggy, can be achieved otherways\nsavePassword - not useful/usable in practice; see b/5012826\n             - stock browser used hidden APIs to achieve this feature\n\nWebIconDatabase:\nOther than the open() method, this does nothing useful. b/7331507\n\nChange-Id: I01793f7b34978046eb54033477fca2da96e69c2e\n"
    },
    {
      "commit": "0493d7997e22376524d707e407662d0f98f40c47",
      "tree": "062dcf43161513907b8b8931e7de33c19f9a8f4f",
      "parents": [
        "0e2f22a42bc91db814591164b8a2cfc3d5a5cdbc",
        "75dcb3338d85d12991249598e1ed407c8a6be1eb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 16:53:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 27 16:53:20 2013 +0000"
      },
      "message": "am 75dcb333: am 545464df: Merge \"Deprecate and document memory allocation counting.\"\n\n* commit \u002775dcb3338d85d12991249598e1ed407c8a6be1eb\u0027:\n  Deprecate and document memory allocation counting.\n"
    },
    {
      "commit": "50359c26e723d81c4c2d5e4e5fd1abfd1de7c53a",
      "tree": "bf7ef454d1112ee664ead9b99f446bcabe2263ae",
      "parents": [
        "17100f3976a537a4d037b1f27fd643fafd2abc79"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Tue Feb 26 14:47:48 2013 -0800"
      },
      "committer": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Tue Feb 26 14:54:07 2013 -0800"
      },
      "message": "Document extra account_types\n\nThe action android.settings.ADD_ACCOUNT_SETTINGS supports an extra\n\"account_types\" (See AddAccountSettings \u0026 ChooseAccountActivity) but\nthat\u0027s not documented anywhere.\nOddly, the other 2 places that support the \"authorities\" extra do not\nalso support \"account_types\".\n\nChange-Id: I99b7be0b0d6fff1cbccdf8b8b8e4fd2be9548e6c\n"
    },
    {
      "commit": "fe067a4cc586631881f51d0fd48100dd0f7cadf2",
      "tree": "34778e24f05273b7cf9cfc44269c96a9cdb0e186",
      "parents": [
        "08a92a335fd84ca427b55c6c2d39f72970d82b76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 22 19:59:23 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 26 13:30:08 2013 -0800"
      },
      "message": "Deprecate and document memory allocation counting.\n\nBug: 8241521\nChange-Id: I174c4024600c5b78e74030ecc99e784a98295f09\n"
    },
    {
      "commit": "4b141acde00840db4cd850e5cddbe2cf849830aa",
      "tree": "e4f8dc59765df0dd128c99ad1e857ebb5c9c53d2",
      "parents": [
        "6c8cd01ad509df75be5c50f2ff2cd2c902dd9194",
        "3cbdddbd5ce6f52688d88f120c1e5214ed6afbda"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 26 18:10:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 18:10:32 2013 +0000"
      },
      "message": "Merge \"Add Bundle APIs for putting/getting Binder objects.\" into jb-mr2-dev"
    },
    {
      "commit": "3cbdddbd5ce6f52688d88f120c1e5214ed6afbda",
      "tree": "9a1a203c6d07d1ff7bbb5ae2ee59d7b0d46df78d",
      "parents": [
        "f4b36ad1617920691def64c00179666e2e42d5fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 18:37:18 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 18:37:18 2013 -0800"
      },
      "message": "Add Bundle APIs for putting/getting Binder objects.\n\nThis is really useful for certain cases, you just need\nto be thoughtful and careful about what you are doing.\n\nChange-Id: I314592480e447a6d8346f5089fade35da50b3510\n"
    },
    {
      "commit": "45e9ede55f3c5049fed1fc5002bd5084d1cd7eac",
      "tree": "0c21d7b622f7b57e19319d20076d0c9e41cc17e3",
      "parents": [
        "f4b36ad1617920691def64c00179666e2e42d5fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 15:55:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 25 15:55:37 2013 -0800"
      },
      "message": "Add version code constant for JB MR2.\n\nChange-Id: I60fc76bbeb3c5e85d716179e9e3ea5758bafaf69\n"
    },
    {
      "commit": "add26dca07cc5a5c935bc68f57bee2c1cd96a79e",
      "tree": "a0d9855c7337250c4bb99be852795090699ad691",
      "parents": [
        "786525e8ea49c32b54eda5c260e125f5f2cf80e7"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Feb 22 18:43:45 2013 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Feb 22 18:43:45 2013 -0800"
      },
      "message": "add support for debug and profile contexts.\n\nChange-Id: I759e54e365a344a93d725eb4fa70a2c4c98bf05a\n"
    },
    {
      "commit": "3c1743705c4df816089e07a17753c6043b4d8e66",
      "tree": "dd68b3b869a0b24bac79d713af19eeba57f3e668",
      "parents": [
        "7a7360ad528576d560aa13fbb4e81740b2c425b2"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Feb 21 17:54:37 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Feb 22 10:44:52 2013 -0800"
      },
      "message": "Create rotation animation modes.\n\nAllow fullscreen windows to specify crossfade or jumpcut animations\nthat override the default rotation animation. Only if the incoming\nand outgoing topmost windows are fullscreen and both specify the\nsame animation to use.\n\nFixes bug 8182773.\n\nChange-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf\n"
    },
    {
      "commit": "aa7cc1e2ab9856e9c57c1664020df60afaae3d72",
      "tree": "723695432a47633b1d88d7739d3bcdca77f9ecb1",
      "parents": [
        "8a47d8eaec26d0937aee94a057f561f246748339",
        "b3038ec7cfc5d26eb0be18ae65c62825556bca0f"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 20 19:11:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 20 19:11:07 2013 +0000"
      },
      "message": "Merge \"Adding idle maintenance service.\""
    },
    {
      "commit": "e72409fe779f620382c5bd0b82f4a32ac91d9fe4",
      "tree": "61d07311305e4fba8199e64070d86cf0c8bd0f12",
      "parents": [
        "223b6b3bfeb7cfa3e844abeb36c04ab5c8318446"
      ],
      "author": {
        "name": "Kunter Gultekin",
        "email": "kuntergultekin@google.com",
        "time": "Thu Feb 07 20:18:45 2013 +0200"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 20 09:35:57 2013 -0800"
      },
      "message": "Adds vp8 profile and levels to MediaCodecInfo.\n\nIn line with ongoing effort of adding vpx encoder to\nstagefright (https://android-review.googlesource.com/50893)\nwe need to add profile and level values for VP8.\n\nVP8 profiles and levels are defined in OMX IL 1.1.2\nextension headers, which is also being added here\nhttps://android-review.googlesource.com/51272\n\nThis alters the public API.\n\nChange-Id: I2bbb91c0b8b522b90c3cdfadaba0d18134800408\nSigned-off-by: Kunter Gultekin \u003ckuntergultekin@google.com\u003e\nrelated-to-bug: 8226783\n"
    },
    {
      "commit": "1b15ba5d194c1db71d0a34ee110bd1ab169c8a29",
      "tree": "3980261c5664310d42e20284eb7e1dbe14d7d409",
      "parents": [
        "1b916301e044d1f6f672c9708c993090ecdf30cf"
      ],
      "author": {
        "name": "Luca Zanolin",
        "email": "zano@google.com",
        "time": "Wed Feb 20 14:31:37 2013 +0000"
      },
      "committer": {
        "name": "Luca Zanolin",
        "email": "zano@google.com",
        "time": "Wed Feb 20 14:31:37 2013 +0000"
      },
      "message": "Resubmitting \"Enable correction/deleting notification via EasyEditSpan.\"\"\n\nRe-run \"make update-api\"\n\nOriginal CL Ic227b8fd50066699915f69a54f225fb5330867c4\n\nChange-Id: Ifb1a0f61801c544b01193435fbfdedd7f3888971\n"
    },
    {
      "commit": "1b916301e044d1f6f672c9708c993090ecdf30cf",
      "tree": "fb959fda4b3c4488af2e37653bbde701d3c485a8",
      "parents": [
        "8cd8135b95da5b471804604b06084eecbe1cc23b"
      ],
      "author": {
        "name": "Luca Zanolin",
        "email": "zano@google.com",
        "time": "Wed Feb 20 12:27:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 20 12:27:35 2013 +0000"
      },
      "message": "Revert \"Enable correction/deleting notification via EasyEditSpan.\"\n\nThis reverts commit 8cd8135b95da5b471804604b06084eecbe1cc23b\n\nChange-Id: I6361cc47d58281ab37cb9ae0a67541b43f873147\n"
    },
    {
      "commit": "8cd8135b95da5b471804604b06084eecbe1cc23b",
      "tree": "4c2bc2ba891f16b32bfff70f5994ab1ecfc56a1a",
      "parents": [
        "8983d11c4069bc136f496987f11df7dcd5771188"
      ],
      "author": {
        "name": "Luca Zanolin",
        "email": "zano@google.com",
        "time": "Thu Feb 14 14:18:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 20 11:35:19 2013 +0000"
      },
      "message": "Enable correction/deleting notification via EasyEditSpan.\n\nWhen the \"delete\" pop-up is clicked (and the wrapped text removed), the\ncreator of the span will receive a notification of the action.\n\nSimilarly, if the user modifies (i.e., add/remove a char), the creator of\nthe span will receive a notification too. The notification will not contain any\ninformation about how the text has been modified.\n\n\nBug: 6905960\nChange-Id: Ic227b8fd50066699915f69a54f225fb5330867c4\n"
    },
    {
      "commit": "c652de8141f5b8e3c6bcf8916842b6e106413b1a",
      "tree": "d3be73e9b665365bdacd01cfc66faa24054f5a9c",
      "parents": [
        "736ef1e9dedbdd0c24e27f170034f2f869fd083f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 15 16:32:56 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 19 12:08:58 2013 -0800"
      },
      "message": "Implement display overscan support.\n\nThe window manager now keeps track of the overscan of\neach display, with an API to set it.  The overscan impacts\nhow it positions windows in the display.  There is a new set\nof APIs for windows to say they would like to go into the\noverscan region.  There is a call into the window manager to\nset the overscan region for a display, and it now has a\nconcept of display settings that it stores presistently.\n\nAlso added a new \"wm\" command, moving the window manager\nspecific commands from the \"am\" command to there and adding\na new now to set the overscan region.\n\nChange-Id: Id2c8092db64fd0a982274fedac7658d82f30f9ff\n"
    },
    {
      "commit": "ab7a2919a321af21b234d8db14748624c1b13634",
      "tree": "af99448e8910dbee5f9d5c2ffb6ac0a578735bbe",
      "parents": [
        "857089eb1efcc7d86f373edf8cb30911a95f6bac",
        "6b9b2caf2bf977508e223792bb5eba75091c232d"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Sat Feb 16 02:11:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 16 02:11:32 2013 +0000"
      },
      "message": "Merge \"Add MIRRORED_REPEAT.\""
    },
    {
      "commit": "6b9b2caf2bf977508e223792bb5eba75091c232d",
      "tree": "93d482b1d8eba79d07326ec7434228d3bdae3261",
      "parents": [
        "769a5b72dc076facae20154bf5d55b9810322b87"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Feb 15 13:25:55 2013 -0800"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Feb 15 14:53:09 2013 -0800"
      },
      "message": "Add MIRRORED_REPEAT.\n\nChange-Id: I7565da24912a3c33d8f824da9ea0899a423d3c40\n"
    },
    {
      "commit": "b3038ec7cfc5d26eb0be18ae65c62825556bca0f",
      "tree": "ab8f2079344900661bc32101b3abe3ed22ffe8f4",
      "parents": [
        "7379a95a0bb6bf430eaf3b84ddb94e4172dd0eea"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 13 14:39:30 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 15 11:04:11 2013 -0800"
      },
      "message": "Adding idle maintenance service.\n\nIt is beneficial that there is a mechanism on the platform\nto notify applications whether it is safe to perform somehow\nexpensive operations while the user is not using the device.\nThus, user experience will not be degraded. An example is\ndiscarding of unused blocks on a mounted file system instead\nof doing this on every write operation.\n\nbug:8056794\n\nChange-Id: I708bad9d3ce6c8f1d5a1c05c0abf46f81a3d464b\n"
    },
    {
      "commit": "b65ce57675ecd983c85dd4d755fe0167f33ecc87",
      "tree": "581b9b0c656872023aefe9bc9fe59ffb05445953",
      "parents": [
        "9de56d220e6fee092e6bc70b3649939f3c0bbda4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 13 18:31:00 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 13 18:40:35 2013 -0800"
      },
      "message": "Expose longer statfs values, add derived values.\n\nSince fsblkcnt_t is 8 bytes, provide methods to access larger value\ninstead of casting to int.  This would start being an issue around\n8TB filesystems.\n\nAlso add convenience methods to calculate values in bytes.\n\nChange-Id: Ib924425d8d6d82785466f611ca71800cc1e952b6\n"
    },
    {
      "commit": "fdc028383a01eaaa9bf93cb5d3ce50bd744eab52",
      "tree": "4fc660274fe4de378330b3299d9d6785f91fad5e",
      "parents": [
        "ed0ea76cf4caf9b9e4528e776101739f4409a9a7"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu Feb 07 15:09:22 2013 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 13 10:32:58 2013 -0800"
      },
      "message": "Expose EAP config API\n\nThis API allows apps to setup access to enterprise Wi-Fi networks.\n\nChange-Id: I37573d76b8bd9cad72413afdc4fc62ce57b4dc43\n"
    },
    {
      "commit": "b47e6c77b34da8bde5d706e5a25a413b8cc2e0ba",
      "tree": "5662b3e7cbbea80cebfe08943b46038d7e3ad70d",
      "parents": [
        "4f0dd02d00107fedda0fe42978ed98855dc53b85",
        "56a2301c7a1169a0692cadaeb48b9a6385d700f5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 12 23:54:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 23:54:56 2013 +0000"
      },
      "message": "Merge \"Implement issue #6646859: 4K!!!!  4K!!!!  4K!!!!\""
    },
    {
      "commit": "56a2301c7a1169a0692cadaeb48b9a6385d700f5",
      "tree": "7dfa8ab456c4e2915c095383d37847caa0d013be",
      "parents": [
        "b41af58f49d371cedf041443d20a1893f7f6c840"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 12 15:41:49 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 12 15:41:49 2013 -0800"
      },
      "message": "Implement issue #6646859: 4K!!!!  4K!!!!  4K!!!!\n\nChange-Id: Ib05a2eb6a03db50074805a437a3639a7d10684a0\n"
    },
    {
      "commit": "d04892d207d50378356feef181ac4e4eff9652d7",
      "tree": "81ef6382317512aa2c068e99b35477ca61449b60",
      "parents": [
        "e6a213ff0854a038e40f0e02ed89c3377f876e22",
        "57a85740d721caf8dcd94a545b2dd920e8e84e01"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Feb 12 23:36:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 23:36:47 2013 +0000"
      },
      "message": "Merge \"Add BidiFormatter utility\""
    },
    {
      "commit": "90f73928d563a3ccc550f182f0dfdffd30a0a64f",
      "tree": "e8614b3927c135c78bb6b308d191769d96d9b9c4",
      "parents": [
        "a77ac32457b51022ca3698a84ef0c8566d1dcfc0",
        "550b48fa18f8b392be1aab46c5bb4ec92ac3328b"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 12 23:04:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 23:04:57 2013 +0000"
      },
      "message": "Merge \"Adding public event callback instead of the internal one to UiAutomation.\""
    },
    {
      "commit": "550b48fa18f8b392be1aab46c5bb4ec92ac3328b",
      "tree": "947dc7734de8f127c98d46afee4477e69d4e0ec5",
      "parents": [
        "bbfa585d70a6e406ccb59c17eec73ccd55e5c8e0"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 12 14:56:29 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 12 15:01:09 2013 -0800"
      },
      "message": "Adding public event callback instead of the internal one to UiAutomation.\n\nIt appears that com.android.internal.util.Predicate is in the public\nAPIs but it is in the internal package. Leaking the predicate APIs is\na mistake and while we cannot fix that, this change is adding legit\npublic filter interface.\n\nbug:8183223\n\nChange-Id: I3e2c0ef685d7a832630aaa3ec2e8eae3fb058289\n"
    },
    {
      "commit": "0707dbdfc6b1c44b366c8da2e22473767c851654",
      "tree": "d4359782b991cecd1a1002ad5f99b80c6cc7ce48",
      "parents": [
        "f9d2c2e63a3c8af5c230a24a3f243c94011bf2b7",
        "bbfa585d70a6e406ccb59c17eec73ccd55e5c8e0"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 12 22:55:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 22:56:02 2013 +0000"
      },
      "message": "Merge \"Adding new APIs to UiAutomation.\""
    },
    {
      "commit": "d25d037890a8af7e04f1e6c75e5508566fbc8105",
      "tree": "1ca8b835fe43568442ccf854322c99f777b9b446",
      "parents": [
        "6b2c7600e946b4130585f8665f9720d09feb6411",
        "5b08a2dc780a26e1557cfb4806de91f9f6bfb855"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Feb 12 22:22:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 22:22:10 2013 +0000"
      },
      "message": "Merge \"Add FieldPacker contructor that accepts external storage.\""
    },
    {
      "commit": "bbfa585d70a6e406ccb59c17eec73ccd55e5c8e0",
      "tree": "a78060ccbebfe8959ebc0797d9c57c284f735636",
      "parents": [
        "ae16a9b2cae5c2f750151a2f6e9e7f62efb38d66"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 11 19:38:12 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 11 19:59:45 2013 -0800"
      },
      "message": "Adding new APIs to UiAutomation.\n\n1. Accessibility service may set a flag to request a compressed\n   view of the node tree representing the screen. The compressed\n   state does not contain nodes that do to react to user actions\n   and do not draw content, i.e. they are dumb view managers. This\n   compressed hierarchy was very beneficial to the test team and\n   this change is exposing the APIs. The compression has to be\n   configurable since old tests are written against uncompressed\n   view tree. Basically we do not hide the fact that UIAutomation\n   is simply an accessibility service with some other useful APIs.\n\nbug:8051095\n\n2. Accessibility service can perform global actions such as opening\n   notifications, opening recent apps, etc. These are also needed\n   for UI testing since there is no other way to do it via the\n   existing UIAutomation APIs. Basically we do not hide the fact\n   that UIAutomation is simply an accessibility service with some\n   other useful APIs.\n\nbug:8117582\n\nChange-Id: I7b6e24b5f7a973fdada0cc199cff9f882b10720b\n"
    },
    {
      "commit": "57a85740d721caf8dcd94a545b2dd920e8e84e01",
      "tree": "4a7334850018c38d1c8f02db230e8edc3497de7a",
      "parents": [
        "981e60edc3ed91ea8b5e1dae98669b88b175e19b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Jan 31 13:29:36 2013 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Feb 11 14:27:10 2013 -0800"
      },
      "message": "Add BidiFormatter utility\n\nSee bug #7587797 Need BidiFormatter class in Android API\n\nChange-Id: I999282b9a4c76d8b4a3fc254b0c12ca95fa6ea4a\n"
    },
    {
      "commit": "97dcc20e6d6fcce712ab1101bfe03c74aa2b6682",
      "tree": "65787c432b76178f0d37aeedd48a843292a1b0fa",
      "parents": [
        "dad85fb7474c2b7e214ebc06c4cc449f26860c42",
        "7ac40e38696aa74d7b7938add8fdbc47180ae424"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 08 22:01:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 22:01:05 2013 +0000"
      },
      "message": "Merge \"Deprecate useless BitmapDrawable constructor Bug #2590549\""
    },
    {
      "commit": "7ac40e38696aa74d7b7938add8fdbc47180ae424",
      "tree": "581d7c6a663d2059cdc824a92ecc45fcf04afa5b",
      "parents": [
        "d71ff91dcd79f6beea4bbe768ab3bcbb1a6d7c39"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 08 13:58:53 2013 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 08 14:00:15 2013 -0800"
      },
      "message": "Deprecate useless BitmapDrawable constructor\nBug #2590549\n\nChange-Id: Icb45bf2d9836c43ed0825105f64d7b98afcdcdac\n"
    },
    {
      "commit": "5b08a2dc780a26e1557cfb4806de91f9f6bfb855",
      "tree": "c9753d9d82485e889db91cbe295a05cee9826f74",
      "parents": [
        "e68c1ce1d41ac43b0d59015f3556ca20bf7e4548"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Feb 08 11:22:17 2013 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Feb 08 11:22:17 2013 -0800"
      },
      "message": "Add FieldPacker contructor that accepts\nexternal storage.\n\nChange-Id: I9c796f925802b202eae7e0fe1750a10140ef4a47\n"
    },
    {
      "commit": "eb8c29cb7ece3f4b7ad18e5393b07fa7418a541c",
      "tree": "df082f98e7d8a22de25dfea441a167d949e4292a",
      "parents": [
        "36b8d38e20074699857aa030ebd5f304c01da711"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Feb 07 12:16:41 2013 -0800"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Feb 07 15:22:36 2013 -0800"
      },
      "message": "Add API entry points for clipped kernels.\n\nChange-Id: Idf474a5ac391c41e9215cd2f03e7f8c4bfb875fa\n"
    },
    {
      "commit": "92be93a94edafb5906e8bc48e6fee9dd07f5049e",
      "tree": "2b92ad71467ce1c9ea64c14dd4af31aff7c87788",
      "parents": [
        "fde19b106b2b77bc3540b04445357870caf878b5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jan 15 17:25:09 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Feb 07 13:59:26 2013 -0800"
      },
      "message": "Improve TrafficStats UID APIs.\n\nDeprecate transport layer statistics, leaving only the summarized\nnetwork layer statistics.\n\nImprove documentation to be clear about layers where measurements\noccur, and their behavior since boot.  Under the hood, move to using\nxt_qtaguid UID statistics.\n\nBug: 6818637, 7013662\nChange-Id: I9f26992e5fcdebd88c671e5765bd91229e7b0016\n"
    },
    {
      "commit": "bcc46a0d037e62fcb5e5f0f5e1acef5a8c1314b0",
      "tree": "fdd758a200c316d93bef3d6b0699d0b1a3287d00",
      "parents": [
        "92826459d101d2d76b2d75347232b1fee08962cf"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 06 11:56:00 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 06 11:58:03 2013 -0800"
      },
      "message": "Set accessibility cursor in non-text views with content description.\n\nWe support text traversal at a granularity over non-next views with\ncontent description, hence we should support setting the cursor position\nin such views.\n\nbug:8134469\n\nChange-Id: I4dba225b0ade795b7a20c201fb906ae7146c065d\n"
    },
    {
      "commit": "eecedffe4286321c3a4e58ef66a536420cd1f239",
      "tree": "6447d77048d590693b38aa56c3d1cc15f9e196b4",
      "parents": [
        "d36aa68ea2593494ae24dc6ce9c16d155600956d"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 05 14:03:47 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 05 14:07:15 2013 -0800"
      },
      "message": "Renaming some APIs\n\nChange-Id: I9e226d39648796f95dd0e86ffecbb3f93544243b\n"
    },
    {
      "commit": "3b53da493440efbacd147d1aedcea8679c3a642b",
      "tree": "5a15948ba44270f21db88fb2c55f00ecca09d980",
      "parents": [
        "c24b14481527e2f87ddb3a156b8217d32c645b10",
        "149ceec6ebac9dd000c213fc91ee8e5c08522cc6"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Mon Feb 04 17:58:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 17:58:13 2013 +0000"
      },
      "message": "Merge \"Sort out permission around \"instant text response\"\""
    },
    {
      "commit": "1df477acf60538f9de18bd597e090d075fa83509",
      "tree": "a163bd932074c49b9fac6792ca85d12569559dd5",
      "parents": [
        "b06870bf49055721bd43b5bbd742feb8422fc071"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jan 31 16:19:18 2013 -0800"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Feb 01 16:29:59 2013 -0800"
      },
      "message": "Add initial plumbing for brightness keys\n\nChange-Id: I595e8a25e6c245e4b22f06df9a8acdbb75e4b041\n"
    },
    {
      "commit": "f8ce2b94df9f7fc2b6da104699c5958c6d8784f3",
      "tree": "b95af5e5437d8d74e81795063c4091f0d83dfe71",
      "parents": [
        "d4b1d9cf9cee4bd4f234e30069996dc7e449f0e7",
        "2b378cde411b551464f0040e935692073cfb119f"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Jan 31 19:28:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 19:28:37 2013 +0000"
      },
      "message": "Merge \"Fix progress bar and spinner in RTL mode\""
    },
    {
      "commit": "2b378cde411b551464f0040e935692073cfb119f",
      "tree": "10a1c9fba9ac673c95775d28e41421e51bd3c1f1",
      "parents": [
        "da01da176d4798d293c90d6280ddc59c780baaa3"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Jan 30 16:39:33 2013 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Jan 31 11:20:30 2013 -0800"
      },
      "message": "Fix progress bar and spinner in RTL mode\n\nAdd \"mirrorForRtl\" property for ProgressBar (default is \"false\") and\nuse it accordingly to the following RTL rules:\n\n- time still goes from left to right\n- clocks still rotate clockwise\n\nChange-Id: Ib91ce6ab341aa6097c0f43b13703174a2ee9ec70\n"
    },
    {
      "commit": "f48a2d30c5d5f7c167310ff9ca1cd2310121be7c",
      "tree": "1ea858e5f14a80afcc4d9b58ca5c6f6c8ca0b09e",
      "parents": [
        "ec695824af7ab263eaae613b87f2c0b24f176f91",
        "7c51284d8019ed04ab296be84839d8a90ac042fa"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jan 31 07:53:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 07:53:43 2013 +0000"
      },
      "message": "Merge \"Add accessibility actions for text editing.\""
    },
    {
      "commit": "7c51284d8019ed04ab296be84839d8a90ac042fa",
      "tree": "54a952cca4a44f64918ecdcbd4f5c7f2f778f7c6",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 30 23:02:08 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 30 23:47:17 2013 -0800"
      },
      "message": "Add accessibility actions for text editing.\n\nCurrently text editing is pretty hard (certain operations even\nimpossible) for a blind person. To address the issue this change\nadds APIs that enable an accessibility service to perform basic\ntext editing operations such as copy, paste, cut, set selection,\nextend selection while moving at a given granularity.\n\nThe new APIs enable an accessibility service to expose a gesture\ndriven efficient text editing facility.\n\nbug:8098384\n\nChange-Id: I82b200138a3fdf4c0c316b774fc08a096ced29d0\n"
    },
    {
      "commit": "ec695824af7ab263eaae613b87f2c0b24f176f91",
      "tree": "6bd7205d726a1bdc98023002914559bc0c3d6141",
      "parents": [
        "c5401d4451dfb5edb627a35c1d3ad90cbcef77a1",
        "3822896e226567c6cd3ef84518d318abd33a7624"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jan 31 03:16:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 03:16:59 2013 +0000"
      },
      "message": "Merge \"Remove \"enhance web scripts\" from settings and make it requested by plug-ins.\""
    },
    {
      "commit": "647abce570f3afdd667e06e9ad71738efff0e8a8",
      "tree": "1f58fc00dd1eb2c71d425a431600bf7e56440852",
      "parents": [
        "29449a3da7d859e8273612527949e0a200b8e798"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Jan 09 11:52:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 30 09:37:05 2013 +0000"
      },
      "message": "Deprecate unused and implementation-specific parts of TTS API\n\nSecond changeset, first one was committed too hastily.\n\nTTS Voice-data related API was originally written with\none engine in mind (pico sVox TTS). It exposes implementation\ndetails that should be private to the engine implementation.\n\n- Deprecating fields of ACTION_CHECK_TTS_DATA results that were\nused by sVox language packs to find out location of voice data.\nThose fields are TTS engine implementation details and should be\nprivate:\nEXTRA_VOICE_DATA_ROOT_DIRECTORY\nEXTRA_VOICE_DATA_FILES\nEXTRA_VOICE_DATA_FILES_INFO\n- Deprecating fields of ACTION_CHECK_TTS_DATA request that are\nproviding unnescesary functionality (it can be easily done on client\nside):\nEXTRA_CHECK_VOICE_DATA_FOR\n- Deprecating some of the return codes of ACTION_CHECK_TTS_DATA - they\nare specific to sVox pico voice data and in all cases can be replaced\nby CHECK_VOICE_DATA_FAIL result code.\nCHECK_VOICE_DATA_BAD_DATA\nCHECK_VOICE_DATA_MISSING_DATA\nCHECK_VOICE_DATA_MISSING_VOLUME\n- Changing semantics of ACTION_TTS_DATA_INSTALLED intent. It\u0027s now\nmore generic and covers any change of available voice data set (so, not only\nadding languages, but also removing them should trigger broadcast. Adding and\nremoving features to existing locale (like embedded synthesis) should be marked\nby broadcast as well).\n- Deprecating its EXTRA_TTS_DATA_INSTALLED result field - client should discover\nthe change by running ACTION_CHECK_TTS_DATA intent.\n- Making GetSampleText intent public again - it\u0027s used by most TTS engines to\nprovide unique demonstation data.\n- Deprecating TextToSpeech.OnUtteranceCompletedListener - it was replaced\nby UtteranceProgressListener in API level 15, but no one put deprecation tag\non it.\n\nChange-Id: Ia58af7f218dc1568570712f435782d2003260e82\n"
    },
    {
      "commit": "e8ae8b8982da37ca77bbaed8e98349d51dec824a",
      "tree": "11bf6ced39e4ed70de530b9c48e7deea8d4560a4",
      "parents": [
        "7f54ffd0296ce6008b5ea949796e60248a85e2d8",
        "fdb3f094ca967f8267f5bd30635063dc294d176f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 23:55:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 23:56:20 2013 +0000"
      },
      "message": "Merge \"Add GET_CONTENT protocol for allowing multiple selection.\""
    },
    {
      "commit": "3822896e226567c6cd3ef84518d318abd33a7624",
      "tree": "6e755134d69f6b6ecac12d0ee949124e42ed43a3",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 01:04:35 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 13:56:22 2013 -0800"
      },
      "message": "Remove \"enhance web scripts\" from settings and make it requested by plug-ins.\n\nCurrently we have an \"enhance web accessibility\" setting that has to be\nenabled to make sure web content is accessible. We added the setting to\nget user consent because we are injecting JavaScript-based screen-reader\npulled from the Google infrastructure. However, many users do not know\nthat and (as expected) do not read the user documentation, resulting in\ncritique for lacking accessibility support in WebViews with JavaScript\nenabled (Browser, Gmail, etc).\n\nTo smoothen the user experience now \"enhance web accessibility\" is a\nfeature an accessibility plug-in can request, similarly to explore by\ntouch. Now a user does not need to know that she has to explicitly\nenable the setting and web accessibility will work out-of-the-box.\n\nBefore we were showing a dialog when a plug-in tries to put the device\nin a touch exploration mode. However, now that we have one more feature\na plug-in can request, showing two dialogs (assume a plug-in wants both\nfeatures) will mean that a user should potentially deal with three\ndialogs, one for enabling the service, and one for each feature. We\ncould merge the dialogs but still the user has to poke two dialogs.\n\nIt seems that the permission mechanism is a perfect fit for getting\nuser permission for an app to do something, in this case to enable\nan accessibility feature. We need a separate permission for explore\nby touch and enhance web accessibility since the former changes the\ninteraction model and the latter injects JavaScript in web pages. It\nis critical to get user consent for the script injection part so we\nneed a well-documented permission rather a vague umbrella permission\nfor poking accessibility features. To allow better grouping of the\naccessibility permissions this patch adds a permission group as well.\n\nbug:8089372\n\nChange-Id: Ic125514c34f191aea0416a469e4b3481ab3200b9\n"
    },
    {
      "commit": "573a18ccd883d18046dea600855d34f5c9a57fa8",
      "tree": "fec1cb595cea04d937edb6ed615b0d8d94bf7ec5",
      "parents": [
        "686f20c264ebdafea1638568f543972539088ec6",
        "f5f7d9751a43b699b6e1c2e41ea0519bc54e39cd"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 10:09:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 10:10:30 2013 +0000"
      },
      "message": "Merge \"Fixing the build\""
    },
    {
      "commit": "f5f7d9751a43b699b6e1c2e41ea0519bc54e39cd",
      "tree": "c7ab60fe6fd38933e8fe90587e3ce8997ed599d6",
      "parents": [
        "dc4271ce1d6e47a193fe0119ca180bd37f3d1311"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 02:08:54 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 02:08:54 2013 -0800"
      },
      "message": "Fixing the build\n\nChange-Id: I8d47c7094efc8ff458cdac58a761d5f187c8fc32\n"
    },
    {
      "commit": "686f20c264ebdafea1638568f543972539088ec6",
      "tree": "ef49e63ff21fb5b33e298ff7945935eba5d6a7b4",
      "parents": [
        "6b30ba86a4bfdbe5d87fed29720c4b4431d3685b",
        "dc4271ce1d6e47a193fe0119ca180bd37f3d1311"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 09:39:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 09:40:25 2013 +0000"
      },
      "message": "Merge \"Removing duplicated tests that use hidden APIs\""
    },
    {
      "commit": "dc4271ce1d6e47a193fe0119ca180bd37f3d1311",
      "tree": "8a33e3a55d96d30762202b94010d23bb6c93ba68",
      "parents": [
        "91488eed1745ea0426a73306f133e02d62580f1a"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 01:37:54 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 01:38:48 2013 -0800"
      },
      "message": "Removing duplicated tests that use hidden APIs\n\nChange-Id: If3e32e8659fcb4dc2186fea668601a93f4556a73\n"
    },
    {
      "commit": "3a34d17412a5a304e39be1966a16627677d2136f",
      "tree": "6f4cb2c0fab6282f1c0318b05200487191cc1021",
      "parents": [
        "91488eed1745ea0426a73306f133e02d62580f1a"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 28 19:55:35 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 28 19:55:35 2013 -0800"
      },
      "message": "Fixing the build\n\nChange-Id: Ief7654775307c829a60e65217ae821aa6801303c\n"
    },
    {
      "commit": "d0fd54648ca6249f56cf469c57181b5a7bbb71d0",
      "tree": "4c710f5a98e913d87290a312b89a46370847ed60",
      "parents": [
        "5924dc4d7a42d04011d2e67aa3f9e28b7d940681",
        "80943d8daa6ab31ab5c486d57aea406aa0730d58"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "message": "Merge \"Adding UI test automation APIs.\""
    },
    {
      "commit": "fdb3f094ca967f8267f5bd30635063dc294d176f",
      "tree": "9c03619e2485224b7d7f6104e270d78ea2aa32ea",
      "parents": [
        "93f770b59fa1bd0f2a5c18fcfaffd2a1fc54f585"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 28 15:10:48 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 28 15:10:48 2013 -0800"
      },
      "message": "Add GET_CONTENT protocol for allowing multiple selection.\n\nChange-Id: I4c14d32112523d7ab603b2a4e374849dd1c3eff6\n"
    },
    {
      "commit": "de07d41f6396f9f040fed2b6780932d8e5dbb482",
      "tree": "9ffe4379de57a1630ca6d7043e860bfac30f27da",
      "parents": [
        "e6a6d83845d40526cab2d91d0c92b32d4267f5e1",
        "54ca7aef2e12b240caa6fb1a1e65abd234bea337"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Jan 28 17:07:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 17:07:39 2013 +0000"
      },
      "message": "Merge \"Annotate Locations coming from mock providers\""
    },
    {
      "commit": "5e45ee6752528791deb66b83d76250685de15d47",
      "tree": "d60220c4aa9feae8b5b3a45946b88f46865ab5ff",
      "parents": [
        "d8ba6cc9217e2e042106870e9d2e70cfd80426d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 24 19:13:44 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 25 11:25:48 2013 -0800"
      },
      "message": "App ops: you can now turn off operations.\n\nAlso add new ops for calendar and wi-fi scans, finish\nimplementing rejection of content provider calls, fix\nissues with rejecting location calls, fix bug in the\nnew pm call to retrieve apps with permissions.\n\nChange-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417\n"
    },
    {
      "commit": "d8ba6cc9217e2e042106870e9d2e70cfd80426d6",
      "tree": "005a8e898ee1a6561ad80294ec0306fb4e23b830",
      "parents": [
        "51ff575d1bd0337a68ae173ee699ff8298ddb703",
        "f9c5e0fe837a3090820da502ecaabc5accc00ace"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 22:47:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 23 22:47:57 2013 +0000"
      },
      "message": "Merge \"Add new API to propagate contextual data to the assist action\""
    },
    {
      "commit": "f9c5e0fe837a3090820da502ecaabc5accc00ace",
      "tree": "bbc72079c958f69d9906f4a4ae803dd88fcf8083",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "message": "Add new API to propagate contextual data to the assist action\n\nWhen launching an assist, we have a new API allowing the\ncurrent foreground activity/application to provide additional\narbitrary contextual information that is stuffed in the\nassist intent before it is launched.\n\nChange-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4\n"
    },
    {
      "commit": "80943d8daa6ab31ab5c486d57aea406aa0730d58",
      "tree": "cb7738eff465941484aac3eb6ba15ba365aea576",
      "parents": [
        "64cae1a608c196c2bd1d9e7cfd2a1632fd0e5b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 02 10:25:37 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 17:56:53 2013 -0800"
      },
      "message": "Adding UI test automation APIs.\n\nThis change adds APIs support for implementing UI tests. Such tests do\nnot rely on internal application structure and can span across application\nboundaries. UI automation APIs are encapsulated in the UiAutomation object\nthat is provided by an Instrumentation object. It is initialized by the\nsystem and can be used for both introspecting the screen and performing\ninteractions simulating a user. UI test are normal instrumentation tests\nand are executed on the device.\n\nUiAutomation uses the accessibility APIs to introspect the screen and\na special delegate object to perform privileged operations such as\ninjecting input events. Since instrumentation tests are invoked by a shell\ncommand, the shell program launching the tests creates a delegate object and\npasses it as an argument to started instrumentation. This delegate\nallows the APK that runs the tests to access some privileged operations\nprotected by a signature level permissions which are explicitly granted\nto the shell user.\n\nThe UiAutomation object also supports running tests in the legacy way\nwhere the tests are run as a Java shell program. This enables existing\nUiAutomator tests to keep working while the new ones should be implemented\nusing the new APIs. The UiAutomation object exposes lower level APIs which\nallow simulation of arbitrary user interactions and writing complete UI test\ncases. Clients, such as UiAutomator, are encouraged to implement higher-\nlevel APIs which minimize development effort and can be used as a helper\nlibrary by the test developer.\n\nThe benefit of this change is decoupling UiAutomator from the system\nsince the former was calling hidden APIs which required that it is\nbundled in the system image. This prevented UiAutomator from being\nevolved separately from the system. Also UiAutomator was creating\nadditional API surface in the system image. Another benefit of the new\ndesign is that now test cases have access to a context and can use\npublic platform APIs in addition to the UiAutomator ones. Further,\nthird-parties can develop their own higher level test APIs on top\nof the lower level ones exposes by UiAutomation.\n\nbug:8028258\n\nAlso this change adds the fully qualified resource name of the view\u0027s\nid in the emitted AccessibilityNodeInfo if a special flag is set while\nconfiguring the accessibility service. Also added is API for looking\nup node infos by this id. The id resource name is relatively more stable\ncompared to the generaed id number which may change from one build to\nanother. This API facilitate reuing the already defined ids for UI\nautomation.\n\nbug:7678973\n\nChange-Id: I589ad14790320dec8a33095953926c2a2dd0228b\n"
    },
    {
      "commit": "fd7adedebf88427162a3ce27fcc9cfd3893c869d",
      "tree": "d9dfb04e5d0972a6ae7bf92431b0d48925e97b48",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "message": "Add new disabled state for \"optional\" built-in apps.\n\nThe disabled state allows you to make an app disabled\nexcept for whatever parts of the system still want to\nprovide access to them and automatically enable them\nif the user want to use it.\n\nCurrently the input method manager service is the only\npart of the system that supports this, so you can put\nan IME in this state and it will generally look disabled\nbut still be available in the IME list and once selected\nswitched to the enabled state.\n\nChange-Id: I77f01c70610d82ce9070d4aabbadec8ae2cff2a3\n"
    },
    {
      "commit": "54ca7aef2e12b240caa6fb1a1e65abd234bea337",
      "tree": "162f4680a75081bbfe363a6c48a3d97367d4bd43",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 08 09:39:50 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 22 09:39:47 2013 -0800"
      },
      "message": "Annotate Locations coming from mock providers\n\nLocationManagerService now annotates incoming Location objects that\nhave come from mock location providers. The new isFromMockProvider()\nmethod can be called on any Location to determine whether the\nprovider that supplied the Location was a mock location provider.\n\nBug: 6813235\nChange-Id: Ib5140e93ea427f2e0b0036151047f87a02b4d23a\n"
    },
    {
      "commit": "66a017b63461a22842b3678c9520f803d5ddadfc",
      "tree": "07a0d63d0b362628ecbf6083aadf726d0ae02636",
      "parents": [
        "54781207d31fd0fb33c6038b6999ba649fc488b2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 17 18:18:22 2013 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 17 18:25:47 2013 -0800"
      },
      "message": "Always give ContentResolver a valid Context.\n\nAlso add MockContentResolver constructor to provide a Context, and\nmove to singleton ActivityThread, since there is only one inside\neach process.  This makes ActivityThread accessible from threads like\nInstrumentationThread.\n\nChange-Id: Ib8b18f1b9bba8820ff412d782a43511066eabf24\n"
    },
    {
      "commit": "e799175b6ba3aadd972f4b861758d675d1f93987",
      "tree": "2468fd79769eecff660a7c2d2163fb8ae0a11fca",
      "parents": [
        "35654b61e8fe7bc85afcb076ddbb590d51c5865f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 17:56:46 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 18:10:40 2013 -0800"
      },
      "message": "AppOps: fix nested op tracking, new API to get apps using\npermissions.\n\nChange-Id: I20c7bd58febc01d6911a90440867eaacd133c464\n"
    },
    {
      "commit": "02f304f721d936566d6983500d25b223d96e6e9d",
      "tree": "490c5cc2ac998f96a5b3d08111a3331bcf3e7325",
      "parents": [
        "c19b54975214a12225a1669ae18b0005a1357189"
      ],
      "author": {
        "name": "Yorke Lee",
        "email": "yorkelee@google.com",
        "time": "Mon Jan 14 08:57:43 2013 -0800"
      },
      "committer": {
        "name": "Yorke Lee",
        "email": "yorkelee@google.com",
        "time": "Mon Jan 14 11:38:39 2013 -0800"
      },
      "message": "Allow supplying extras when assigning QuickContactsBadge\n\nAdd assignContactFromEmail(String, boolean, Bundle)\nand assignContactFromPhone(String, boolean, Bundle)\nthat allow the caller to provide a bundle of extras to\npre-populate the ContactEditorFragment with if a contact\nis not found with the requested email address or phone number.\n\nBug: 7038382\nChange-Id: Ib77fa484e1c39cb60d7acc27efe3a3fcf3fee62f\n"
    },
    {
      "commit": "b00d9f0e07993d47d49cfa2cf8d7026b8c5b0f2e",
      "tree": "5891ae1ff843b69eb5be6d3ff3ab9d4f2794a042",
      "parents": [
        "14e066df1ca863667c6c6d745ad61bb07ac5082c"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Jan 10 14:12:52 2013 -0800"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Jan 10 19:23:39 2013 -0800"
      },
      "message": "Updating new widget api to account for view type count\n\nChange-Id: Iab3a905aaec0b42ef31cd23e0711f6f7bf299486\n"
    },
    {
      "commit": "ee49a3a007b9eb63bcb27eac492060b50ff75ce7",
      "tree": "050961b3fae3db22e47e5d862d3859dc6c905c01",
      "parents": [
        "6b0fb368707a2d47dd3fbeaf01c214de5227baa0",
        "a985c3bb145c75176f105e1188cd42c8373d503d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 16:11:05 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 16:11:06 2013 -0800"
      },
      "message": "Merge \"Add K api version.\""
    },
    {
      "commit": "6b0fb368707a2d47dd3fbeaf01c214de5227baa0",
      "tree": "ba599a214dc47552cd87803cfbd812b5e0685597",
      "parents": [
        "daa944a167c3e7365ea6f9b6712950edd5ca2dd4",
        "1506921e8e7897be8297365dcaf15f4c6d6eb472"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 16:09:55 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 16:10:14 2013 -0800"
      },
      "message": "Merge \"Revert \"App home directories are now 0700 for targetSdkVersion \u003e 17\"\""
    },
    {
      "commit": "a985c3bb145c75176f105e1188cd42c8373d503d",
      "tree": "b3194ae908d2cf9ce98e6ceaa433514d87e2f709",
      "parents": [
        "1506921e8e7897be8297365dcaf15f4c6d6eb472"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 16:03:14 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 16:03:14 2013 -0800"
      },
      "message": "Add K api version.\n\nChange-Id: I2b74e06f8bda8b23c5cc4280af4b18a5ad66a6c2\n"
    },
    {
      "commit": "1506921e8e7897be8297365dcaf15f4c6d6eb472",
      "tree": "2616559fc595745fc7b07962d43ffa6b54329f38",
      "parents": [
        "b102fb8ed5acdfa5f47e60b7d9fef7b5d74bd9fd"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 15:54:56 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 15:54:56 2013 -0800"
      },
      "message": "Revert \"App home directories are now 0700 for targetSdkVersion \u003e 17\"\n\nThis reverts commit 92091fa9636403728fe94cc83400495a8612c2d3.\n\nBug: 7966399\nBug: 7208882\n"
    },
    {
      "commit": "2e9f65f978397d112dbfb134d374588515bb644a",
      "tree": "295eb06b1215738f9ce49a652274176c3e27e281",
      "parents": [
        "ceea88578ce53bdee96c561cd5fa5dae725f9a7b",
        "e55fe4f3bb19992d8dcfc5cb19528f9a52cdcbb1"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 09 12:28:38 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 12:28:44 2013 -0800"
      },
      "message": "Merge \"Make NfcAdapter states public and fix build.\""
    },
    {
      "commit": "e55fe4f3bb19992d8dcfc5cb19528f9a52cdcbb1",
      "tree": "8bce13d6bbbec662179c60e564b64f9f6f5a368a",
      "parents": [
        "4ba5eaf7f3b92656311f1ea1869d359729ba88e4"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 09 12:27:22 2013 -0800"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 09 12:27:22 2013 -0800"
      },
      "message": "Make NfcAdapter states public and fix build.\n\nChange-Id: Idb2dd5e524cda5e3c03d4f2689266fa03be4ea13\n"
    },
    {
      "commit": "8a9120f04ec0ef403e60e6225badab7a69bccf59",
      "tree": "5c431dbafbc6f4317202f441ea25ff6f5b586b7a",
      "parents": [
        "b102fb8ed5acdfa5f47e60b7d9fef7b5d74bd9fd",
        "4ba5eaf7f3b92656311f1ea1869d359729ba88e4"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 09 11:45:02 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 11:45:15 2013 -0800"
      },
      "message": "Merge \"Make NfcAdapter STATE_CHANGED intent action public.\""
    },
    {
      "commit": "4ba5eaf7f3b92656311f1ea1869d359729ba88e4",
      "tree": "e29ba83aad6e528002c52089c0b74e2c25f47f45",
      "parents": [
        "0aa212e32ad0ef1333941e2c5228c7528da3c40f"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jan 08 12:49:47 2013 -0800"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 09 11:41:16 2013 -0800"
      },
      "message": "Make NfcAdapter STATE_CHANGED intent action public.\n\nBug: 5141885\nChange-Id: Ia357409a51fb45f1739bb37940fa746f94fa9056\n"
    },
    {
      "commit": "176baa7de11be910c36b7b4dfa7826b55ec97963",
      "tree": "9287b117524fc147849f1c921273fa3fcacbf26a",
      "parents": [
        "8a3d9f03199b93e07a5f5edc14660eab6cd233e7"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Jan 09 03:36:23 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 03:36:23 2013 -0800"
      },
      "message": "Revert \"Deprecate unused and implementation-specific parts of TTS API\"\n\nThis reverts commit 8a3d9f03199b93e07a5f5edc14660eab6cd233e7\n\nChange-Id: I5a5c18f72ae2ea73c21dc27c7469c68d6b4b4c24\n"
    },
    {
      "commit": "8a3d9f03199b93e07a5f5edc14660eab6cd233e7",
      "tree": "3058626ef8ba6527a5467602c58431b14c8feb46",
      "parents": [
        "16ad17705eb22bb02a551cddd68f65b8addaa4d6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Oct 29 15:20:59 2012 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 03:08:29 2013 -0800"
      },
      "message": "Deprecate unused and implementation-specific parts of TTS API\n\nTTS Voice-data related API was originally written with\none engine in mind (pico sVox TTS). It exposes some implementation\ndetails that should be private to the engine implementation.\n\n- Deprecating fields of ACTION_CHECK_TTS_DATA results that were\nused by sVox language packs to find out location of voice data.\nThose fields are TTS engine implementation details and should be\nprivate:\nEXTRA_VOICE_DATA_ROOT_DIRECTORY\nEXTRA_VOICE_DATA_FILES\nEXTRA_VOICE_DATA_FILES_INFO\n\n- Deprecating fields of ACTION_CHECK_TTS_DATA request that are\nproviding unnescesary functionality (it can be easily done on client\nside):\nEXTRA_CHECK_VOICE_DATA_FOR\n\n- Deprecating some of the return codes of ACTION_CHECK_TTS_DATA - they\nare specific to sVox pico voice data and in all cases can be replaced\nby CHECK_VOICE_DATA_FAIL result code.\nCHECK_VOICE_DATA_BAD_DATA\nCHECK_VOICE_DATA_MISSING_DATA\nCHECK_VOICE_DATA_MISSING_VOLUME\n\n- Changing semantics of ACTION_TTS_DATA_INSTALLED intent. It\u0027s now\nmore generic and covers any change of available voice data set (so, not only\nadding languages, but also removing them should trigger broadcast. Adding and\nremoving features to existing locale (like embedded synthesis) should be marked\nby broadcast as well).\n\n- Deprecating its EXTRA_TTS_DATA_INSTALLED result field - client should discover\nthe change by running ACTION_CHECK_TTS_DATA intent.\n\n- Making GetSampleText intent public again - it\u0027s used by most TTS engines to\nprovide unique demonstation data.\n\n- Deprecating TextToSpeech.OnUtteranceCompletedListener - it was replaced\nby UtteranceProgressListener in API level 15, but no one put deprecation tag\non it.\n\nChange-Id: I6609cde5c50236457f14955e2e7c0481b2b217ec\n"
    },
    {
      "commit": "35d67ec31aa43926536a6aefb5a49401509d6fa5",
      "tree": "b57ca0e276a22780c020d3538e38a291685e8681",
      "parents": [
        "0ada5d656de4c1ac76bc06221a1f5e561e50e258",
        "8ac6a63a94494b356b30f076d7ad52fcc6024935"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Mon Jan 07 09:18:51 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 07 09:18:52 2013 -0800"
      },
      "message": "Merge \"Put some useful information in User-Agent Header\""
    },
    {
      "commit": "8140d7b0f62a6e5b54e318c959f2d501f7ee6784",
      "tree": "0cad9e9ca3a19e9e60ca2c86826e9a5b5f67b1b3",
      "parents": [
        "d6a7925d14231c016e84db53fb5a5bbab5a07d84"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Dec 13 17:01:09 2012 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Jan 02 11:20:29 2013 -0800"
      },
      "message": "yuv\n\nChange-Id: I3e99740250f1a3cb356bf6906528abc71f8cee2e\n"
    },
    {
      "commit": "69bf687e5335db07d32fd68438ff64e18b9e9e8a",
      "tree": "72373056552458e58db299a9297c3072180c3d3e",
      "parents": [
        "e2d3156badd95ecb1b4f6e4b07f4e3acf2f5dffa",
        "d1c306a9e66f8e541f866a6f3740959ed8cc70a6"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Dec 28 11:53:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 28 11:53:46 2012 -0800"
      },
      "message": "Merge \"Add API support for 3D allocations.\""
    },
    {
      "commit": "d1c306a9e66f8e541f866a6f3740959ed8cc70a6",
      "tree": "18597dc6fdbaa3e1feb8a1aca417751d8fec2950",
      "parents": [
        "412fbe7f8fb0fc2892308faf52c31dcc01e1cf5a"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Dec 27 20:26:41 2012 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Dec 27 20:26:41 2012 -0800"
      },
      "message": "Add API support for 3D allocations.\n\nChange-Id: I19c525f90135d83caec545e77e8f61a957d220ee\n"
    },
    {
      "commit": "0562a0dcc1bcbda59c753e659fbb2f9c3cd76869",
      "tree": "d8c705561299be3720103004f5ec12fd17d21517",
      "parents": [
        "e78fb2c680e1f515a76643c2532c414b8fca06b2",
        "00bb454bd0b26c05e1dea5651b5edfd9c69ef2e0"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Dec 19 13:03:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 19 13:03:38 2012 -0800"
      },
      "message": "Merge \"Add USAGE_SHARED for Allocations.\""
    },
    {
      "commit": "00bb454bd0b26c05e1dea5651b5edfd9c69ef2e0",
      "tree": "1abe5d2bfafb673a8f547c1c786ef79403afd641",
      "parents": [
        "2c1dc9a0e95bc55b622f67c6ca82d78521d89824"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Dec 17 16:35:06 2012 -0800"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Dec 19 13:01:03 2012 -0800"
      },
      "message": "Add USAGE_SHARED for Allocations.\n\nChange-Id: I61efafffaa649df68762d9ae29e029cd1e1bc6bc\n"
    },
    {
      "commit": "8ac6a63a94494b356b30f076d7ad52fcc6024935",
      "tree": "fcb6daab6f8ff9fd47e98917e5c73e9fa7678c85",
      "parents": [
        "eef623900c44f2629aae87db188363623ef46592"
      ],
      "author": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Mon Dec 17 17:21:18 2012 -0800"
      },
      "committer": {
        "name": "Alon Albert",
        "email": "aalbert@google.com",
        "time": "Mon Dec 17 17:30:02 2012 -0800"
      },
      "message": "Put some useful information in User-Agent Header\n\nPut information in User-Agent:\n* Build fingerprint\n* Calendar or CalendarSyncAdapter package name + version code\n* Package name of app making changes to provider for uphill syncs\n\nExample:\ngoogle/mantaray/manta:K/MASTER/eng.aalbert.20121217.140040:eng/dev-keys:com.google.android.calendar:201212060:com.google.android.calendar Google-HTTP-Java-Client/1.11.0-beta (gzip)\n\nChange-Id: Ief8f57809ce240df4f5c662c703dcb80dab47367\n"
    },
    {
      "commit": "eef623900c44f2629aae87db188363623ef46592",
      "tree": "4263726bcf0405e96cb49910d62efb9bcfb89b7c",
      "parents": [
        "d35d3687c741bb8d7cb025c7369755354ca0e53d",
        "fbfaa853630edfca25eaa840f92035713eef13ba"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Dec 17 13:21:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 17 13:21:55 2012 -0800"
      },
      "message": "Merge \"Add struct for controlling clipping in Java.\""
    },
    {
      "commit": "fbfaa853630edfca25eaa840f92035713eef13ba",
      "tree": "21983f382e05d870b206907fbd4addd8836287c6",
      "parents": [
        "85ae89dcbaa3aec500d89dd597b5b3befcfad0b3"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Dec 14 16:01:58 2012 -0800"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Dec 17 12:10:55 2012 -0800"
      },
      "message": "Add struct for controlling clipping in Java.\n\nChange-Id: Iac747e492c680530553909b0389b230fbc654e30\n"
    },
    {
      "commit": "0bf39c8073f662b02bf5421729522a43692c0c54",
      "tree": "9d21c9cb036098057a1e0a863d6ec3fcae8f9039",
      "parents": [
        "0bba28cce762175f9a618627345dc0d9150e6266",
        "545252f4fde6fbb70b07e97a120c7d1405758017"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Dec 14 17:12:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 14 17:12:12 2012 -0800"
      },
      "message": "Merge \"Refactoring of the screen magnification feature.\""
    },
    {
      "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": "92091fa9636403728fe94cc83400495a8612c2d3",
      "tree": "d1a0969ae2cd2bcddd5a0d2dfc2be100a732bd85",
      "parents": [
        "40efbd40606fc31863d3de90f062db431ba7fb47"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Dec 12 16:24:31 2012 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Dec 14 11:53:10 2012 -0800"
      },
      "message": "App home directories are now 0700 for targetSdkVersion \u003e 17\n\nPass targetSdkVersion to installd so it knows the appropriate\npermissions to apply to the app\u0027s home directory.\n\nBug: 7208882\nChange-Id: Ia62ed36b32ee5af01077fb10a586024411be8ed4\n"
    }
  ],
  "next": "3366cb2a0114d7d6e7997812ba4b12612561a76c"
}
