)]}'
{
  "log": [
    {
      "commit": "925b4da0975ad98ece8a631040afa55b07cebb36",
      "tree": "f3b118ad76f56c75516c3063c24fec33b3fb67a2",
      "parents": [
        "c0e147d469ac7b78fc35282f4cacdee3373e6c37",
        "53751169014afc6e4a509c3e318ac92b81b711b3"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Feb 23 12:09:07 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 12:09:07 2010 -0800"
      },
      "message": "Merge \"Fixing pressed state in preferences, addresses bug 2310741\""
    },
    {
      "commit": "53751169014afc6e4a509c3e318ac92b81b711b3",
      "tree": "f25c031470e1c037536d727f671563c1beb89b48",
      "parents": [
        "e575d3dff5b06cb5a4aae0fa0626f884297eb15d"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Feb 23 11:28:01 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Feb 23 12:05:14 2010 -0800"
      },
      "message": "Fixing pressed state in preferences, addresses bug 2310741\n"
    },
    {
      "commit": "c0e147d469ac7b78fc35282f4cacdee3373e6c37",
      "tree": "06cd1a4165f17f8b23f29dd96ff1a36a6900088a",
      "parents": [
        "e575d3dff5b06cb5a4aae0fa0626f884297eb15d",
        "661f0130de6a4e1592b679a212c8f758133d36ee"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Feb 23 11:57:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 11:57:13 2010 -0800"
      },
      "message": "Merge \"Update AccountManager\u0027s javadoc.\""
    },
    {
      "commit": "661f0130de6a4e1592b679a212c8f758133d36ee",
      "tree": "456f995e2fcd45fe33059f0b051ba6b7262b9a8b",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Feb 19 11:23:00 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Feb 23 11:53:59 2010 -0800"
      },
      "message": "Update AccountManager\u0027s javadoc.\n\nIncludes several potentially controversial major changes:\n\n- Remove the amount of repeated boilerplate explanations of common\nidioms.  I find them much more distracting than useful.  The same\nthings are explained, but in fewer places.\n\n- Add more narrative/directive information instead of merely descriptive\ncommentary; I included a lot of \"color\" about who particular methods are\nintended for and why you might use them.\n\n- Add explicit guidance (in the class javadoc) about the common usage pattern.\nExplicitly document the auth token invalidation dance, which is highly\nnonobvious, had never been written down before, and which GMM got wrong,\ncreating a Latitude conops nightmare they\u0027re still digging out of.\n\n- Explain and justify, as best I can, the overall model of account management:\nsaved credentials, pluggable authenticators, auth tokens, and so on.  Clarify\nsome things, like that setPassword() changes the locally cached credential\nbut does not set the user\u0027s password on the server.\n\n- Clarify what the passed-in Activity parameter is used for.  (It seems silly,\nbut I was confused by this: is it supposed to be the Activity that actually\nperforms the password prompt or whatever?  No, it\u0027s just a Context for the\nstartActivity() to be launched from.)\n"
    },
    {
      "commit": "e575d3dff5b06cb5a4aae0fa0626f884297eb15d",
      "tree": "f92c5472b71821c661b2030fd28a6cced1cecb85",
      "parents": [
        "c747cd8bd83c6925d709bef01f682698b1d386f1",
        "88e03a97366d08fc69d852cf2219f9d0b1916af4"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Feb 23 10:46:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 10:46:42 2010 -0800"
      },
      "message": "Merge \"Add ability to run tests restricted to given annotation.\""
    },
    {
      "commit": "c747cd8bd83c6925d709bef01f682698b1d386f1",
      "tree": "c03b26d706c6bf23cae0327e40136d12d24a5e09",
      "parents": [
        "42ddfc949504347902fc40a363e5d72c51111d7f",
        "191d898468d2f4910a684f429bec518320843744"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Feb 23 10:34:52 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 10:34:52 2010 -0800"
      },
      "message": "Merge \"Move LocationTracker from com.google.android to com.android package.\""
    },
    {
      "commit": "42ddfc949504347902fc40a363e5d72c51111d7f",
      "tree": "83d1cd6ed587c343d32664b237cddd0869a9add5",
      "parents": [
        "f82c76656b29059e2d28b9ca4bdad11d7cba038b",
        "5ee0bce5e006610a06d6d8f3572098b1ccaded6d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 10:30:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 10:30:48 2010 -0800"
      },
      "message": "Merge \"Return runtime errors instead of asserting in MPEG4 file format validation, also add more validation to ensure presence of codec specific data for avc, aac and mpeg4.\""
    },
    {
      "commit": "5ee0bce5e006610a06d6d8f3572098b1ccaded6d",
      "tree": "a9b9e4dbcd7f94be86f6e3773848f6f9369147e7",
      "parents": [
        "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 10:12:02 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 10:21:39 2010 -0800"
      },
      "message": "Return runtime errors instead of asserting in MPEG4 file format validation, also add more validation to ensure presence of codec specific data for avc, aac and mpeg4.\n\nrelated-to-bug: 2431967\n"
    },
    {
      "commit": "f82c76656b29059e2d28b9ca4bdad11d7cba038b",
      "tree": "57734d0756c6d29ca9c507bbf361990a719ca4f7",
      "parents": [
        "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0",
        "68db99ef761456ffaa0c4b918ce75dfc0892784a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 23 10:16:57 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 10:16:57 2010 -0800"
      },
      "message": "Merge \"Replace system property retrieval calls with DecoderCapabilities Java API calls.\""
    },
    {
      "commit": "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0",
      "tree": "63abda3497474b6ca3d4b8ce16c024caa3ed09d7",
      "parents": [
        "d162a114cc2fe36cf0077ea4dc76819cb498788e",
        "6cf7a325e6e9e70d9858e21fbb438341332ed254"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Feb 23 06:28:31 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 06:28:31 2010 -0800"
      },
      "message": "Merge \"Clean up global search and web search activity finding\""
    },
    {
      "commit": "6cf7a325e6e9e70d9858e21fbb438341332ed254",
      "tree": "02d64c31d7f411c40710c1b149a29f57c6f5aa4c",
      "parents": [
        "6fd5e0ac51021d55beb2c1f6f184469311301711"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Feb 23 13:17:06 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Feb 23 14:27:43 2010 +0000"
      },
      "message": "Clean up global search and web search activity finding\n\nThis removes the \u0027*\u0027 value for android.app.searchable and\nandroid.app.default_searchable that was previously used by apps to say\nthat they want global search as their search. I think the only\nactivity that this will affect is the wallpaper chooser in the\nlauncher, which doesn\u0027t seem like it matters.  It could mean that some\nthird party code will stop invoking global search, but all they would\nneed to do is call startSearch() with globalSearch\u003dtrue instead.\n\nFixes http://b/issue?id\u003d2377433 and http://b/issue?id\u003d2377429\n\nChange-Id: I0252952b44ae85dab31221b598ed79cc24e2b580\n"
    },
    {
      "commit": "191d898468d2f4910a684f429bec518320843744",
      "tree": "e9a20eb9d42a48830a52ffe9116925c9b4763bbf",
      "parents": [
        "e5a1d4a21eb35abe75f60cd0416ee469e8c2471b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 23 07:50:18 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 23 07:50:18 2010 -0500"
      },
      "message": "Move LocationTracker from com.google.android to com.android package.\n\nChange-Id: I75757373e39669955d5f753a31a2a7b78d0b68ed\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d162a114cc2fe36cf0077ea4dc76819cb498788e",
      "tree": "13dd77a533123cb8bb8c06637c32544148f4b4f5",
      "parents": [
        "6fd5e0ac51021d55beb2c1f6f184469311301711"
      ],
      "author": {
        "name": "Valentin Kravtsov",
        "email": "valentink@google.com",
        "time": "Tue Feb 23 09:39:43 2010 +0000"
      },
      "committer": {
        "name": "Valentin Kravtsov",
        "email": "valentink@google.com",
        "time": "Tue Feb 23 11:29:17 2010 +0000"
      },
      "message": "Increasing the VS button\u0027s touchable area\n\nadding invisible padding to the background buttons\n\nChange-Id: Icb8ff9b31e83049520566c2498e1f82067636897\n"
    },
    {
      "commit": "6fd5e0ac51021d55beb2c1f6f184469311301711",
      "tree": "eb5128ca64addfe3939c855125756a9d2abb1260",
      "parents": [
        "e5a1d4a21eb35abe75f60cd0416ee469e8c2471b"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Thu Feb 18 11:19:56 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Tue Feb 23 06:04:33 2010 +0100"
      },
      "message": "Fix calculation of the next twilight update for locations where the day or night never ends.\n"
    },
    {
      "commit": "e5a1d4a21eb35abe75f60cd0416ee469e8c2471b",
      "tree": "99b3f939323d10e29c3457039e55b6eb34d96ec5",
      "parents": [
        "f13f60127ec570590ef5acf3690d8eba4a3d7ea4",
        "c9d3be3f0e10b62fa6d4899ce827866299d41783"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 22 20:58:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 20:58:43 2010 -0800"
      },
      "message": "Merge \"Move LocationTracker test app from vendor/google to frameworks/base/tests\""
    },
    {
      "commit": "c9d3be3f0e10b62fa6d4899ce827866299d41783",
      "tree": "d49433889dae61dfd1c137f139de5df9fe0d549f",
      "parents": [
        "2f6a01858bea6c669039b0b1e10aa65fc73c7256"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 23:42:02 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 23:57:44 2010 -0500"
      },
      "message": "Move LocationTracker test app from vendor/google to frameworks/base/tests\n\nChange-Id: I49f1bfe2081f2c48fcb22b74aa2377857c2bae6d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f13f60127ec570590ef5acf3690d8eba4a3d7ea4",
      "tree": "59d710ab994c4543543f3ca74b68f552d0a53dc7",
      "parents": [
        "90c79c4fe6d207356fbdbd1b1a8b3dbea2540194",
        "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 20:48:01 2010 -0800"
      },
      "message": "Merge \"Fix some random bugs.\""
    },
    {
      "commit": "9e0f5d9a63ba88c2bf69df0557f8c9696db370c4",
      "tree": "f1ae5c2aac298756a0db18fdb13a73f0a052728b",
      "parents": [
        "0f70868c835011a44d110fd48d00f49f60f38507"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 15:05:42 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 20:45:58 2010 -0800"
      },
      "message": "Fix some random bugs.\n\n2185256: After open \u0026close of device keyboard shortcut does not added to Home desktop.\n\nActivityThread was losing the last saved state when restarting or launching into\na paused state.\n\n2366174: defaults not cleared when they should be\n\nPackageManagerService now removes any preferred activity records for a package\nwhen it is uninstalled.\n\n2154556: Battery stats can have an unbounded number of wake locks\n\nWe now start combining wake locks into one shared record when we hit a\nmaximum limit (currently 20).\n\n2442519: Foreground services can have no notification by providing a bogus one.\n\nIf the notification manager rejects our notification, the service is forced to\nno longer be in the foreground.\n\n2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java\n\nCleaned up finalization to call super class and avoid the big activity manager\nlock (we still need to use the locks inside of the message system, but these\nare much less likely to be a problem).\n\n2284190: Cannot call a phone number using adb\n\nWe weren\u0027t getting the calling uid/pid in startActivity() if the caller did not\nsupply an application record.\n"
    },
    {
      "commit": "90c79c4fe6d207356fbdbd1b1a8b3dbea2540194",
      "tree": "3854da7bf79b1cc9421f7a3f28465d93bad1075d",
      "parents": [
        "0f70868c835011a44d110fd48d00f49f60f38507",
        "46db504de583d7d644a28a4e7adae43eed5df1ba"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Feb 22 20:39:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 20:39:24 2010 -0800"
      },
      "message": "Merge \"Don\u0027t start location providers until the system is ready.\""
    },
    {
      "commit": "0f70868c835011a44d110fd48d00f49f60f38507",
      "tree": "5da208f567cd3bd61034fc0ed7df072e764323a6",
      "parents": [
        "2ee587a9c259b58aedfec6037af3abdb37b97f9b",
        "f1cbfff03ac53be9475f419d16a2e79b6c28a494"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 18:16:32 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 18:16:32 2010 -0800"
      },
      "message": "Merge \"Fix bug when adding SET_INSTALL_LOCATION to SettingsProvider database, upgrade path.\""
    },
    {
      "commit": "88e03a97366d08fc69d852cf2219f9d0b1916af4",
      "tree": "99e50be3bfd8a264b6d84133e4e05ea59e2c50ef",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 09:57:11 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Feb 22 18:08:35 2010 -0800"
      },
      "message": "Add ability to run tests restricted to given annotation.\n\nAnd ability to exclude tests with given annotation.\n\nAlso fix class cast compile warning in emma output method.\n\nBug 2239240\n\nChange-Id: I56273a51a8c58a690680bdb612615fab69e6e13f\n"
    },
    {
      "commit": "2ee587a9c259b58aedfec6037af3abdb37b97f9b",
      "tree": "4f10d45dad3da820bc8abb350cdacc397b60a02a",
      "parents": [
        "2f6a01858bea6c669039b0b1e10aa65fc73c7256",
        "8cd303aec6f11ea9fece70f6e3d82efb607f8637"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Feb 22 17:50:31 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 17:50:31 2010 -0800"
      },
      "message": "Merge \"Quick fix layout test path problems\""
    },
    {
      "commit": "8cd303aec6f11ea9fece70f6e3d82efb607f8637",
      "tree": "c906279cf543333e40b8afecf7dc651b685b21d3",
      "parents": [
        "469888fe84f48febbe8a1c1ade455ffeac828079"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Feb 22 16:16:24 2010 -0800"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Feb 22 17:45:05 2010 -0800"
      },
      "message": "Quick fix layout test path problems\n\nSD card mount point has changed from /sdcard to /mnt/sdcard. layout test was calling getCanonicalPath to determine the path to the test case, which causes problem because /sdcard is now a symlink, and canonical path is actually the \"real\" path. Using quick dirty fix for now, will properly migrate any hard-coded reference to \"/sdcard\" to system function calls.\n"
    },
    {
      "commit": "46db504de583d7d644a28a4e7adae43eed5df1ba",
      "tree": "0d0a3f18eedf790f3f85ada26875d3211c2aa8c6",
      "parents": [
        "2f6a01858bea6c669039b0b1e10aa65fc73c7256"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 16:36:44 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 22 20:42:27 2010 -0500"
      },
      "message": "Don\u0027t start location providers until the system is ready.\n\nChange-Id: Id545e95705e59ffbaaab8a679a1b7df488813101\nBUG: 2461320\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2f6a01858bea6c669039b0b1e10aa65fc73c7256",
      "tree": "7c4311ce72df2005c6a4b5b3ac567526260badca",
      "parents": [
        "469888fe84f48febbe8a1c1ade455ffeac828079"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Mon Feb 22 13:26:59 2010 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Mon Feb 22 17:27:57 2010 -0800"
      },
      "message": "Fix bug 2183276: Synchronize all mManagedCursors accesses.\n"
    },
    {
      "commit": "469888fe84f48febbe8a1c1ade455ffeac828079",
      "tree": "41f3d0951347cb12fc6ee9f4f75a4010860e7cc3",
      "parents": [
        "79db13bf60411bd6b4ef1a3b00d76d7236e77f98",
        "2978bfc6ad79c8f1138d34a704ce5b3d3d70d2c1"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Feb 22 17:06:21 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 17:06:21 2010 -0800"
      },
      "message": "Merge \"beging np2 extension check work.\""
    },
    {
      "commit": "79db13bf60411bd6b4ef1a3b00d76d7236e77f98",
      "tree": "2048139f2fcb166c82111758b437a6f310d63f19",
      "parents": [
        "a2fb0b7918357e97879546cabf79eb453a729c5e",
        "a1303e0193aeb32131572fb0dfe8e595a908b4e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 22 17:01:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 17:01:41 2010 -0800"
      },
      "message": "Merge \"Calling super.finalize() in finalize() methods. Also cleanup code, mostly removing unused handlers and casts.\""
    },
    {
      "commit": "a2fb0b7918357e97879546cabf79eb453a729c5e",
      "tree": "2b70426afe616a17f10511951cc443528c8673f5",
      "parents": [
        "6fb7cbf12ad6c423a84e815c314f917c88234ae6",
        "afc0155718ceb6b14d78dffc5590bd359511be8b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 22 17:01:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 17:01:26 2010 -0800"
      },
      "message": "Merge \"Prevent crash in AbsSpinner when the selection is out of sync. Bug #196253\""
    },
    {
      "commit": "afc0155718ceb6b14d78dffc5590bd359511be8b",
      "tree": "a42cee3cc0710a649967de30017c83a206f2df79",
      "parents": [
        "582ae172a4e9784f377c9935b47160fba1764142"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 16:48:47 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 16:48:47 2010 -0800"
      },
      "message": "Prevent crash in AbsSpinner when the selection is out of sync.\nBug #196253\n\nAlso do a little bit of syntax cleanup, remove unused code, etc.\n"
    },
    {
      "commit": "6fb7cbf12ad6c423a84e815c314f917c88234ae6",
      "tree": "ae3b201245f47f23fbfac6768b3ca2ce616dc2c9",
      "parents": [
        "42122b6aa6957722326a36d8f00078f22a333cc6",
        "c07907e0389f20f83fdfe01319023b8c7d5e4bbd"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:46:08 2010 -0800"
      },
      "message": "Merge \"Show the USB mass storage UI as soon as USB is connected.\""
    },
    {
      "commit": "42122b6aa6957722326a36d8f00078f22a333cc6",
      "tree": "2ac5650f4022f99877fb38269ca4658b3987553a",
      "parents": [
        "d6b6bf93219c8f7b3a780174d03e42174c32f38a",
        "8e4e7263e5abdb83567ddff8fc09a21948ad21c8"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 22 16:36:38 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:36:38 2010 -0800"
      },
      "message": "Merge \"Standard alert dialogs overscroll only when content scrolls\""
    },
    {
      "commit": "d6b6bf93219c8f7b3a780174d03e42174c32f38a",
      "tree": "a74783785f6799cc72f33ba3a78bcf8e123611f0",
      "parents": [
        "fde32903740fd2d12eb5895a5662d56a18f8a00a",
        "078f7f05d53ba8e92f4a72992edab732125af79f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 16:34:32 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:34:32 2010 -0800"
      },
      "message": "Merge \"Properly unload the renderer shared library after the renderer goes away.\""
    },
    {
      "commit": "fde32903740fd2d12eb5895a5662d56a18f8a00a",
      "tree": "366f65c351d9d432e15be2bbf45bda4ebd944c6b",
      "parents": [
        "582ae172a4e9784f377c9935b47160fba1764142",
        "25880968cbde25c9edb162c0d70d45dc75239456"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Feb 22 16:32:25 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:32:25 2010 -0800"
      },
      "message": "Merge \"Reduce SQLiteDatabase and ContentResolver EventLog logging thresholds.\""
    },
    {
      "commit": "a1303e0193aeb32131572fb0dfe8e595a908b4e0",
      "tree": "2b67909657bfe39ca4081bbc6b5287e2e308ebf2",
      "parents": [
        "582ae172a4e9784f377c9935b47160fba1764142"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 16:29:10 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 16:29:10 2010 -0800"
      },
      "message": "Calling super.finalize() in finalize() methods.\nAlso cleanup code, mostly removing unused handlers and casts.\n"
    },
    {
      "commit": "f1cbfff03ac53be9475f419d16a2e79b6c28a494",
      "tree": "f1c5ef7ef327802c3284d058fa034ac9b01a796b",
      "parents": [
        "582ae172a4e9784f377c9935b47160fba1764142"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 16:12:07 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 16:23:19 2010 -0800"
      },
      "message": "Fix bug when adding SET_INSTALL_LOCATION to SettingsProvider database, upgrade path.\n"
    },
    {
      "commit": "582ae172a4e9784f377c9935b47160fba1764142",
      "tree": "d2eecdf218e1314594f4bfc890d0ae9074f88b6f",
      "parents": [
        "ab9985ed4c02ef70d4a48bf3bbeedc12d14928f3",
        "196863d27407e23c69debdd061df58ce8fe76c20"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 22 16:08:28 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:08:28 2010 -0800"
      },
      "message": "Merge \"Fix for the safty check. It checks that nFir21 + jNpoints \u003c\u003d BUF_SIZE,  but when it calls GetByteArrayRegion, it multiplies it by 2 which  defeats the \"// safety first\" check at the beginning.\""
    },
    {
      "commit": "196863d27407e23c69debdd061df58ce8fe76c20",
      "tree": "da98749f52e5ca39bb3ff282ca2df5c660aa0b4f",
      "parents": [
        "bc92766cfd8d91f390799a96d5fb8c4aa4d07448"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 22 15:56:21 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 22 15:59:03 2010 -0800"
      },
      "message": "Fix for the safty check. It checks that nFir21 + jNpoints \u003c\u003d BUF_SIZE,\n but when it calls GetByteArrayRegion, it multiplies it by 2 which\n defeats the \"// safety first\" check at the beginning.\n"
    },
    {
      "commit": "078f7f05d53ba8e92f4a72992edab732125af79f",
      "tree": "d491e31671a1a4feebe83817b0b0901d200ae54d",
      "parents": [
        "ab9985ed4c02ef70d4a48bf3bbeedc12d14928f3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 11:24:01 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 15:41:07 2010 -0800"
      },
      "message": "Properly unload the renderer shared library after the renderer goes away.\n"
    },
    {
      "commit": "2978bfc6ad79c8f1138d34a704ce5b3d3d70d2c1",
      "tree": "e87e3477880e64454f57cbc00cf22aea71e762a4",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Feb 22 15:37:51 2010 -0800"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Feb 22 15:37:51 2010 -0800"
      },
      "message": "beging np2 extension check work.\n"
    },
    {
      "commit": "ab9985ed4c02ef70d4a48bf3bbeedc12d14928f3",
      "tree": "3001336a1c2c247c9a33ea57bf4ffa9c7bd69802",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14",
        "b8de9578dcb672d92b407d7a24c77af13f85c353"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 15:32:14 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 15:32:14 2010 -0800"
      },
      "message": "Merge \"This hardware video decoder lies about its required input buffer sizes allocating 2.7 MB of memory instead of the required 176 KB... Added another quirk.\""
    },
    {
      "commit": "8e4e7263e5abdb83567ddff8fc09a21948ad21c8",
      "tree": "ae4abb5335467762f6fa9d57e7b56cac62e0bad2",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 22 15:18:14 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 22 15:18:14 2010 -0800"
      },
      "message": "Standard alert dialogs overscroll only when content scrolls\n"
    },
    {
      "commit": "25880968cbde25c9edb162c0d70d45dc75239456",
      "tree": "d1ffd8aab7ba77a0138f29950b31d54fe6420ba0",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Feb 22 15:17:49 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Feb 22 15:17:49 2010 -0800"
      },
      "message": "Reduce SQLiteDatabase and ContentResolver EventLog logging thresholds.\n\nTurns out the database is used a ton, and not particularly quickly, so\nthese were spamming the logs at their prior 100ms thresholds.  Setting\nit to 500ms now.  (still sub-sampled, so should be ~5x less spammy...)\n"
    },
    {
      "commit": "b8de9578dcb672d92b407d7a24c77af13f85c353",
      "tree": "c271c7938f29469eeb4f1e27e444985669488316",
      "parents": [
        "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 14:58:45 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 14:58:45 2010 -0800"
      },
      "message": "This hardware video decoder lies about its required input buffer sizes allocating 2.7 MB of memory instead of the required 176 KB... Added another quirk.\n\nrelated-to-bug: 2281327\n"
    },
    {
      "commit": "33285c37abee6d95d0ac55cd7e9889cdc8d96d14",
      "tree": "a0435985e72cfd4e829583e4803d9a9af88e8aae",
      "parents": [
        "17b7d97d7159da265d016a842c6319bd22b361d0",
        "c86727f5805f28fbd25da141c50fb6843f364f3a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 22 14:39:55 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 14:39:55 2010 -0800"
      },
      "message": "Merge \"remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\""
    },
    {
      "commit": "17b7d97d7159da265d016a842c6319bd22b361d0",
      "tree": "5bc1587b692b7870f3858083807d8687ea3f2cfa",
      "parents": [
        "176160a3edc299a35901c4345a04a01024af48ed",
        "6fe2b22085864b8f6bb6c59ecc0a12c6c4253309"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 22 14:17:52 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 14:17:52 2010 -0800"
      },
      "message": "Merge \"Fix bug where calling getButton(int) returns null.\""
    },
    {
      "commit": "176160a3edc299a35901c4345a04a01024af48ed",
      "tree": "64b2355babd7a884cc772f2f157d6be68126423f",
      "parents": [
        "1efc95f54ef28135d05db756f0b124a37341f90b",
        "1ff8fee7c8e4fcd4ef12c6c5d1055b7eccf5809b"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 14:15:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 14:15:00 2010 -0800"
      },
      "message": "Merge \"Better file permissions enforcement on system keystore.\""
    },
    {
      "commit": "1efc95f54ef28135d05db756f0b124a37341f90b",
      "tree": "cad8be7c6a2ccbdca1ffa792637bf5d87db68d3b",
      "parents": [
        "29274dc363229a3a4f18c7341f90bd04e39c2c07",
        "ab3e1052823620a91a1330b31da6aaf530ed8c3b"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 22 14:14:46 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 14:14:46 2010 -0800"
      },
      "message": "Merge \"Don\u0027t switch layout modes in AbsListView#onTouchModeChanged() Don\u0027t stomp mResurrectToPosition for LAYOUT_SPECIFIC in AbsListView#hideSelector()\""
    },
    {
      "commit": "6fe2b22085864b8f6bb6c59ecc0a12c6c4253309",
      "tree": "901aaa631c2f95dcae84233f1413d61e8128c4cf",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 14:11:40 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Feb 22 14:11:40 2010 -0800"
      },
      "message": "Fix bug where calling getButton(int) returns null.\n\nFixes external bug http://code.google.com/p/android/issues/detail?id\u003d6360\n"
    },
    {
      "commit": "c07907e0389f20f83fdfe01319023b8c7d5e4bbd",
      "tree": "efc40c20eed0eb1c74d055e6b2ea3736802683f1",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:08:41 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 16:39:47 2010 -0500"
      },
      "message": "Show the USB mass storage UI as soon as USB is connected.\n\nThis is a huge usability win for average users who are\ntrying to transfer files: it coaches them through the\nprocess while at the same time saving a number of steps.\n\nIf the user is just charging via USB, they\u0027re most likely\nnot actively using the device, in which case they won\u0027t\nnotice the difference.\n\nUsers with ADB turned on will see the old behavior (just the\nongoing notification, which pops the UsbStorageActivity if\ntapped).\n\nBug: 2299129\n\nChange-Id: Ib63a0a973dfdeb28741268fcf0e0fbc1b7be2922\n"
    },
    {
      "commit": "29274dc363229a3a4f18c7341f90bd04e39c2c07",
      "tree": "23e8796bc12bdbaa7ac519da38f87ef2e8aee67f",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:25:33 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:27:41 2010 +0100"
      },
      "message": "Also fix the API description file after UI_MODE_SERVICE rename.\n"
    },
    {
      "commit": "b09cc2cde25d02f668b8bc2115a9479425f48703",
      "tree": "9dc9497ee2500afe2b67d0c909261169cb585d92",
      "parents": [
        "93ed831c9010588a4cf5100462a558c15d2128b4",
        "3d4881067a16c7f65f2aeb06f58eb3f106b05c45"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 13:21:58 2010 -0800"
      },
      "message": "Merge \"MountService: Force unmount when enabling ums\""
    },
    {
      "commit": "3d4881067a16c7f65f2aeb06f58eb3f106b05c45",
      "tree": "86788c1fd5af269e98b7adb72d3891e117226ea8",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 11:39:16 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 22 13:08:44 2010 -0800"
      },
      "message": "MountService: Force unmount when enabling ums\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "93ed831c9010588a4cf5100462a558c15d2128b4",
      "tree": "ead46592b0e7e45b8344cbcf84eb9baf5dbf7433",
      "parents": [
        "299102f8c340f3cd11bfddb46ad31ec352bd49cb",
        "ec37e42fb260b867b19eb01606867a85ba2e5187"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Feb 22 12:58:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:58:44 2010 -0800"
      },
      "message": "Merge \"fix race condition introduced by CL https://android-git.corp.google.com/g/40395\""
    },
    {
      "commit": "299102f8c340f3cd11bfddb46ad31ec352bd49cb",
      "tree": "8699cf250c207c12c3e9f8faf4d07de40d77754b",
      "parents": [
        "da576e8c8406d4337cae9a51658a20f79449c3f5",
        "69fb574e294ed07404d515a66fccd046e974d32f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 12:57:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:57:41 2010 -0800"
      },
      "message": "Merge \"Fix missing UI_MODE_SERVICE rename.\""
    },
    {
      "commit": "da576e8c8406d4337cae9a51658a20f79449c3f5",
      "tree": "20ac93c61675f75c53e7e52fddf02a500692db4c",
      "parents": [
        "53332883543868fb83e111a07306368b7772b340",
        "b8144a9c18f23c91b836736a2fcea30917153002"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Feb 22 12:57:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:57:13 2010 -0800"
      },
      "message": "Merge \"Don\u0027t start global search from system dialogs\""
    },
    {
      "commit": "69fb574e294ed07404d515a66fccd046e974d32f",
      "tree": "b8114f66de2a6e0e893d2a96572aca277dae3c8b",
      "parents": [
        "53332883543868fb83e111a07306368b7772b340"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 21:54:05 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 21:54:05 2010 +0100"
      },
      "message": "Fix missing UI_MODE_SERVICE rename.\n"
    },
    {
      "commit": "b8144a9c18f23c91b836736a2fcea30917153002",
      "tree": "92c1294a63d8bc01178922b0d9b60d8dca25f37b",
      "parents": [
        "bef118c25d3fa9fcc87f812e9dd30b7f949e37ba"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Feb 22 20:48:57 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Feb 22 20:48:57 2010 +0000"
      },
      "message": "Don\u0027t start global search from system dialogs\n\nAlso, set FLAG_ACTIVITY_NEW_TASK to allow launching\nglobal search from non-activity contexts.\n\nFixes http://b/issue?id\u003d2460991\n\nChange-Id: I833d5b851f0127fb69165fbfc7d1ee190b320401\n"
    },
    {
      "commit": "53332883543868fb83e111a07306368b7772b340",
      "tree": "39fe760618d617d4e28d08e2bd00dbd33f055926",
      "parents": [
        "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 16:15:43 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 21:42:39 2010 +0100"
      },
      "message": "Manager for controlling the UI modes.\n\nThe ui modes can be controlled with the UiModeManager class, which\nis can be retrieved as a system service via getSytemService(Context.UIMODE_SERVICE).\n\nThe class is necessary so that CarHome can be unbundled and other apps can\ndisable the car mode. Its currently a hidden class, since I\u0027m not sure if this\nis the best way to provide this functionality to the user.\n"
    },
    {
      "commit": "ec37e42fb260b867b19eb01606867a85ba2e5187",
      "tree": "672d62170ffbae8506efcf1f70fce54833adf848",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Feb 22 12:28:16 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Feb 22 12:32:52 2010 -0800"
      },
      "message": "fix race condition introduced by CL https://android-git.corp.google.com/g/40395\n"
    },
    {
      "commit": "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7",
      "tree": "5b177c59b9ab317e3951b6369a5676080afd9788",
      "parents": [
        "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
        "21f1bd17b2dfe361acbb28453b3f3b1a110932fa"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 12:18:01 2010 -0800"
      },
      "message": "Merge \"Fix issue #2438980: Implement package watcher for voice recognizer service setting\""
    },
    {
      "commit": "ec2c88d835dac156be0d14bd2b73cf3825e2e164",
      "tree": "dd1a7805c6951214ebb60fde3a2f7c28d358cc5a",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Sat Feb 20 01:04:57 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 15:10:38 2010 -0500"
      },
      "message": "Move new sound effects to the system stream.\n\nChange-Id: I11cfa6495abeb0193b1a3929ec54f0386cfe9ed2\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "ab3e1052823620a91a1330b31da6aaf530ed8c3b",
      "tree": "f129bc27cc0db75c8e972c1358c102541b6bb8e6",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Feb 18 10:35:05 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 22 11:22:31 2010 -0800"
      },
      "message": "Don\u0027t switch layout modes in AbsListView#onTouchModeChanged()\nDon\u0027t stomp mResurrectToPosition for LAYOUT_SPECIFIC in AbsListView#hideSelector()\n"
    },
    {
      "commit": "9a56aaf12b462a064e81e02386eca8a1e77fe737",
      "tree": "c6c7e3a8ac5ff260f9823e2c774ccd721f27b92c",
      "parents": [
        "bcea8124a1d85c610b4bd4e6d360a861d2f61793",
        "8978547f254b6b6ba2e322794aa044803f3edc2a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 11:19:51 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 22 11:19:51 2010 -0800"
      },
      "message": "am 8978547f: am f5fe3949: Fix issue 2459650.\n\nMerge commit \u00278978547f254b6b6ba2e322794aa044803f3edc2a\u0027\n\n* commit \u00278978547f254b6b6ba2e322794aa044803f3edc2a\u0027:\n  Fix issue 2459650.\n"
    },
    {
      "commit": "1ff8fee7c8e4fcd4ef12c6c5d1055b7eccf5809b",
      "tree": "5c7f8f94fd6878b890a1f284eff87028f7301610",
      "parents": [
        "bcea8124a1d85c610b4bd4e6d360a861d2f61793"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 11:16:51 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 11:17:38 2010 -0800"
      },
      "message": "Better file permissions enforcement on system keystore.\n"
    },
    {
      "commit": "8978547f254b6b6ba2e322794aa044803f3edc2a",
      "tree": "cabd2f1217040f3ba358eda894a1405f2b0bf71c",
      "parents": [
        "6371a2d31f30b473e91be9cced64a2527c086af1",
        "f5fe3949f5db69b19ce3fac7abce2088106f2e2b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 11:13:08 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 22 11:13:08 2010 -0800"
      },
      "message": "am f5fe3949: Fix issue 2459650.\n\nMerge commit \u0027f5fe3949f5db69b19ce3fac7abce2088106f2e2b\u0027 into eclair-plus-aosp\n\n* commit \u0027f5fe3949f5db69b19ce3fac7abce2088106f2e2b\u0027:\n  Fix issue 2459650.\n"
    },
    {
      "commit": "bcea8124a1d85c610b4bd4e6d360a861d2f61793",
      "tree": "c154de357dffc55aaf55dba57a8a97bb27eda6bc",
      "parents": [
        "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8",
        "679dd12fa1edb7b5600e84671e06dc957fa8f784"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Feb 22 10:56:18 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 10:56:18 2010 -0800"
      },
      "message": "Merge \"Ignore touch down events near the edge of the screen for the purposes of pulling down the windowshade.\""
    },
    {
      "commit": "679dd12fa1edb7b5600e84671e06dc957fa8f784",
      "tree": "e1c3e108fd4e0af85d788573fceb21212ef15899",
      "parents": [
        "7edf7388b81eb7e3d3ed1e717f69896c3d95ecfa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Feb 22 10:52:11 2010 -0800"
      },
      "message": "Ignore touch down events near the edge of the screen for the purposes of pulling down the\nwindowshade.\n\nThis makes it happen less often when you pick up the device or push open the keyboard.\n"
    },
    {
      "commit": "4bd222f1072513b21cd66d6f983ebdccb6d9b0c8",
      "tree": "9754d6f45d2c33b4c507c5e12fa83effd5d8ba7d",
      "parents": [
        "bef118c25d3fa9fcc87f812e9dd30b7f949e37ba",
        "d833023307494d5bfe3fdc1ce79761fb8c9f49a6"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Feb 22 09:10:19 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 09:10:19 2010 -0800"
      },
      "message": "Merge \"Don\u0027t let email addresses in database names get into the EventLog.\""
    },
    {
      "commit": "d833023307494d5bfe3fdc1ce79761fb8c9f49a6",
      "tree": "575c66ec703bcc86cbdfef039fca5ddc5d5df34a",
      "parents": [
        "fed93779a3e144eaa44012b802feb20d194b3a97"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Feb 19 10:59:01 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Feb 22 09:09:21 2010 -0800"
      },
      "message": "Don\u0027t let email addresses in database names get into the EventLog.\n\nBecause some apps make SQLite database names containing email\naddresses, we take care not to log those email addresses in the\nEventLog, so other apps with READ_LOGS access can\u0027t read them.\n"
    },
    {
      "commit": "bef118c25d3fa9fcc87f812e9dd30b7f949e37ba",
      "tree": "6ebcc4333cab68476f7ee269f00653361fe40cae",
      "parents": [
        "7edf7388b81eb7e3d3ed1e717f69896c3d95ecfa",
        "164bd7953778a80ca24b4a30477173ecb79d5531"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Mon Feb 22 08:18:20 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 08:18:20 2010 -0800"
      },
      "message": "Merge \"In DumpRenderTree, skip tests for which we have the wrong results\""
    },
    {
      "commit": "7edf7388b81eb7e3d3ed1e717f69896c3d95ecfa",
      "tree": "34dd26777efa592adbef48769932538eb2ca22b4",
      "parents": [
        "4379dca2f4c6aa56986b9fd70bdbf5648fb1b6fe",
        "edcdbb6d3bb6f66e9fd91b15ef45f4cec5694393"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Mon Feb 22 06:32:25 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 06:32:25 2010 -0800"
      },
      "message": "Merge \"Add new action for launching the user\u0027s music player app.\""
    },
    {
      "commit": "164bd7953778a80ca24b4a30477173ecb79d5531",
      "tree": "1147a4ed6a2dc721b7b344fa2a8c26c73c3000d6",
      "parents": [
        "b427a7b0e4f335b27484d4b46cfa48c0cc601755"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Feb 05 10:53:04 2010 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Mon Feb 22 14:28:05 2010 +0000"
      },
      "message": "In DumpRenderTree, skip tests for which we have the wrong results\n\nCurrently, the list of tests with incorrect results is not used.\n\nChange-Id: I5d3ab9bde6201c2574f08c7c87efa4873ee6fdd1\n"
    },
    {
      "commit": "4379dca2f4c6aa56986b9fd70bdbf5648fb1b6fe",
      "tree": "fd264cd398c55ca3319eebdecb422cf08bea42cb",
      "parents": [
        "b427a7b0e4f335b27484d4b46cfa48c0cc601755"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Feb 19 15:17:21 2010 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Feb 22 09:13:57 2010 -0500"
      },
      "message": "Change the text for the browser downloads and history views.\n\nFix for http://b/issue?id\u003d2450232\n"
    },
    {
      "commit": "edcdbb6d3bb6f66e9fd91b15ef45f4cec5694393",
      "tree": "f76806fb2d5fffc381ca292a59ce05afe2b36ace",
      "parents": [
        "b427a7b0e4f335b27484d4b46cfa48c0cc601755"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 18 16:00:43 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 09:04:27 2010 -0500"
      },
      "message": "Add new action for launching the user\u0027s music player app.\n\nandroid.intent.action.MUSIC_PLAYER\n\nhttp://b/2237931\n"
    },
    {
      "commit": "f5fe3949f5db69b19ce3fac7abce2088106f2e2b",
      "tree": "4a7412c83ba329e9ce081e16b44d861dae6812e8",
      "parents": [
        "ee3bbefd34fd5330ebbc59175a328197ab7526af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 01:37:19 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 01:37:19 2010 -0800"
      },
      "message": "Fix issue 2459650.\n\nThis change fixes a problem where an unwanted tone is generated by audio policy manager when a MT call is answered.\nThis is because of a policy that replaces high visibility system sounds (ringtones, alarms...) by a beep when in call.\nThere is a transitory phase while the call is being answered where the phone state is changed to IN_CALL but the\nringtone is still playing. The audio policy manager then mutes the end of the ringtone and starts playing a beep\nin replacement because the ringtone is categorized as high visibility.\n\nThe fix consists in changing the ringtone stream type from high visibility to low visibility. This is not a problem as\nthe only actual use case where a ringtone would be generated while in call is if another call is received.\nBut in this case, the phone system does not generate a ringtone but a call waiting tone instead.\nIt is therefore not required to handle a ringtone as a high visibiltiy tone that must be somehow signaled to the user\nwhile in call.\n"
    },
    {
      "commit": "c86727f5805f28fbd25da141c50fb6843f364f3a",
      "tree": "395806614f40b9aac7306a9e951305167fb8abe1",
      "parents": [
        "08d13c3cbb0b250b84ca861edb462060556aead9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 17:30:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 21 23:27:25 2010 -0800"
      },
      "message": "remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\n\nAdd a Flattenable interface to libutils which can be used to flatten\nan object into bytestream + filedescriptor stream.\nParcel is modified to handle Flattenable. And GraphicBuffer implements\nFlattenable.\n\nExcept for the overlay classes libui is now independent of libbinder.\n"
    },
    {
      "commit": "b427a7b0e4f335b27484d4b46cfa48c0cc601755",
      "tree": "0c8659b05c431936d1c93dc8d00928c430a9bb72",
      "parents": [
        "08d13c3cbb0b250b84ca861edb462060556aead9",
        "620144029819df06bda2452fa3ec15334f66bd65"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Feb 21 23:18:45 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 21 23:18:45 2010 -0800"
      },
      "message": "Merge \"Increase the sleep time to fix testTakePicture.\""
    },
    {
      "commit": "620144029819df06bda2452fa3ec15334f66bd65",
      "tree": "244e8173336887b3c65075c570a962b70ce49fee",
      "parents": [
        "e265532f30ca460dc0900c4cdfc3c7425ae7714b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Feb 22 15:06:47 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Feb 22 15:08:16 2010 +0800"
      },
      "message": "Increase the sleep time to fix testTakePicture.\n\nOne of the build needs 5 seconds for snapshot in low light. I don\u0027t want to\nincrease the sleep time, but this is what we have now.\n\nbug:2141755\n"
    },
    {
      "commit": "08d13c3cbb0b250b84ca861edb462060556aead9",
      "tree": "9704cbf808666df16479b4b3a86e7e5c1dfd10e2",
      "parents": [
        "e70f61b1160e953e5e4d18d30a463fa9ba821779"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 18 15:42:13 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 18:38:30 2010 -0800"
      },
      "message": "Fix code coverage output message when running tests in non-raw mode.\n\nBug 2082804\n"
    },
    {
      "commit": "e70f61b1160e953e5e4d18d30a463fa9ba821779",
      "tree": "763d50921749fb256c7e2b656db045ee21277b06",
      "parents": [
        "fda25347b8aaa860e0fdbc972c0f4411c85f8fa3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:49:27 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 17:29:05 2010 -0800"
      },
      "message": "Retry test-runner tests move.\n\nThis time change the frameworks makefile so it only includes test-runner/src\nin the public API.\n"
    },
    {
      "commit": "fda25347b8aaa860e0fdbc972c0f4411c85f8fa3",
      "tree": "d66fb8a557087894b6c45209353cea7ef829e663",
      "parents": [
        "59eac4b535adad485bffcfb07ae4b734168fc2e6"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Feb 20 08:07:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Feb 20 08:07:03 2010 -0800"
      },
      "message": "sdutils: Get rid of sdutils - use vdc for similar low level functions\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "59eac4b535adad485bffcfb07ae4b734168fc2e6",
      "tree": "b29a765e94fa7ab81b0fa52e8791557c35d90cc9",
      "parents": [
        "232f24e9c12a19cbbef304fb6ffc108d1334a800"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 19:25:45 2010 -0800"
      },
      "message": "Fix crash: check for install failure cleanly\n\nDon\u0027t go looking at attributes of a package struct without first verifying\nthat the struct pointer is non-null:  in the failed-install case, of course\nthere will be no package info.\n\nChange-Id: I3b2cafca2f1e3891a6592825ce5bcc977e7f3483\n"
    },
    {
      "commit": "232f24e9c12a19cbbef304fb6ffc108d1334a800",
      "tree": "3291ad7b91d4711cdb2ee5b9c28ec571d481bb8c",
      "parents": [
        "2cfa2c2f022b12883b569ace83b7dccdc222693a",
        "1bb6906c7a903ee6427c8ff37bdc5896c386ff73"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 19 18:23:45 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 18:23:45 2010 -0800"
      },
      "message": "Merge \"Automatically restore app data at install time\""
    },
    {
      "commit": "2cfa2c2f022b12883b569ace83b7dccdc222693a",
      "tree": "85a3f2537f709310f1d917e4b3bbc7c92cda16ed",
      "parents": [
        "75b455e767f458d1a30d00fbc29e61c7e15701c6",
        "281a80da143a977046e5b9f65afc85c7fb0b6d25"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Feb 19 18:18:04 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 18:18:04 2010 -0800"
      },
      "message": "Merge \"Fix 2448345: Fix tactile feedback bug in password/PIN and pattern unlock.\""
    },
    {
      "commit": "75b455e767f458d1a30d00fbc29e61c7e15701c6",
      "tree": "55b47f13a96e1902135822252567c80810f803b6",
      "parents": [
        "29415e84da6497fd030ea4df57ef6fd4f242298e",
        "13a6087f31a9b1d3e2011d63ce1fbd613a99f3bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 17:55:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 17:55:26 2010 -0800"
      },
      "message": "Merge \"Update the \"Android Performance\" documentation.\""
    },
    {
      "commit": "29415e84da6497fd030ea4df57ef6fd4f242298e",
      "tree": "f4800b3ed13edf6932801645691aa230a9d35c76",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15",
        "ed2ab7f1062e002053e5a9d8c73672b74268dcbb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 19 17:52:54 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 17:52:54 2010 -0800"
      },
      "message": "Merge \"Initialize layer position\""
    },
    {
      "commit": "ed2ab7f1062e002053e5a9d8c73672b74268dcbb",
      "tree": "1b1c74ebe0173767a6be0abb0acf77c974519147",
      "parents": [
        "6c81defa3d1111c36f8b0c9c4e84e8b2c342620f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 19 17:51:58 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 19 17:51:58 2010 -0800"
      },
      "message": "Initialize layer position\n"
    },
    {
      "commit": "13a6087f31a9b1d3e2011d63ce1fbd613a99f3bf",
      "tree": "4a3d063d8dad471cde5085300cf86279220085d2",
      "parents": [
        "41207b6eb0524c6a2fe9e85f6373785e2937e90f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 15:59:26 2010 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 17:51:15 2010 -0800"
      },
      "message": "Update the \"Android Performance\" documentation.\n\nA lot of this documentation isn\u0027t even true of the G1, let alone Froyo running\non a Nexus One. Distinguish between truth and fiction, clarify where the JIT\naffects things, and clarify certain confusions (such as the difference between\nintrinsics and native methods).\n\nI still need to include updated performance numbers in the final section. I\nshould also make the benchmark code available so that people don\u0027t have to\ntake our word for these things, and so it\u0027s easier for them to get an idea of\nthe performance of future devices and builds. (Though hopefully we can update\nthis every release in future.)\n\nAnyway, just removing the untruths is a big step forward.\n"
    },
    {
      "commit": "1bb6906c7a903ee6427c8ff37bdc5896c386ff73",
      "tree": "bdb540e8ba002ae648456c0d1af905ac7edd3676",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:02:12 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:24:07 2010 -0800"
      },
      "message": "Automatically restore app data at install time\n\nWhen an application being installed defines a backupAgent in its manifest, we\nnow automatically perform a restore of the latest-known-good data for that app.\nThis is defined as \"data backed up by this app from this handset, if available;\notherwise data for this app as it existed when the device was initially\nprovisioned.\"  If neither option exists for the app, no restore action is\ntaken.\n\nThe CL involves major changes in the Backup and Package Managers...\n\n* The Package Manager\u0027s act of installing an application has now been split\ninto two separate phases, with a data-restore phase optionally occurring\nbetween these two PM actions.  First, the details of the install are performed\nas usual.  Instead of immediately notifying install observers and issuing the\ninstall-related broadcasts, the in-process install state is snapshotted and\nthe backup manager notified that a restore operation should be attempted.  It\ndoes this by calling a new API on IBackupManager, passing a token by which it\nidentifies its in-progress install state.\n\nThe backup manager then downloads [if possible] the data for the newly-installed\napplication and invokes the app\u0027s backupAgent to do the restore.  After this\nstep, regardless of failure, it then calls back into the Package Manager to\nindicate that the restore phase has been completed, supplying the token that\nwas passed in the original notification from the Package Manager.\n\nThe Package Manager then runs the final post-install actions: notifying install\nobservers and sending out all the appropriate broadcasts.  It\u0027s only at this\npoint that the app becomes visible to the Launcher and the rest of the OS.\n\n... and a few other bits and pieces...\n\n* The ApplicationInfo.backupAgentName field has been exposed to the SDK.  This\ncan be reverted if there\u0027s a reason to do so, but it wasn\u0027t clear that this\ninfo needs to be hidden from 3rd party apps.\n\n* Debug logging of restore set IDs and operation timeout tokens [used during\nany asynchronous Backup Manager operation] are now consistently in hex for\nreadability.\n\n* We now properly reset our binder identity before calling into the transport\nduring restore-set operations.  This fixes a permissions failure when a\nsingle-app restore was attempted.\n\n* The \u0027BackupTest\u0027 test app is no longer lumped onto the system partition\nby default.\n\nChange-Id: If3addefb846791f327e2a221de97c8d5d20ee7b3\n"
    },
    {
      "commit": "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15",
      "tree": "71605218da417e46b8ea6b3ba840c9cfdfdc7557",
      "parents": [
        "e49268af9e4639b6472048d03df0f6a72194790f"
      ],
      "author": {
        "name": "Doug Felt",
        "email": "dougfelt@google.com",
        "time": "Fri Feb 19 15:44:35 2010 -0800"
      },
      "committer": {
        "name": "Doug Felt",
        "email": "dougfelt@google.com",
        "time": "Fri Feb 19 16:23:02 2010 -0800"
      },
      "message": "Add a few simple tests of StaticLayout.\n"
    },
    {
      "commit": "e49268af9e4639b6472048d03df0f6a72194790f",
      "tree": "d232262e8ccad5cca47ca1e7ddce664433ba32f1",
      "parents": [
        "35abad216da8a49128c3899a206c15d44c471617",
        "7691af90625eaad79de639e61cd2e6b5566f2e0b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 19 16:00:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 16:00:26 2010 -0800"
      },
      "message": "Merge \"Make sure that the event callback thread is Java capable in the simulator.\""
    },
    {
      "commit": "7691af90625eaad79de639e61cd2e6b5566f2e0b",
      "tree": "809a63bfa44893f23f1d1683e5d4bd868630fcfd",
      "parents": [
        "c34ebce475a6994f1aa59b8c535ff966c8f59431"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 19 15:16:57 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 19 15:47:51 2010 -0800"
      },
      "message": "Make sure that the event callback thread is Java capable in the simulator.\n"
    },
    {
      "commit": "35abad216da8a49128c3899a206c15d44c471617",
      "tree": "270209d011192998b92ed9f8a1e6312a4f3e82d7",
      "parents": [
        "6c81defa3d1111c36f8b0c9c4e84e8b2c342620f"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Fri Feb 19 14:15:32 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Fri Feb 19 15:30:44 2010 -0800"
      },
      "message": "Add error logging to ContentProviderOperation.\n\nThis will dump out the contents of the operation in some error cases\nto make debugging easier.\n"
    },
    {
      "commit": "6c81defa3d1111c36f8b0c9c4e84e8b2c342620f",
      "tree": "135f77c35a105adfb00782f991112a61a8c57b34",
      "parents": [
        "8afbc53578a55cb39f97f959a0b444bf24f317ee",
        "8946dd3355fc1dcbad872c0546e356474d4cc5de"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:27:29 2010 -0800"
      },
      "message": "Merge \"Move package from internal to external and vice versa.\""
    },
    {
      "commit": "8afbc53578a55cb39f97f959a0b444bf24f317ee",
      "tree": "4829ddbd9e686cb2aefe08f51ab46df957ae4055",
      "parents": [
        "ea0ce99d296516ee737adb1b5c42948bb322850f",
        "bda8874a2990a864f32f8d2d916f7a05f33f797b"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 19 14:22:25 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:22:25 2010 -0800"
      },
      "message": "Merge \"improve logging of errors when trying to resolve backrefs http://b/2371475\""
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "ea0ce99d296516ee737adb1b5c42948bb322850f",
      "tree": "13f8ffe2222289e8317b30a994e255773997b017",
      "parents": [
        "32637cf9fd71096becb4f43bde56e9137b8187e4",
        "1f09c8314701c1d09be8e350344c58241905677b"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 19 14:15:57 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:15:57 2010 -0800"
      },
      "message": "Merge \"Spinner now allows disabled adapter items\""
    },
    {
      "commit": "32637cf9fd71096becb4f43bde56e9137b8187e4",
      "tree": "20cba8f4b355e299f2cfeb1e074cf19db3ecf57f",
      "parents": [
        "bf31ed256a058310df657b072c685d60f48923d0",
        "45f2ca7f7d9fac55aa228e022f46ecbac8712a15"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 19 14:15:19 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 14:15:19 2010 -0800"
      },
      "message": "Merge \"Recycle MotionEvents properly in GestureDetector\""
    },
    {
      "commit": "bf31ed256a058310df657b072c685d60f48923d0",
      "tree": "e0429a4a5bf4b538408530aecea3fde6641c0f61",
      "parents": [
        "ea25183196970412482e4dfc3a36e756880fe5b9",
        "c2cb25d49534cc05d114332b09dbeb36480348a3"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Feb 19 13:27:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 13:27:24 2010 -0800"
      },
      "message": "Merge \"Add test pattern icon to Fountain.\""
    }
  ],
  "next": "c2cb25d49534cc05d114332b09dbeb36480348a3"
}
