)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "3366cb2a0114d7d6e7997812ba4b12612561a76c",
      "tree": "6e0f94e7170293a9aced9f759c94b07c19cb0b6b",
      "parents": [
        "6fd651ebf28382842d18c36cbca59727720d75c8",
        "50f3d1bae884eb9545d3db24362271c20f0d8d64"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Dec 13 17:50:11 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 13 17:50:11 2012 -0800"
      },
      "message": "Merge \"Adding simple ArrayList API for collection widgets\""
    },
    {
      "commit": "50f3d1bae884eb9545d3db24362271c20f0d8d64",
      "tree": "e349b5a203e4d50f6e150e3293db82b2284e7e88",
      "parents": [
        "7da613fd5db532f47a9d8ffa9269d8d53b3b2ad5"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Tue Dec 11 18:36:07 2012 -0800"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Thu Dec 13 14:52:30 2012 -0800"
      },
      "message": "Adding simple ArrayList API for collection widgets\n\nChange-Id: I4d6c909d1d2c0bdd1ddc8329445cea0e78a5ce7c\n"
    },
    {
      "commit": "b46533732c40c6aa4d0d7357176835a33d863234",
      "tree": "ae2e512623f24cf45ed41a2c9f1ed5de78dd352f",
      "parents": [
        "d90a56fadcdf3b367de5cfee8067f44f55508a34"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Tue Dec 04 14:57:58 2012 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 13 03:21:30 2012 -0800"
      },
      "message": "Set default language in new TTS clients.\n\nA recent change altered semantics of getLanguage call to return client\nlanguage instead of service language. This solved problems\nwith interferences between two clients using different lanaguages.\n\nThis change created a bug - new TTS client instance have no language set.\nSince reading user preferences requires additional permissions I\u0027ve\nadded new tts service method - getClientDefaultLanguage that will return\nuser preferences.\n\nI\u0027ve also added new client method, getDefaultLanguage, that allow easy\naccess to this data.\n\nBug: 7666482\nChange-Id: Ieb7d2ba3a99d20c513add97f054874720a1cd82e\n"
    },
    {
      "commit": "fdb9138c401558e109ecdadc7acbc88b75634202",
      "tree": "422a15a56e93e4920e44e55f23f0f559fb8bccdb",
      "parents": [
        "3c1ded16643352abe1a17dd0fc53db3436df8256",
        "3a67e2515bff73fab57621b1f9966662e83b7881"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Dec 12 09:29:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 09:29:13 2012 -0800"
      },
      "message": "Merge \"Expose more details in broadcasts\""
    },
    {
      "commit": "3a67e2515bff73fab57621b1f9966662e83b7881",
      "tree": "3510da17e5ab4b891cbf54f3f105a0238b98c125",
      "parents": [
        "6f0c7b50684a44eb058691799e03ff0f0417b102"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Dec 07 15:51:34 2012 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue Dec 11 22:00:14 2012 -0800"
      },
      "message": "Expose more details in broadcasts\n\nExpose details in broadcasts and do the necessary clean up alongside\n\nChange-Id: I9011d51675a233aa3542f097c8a489c2095103b1\n"
    },
    {
      "commit": "1423fa30c216ccdbbebbfa3fb120b3a7d17b073a",
      "tree": "79af7b4693da8ae818e68a73a1aa3a69534b01f7",
      "parents": [
        "0c312368cb21a15f7249cad58a714c8d57408c66",
        "1de623939090993d03a7c398d09e2d13950d682b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Dec 11 16:15:38 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 11 16:15:38 2012 -0800"
      },
      "message": "am 1de62393: am 534de491: Merge \"Make immersive mode public \u0026 imply update locking\" into jb-mr1-aah-dev\n\n* commit \u00271de623939090993d03a7c398d09e2d13950d682b\u0027:\n  Make immersive mode public \u0026 imply update locking\n"
    },
    {
      "commit": "1de623939090993d03a7c398d09e2d13950d682b",
      "tree": "12dc222d55bfc246146d8e0bc6eb3bab4799d326",
      "parents": [
        "8f276515ea7204f54c773c29eb14a9346f2fa973",
        "534de491e6522465a7ad12d7cba9b2f80deab364"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Dec 11 16:13:51 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 11 16:13:51 2012 -0800"
      },
      "message": "am 534de491: Merge \"Make immersive mode public \u0026 imply update locking\" into jb-mr1-aah-dev\n\n* commit \u0027534de491e6522465a7ad12d7cba9b2f80deab364\u0027:\n  Make immersive mode public \u0026 imply update locking\n"
    },
    {
      "commit": "73c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2",
      "tree": "a540919f09c77891eb647765e473ea2d1e7c1359",
      "parents": [
        "3aecb61bebbe038b74b5e0d96acbb7142835127e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 15 16:27:14 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Dec 10 18:40:57 2012 -0800"
      },
      "message": "Make immersive mode public \u0026 imply update locking\n\nActivity.setImmersive(boolean) / android:immersive\u003d\"bool\" are now public.\nIn addition, if the foreground activity is immersive then an update lock\nwill be held on its behalf.  This lets applications such as movie players\nsuppress the display of intrusive notifications, OTA-availability dialogs,\nand the like while they are displaying content that ought not to be\nrudely interrupted.\n\nThe update lock aspect of this mode is *advisory*, not binding -- the\nupdate mechanism is not actually constrained; it simply uses this information\nin deciding whether/when to prompt the user.  It\u0027s more a guideline than\na rule.\n\nBug 7681380\n\nChange-Id: I3c412a84cbf3933e3bf0168f2c71c54a86e4b7e5\n"
    },
    {
      "commit": "149ceec6ebac9dd000c213fc91ee8e5c08522cc6",
      "tree": "8b506e077768c32a839622b4cd29c7f765bd03e6",
      "parents": [
        "a5c9fd93cc16df4708ea4c85239fad7b5be16d43"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Mon Mar 26 09:04:12 2012 -0700"
      },
      "committer": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Thu Dec 06 16:24:48 2012 -0800"
      },
      "message": "Sort out permission around \"instant text response\"\n\n- Remove SEND_SMS_NO_CONFIRMATION\n\n- Add SEND_RESPOND_VIA_MESSAGE Permission\n  This permission is held by the phone and applications that want to\n  handle respond-via-message should require this permission of the\n  sender.  This permission is signature/system and currently only held\n  by the Phone app.\n\nBug: 5108429\nChange-Id: Ib611368d488de2f8e1e853f550eb2c654305eda4\n"
    },
    {
      "commit": "dcf03f39725deec68f644f6162fdfcc884dc9964",
      "tree": "ba70eaebefeafd3de60c27534970214487262ba1",
      "parents": [
        "9950edcdcf6eea0495ba71fa35555bbbbd26954e"
      ],
      "author": {
        "name": "Jianzheng Zhou",
        "email": "jianzheng.zhou@freescale.com",
        "time": "Fri Nov 16 13:45:20 2012 +0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Dec 06 12:00:04 2012 -0800"
      },
      "message": "Refactor getPersistedNetworkPreference\n\nOptimize for updating mNetworkPreference according to device\u0027s networkAttributes\nsetting from overlay config.xml when connectivityservice start.\n\nChange-Id: I90286332d4f453038f1ddac7dd9d1265d96b4859\nSigned-off-by: Jianzheng Zhou \u003cjianzheng.zhou@freescale.com\u003e\n"
    },
    {
      "commit": "f74f0deb298550307677c1abd27202e3debd02eb",
      "tree": "a89d1f97e0bb13a7c264c2b7d041558a61bfaa7d",
      "parents": [
        "39ec1ec187c3b27f2819aaf5a3a47819af56e44d"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Dec 04 15:12:49 2012 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Dec 04 15:12:49 2012 -0800"
      },
      "message": "Move numeric api files from frameworks/base to prebuilts/sdk\n\nSo they can be used in unbundled builds.\n\nBug: 7296240\n\nChange-Id: Ib0ba88387cb45ff795a4e8e3a836cf670d5016b7\n"
    },
    {
      "commit": "0b0afb49a85c54b6e876055e76dc41d4345948a4",
      "tree": "4d17c9fa60ac4c0de0592f92ea04241071d48283",
      "parents": [
        "6a6f51ff41e2d4f26bcfe0142379e70108f40642"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 03 16:51:53 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Dec 03 16:59:22 2012 -0800"
      },
      "message": "Adding API for refreshing the state of an AccessibilityNodeInfo.\n\nSometimes a client needs to hold onto an accessibility node info and\nthis info may get into a stale state. The clent has to be able to\nrequest a refresh of the info. This change adds a refresh call to\nAccessibilityNodeInfo.\n\nbug:6711796\n\nChange-Id: I580a9a5d9fd1f705ea0a2cf4d3ff65543714c9c3\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": "1adc5975fa293afc484cc3095f74a7b4964f6306",
      "tree": "1b68b188fb9d04bd109f560cb1829bcab00240a4",
      "parents": [
        "cc95712ea2eb07913d8a9964cd8266245f8c1fd6",
        "800c8ab68d695f1b6c5332c80a32316cdca69954"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 30 14:28:14 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 30 14:28:14 2012 -0800"
      },
      "message": "am 800c8ab6: am 2644494a: Merge changes I8462f040,Ie471f40f\n\n* commit \u0027800c8ab68d695f1b6c5332c80a32316cdca69954\u0027:\n  MediaCodec: Allow getting the codec info directly\n  MediaCodec: Allow getting the chosen component name\n"
    },
    {
      "commit": "a1dcc992ffedb9a44f2072a8100eed15a7ca93b2",
      "tree": "3e816add412bee77ecb2682fc4a046156895e702",
      "parents": [
        "f6e7b2089dcde81b92617102fa78b4104df29433"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 27 13:35:49 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 27 13:35:49 2012 -0800"
      },
      "message": "Undeprecate linear text API\n\nHardware renderer support pending, but this API should not have\nbeen deprecated in the first place.\n\nChange-Id: I062dac6d65dffb5369e65d55ea159594a0971b59\n"
    },
    {
      "commit": "f6e7b2089dcde81b92617102fa78b4104df29433",
      "tree": "0638244f5f8db80a3b7c610366994d815fbbe04b",
      "parents": [
        "86ee9f375a4ae5d0f64558e24f7bed89c66d8f99",
        "5769fcd88a6b53aa9394d869a9428c80e61a1565"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 27 11:04:56 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 11:04:57 2012 -0800"
      },
      "message": "Merge \"Add new mipMap attribute to BitmapDrawable\""
    },
    {
      "commit": "5769fcd88a6b53aa9394d869a9428c80e61a1565",
      "tree": "235649c50d28edbdb1f9f932264ffcbd154d25e8",
      "parents": [
        "1f58497e7dbab1b16e97c73b65559b852d0c2803"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 26 15:19:09 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 27 11:03:22 2012 -0800"
      },
      "message": "Add new mipMap attribute to BitmapDrawable\n\nThis attribute can be used to enable/disable mipmapping on bitmaps.\nSee Bitmap.setHasMipMap() for details.\n\nChange-Id: I13cc800a258b6876a94e2a9605dcec4ea4f1ea48\n"
    },
    {
      "commit": "2d940bcbd1c472f8b11ce1495354f340604b4f2c",
      "tree": "4b71159ea66db2e6513397c340ea4d0daedbf485",
      "parents": [
        "fdb36725acf0c5b8e540ed1522e02196018c45bb"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Nov 19 12:22:59 2012 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 03:25:27 2012 -0800"
      },
      "message": "Make TTS input string limit public and documented.\n\nTTS input limit is now publicly available from getMaxSpeechInputLength()\nstatic method.\n\nBug: 7456118\nChange-Id: Ib2afbb7202ad9dc15895f322fbd1480a5f1f7278\n"
    },
    {
      "commit": "c40d1153e060fdd2024be84cf22d4b856efa02e0",
      "tree": "aced92b17b51bd52c48e8ccb19325daefebd167a",
      "parents": [
        "34583fcb9a9926c4d0e2f8e0d9102edc4d19c371"
      ],
      "author": {
        "name": "Scott Kennedy",
        "email": "skennedy@google.com",
        "time": "Mon Nov 26 17:31:21 2012 -0800"
      },
      "committer": {
        "name": "Scott Kennedy",
        "email": "skennedy@google.com",
        "time": "Mon Nov 26 17:51:04 2012 -0800"
      },
      "message": "Unhide SparseLongArray\n\nBecause it\u0027s useful.\n\nChange-Id: I6c71a49eed2c0c366e8afa874ebbc48cfe816a90\n"
    },
    {
      "commit": "69e25226a3020bfcd33f7f8beee6004dd2a292c3",
      "tree": "b8e92632406ec0aa3d36136be16c2b4050c1cecc",
      "parents": [
        "b690ac3b27d9b782a23a5f9a82bb3421e88716e3"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Nov 15 15:16:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 15 15:16:45 2012 -0800"
      },
      "message": "Revert \"Separate voice and data radio technology/network type \u0026 registration state.\"\n\nThis reverts commit b690ac3b27d9b782a23a5f9a82bb3421e88716e3\n\nChange-Id: I006ab1fb9c7fb8da64e2c481a2b6f0cb137deba4\n"
    },
    {
      "commit": "b690ac3b27d9b782a23a5f9a82bb3421e88716e3",
      "tree": "d3077b156ec6e9d1a5456550490bd356b32d7da4",
      "parents": [
        "b80bc6737f27d6e9ab72a46cea266fd8a29a57e6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Nov 14 17:03:01 2012 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Nov 14 17:03:01 2012 -0800"
      },
      "message": "Separate voice and data radio technology/network type \u0026 registration state.\n\nChange-Id: I2802eb5c5833e3b81891da82b71acc51ca5af81f\n"
    }
  ],
  "next": "93077a2902a74256b7eb4795e1ef92bbc5c50f10"
}
