)]}'
{
  "log": [
    {
      "commit": "194c140c34d9f4874c64839c2e20ef61f41cbb97",
      "tree": "4a66ba26f7b977c081e1d754841e70304eb4230e",
      "parents": [
        "974e5975d3bc16fd5b0db535ec825c045995d0fc",
        "64dfb604e70b70b7c346768114e05ddfadc09add"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 19 23:57:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 23:57:11 2013 +0000"
      },
      "message": "Merge changes Id3815fe8,I90a85921 into klp-dev\n\n* changes:\n  Define AudioSource.REMOTE_SUBMIX.\n  Remove setRemoteSubmixOn method.\n"
    },
    {
      "commit": "64dfb604e70b70b7c346768114e05ddfadc09add",
      "tree": "27fca551d0dd1930fdfd37c5a1d130bda981e416",
      "parents": [
        "f15ef4b02cf2e4298a6eca9709693f1e720c18c6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 15 20:01:50 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 19 16:42:07 2013 -0700"
      },
      "message": "Define AudioSource.REMOTE_SUBMIX.\n\nAdd an API to allow applications to record from the remote\nsubmix when they have the required permissions.\n\nBug: 10265163\nChange-Id: Id3815fe82a6713e058ce4b8ab6128a898481df7e\n"
    },
    {
      "commit": "b6e8943933f745f5e3f248ac058fc8dbca8f8ab1",
      "tree": "a971e4090c43f4b5cb14a871a90d06b1a1900cb9",
      "parents": [
        "6b73eb28d734e9dd65d3551e43f7c41445fdc8c9",
        "583fe9d22b21aa77fad3096bfdad3020d6088230"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Aug 19 20:11:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 20:11:09 2013 +0000"
      },
      "message": "Merge \"NFC: Allow HostApduService to indicate transaction unhandled.\" into klp-dev"
    },
    {
      "commit": "4d0145add16bccb6b0f4a7d767a0b052f1b6bb04",
      "tree": "c14b4447ee5542241e464f4231b69b04d7a312f7",
      "parents": [
        "f55916bd31bb79dd47739115b26c0886f9523756",
        "b676a4a70db36bdd6ce5060d16f453f797378098"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Mon Aug 19 19:14:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 19:14:03 2013 +0000"
      },
      "message": "Merge \"Expose WifiManager.setTdlsEnabled public API\" into klp-dev"
    },
    {
      "commit": "583fe9d22b21aa77fad3096bfdad3020d6088230",
      "tree": "639d79d56c0041f7f03b548146e2ac3ac0d36385",
      "parents": [
        "0a94b9ce277ef2ec79902e3c576a50ab438dca97"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Aug 14 21:04:14 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Aug 19 11:52:27 2013 -0700"
      },
      "message": "NFC: Allow HostApduService to indicate transaction unhandled.\n\nThis will cause the OS to show UI that allows the user to pick\nanother application that could potentially handle the transaction.\n\nAlso, tweak processCommandApdu() method to take a Bundle to be more\nfuture-proof.\n\nBug: 10262585\nChange-Id: If9d060341b472fac0349f539c04b87e85fe79dfb\n"
    },
    {
      "commit": "e79ba1545323f067bbd22d1e89ed329f7ec1d011",
      "tree": "4a51cb20b377e685793d0b120bc112819bb74c4c",
      "parents": [
        "f01f1e9b9e6b9ced969d79489619947fd5fedcbe",
        "8f4d43c3c4c419d5a652f81c5e01554f61d4caf2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 19 15:39:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 15:39:29 2013 +0000"
      },
      "message": "Merge \"Expose KEY_REPEAT_PREVIOUS_FRAME_AFTER and KEY_PUSH_BLANK_BUFFERS_ON_STOP\" into klp-dev"
    },
    {
      "commit": "58514937628dfcf3b2949e4cbc45d5526ecb8019",
      "tree": "f1c767eea76063ea1dc6a5f99a6fa0749a1a6d61",
      "parents": [
        "f855a2ff01b270c06977f64f4a002f3f1c7769ca",
        "9d0843df7e3984293dc4ab6ee2f9502e898b63aa"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 18 20:53:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 18 20:53:29 2013 +0000"
      },
      "message": "Merge \"Resized thumbnails; async; extend MatrixCursor.\" into klp-dev"
    },
    {
      "commit": "9d0843df7e3984293dc4ab6ee2f9502e898b63aa",
      "tree": "9487940fefdc3034d1e13838b0cca47ed5bce35b",
      "parents": [
        "a5599ef636e37cb0b6474349936999be1afe6987"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue May 07 12:41:33 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 17 19:05:07 2013 -0700"
      },
      "message": "Resized thumbnails; async; extend MatrixCursor.\n\nWhen requesting thumbnails, check if their dimensions are larger\nthan requested, and downscale to avoid memory pressure.  Load them\nasync and with LruCache.\n\nExtend MatrixCursor so that RowBuilder can offer() columns without\nrequiring they know the projection map.  This makes it easier to\nrespond to query() calls, where the remote side controls the\nprojection map.  Use it to handle custom projections in external\nstorage backend.\n\nUpdate date/time formatting to match spec.\n\nBug: 10333418, 10331689\nChange-Id: I7e947a8e8068af8a39b55e6766b3241de4f3fc16\n"
    },
    {
      "commit": "b676a4a70db36bdd6ce5060d16f453f797378098",
      "tree": "696133287c6155dd105b2c8b138efcbe3fb911e6",
      "parents": [
        "9955699d30eaab964549b8173fe9a52dca782877"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Fri Aug 16 17:16:45 2013 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Fri Aug 16 17:16:45 2013 -0700"
      },
      "message": "Expose WifiManager.setTdlsEnabled public API\n\nBug: 10221775\n\nChange-Id: I559e4a2afd525a03c8a13fd151eca4638426d03e\n"
    },
    {
      "commit": "d1da67017f0e1c8a47cb61050c8d7a753efc918c",
      "tree": "56263a50b07c543a20a751e2aa6aae6ff96cc7cc",
      "parents": [
        "b3acd8ef263e17879e9a13c3dacd123bd0670c3b",
        "da5a3e12f4f8f965c57d6f93c74190f43ea233f3"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 17 00:05:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 17 00:05:36 2013 +0000"
      },
      "message": "Merge \"Richer ParcelFileDescriptor close events.\" into klp-dev"
    },
    {
      "commit": "d1477e746065450b1900398e103f4715ccf81b35",
      "tree": "ca00712927e4cdf728c1fbc3b1b3c68913af9822",
      "parents": [
        "0ef054b5f15b2486e2bc002cfc7b9af6dc8c2d2b",
        "199acdfcc98e852975dd7edfbcb822ba5e73146f"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 16 23:38:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 23:41:29 2013 +0000"
      },
      "message": "Merge \"Better Transition interruption\" into klp-dev"
    },
    {
      "commit": "da5a3e12f4f8f965c57d6f93c74190f43ea233f3",
      "tree": "2476c82e8b84347f3e61cde21ba864f154ec1e22",
      "parents": [
        "2241d45c68739e5bdf187ba3325ee237ef143e21"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 12:54:42 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 16 14:34:43 2013 -0700"
      },
      "message": "Richer ParcelFileDescriptor close events.\n\nWhen reading from the end of a pipe or socket, there is no way to\ntell if the other end has finished successfully, encountered an error,\nor outright crashed.  To solve this, we create a second socketpair()\nas a communication channel between the two ends of a pipe or\nsocket pair, sending a status code with details about why the\nParcelFileDescriptor was closed.\n\nThe writer end of a pipe or socket can closeWithError() to send a\nmessage to the reader end.  When the reader encounters EOF, they\ncall checkError() to detect if any error occured.  This also detects\nthe case where the remote process died without sending a success\nmessage.\n\nThis design is also extended to support regular files on disk, using\nthe communication channel above to detect various remote close events\nor crashes, and delivering that event to a supplied OnCloseListener.\n\nReplaces JNI with best-practice Libcore.os calls, and deprecates\nsome flags to match Context.\n\nBug: 10330121\nChange-Id: I8cfa1e4fb6f57397667c7f785106193e0faccad3\n"
    },
    {
      "commit": "199acdfcc98e852975dd7edfbcb822ba5e73146f",
      "tree": "edf43a3491b1685d5bff460d68dae964e6d18034",
      "parents": [
        "d3135451b1091022264f15a17e0ac85ec8f0bf30"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jul 24 18:40:55 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Aug 16 13:22:36 2013 -0700"
      },
      "message": "Better Transition interruption\n\nPreviously, a running transition on a scene root would simply\nbe canceled when a new transition was started. This would result in\nabrupt scene changes, especially in generic use cases where apps/widgets\nwould spawn multiple transitions in successive rendering frames due to\nsmall changes in view properties.\n\nThe new approach is to check all running animations against new transitions.\nIf there are overlapping properties that are being set to different values,\nthe new animations win and the old ones are canceled. If the end values are the\nsame, the new animations are noop\u0027d and the old ones are allowed to continue\nas-is.\n\nThere was also improvement to capturing state while other transitions are\nrunning, necessary in this new world where old transitions are allowed to\ncontinue running. Now, transitions are pause()\u0027d while values are captured,\nthen resume()\u0027d after capturing is done. This allows the system to see what the\nreal view properties are, instead of the mid-animation values.\n\nChange-Id: I8e77fb9c1967087a682bb26a45763005f5ca9179\n"
    },
    {
      "commit": "dad0f462ae6fee99840bbea910c810282bbc1c54",
      "tree": "4415dfcdc47c69a5be6bd7510f0887842060dcd0",
      "parents": [
        "448c339596df2a6b08a6f93dbea1d6fc87ba676e",
        "dc775c66bf52d998e6cc37a0ba1ec3b12607fac4"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 16 19:15:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 19:18:32 2013 +0000"
      },
      "message": "Merge \"MediaFormat: added subtitle format\" into klp-dev"
    },
    {
      "commit": "4068388beea728bbf9f321b0b5b5c52ce4ab3d06",
      "tree": "892f8846c5a23375a571844c890e62717caa8375",
      "parents": [
        "0a94b9ce277ef2ec79902e3c576a50ab438dca97"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 08 16:56:28 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 16 11:10:21 2013 -0700"
      },
      "message": "Camera2: Add user tag to CaptureRequest\n\nBug: 10360518\nChange-Id: I781341b4c598c28ee5dd7551b8e05ab19b8fff0d\n"
    },
    {
      "commit": "0a94b9ce277ef2ec79902e3c576a50ab438dca97",
      "tree": "d40730dd71a8124b9e0b1a54063e63598eee9854",
      "parents": [
        "6f2883c9ac65065ed6e4bc4bc60af240af7f934c",
        "69da2690e5a990987adba8f68dcf3d8a17d1a0fc"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Aug 16 07:08:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 07:08:52 2013 +0000"
      },
      "message": "Merge \"Add an API supportsSwitchingToNextInput\" into klp-dev"
    },
    {
      "commit": "a5599ef636e37cb0b6474349936999be1afe6987",
      "tree": "ab99c3f837201713f7cd2c0b80a842334934e2d4",
      "parents": [
        "54ca29a5b94c2edf461c5433825d4ae17469fd7c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 15 16:17:41 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 15 16:25:30 2013 -0700"
      },
      "message": "Documents management mode; API adjustment.\n\nCreate documents manage mode to support Downloads and transient\nstorage devices.  Locks user into requested backend root, and forces\nfile sizes on and sorting by last modified.\n\nSeparate API constants for Documents versus Roots, and give concrete\nMIME types for roots.\n\nTreat null sizes as unknown.  Documents are always enabled in list\nso that divider is drawn.  Mark external storage file as writable.\n\nBug: 10329983, 10332993, 10332952\nChange-Id: I05f4fdf5b04041a38e1ba7fb30202a3b0c615bf6\n"
    },
    {
      "commit": "dc775c66bf52d998e6cc37a0ba1ec3b12607fac4",
      "tree": "d7cef86229c47a171412fc04e94e31b1dc02e54e",
      "parents": [
        "c11cb1497d26daaf445ca232057027bebc44086c"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 11:35:14 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 11:43:02 2013 -0700"
      },
      "message": "MediaFormat: added subtitle format\n\nAdded KEY_LANGUAGE that for now only refers to subtitles.\nAdded createSubtitleFormat() method to create base format.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I344c36a3fd0d88c285cdebf3f67e549553b37a8e\nBug: 10326117\n"
    },
    {
      "commit": "2241d45c68739e5bdf187ba3325ee237ef143e21",
      "tree": "36441190981de3e963d5662b08a043c137986df1",
      "parents": [
        "ac0a1ea06f4a11550e3ee476bbb89ece2984e826",
        "5b83f854d9cbd6dc9e5a31892dbe8515b4c29683"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 15 16:44:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 15 16:44:15 2013 +0000"
      },
      "message": "Merge \"Root invalidation, write and grid flags, local.\" into klp-dev"
    },
    {
      "commit": "69da2690e5a990987adba8f68dcf3d8a17d1a0fc",
      "tree": "85107d02a303074d5bcf1fdaf14ede0f7b7ab51c",
      "parents": [
        "70e907f51f75bf8d481e11e0d6411e2974b83b06"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Aug 15 15:36:44 2013 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Aug 15 16:11:41 2013 +0900"
      },
      "message": "Add an API supportsSwitchingToNextInput\n\nTo let the system know an IME supports switching to a next input method\n\nBug: 8364845\nChange-Id: Iabf4f106893ee6a262ad0cd44dbec0c661bf0ff2\n"
    },
    {
      "commit": "5b83f854d9cbd6dc9e5a31892dbe8515b4c29683",
      "tree": "df697f3c5b39f9c6e3380f65ea5834049b9b7bc7",
      "parents": [
        "998cfa2c63c54a73d0c51d062408d370ed0b3107"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 14 18:29:19 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 14 21:52:37 2013 -0700"
      },
      "message": "Root invalidation, write and grid flags, local.\n\nFlags to indicate write support, and to indicate that a grid view is\npreferred.  Method to inform system that any root caches should be\ninvalidated.  Methods to mark a Uri as requesting \"local only\" data.\n\nHelper method for document creation.\n\nBug: 10330069, 10330108, 10330210, 10329976\nChange-Id: I6ce6160f6ce6621e6ea05848a31bbbcb84587671\n"
    },
    {
      "commit": "66a83ae6500d735b5abb6a97c86addcb1c958d68",
      "tree": "595bfc364d39d4aebe50300a0be4816df491f25d",
      "parents": [
        "7d56ef2d808289a148085b9bff1448d331f4643e",
        "5a32b20ccc34fd7d4f048de05c427a7a96786531"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 14 20:20:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 20:20:43 2013 +0000"
      },
      "message": "Merge \"Camera2: Add metadata keys and enum values\" into klp-dev"
    },
    {
      "commit": "8f4d43c3c4c419d5a652f81c5e01554f61d4caf2",
      "tree": "90a3e85f7d7183d155e95980683378da66b9a79e",
      "parents": [
        "34e13d90eda9bfda7a70998d190a95c88aa3d3d1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:42:47 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:42:47 2013 -0700"
      },
      "message": "Expose KEY_REPEAT_PREVIOUS_FRAME_AFTER and KEY_PUSH_BLANK_BUFFERS_ON_STOP\n\nMediaFormat keys.\n\nChange-Id: I37ec076f0b1f0aea9a460c9dc1751f1160860df9\n"
    },
    {
      "commit": "ca2fb9158e104ac88c8014e1273fd4554e1acd23",
      "tree": "c282337deef5206b32107878353112d58fd39600",
      "parents": [
        "da5b6f2dc4ba23b6b70209f9b34fb39c93a51fc4",
        "226065bbe60cf32b33a5f86d27e2db88138e4486"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 15:39:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 15:39:17 2013 +0000"
      },
      "message": "Merge \"Expose MediaCodec.setParameters API to\" into klp-dev"
    },
    {
      "commit": "1bab5064eb907e369a14903a3888847f1dae63a0",
      "tree": "d9fce3e29871b3ed04c931460bac6b948f50d286",
      "parents": [
        "3fbaf5a6df1ebc413ee6e8160be9706858dad516",
        "80c4437ebfe3e679267a64e4c9d7bdd585b7afce"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 01:26:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 01:26:39 2013 +0000"
      },
      "message": "Merge \"MediaCodecInfo.java: Added isFeatureSupported method to CodecCapabilities\" into klp-dev"
    },
    {
      "commit": "95b2299dc476f4dbd50b8da8e0debff4b5ccba50",
      "tree": "2b1f9c8afba2b8f47c8fdcbe5323d23332bc5625",
      "parents": [
        "d48233e1e62c119b4bd67ad66e471f6a21e68a3d",
        "fa2992c412c08f76331a3f58ca57cf8cf04e7b84"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Wed Aug 14 00:18:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 00:22:18 2013 +0000"
      },
      "message": "Merge \"API for location settings injection\" into klp-dev"
    },
    {
      "commit": "fa2992c412c08f76331a3f58ca57cf8cf04e7b84",
      "tree": "8ff95fba0faff30428923dfcee0c5dda4596f9a8",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 13 14:41:22 2013 -0700"
      },
      "committer": {
        "name": "Tom O\u0027Neill",
        "email": "tomo@google.com",
        "time": "Tue Aug 13 14:41:22 2013 -0700"
      },
      "message": "API for location settings injection\n\n- Partial fix for b/10287745\n\nChange-Id: Ie998ce0a7b350e4183fce5753bfac3eb51238ff4\n"
    },
    {
      "commit": "5a32b20ccc34fd7d4f048de05c427a7a96786531",
      "tree": "5df6af3e7dff39c8546b3b84c856097e2d1c3c70",
      "parents": [
        "43e56c4a911c8d192b3e8cc1c6de664e8755cb73"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 08 12:38:36 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 13 12:35:57 2013 -0700"
      },
      "message": "Camera2: Add metadata keys and enum values\n\n- Insert metadata enum ints into CameraMetadata\n- Insert metadata Keys into relevant files\n- Remove some dead code in CameraMetadata\n\nGenerated from /system/media/camera/docs.\n\nChange-Id: I3d864ad8c7add5f35ca740860cb2883d54a0791e\n"
    },
    {
      "commit": "80c4437ebfe3e679267a64e4c9d7bdd585b7afce",
      "tree": "eebbcac87d0492690105c0a0e5f10c4ec78c3824",
      "parents": [
        "076d378760a2575a6836dc12642c52b79048b638"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri May 10 09:24:12 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 13 10:30:22 2013 -0700"
      },
      "message": "MediaCodecInfo.java: Added isFeatureSupported method to CodecCapabilities\n\nAdded isFeatureSupported method to CodecCapabilities, so that applications\ncan query whether codecs support various features.  For now\nadded one video-decoder feature:\n\nFEATURE_AdaptivePlayback\n\nMedia playback applications can query it to see if the codec\nsupports seamless resolution changes during decoding.\n\nChange-Id: I56b2cf1429f39f9b9e0243a990c95e7a64dd7ff7\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nRelated-to-bug: 7093648\n"
    },
    {
      "commit": "371c46fe29ed4c1b700cc40d49cc50f0cb70ebfa",
      "tree": "7c2e66f068f6d04954dca46a07e0a5b9fa0342bf",
      "parents": [
        "56e0d6b86cd46095afae00781eb59c7ed5a7eab6",
        "18d9c3cc6c7d69f7c5b36dafc4b66f0722b98a89"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 13 05:31:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 05:31:24 2013 +0000"
      },
      "message": "Merge \"Remove exceptions from the printer discovery session APIs.\" into klp-dev"
    },
    {
      "commit": "18d9c3cc6c7d69f7c5b36dafc4b66f0722b98a89",
      "tree": "d8bc5bba72ecac46d23ce8500381c1f40533ac1f",
      "parents": [
        "55daead3c53a83ac300d76200dd4144f154e07d3"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 22:16:30 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 22:22:49 2013 -0700"
      },
      "message": "Remove exceptions from the printer discovery session APIs.\n\nIt is not possible for a client to check whether the session is not\nclosed and add/update/remove printers atomically. It is always possible\nthat in between the two method calls the session is closed. Therefore,\nwe cannot enforce the exceptions.\n\nChange-Id: If0e89e4429c4c360515da8f4bbe0ea3781e8e8fd\n"
    },
    {
      "commit": "51b4a40ef505962becb450f9f1b3170b11082dcb",
      "tree": "ab6bd7a3447d72e976f6aa144ada470881d2ab0b",
      "parents": [
        "ebec4b6e381b9035a37e7fccc88be564a90bd4ec",
        "54e56946d1aa3586e7b27fb63dfb7d3c1238c61d"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Aug 13 00:04:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 00:04:08 2013 +0000"
      },
      "message": "Merge \"Expose vendor and product IDs for InputDevices\" into klp-dev"
    },
    {
      "commit": "54e56946d1aa3586e7b27fb63dfb7d3c1238c61d",
      "tree": "375e87177318329295c54aa40086f50bcbbe823d",
      "parents": [
        "dd78a0fb0d537e0bb2aa5b7a7b58bce55bb57029"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Aug 12 16:39:59 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Aug 12 16:39:59 2013 -0700"
      },
      "message": "Expose vendor and product IDs for InputDevices\n\nChange-Id: I08665a41e474cbedd10b342eeae20d2ca7c03ac0\n"
    },
    {
      "commit": "b9b1701dca28ab70ad94ed9e0e6a0dc3913135cb",
      "tree": "69e00a3100814c6975bea8d67c8f954f9daafdc5",
      "parents": [
        "cd89feb9d14d6ed5d832d563a754048ab79134e2",
        "9abf735387329758ca310acad3baa70eee1dba42"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 20:34:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 20:34:12 2013 +0000"
      },
      "message": "Merge \"Make PrintFileDocumentAdapter non-final.\" into klp-dev"
    },
    {
      "commit": "9abf735387329758ca310acad3baa70eee1dba42",
      "tree": "6ca2eefed6717f4484bf538d522aba2d8ae7b74c",
      "parents": [
        "9a68f82f3730432399618bf2e4f73208f84dc87f"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 13:32:47 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 12 13:32:52 2013 -0700"
      },
      "message": "Make PrintFileDocumentAdapter non-final.\n\nChange-Id: I89a46bf766f5270dfaba7482b7b7cd997e19821a\n"
    },
    {
      "commit": "8aa1ffb0ed292891030992c65df4e5dc8bd37524",
      "tree": "2483af50718dacfb46f0a1fc3caa4f2cefb59875",
      "parents": [
        "9a68f82f3730432399618bf2e4f73208f84dc87f"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Aug 08 14:00:00 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 12 11:51:32 2013 -0700"
      },
      "message": "pause/resume for Animators\n\nIt is now possible to pause Animator-based animations. Pausing an\nanimator causes it to hold the current time/value indefinitely, or\nuntil end/cancel/resume is called. When resume() is called, it continues\nfrom where it left off.\n\nThere is a new listener interface on Animator, AnimatorPauseListener,\nwhich can be used to listen to pause/resume events.\n\nChange-Id: I77d1535e792fb7bf349f549a0ac0a0d85958cb47\n"
    },
    {
      "commit": "226065bbe60cf32b33a5f86d27e2db88138e4486",
      "tree": "0d1b092cc733361b9c8cfe892f5836244384e9bd",
      "parents": [
        "8d5f3e31c914e29129f50fe9830d71adf52ab5cf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 12 10:14:11 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 12 10:14:11 2013 -0700"
      },
      "message": "Expose MediaCodec.setParameters API to\n\n- change video target bitrate on the fly\n- request sync frames\n- temporarily suspend feeding input buffers to the encoder\n\nChange-Id: If5cf1162b2eeb28ac08288ecfa9f0e9823dd972e\n"
    },
    {
      "commit": "998cfa2c63c54a73d0c51d062408d370ed0b3107",
      "tree": "96744ed8f740850b5933ac043855b4b7da533520",
      "parents": [
        "c2f8da8756553bb682e0e202779063965a89dced",
        "08da7a1143b0c9cfb703971d882e0886bbd7d9de"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 03:59:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 03:59:58 2013 +0000"
      },
      "message": "Merge \"API to discover granted Uri permissions.\" into klp-dev"
    },
    {
      "commit": "08da7a1143b0c9cfb703971d882e0886bbd7d9de",
      "tree": "c4af63f07435ec1153a5e7194385a642409905aa",
      "parents": [
        "b9be11c370712cfc4d54aef9202e61092b96960d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 20:53:18 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 20:56:15 2013 -0700"
      },
      "message": "API to discover granted Uri permissions.\n\nNow that granted Uri permissions can be persisted across reboots,\noffer APIs to discover them. Returns incoming or outgoing grants\nmatching the requested flags and mask. Add helper method to discover\n\"open\" documents using this new API and filtering for non-documents.\n\nRequire that callers own at least of the filtering packages to avoid\nexposing all grants. Switch internal grant tracking to use ArrayMap.\n\nChange-Id: I0a755f221d0d160b411f8d3cfc48279b64345733\n"
    },
    {
      "commit": "6e14b22cfe2ac923825d4b085e4e48b1fbd98f09",
      "tree": "3b210bc9ac195e1ce7369fc9d1ba7296092264a1",
      "parents": [
        "b8160401a6ebfb6287513400ff9834656e5cb6e7",
        "1abdb7123025e52512b2ed7a518f8c754c35f50a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 00:13:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 12 00:13:35 2013 +0000"
      },
      "message": "Merge \"APIs for multiple external storage devices.\" into klp-dev"
    },
    {
      "commit": "1abdb7123025e52512b2ed7a518f8c754c35f50a",
      "tree": "c6ee8a4b4b4f8cf7b865d2d537823d6a59dca441",
      "parents": [
        "09335703572db7d6a9b43f3aba32074e473d6a0f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 16:28:14 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Aug 11 17:07:44 2013 -0700"
      },
      "message": "APIs for multiple external storage devices.\n\nProvide developer APIs to discover application-specific paths on\nsecondary external storage devices.  Covers files, cache, and OBB\ndirectories.  Apps will not have write access outside their package-\nspecific directories on secondary devices, so only primary storage is\nexposed through Environment.\n\nCreation of .nomedia files will be handled by FUSE daemon in future\nchange.\n\nChange-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c\n"
    },
    {
      "commit": "c7c4d6dd4df2b177d0b6e382fdcde9bf2032baea",
      "tree": "16844d8d5e02286f09932469c69aaec9bbd4bb9e",
      "parents": [
        "0dd303cfdbd95e4aa0d4221cf547fdcdbc7c3756",
        "798bed6cc7d273e72b0253288605db9cd2b57740"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 21:42:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 11 21:42:54 2013 +0000"
      },
      "message": "Merge \"Refinement of the print service APIs.\" into klp-dev"
    },
    {
      "commit": "798bed6cc7d273e72b0253288605db9cd2b57740",
      "tree": "b4278847c40cf910b69773c6205395ada02543ed",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 12:29:39 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 14:40:05 2013 -0700"
      },
      "message": "Refinement of the print service APIs.\n\n1. Factored out the printer discovery APIs of a print service in a\n   dedicated session object that is created by the print service on\n   demand. This ensures that added/removed/updated printers from\n   one session do not interfere with another session.\n\n2. Updated the app facing APIs to pass in a document info along\n   with a printed file. Also exposed the print file adapter so\n   apps that create a temporary file for printing can intercept\n   when it is read by the system so the file can be deleted.\n\n3. Updated the print service documentation.\n\nChange-Id: I3473d586c26d8bda1cf7e2bdacb441aa9df982ed\n"
    },
    {
      "commit": "f6c7a5fd6680d74972738e60ad5c9cf34bfc43ef",
      "tree": "c8f3000833d6ef197a198035014b4536965246da",
      "parents": [
        "52f8ef21aa48c2b10305aac18933e90e09c96a83",
        "30f420fd6a74ffa28b351b4aba74d44f5ea48dda"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Fri Aug 09 21:51:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 09 21:51:30 2013 +0000"
      },
      "message": "Merge \"add local focus mode and input event injection API to Window\" into klp-dev"
    },
    {
      "commit": "62c196abd217c2471dc23d8975f84727560bafb9",
      "tree": "8f3076d47fab8256e68210b2dd1b28c55ac3aae2",
      "parents": [
        "7a605df3137ee571dec855761c0cb15b28513d26"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Aug 09 13:43:34 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Aug 09 13:43:34 2013 -0700"
      },
      "message": "NFC: always upper-case parsed AIDs.\n\nAlso added activity intent action for Tap\u0026Pay settings.\n\nChange-Id: I5648e1ded3b79a3363899d1cab8aec55842b3e22\n"
    },
    {
      "commit": "30f420fd6a74ffa28b351b4aba74d44f5ea48dda",
      "tree": "a45e1874145db8c77267e21221e6593c7b5e07e2",
      "parents": [
        "37ee68fc091f64e17c0ef29b123b782b6daecf16"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Fri Aug 02 14:23:10 2013 -0700"
      },
      "committer": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Thu Aug 08 19:45:21 2013 -0700"
      },
      "message": "add local focus mode and input event injection API to Window\n\n - This enables keyboard navigation for window without focus.\n - FLAG_LOCAL_FOCUS_MODE puts window into local focus mode.\n - Application needs to put window in local focus mode, control focus, and\n   inject events to make dpad navigation work.\n - Window in local focus mode does not interact with window manager or ime\n   regarding focus related events.\n - Also renamed ViewRootImpl.dispatchKey to dispatchInputEvent to allow both key and touch events injection.\n\nChange-Id: I8e8561f29e0dade3797fb7ae3ee7690e6b7f8895\n"
    },
    {
      "commit": "77ece7b192d45351b313ee23270caab373d3c477",
      "tree": "cc2ebf80b6dc0d4489bbeee0eeabda6c344ff551",
      "parents": [
        "81ba97841089bd23b82c7c6feadd3112ad22966c",
        "dfc7fd7818cda46b914c8a9d69d1ba00443ffe5b"
      ],
      "author": {
        "name": "Matt Casey",
        "email": "mrcasey@google.com",
        "time": "Thu Aug 08 09:33:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 08 09:33:08 2013 +0000"
      },
      "message": "Merge \"Extend assist context to foreground services\""
    },
    {
      "commit": "52df1db3ce3da57dea6322196d4566b72e36f485",
      "tree": "aaa69e58fb03be66994bd8851a81d54e709d2f91",
      "parents": [
        "16ae0cf1af7ef29210c0d9dee2db012f5cf81456",
        "4b628cb53dd84dae82db941d49ef10d58f22bf07"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu Aug 08 01:26:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 08 01:26:40 2013 +0000"
      },
      "message": "Merge \"Adding new constants for STEP_DETECTOR, STEP_COUNTER and GEOMAGNETIC_ROTATION_VECTOR.\""
    },
    {
      "commit": "eb2e139b38eb740e06b691a6a8b690251377095e",
      "tree": "30f6ec4db384ff2568e200a994107f5ed0869a4d",
      "parents": [
        "18ec40c44c936fd5146133ccc7446a4cd860b527",
        "f45c9a0c6a3572b672ac5e531397516ec1e05c8a"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 22:44:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 22:44:36 2013 +0000"
      },
      "message": "Merge \"Unhide Context.APP_OPS_SERVICE\""
    },
    {
      "commit": "93e095b731f81e8ae410b605a5ffa955b8711edd",
      "tree": "73e7324e81c7fac1a9f15d75e286c12ee53da473",
      "parents": [
        "6e4cc12a6c7487583dd1e5432fe9ee81c8aa2458",
        "0a0e155cadecd32599a7354a1836232c885f4bd2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 20:31:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 20:31:45 2013 +0000"
      },
      "message": "Merge \"Add copy constructors for all widget-specific LayoutParams\""
    },
    {
      "commit": "0a0e155cadecd32599a7354a1836232c885f4bd2",
      "tree": "d253b619fee3bae382138010c5d9e638c471d6e1",
      "parents": [
        "d9b67633f6aabab190788dcf9c757fb24ce2629c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 13:24:09 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 13:24:09 2013 -0700"
      },
      "message": "Add copy constructors for all widget-specific LayoutParams\n\nBUG: 10215589\nChange-Id: I4c040091e216c87f851d6b617107f43729e55b0c\n"
    },
    {
      "commit": "f45c9a0c6a3572b672ac5e531397516ec1e05c8a",
      "tree": "33c6c13178bea3c671bc671b2b2ade7f6b487efd",
      "parents": [
        "e2b1b8e2adcc212f8505bf77a5d7e098d7c12c2f"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 11:25:12 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 11:44:54 2013 -0700"
      },
      "message": "Unhide Context.APP_OPS_SERVICE\n\nChange-Id: Iab3e3fb2a32c3407c61abb694e21d84b50579d4f\n"
    },
    {
      "commit": "7a2de0615f50ed40021cc1e931ea072b539719b8",
      "tree": "f51d7148a5901717dc0e73b249485d3cdeeeb11c",
      "parents": [
        "df89ca3308544cfdd1ca12b22eac4a1d16e04410",
        "2f3317a06dd4d39298dc3fd2bb8a4d36a5762e03"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 18:38:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 18:38:15 2013 +0000"
      },
      "message": "Merge \"Add API for scrolling AbsListView by a pixel amount\""
    },
    {
      "commit": "2275c6c8bfab76d1db8bc11d2b56b7ff913da4e0",
      "tree": "041974ebfa4428068f66d0782dfd426f22f31035",
      "parents": [
        "3be4fed63c69f16a4223cd74931650634c0b86df"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 21:37:29 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 21:37:29 2013 -0700"
      },
      "message": "attempt to fix build. public api wasn\u0027t updated\n\nChange-Id: I5afa7f20d60c1754e4d12318219af5a5861a85e0\n"
    },
    {
      "commit": "8f6c998cfb98ee6dbaac52bed5081be44df99d00",
      "tree": "76db2686e44f28c1bcd996422a1ee8537a1e1e88",
      "parents": [
        "271c719224d05f8a58d1d0cc6e1cf6c24a616b47",
        "3ed38266c1647c6219ae5ad89cb3f867cf66caaa"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 07 01:44:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 01:44:09 2013 +0000"
      },
      "message": "Merge \"Define error codes for MediaCodec.CryptoException\""
    },
    {
      "commit": "dfc7fd7818cda46b914c8a9d69d1ba00443ffe5b",
      "tree": "bb6f5ca2baf7b31d89725be061db4dc40aa2ca3d",
      "parents": [
        "94fa8956b02f307912746d9ac87be7798dc3464e"
      ],
      "author": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Mon Aug 05 19:23:41 2013 -0700"
      },
      "committer": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Wed Aug 07 02:20:44 2013 +0100"
      },
      "message": "Extend assist context to foreground services\n\nAdd Service.onProvideAssistData(Bundle) which will be\ncalled on foreground Services that have the new attr\nin their manifest of provideAssistData \u003d true;\n\nRename private reference to e.g. \"getTopActivityExtras\"\nas \"getAssistContextExtras\" - do not rename the relevant\npermission, since it is already public.\n\nIn ActivityManagerService, request extras both from the\ntop activity and from any foreground services with the\nabove attribute. Extend PendingActivityExtras as\nPendingAssistExtras with a list of Services from which\nextras are expected.\n\nReduce the timeout to or reporting extras from 4 sec to\njust 500 ms.\n\nBug: 9526331\nChange-Id: Ia03b96e8189033a68ae9c514c8cea0199a19bce8\n"
    },
    {
      "commit": "2f3317a06dd4d39298dc3fd2bb8a4d36a5762e03",
      "tree": "a60a3bb8ce4ea7a0c01061cf276883d47551c3c6",
      "parents": [
        "d9b67633f6aabab190788dcf9c757fb24ce2629c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 06 18:19:48 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 06 18:19:48 2013 -0700"
      },
      "message": "Add API for scrolling AbsListView by a pixel amount\n\nChange-Id: Ib0fc48879991fd467242d8dc337db419edb12acf\n"
    },
    {
      "commit": "d9b67633f6aabab190788dcf9c757fb24ce2629c",
      "tree": "14a266199ef55d419b7f5da4f5013934bac8a2ba",
      "parents": [
        "b5edb0bd60939f8899fc4bec30f9b7a851775443",
        "d40f43c1256da5fc27beb0000b56f38e65c380c4"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 22:46:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 22:46:48 2013 +0000"
      },
      "message": "Merge \"NFC: @hide some APIs, add setDefaultForNextTap API.\""
    },
    {
      "commit": "d40f43c1256da5fc27beb0000b56f38e65c380c4",
      "tree": "cd6172639cf790992e0a38060065f80f7df08fdb",
      "parents": [
        "a7397883de67d674970d91f86d46ccf637e5e543"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 15:34:03 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 15:36:37 2013 -0700"
      },
      "message": "NFC: @hide some APIs, add setDefaultForNextTap API.\n\nChange-Id: I31efe4c96a62e6c3dcb984a885214e6df045c6c6\n"
    },
    {
      "commit": "166bc5b664b28f93c8bcf74f4b3abb8a82e44dbc",
      "tree": "b076649a6bd0d6a501ff729090d09411718ecb4e",
      "parents": [
        "14db9654f6c31e94fe9272776f1f1b8602a17fdc",
        "e1f366faf8691f0dacde1dad35b28fcc37120776"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Aug 06 22:29:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 22:29:17 2013 +0000"
      },
      "message": "Merge \"Introduce new transparent bars sysui flags.\""
    },
    {
      "commit": "4b628cb53dd84dae82db941d49ef10d58f22bf07",
      "tree": "4cbb701bf291ab3795fe778e3adc492f17be5922",
      "parents": [
        "20f170d6af4d761fa0d73fc05549843a9988bc1f"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Aug 05 18:43:55 2013 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 06 14:58:12 2013 -0700"
      },
      "message": "Adding new constants for STEP_DETECTOR, STEP_COUNTER and GEOMAGNETIC_ROTATION_VECTOR.\n\nChange-Id: I31fbdf379454e71950b111f2461bdb430f3352fc\n"
    },
    {
      "commit": "b3316ef7987571661dac47614e311b8eeb45000f",
      "tree": "f03daf2d31789f86b0eddcbbf19bd79f9c3fc56f",
      "parents": [
        "34077aa6bb6f3438c58c76fd57d1c1ae0a32fd6d",
        "66516697a29cf00d93893a1011d3befc7c1ee37f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 18:42:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 18:42:18 2013 +0000"
      },
      "message": "Merge \"Storage roots in fragment, sectioned.\""
    },
    {
      "commit": "66516697a29cf00d93893a1011d3befc7c1ee37f",
      "tree": "c86d01f2f1aaf23edd5b4424388144670dad7cb2",
      "parents": [
        "ef7184a1aa0be5d496a5cb495a0f9e11f342af44"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 11:26:10 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 11:38:46 2013 -0700"
      },
      "message": "Storage roots in fragment, sectioned.\n\nMove storage roots into a fragment, since it\u0027s not a drawer on\ntablets.  Cluster and sort roots when displaying.  SectionedListAdapter\nto make clustered roots easier to manage.  Add docs for root types.\n\nMove roots cache into separate class to make it easier to share.\n\nChange-Id: Ia0b92eade059e816324641f600c08026c0e268c9\n"
    },
    {
      "commit": "e1f366faf8691f0dacde1dad35b28fcc37120776",
      "tree": "94dcee80bd467a3b030c508a5a6b24fc8d4f9c56",
      "parents": [
        "1ea19f4e4959448d3a97adbb7dd055924ec270e9"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 05 12:22:40 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Aug 06 14:17:22 2013 -0400"
      },
      "message": "Introduce new transparent bars sysui flags.\n\nTwo new public sysui flags for views to request transparent\nbars:\n  View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS\n  View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION\n\nThis first change simply introduces the flags at the framework\nlevel, and makes the requisite layout tweaks to WM.\n\nAs part of this change, expunge the term \"hideybars\" from the\ncodebase. The flag to declare support for transient bars is called:\n  View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT\n\nFinal visuals/transitions between opaque/transparent bars will be\ndone as a subsequent change. Right now the transparent style is\nidentical to the transient bars.\n\nChange-Id: I5ead9c5e7b77f212df5b2a5f6e770596cd2226f3\n"
    },
    {
      "commit": "882c246003dd45a689c2cc6bc3a42e35b59266fd",
      "tree": "e8834eda71789f7f023a5381a06e4d3fbbec5d57",
      "parents": [
        "2191a0c8570b518c8a62e2a7c5e03a5b32ce0aa0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 12:28:19 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 12:28:19 2013 -0700"
      },
      "message": "Fix build, updates current APIs\n\nChange-Id: I34deb72207e6eb7c37dd57d781a66582cef62b95\n"
    },
    {
      "commit": "2191a0c8570b518c8a62e2a7c5e03a5b32ce0aa0",
      "tree": "1c10ae54026822cc065a6180b6049e070bafe1ae",
      "parents": [
        "78804fc6d8eec112af9857a8513d21fb5134f194",
        "43a1e3d319d77c251445339bcc8f82c82b097fee"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 18:32:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 18:32:20 2013 +0000"
      },
      "message": "Merge \"Move caption style to its own class, add presets\""
    },
    {
      "commit": "3ed38266c1647c6219ae5ad89cb3f867cf66caaa",
      "tree": "86eb59951fe40ec192ea5ed0d761a5d1d2e8bb71",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:24:51 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Aug 03 10:23:41 2013 -0700"
      },
      "message": "Define error codes for MediaCodec.CryptoException\n\nDefine specific failure cases so apps have the information they\nneed to deal with these conditions.\n\nAlso adds a new ResourceBusyException to MediaDrm\n\nChange-Id: Iaecf269d58108f28179974b05671bf29b9fe4b7d\nrelated-to-bug: 10157154\nrelated-to-bug: 9695816\n"
    },
    {
      "commit": "7d00affce6e25b22fd8fc135933b3bf6b547a0dc",
      "tree": "6ceb674184170a62dd93d7b3508f11ed1830349e",
      "parents": [
        "040f44d0ebdd3a50c59ba0cbc0b023fd2d71039d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 02 19:03:49 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 02 21:11:07 2013 -0700"
      },
      "message": "Support public virtual displays.\n\nRefactor the new private virtual display API to also support\ncreating public virtual displays with various characteristics.\nThis feature requires special permissions and is only intended\nfor use by the system.\n\nChange-Id: I44dd19f37cf76ea6d6e313afe42f4a412bd96663\n"
    },
    {
      "commit": "badb063c81ef805377dac69048afaa02cea6593c",
      "tree": "bce19678e97723c6004eb119f8b367c6aaca63d0",
      "parents": [
        "cf9d87c68874e6008399fa1f571dbff34cf3fc82",
        "a7397883de67d674970d91f86d46ccf637e5e543"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Sat Aug 03 00:49:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 03 00:49:03 2013 +0000"
      },
      "message": "Merge \"NFC: Host-based card emulation APIs.\""
    },
    {
      "commit": "cf9d87c68874e6008399fa1f571dbff34cf3fc82",
      "tree": "1db75a9414017b977d98d4603293dfbaa4d8c403",
      "parents": [
        "c5e32ef628c23758523008358c11aaa7e7422ac4",
        "dc2963aecaf38bf53d6de82957412a486049c207"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 03 00:43:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 03 00:43:00 2013 +0000"
      },
      "message": "Merge \"Track and persist directory stacks; recents work.\""
    },
    {
      "commit": "dc2963aecaf38bf53d6de82957412a486049c207",
      "tree": "92e8761e1415e13d789199be3d0b60a873f2763e",
      "parents": [
        "92d7e697a864a3e18bef4ef256bb3eb339a66b4e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 15:55:26 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 17:39:38 2013 -0700"
      },
      "message": "Track and persist directory stacks; recents work.\n\nMove to manual tracking of directory navigation stack so we have Uri\ndata to persist, instead of opaque fragment backstack.  Remember\ndirectory stacks across launches on a per-app basis.\n\nStart recording recently opened and created files.  Uniform Uri\nparameter extraction utility methods in contract.\n\nChange-Id: I79ed30ee10272bf7c53d339e797639c993f649bb\n"
    },
    {
      "commit": "a7397883de67d674970d91f86d46ccf637e5e543",
      "tree": "eaef378b35af8374b8f8940f59c789d7bc66d8b9",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jul 30 20:07:47 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Aug 02 17:22:53 2013 -0700"
      },
      "message": "NFC: Host-based card emulation APIs.\n\n- New INfcCardEmulation interface to allow apps to interface\n  with card emulation system.\n- New BIND_NFC_SERVICE permission to prevent malicious apps\n  from binding to card emulation services.\n- ApduServiceInfo is now in the framework.\n- Added constants to Settings.Secure for storing defaults.\n- Modified XML grammar a bit.\n\nChange-Id: I56b3fa6b42eb5dc132c91c1386ab1e6bac779059\n"
    },
    {
      "commit": "43a1e3d319d77c251445339bcc8f82c82b097fee",
      "tree": "8dc339710f25fdbcf4172f5f0e71cce98612de53",
      "parents": [
        "aaabfe9587ac5ca7c973417ed13c20ae655e2fb8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 02 16:45:03 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 02 16:45:03 2013 -0700"
      },
      "message": "Move caption style to its own class, add presets\n\nBUG: 9926077\nChange-Id: I14e809c5a95103e57d30f4273399e9914af52b56\n"
    },
    {
      "commit": "bb9b30078739dba99ffa094b35fde0118c245097",
      "tree": "f03f4fa6218f39ca80108ab294dc7633c55614e9",
      "parents": [
        "4d79d7821d45719b8efe71e68617e511084cb8a1",
        "8c43376ea83a67414bd6823a472b76d41160239e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 21:24:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 21:24:38 2013 +0000"
      },
      "message": "Merge \"    First cut of the print notifications.\""
    },
    {
      "commit": "8c43376ea83a67414bd6823a472b76d41160239e",
      "tree": "05ee0b02f711058ce5443a8bbee33edd19df2d8f",
      "parents": [
        "55b409a97cf6376399a0940313ea852368727d6f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 14:22:19 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 14:22:22 2013 -0700"
      },
      "message": "    First cut of the print notifications.\n\n    1. Added notifications for a queued print job, for a started print job,\n       for ongoing canceling a print job, and for a failed print job. The\n       notifications for queued and started state have a cancel action. The\n       notification for failed print job has a cancel and a restart action.\n\n    2. Propagating failure message from the print service to the notifications.\n\n    3. PrintJobConfigActivity was not setting the initial value for the\n       print job copies and was not updating the UI immediately after creation.\n\n    4. Refactored PrintJobConfigActivity to avoid using the hack to avoid\n       reaction for item selection change in a spinner for an event that\n       happened before the callback was registered.\n\n    5. Removed the label attribute from PrinterInfo and now PrinterId is\n       composed of the printer name and the service component name. This\n       is nice since for restarting print jobs we do not need to store\n       information about the printer except the printer id which is\n       already part of the PrintJobInfo\u0027s data. Also the printer name\n       is not expected to change anyway.\n\n    6. Allowing cancellation of a queued print job. Also no print job is\n       cancelled without asking the managing print service to do that.\n       Before we were immediately canceling print jobs in queued state\n       but it was possible for a buggy print service to not set the\n       print job state to started before starting to do expensive work\n       that will not be canceled.\n\n    7. PrintServiceInfo was throwing an exception the the meta-data\n       XML for the print service was not well-formed which would crash\n       the system process. Now we just ignore not well-formed meta-data.\n\n    8. Removed unused permissions from the PrintSpooler\u0027s manifest.\n\nChange-Id: Iba2dd14b487f56e137b90d1da17c3033422ab5e6\n"
    },
    {
      "commit": "aaabfe9587ac5ca7c973417ed13c20ae655e2fb8",
      "tree": "303ab804d280e981f984da5b47c43f0b5760634e",
      "parents": [
        "df2cab2fc46c3f2c56f85dee1a19d0fa48cfd444",
        "92d7e697a864a3e18bef4ef256bb3eb339a66b4e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 18:10:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 18:10:09 2013 +0000"
      },
      "message": "Merge \"Reference docs by ROOT_ID and DOC_ID; recents.\""
    },
    {
      "commit": "92d7e697a864a3e18bef4ef256bb3eb339a66b4e",
      "tree": "e5cce35e071787bfb81a8341716071925f1c86c4",
      "parents": [
        "7e258b31e70464bb6d80b8b42f0cef8e4417bd6a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 10:33:21 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 11:05:11 2013 -0700"
      },
      "message": "Reference docs by ROOT_ID and DOC_ID; recents.\n\nThe same document may be present with different sematics under\nmultiple storage roots, so always reference using both ROOT_ID and\nDOC_ID.  This enables backends to revoke permissions for an entire\nroot, such as when an account is removed.\n\nStart building provider to remember recently accessed documents.\n\nChange-Id: I75befa2e61393dec12fcc7fd27f631fcddae46fa\n"
    },
    {
      "commit": "3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa",
      "tree": "666fee2554ad0f795380960d425606804e8b7ede",
      "parents": [
        "851761574a775c6447ab2393d1ba42568ba08c1b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Jun 24 19:22:25 2013 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 01 15:15:10 2013 -0700"
      },
      "message": "Add automatic Drawable mirroring capability when in RTL layout direction\n\n- default value is \"no mirroring\"\n- introduce android:autoMirrored as a new attribute for Drawable,\nBitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable\n- setting android:autoMirrored\u003d\"true\" means that the drawable will\nbe mirrored when the layout direction is RTL (right-to-left)\n- also fix an issue with ImageView drawable layout direction not\nupdated correctly when RTL properties were changed\n\nSee bug #7034321 Need Drawable RTL support\n\nChange-Id: If595ee5106c786f38e786d3a032e182f784a9d97\n"
    },
    {
      "commit": "e1f886f5e35aa0b4297df85e96716687f3b9517d",
      "tree": "6017deda1afb34e0e6c5c5e91c5eddaaf053accd",
      "parents": [
        "1a02c22d018bf22ab40b2d2d93f750bc7a8135b2",
        "0b8374501975aecd7a628336e2f7e53c272ebeea"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 01 19:24:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 19:24:53 2013 +0000"
      },
      "message": "Merge \"Add new app op to monitor high power location requests.\""
    },
    {
      "commit": "7e258b31e70464bb6d80b8b42f0cef8e4417bd6a",
      "tree": "1a5687b979f6a709303fe3a642403bbbc84ce72b",
      "parents": [
        "3d38fa301ca502882b1bbe06c030d037289636b7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 01 11:01:47 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 01 11:34:56 2013 -0700"
      },
      "message": "XML metadata for storage backend; custom icons.\n\nIntroduce XML metadata for storage backends, used to indicate if\ncustom roots should be queried, and provide any custom MIME type\nicons inside that backend.\n\nParse metadata and resolve custom icons in UI.\n\nChange-Id: Iec026c0b10845edff7a345d9389691ddf2c87a0e\n"
    },
    {
      "commit": "3d38fa301ca502882b1bbe06c030d037289636b7",
      "tree": "646230c49aeb3f6ff9a225c40c266a9e77c94c4b",
      "parents": [
        "5d3dff1d66f99fbd5bef9178e62d789119c02ad1",
        "364ed4dda42882b600dce48319881ff58464fced"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 01 17:18:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 17:18:03 2013 +0000"
      },
      "message": "Merge \"PreferenceActivity Fragment security\""
    },
    {
      "commit": "9171db279826ee91d64eb9538a504ffed5e53b38",
      "tree": "143a9547d0bb43f8c09a0c0f881cb6b44274a82d",
      "parents": [
        "5813f240ec21252b5a79616a67998dd0529986fa"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 31 17:11:12 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 01 09:19:58 2013 -0700"
      },
      "message": "Unhide android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE\n\nUnhide android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE\nUpdate android.media.AudioManager.requestAudioFocus() javadoc for the\n  new focus type.\n\nBug 8251963\n\nChange-Id: I7cd69faaf5f0169ee462b91d0aaa75dc6b092107\n"
    },
    {
      "commit": "f296e317fb44ac33fe5294fcfe0cc1218ca5b86c",
      "tree": "92d228d6e902f5f34ed05599db843216a689d9ea",
      "parents": [
        "2f3efcf1078b051205c2b6708a79f176fa943d17",
        "1e546815bbb736c50679a8aefc25f48561026fc5"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Aug 01 14:40:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 14:40:54 2013 +0000"
      },
      "message": "Merge \"Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\""
    },
    {
      "commit": "dc8abf6cee0bcf44e2cad8155f0c151105d46471",
      "tree": "ae10a9c9c14571984c71447c01cb097b9240d991",
      "parents": [
        "fd5d153af8e37ad88b8564408a7dc27fc20e95f0"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Mar 12 14:40:04 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Aug 01 17:17:48 2013 +0900"
      },
      "message": "Cleanup InputMethodSubtype and add \"isAsciiCapable\".\n\nBug: 8364845\nChange-Id: Ic3ace4b6e0432d56696bcbc0be336aec1dc744a5\n"
    },
    {
      "commit": "53672be11093e56c47e037b8540d63221ccd2f7f",
      "tree": "9e499048338b528598ee0d9b4b40fe18b194030b",
      "parents": [
        "e303900dbdda25cb09fdc3c6d1f43aa68708713b",
        "55b409a97cf6376399a0940313ea852368727d6f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 01 02:16:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 02:16:20 2013 +0000"
      },
      "message": "Merge \"Iteration of the print sub-system.\""
    },
    {
      "commit": "55b409a97cf6376399a0940313ea852368727d6f",
      "tree": "9a919b2d64c469e11d94d6205d44cdd9ab553802",
      "parents": [
        "85b1f883056a1d74473fd9ce774948878f389ab6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 31 17:25:13 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 31 18:59:53 2013 -0700"
      },
      "message": "Iteration of the print sub-system.\n\n1. Added APIs for adding partially initialized PrintInfo objects\n   enabling light-weight lookps for print serivces that want to\n   populate the list of available printers without querying each\n   of them for its capabilities. This includes APIs for the system\n   to request from a print service to update certain printers.\n\n2. Fixed a bug in PrinterId#equals().\n\n3. Added equals and hasCode implementaion to PrinterInfo. Also\n   the defaul in PrinterInfo are now an array instead of a\n   SparseArray - cheaper.\n\n4. Now PrintJobConfigActivity works with partially specified\n   printers. Specifically, if such a printer is selected the\n   activity is requesting from the print service to update\n   the printer. We are currently not handling the timeout case.\n   It also handles udpated pritners.\n\nChange-Id: I5e83e924ef597c9e22cbd06a971d4f4d3bd3a9c1\n"
    },
    {
      "commit": "9f1ef00265b4cfd03d024e1fcdc3eaf85b7b8a40",
      "tree": "97afde4a94f05930df9dabc46102e3ef8838fab4",
      "parents": [
        "f94b34f5397d92080c188277b062537480c05b7d",
        "85b1f883056a1d74473fd9ce774948878f389ab6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 01 00:13:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 00:13:44 2013 +0000"
      },
      "message": "Merge \"Iteration on the print sub-system.\""
    },
    {
      "commit": "1e546815bbb736c50679a8aefc25f48561026fc5",
      "tree": "11a3b7106638c123d052d50ce3e2a1757e004cb4",
      "parents": [
        "3a6f25512c0a682b10961a5a7428e3393ffb0b75"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jun 25 14:25:17 2013 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jul 31 15:50:47 2013 -0700"
      },
      "message": "Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\n\nQuite a few things going on in this commit:\n\n- Enable bitmap strikes by default in Paint objects.\n\nThe SkPaint parameter that enables bitmap strikes was not previously\nincluded in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap\nfonts. Oops! It\u0027s for the best, though, as additional work was needed\nin Skia to make bitmap fonts work anyway.\n\n- Complain if TEXTURE_BORDER_SIZE is not 1.\n\nOur glyph cache code does not currently handle any value other than 1\nhere, including zero. I\u0027ve added a little C preprocessor check to\nprevent future engineers (including especially future-me) from\nthinking that they can change this value without updating the related\ncode.\n\n- Add GL_RGBA support to hwui\u0027s FontRenderer and friends\n\nThis also happened to involve some refactoring for convenience and\ncleanliness.\n\nBug: 9577689\nChange-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c\n"
    },
    {
      "commit": "dabc6fc8a9ee5bdd8371c413f91347d4d65c6a10",
      "tree": "15d2c599ef5167ddd1bd03dd585a7ed43932820b",
      "parents": [
        "a1510c9849d527021b9f14ed3d451bfa8d5f1506",
        "1c8c179dbfee88749101155c1cd7b430d1a8e75c"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Jul 31 09:13:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 09:13:27 2013 +0000"
      },
      "message": "Merge \"Unhide WebView.evaluateJavascript(..)\""
    },
    {
      "commit": "a1510c9849d527021b9f14ed3d451bfa8d5f1506",
      "tree": "a0424f1b334f9bd56dd519c3b4c3cae31e8d5b39",
      "parents": [
        "7cb1757d4c3ae84ca81ccec8f9a13816c645308d",
        "20d96d8aff2193d548977e23ce5158657cac94e0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 31 06:00:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 06:00:35 2013 +0000"
      },
      "message": "Merge \"Define storage roots, external GUIDs, creation.\""
    },
    {
      "commit": "20d96d8aff2193d548977e23ce5158657cac94e0",
      "tree": "b650fadd3425d2b72a4ef6d9e0f180596b5b54f1",
      "parents": [
        "5259ffba255b38728a20e28aa6ba029416d0e925"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 30 17:08:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 30 22:55:23 2013 -0700"
      },
      "message": "Define storage roots, external GUIDs, creation.\n\nAllow storage backends to publish multiple roots into the UI, which\nare defined by a directory GUID, type, and label details.  Update\nexternal provider to surface a primary external storage root, and\nswitch to burning file path into the returned GUIDs so they remain\ndurable.\n\nAdded insert, update, and delete support to external provider. Adds\nfile extensions to display names when needed to match MIME type.\n\nAdd flags for searching and deletion, and extras for Cursor\npagination. Add directory creation dialog to UI. Opening a document\nalways gives write access.\n\nChange-Id: I9bea1aa0dcde909a5ab86aefeece7451ab920cf1\n"
    },
    {
      "commit": "6d64d5ab84a66f98633acf740414a8848feaa14b",
      "tree": "b9f0097582aeefdb657d9b58688ece8bfbb99d1c",
      "parents": [
        "d608b0e97cc524deeae496f9a24edef6f29af03f",
        "84956d53f1e86b8c000f8994ea9040b71a30e321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "message": "Merge \"Add missing InsetDrawable.getDrawable() method\""
    },
    {
      "commit": "85b1f883056a1d74473fd9ce774948878f389ab6",
      "tree": "7417d396a98766611636e0123102154f60726737",
      "parents": [
        "0d1daa50f6d180c57f92596501e2e5c0b5ef9997"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 24 17:00:06 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 30 17:15:11 2013 -0700"
      },
      "message": "Iteration on the print sub-system.\n\n1.  API changes: Moved copies API from PrintAttributes to PrintJobInfo;\n    Changed the PageRange list to an array in PrintDocumentAdapter#onWrite;\n    Added onCancelled method to the layout and write callbacks.\n\n2.  Refactored the serialization of remote layout and write commands. Now\n    the commands are serialized by the code in the client instead in the spooler.\n    The benefit is simple code since the client has to do a serialization to delegate\n    to the main thread anyway. The increased IPC found is fine since these calls\n    are quite unfrequent.\n\n3.  Removed an unused file: IPrintSpoolerObserver.aidl\n\n4.  Added equals and hasCode implementation to PageRange, PrintAttributes,\n    MediaSize, Resolution, Margins, Tray, PrintDocumentInfo.\n\n5.  Added shortcut path for query APIs on PrintJob that return cached values\n    if the print job is in a uncuttable state, i.e. completed or cancelled. Failed\n    print jobs can be restarted.\n\n6.  PrintJobInfo was not properly serialized.\n\n7.  Updated the look of the print dialog to be stable if there is and there isn\u0027t\n    currently selected printer.\n\n8.  PrintJobCOnfigActivity now calls onLayout on every print attributes change\n    but requests a write only on print preview or print button press. Also if the\n    layout did not change the content and it is already written no subsequent\n    call is made. Also if the selected pages change and we already have them\n    no subsequent call to write is made. Also the app is called with print preview\n    attribute set when performing layout and with it cleared after the print button\n    is pressed. A lot of changes making sure that only valid actions are enabled\n    in the activity (looks like a dialog) at a given time frame. The print job config\n    activity is also hidden after we got all the data, i.e. layout and write are done.\n\n9.  The callback from the print spooler to the system are scheduled via messages\n    to avoid lock being held during the call. It was hard to guarantee that since a\n    method holding a lock may be calling one that would like to release the lock\n    at some point to make the callbacks.\n\n10. Print spooler state is persisted only if something changes in a completed\n    print job, i.e. not one that is being constructed due the print job config dialog.\n\n11. Fixed a potential race in the RemotePrintSpooler where it was possible that\n    a client that got a handle to the remote spooler calls into an unbound spooler.\n    E.g: the client gets the remote interface with a lock held, now the client releases\n    the lock to avoid IPC with a lock, during the IPC scheduling the spooler has\n    notified the system that it is done and the system unbinds from it, now the\n    client\u0027s IPC is made to a spooler that is disconnected.\n\nChange-Id: Ie9c42255940a27ecaed21a4d326a663a4788ac9d\n"
    },
    {
      "commit": "364ed4dda42882b600dce48319881ff58464fced",
      "tree": "660d07bfdbec697d8c1404309aafb5ab42cf7a35",
      "parents": [
        "cb9accefb19ba6ae6fd449dc9ab62e972b51335c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 26 13:37:56 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jul 30 16:23:50 2013 -0700"
      },
      "message": "PreferenceActivity Fragment security\n\nProvides a way for PreferenceActivities to verify that they\naren\u0027t being launched with Fragments not meant to be attached to\nthem. Default implementation will fail verification for apps built\nwith KLP. This will not affect apps built for earlier targets.\n\nAlso, make sure that the class being instantiated is a Fragment and\nnot some random class.\n\nBug: 9901133\n\nChange-Id: I564cd5168eabcadd7594ea8011e2081ebebfe063\n"
    },
    {
      "commit": "0b8374501975aecd7a628336e2f7e53c272ebeea",
      "tree": "bc67bcfdcb3ecf463dbd2d828526991f4f62e32f",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Mon Jul 29 16:02:13 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Jul 30 14:59:33 2013 -0700"
      },
      "message": "Add new app op to monitor high power location requests.\n\nThis is a new op parallel to the existing OP_MONITOR_LOCATION\nbut only tracks those requests deemed to be above a\npower threshold.\n\nChange-Id: I76fe4d9d2e550293b9da6d5cf902a5b4dd499f0f\n"
    },
    {
      "commit": "84956d53f1e86b8c000f8994ea9040b71a30e321",
      "tree": "d060acdb0c9837c055f488ce232b6cbc0fea12c2",
      "parents": [
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "message": "Add missing InsetDrawable.getDrawable() method\n\nChange-Id: I216b0e8a327f495fd83ebac79013418dbae007b9\n"
    },
    {
      "commit": "f2c89b9ed65116888f1d4a863b7c10c007a49c5d",
      "tree": "5a2a3110e1c1c8673f1fa22b94bc59ad30316e77",
      "parents": [
        "fec4a907b1ccb667758d9e7df151d372a070fd83",
        "9516ed4598948eea5623c57e443bce08c1f48ab6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "message": "am 9516ed45: am cfc23ac6: Merge \"Add support for MNC\u003d00\"\n\n* commit \u00279516ed4598948eea5623c57e443bce08c1f48ab6\u0027:\n  Add support for MNC\u003d00\n"
    },
    {
      "commit": "2f1a2e423e0fbb64467d6fcfa4e82c6384f31210",
      "tree": "84d91887a953c9a0bf5ca6d1ca112c8ab82bc08f",
      "parents": [
        "39dd5a62ae4348e941c8351635e61dc065b2ced7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 25 17:12:05 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 11:37:31 2013 -0700"
      },
      "message": "Camera2 API: Rename package to android.hardware.camera2\n\nChange-Id: I77b7939e199f9fe8e12a59393c24cff08097448c\n"
    },
    {
      "commit": "56fbb6362b6a0f17804d33af913b720f21c884c5",
      "tree": "56d0e70409283ecdb358d367e58774fee1ce89ba",
      "parents": [
        "4d4a137bf5f861bce744c113744718066e1f214e",
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 17:53:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 30 17:53:05 2013 +0000"
      },
      "message": "Merge \"Add path ops API\""
    },
    {
      "commit": "8018c8db8221aa604b3c083e09d173cc27e53d83",
      "tree": "60cbc26ddde4fa65a476a7e869d88f358b734210",
      "parents": [
        "93d34a61dbdfd9ece9ac4a53d78e896638172895"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 29 19:17:59 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 10:51:24 2013 -0700"
      },
      "message": "Add path ops API\n\nPath ops can be used to combine two paths instances in a single path\nobject. The following operations can be used:\n\n- Difference\n- Reverse difference\n- Union\n- XOR\n- Intersection\n\nTo use the API:\n\nPath p1 \u003d createCircle();\nPath p2 \u003d createRect();\n\nPath result \u003d new Path();\nresult.op(p1, p2, Path.Op.DIFFERENCE);\n\nThis code will subtract the rectangle from the circle and generate\nthe resulting path in \"result.\"\n\nChange-Id: Ic25244665b6691a7df0b0002a09da73d937b553b\n"
    }
  ],
  "next": "1c8c179dbfee88749101155c1cd7b430d1a8e75c"
}
