)]}'
{
  "log": [
    {
      "commit": "ed3b804f2cc61029cf2969cbfa499ea230c22bb0",
      "tree": "e4c1000b22bdcb520b14864a1e6beba8647a70d5",
      "parents": [
        "c39aae0ee060b4ff54ba0ab37fd1925ce191f013",
        "b619c9198efa0108a692d352b0e7eaa534f922f3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:55:39 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:55:39 2009 -0700"
      },
      "message": "Merge change 1276 into donut\n\n* changes:\n  Define mime type for shortcut validation path.\n"
    },
    {
      "commit": "b619c9198efa0108a692d352b0e7eaa534f922f3",
      "tree": "dd0886ba6ad2d979461be829c138b9240d3e5315",
      "parents": [
        "55280a91884b9256e8db6af6a09f28b3feeaa9d8"
      ],
      "author": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Fri May 08 14:28:51 2009 -0700"
      },
      "committer": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Fri May 08 14:54:08 2009 -0700"
      },
      "message": "Define mime type for shortcut validation path.\n"
    },
    {
      "commit": "c39aae0ee060b4ff54ba0ab37fd1925ce191f013",
      "tree": "56cfce33540826a0027219487725a3387a751adc",
      "parents": [
        "7b59fe316e23e05ef33648a855c2280dd8fad981",
        "c2af31f89bf3688db066c6eaee44d3b6bdc1d6ef"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:41 2009 -0700"
      },
      "message": "Merge change 1278 into donut\n\n* changes:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "7b59fe316e23e05ef33648a855c2280dd8fad981",
      "tree": "faff3cdd69675dd5b67642171e7eaaa49fdd2170",
      "parents": [
        "98acd54fa6657e8131b3a2a957de7882a2f511ab",
        "0bfbae2c3241112f14abca6c9792e759e85e1c5e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:21 2009 -0700"
      },
      "message": "Merge change 1275 into donut\n\n* changes:\n  Make the internal storage monitor work correctly when internal storage is very large.\n"
    },
    {
      "commit": "c2af31f89bf3688db066c6eaee44d3b6bdc1d6ef",
      "tree": "8e2b47eac81380d5ec99841c67db926bba566a2a",
      "parents": [
        "55280a91884b9256e8db6af6a09f28b3feeaa9d8"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri May 08 14:44:41 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri May 08 14:44:41 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 85585eb0860e52a3dc3b8efe57ef8b30ee35c98d\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 11:59:24 2009 -0700\n\n    Remove new error code in PackageManager.\n    Remove version check in installation code path. Let the install continue irrespective of version number.\n    Check if data needs to be wiped(for downgrades only) in uninstallation code path.\n    Also remove only code and resources when checking for updated system packages(via ota)\n    Add version attribute when persisting package settings\n\ncommit f90797348c5170e6263d249e4fc77f1c0328eb27\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 10:54:07 2009 -0700\n\n    remove trailing white spaces\n    hide new install code in PackageManager\n\ncommit 397eb81265160f73caf9827d381ed6622041d54e\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 10:33:23 2009 -0700\n\n    Add version check in install and uninstall code paths.\n    New error code for invalid upgrades in PackageManager\n"
    },
    {
      "commit": "98acd54fa6657e8131b3a2a957de7882a2f511ab",
      "tree": "2da851adf6af5c04a3aeef4b51b12a1d1cc7ace9",
      "parents": [
        "55280a91884b9256e8db6af6a09f28b3feeaa9d8"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu May 07 19:04:39 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri May 08 14:42:54 2009 -0700"
      },
      "message": "Make the search dialog\u0027s autocomplete dropdown behave correctly\nwith respect to the soft keyboard. getMaxAvailableHeight in\nPopupWindow relies on View\u0027s getWindowVisibleDisplayFrame, which\nalways takes into account the IME, whereas in this case, because\nwe want the window to extend down to the bottom of the display\nwhen it is being interacted with by the user, I added a new\nboolean option \u0027ignoreBottomDecorations\u0027 to getMaxAvailableHeight.\nIf true, the method returns the height which will extend the\nPopupWindow down to the bottom of the screen, rather than just\ndown to the IME.\n\nThen in AutoCompleteTextView, I set this to true when the\ndropDownAlwaysVisible attribute is true and the PopupWindow\u0027s\ninput method mode is INPUT_METHOD_NOT_NEEDED (which happens when\nthe list is dragged or otherwise interacted with).\n\nThen, because the dropdown height is only calculated when we call\nshowDropDown(), I had to replace a couple calls to mPopup.update().\n\nThere are still a few remaining bugs here I\u0027m tracking Still to do:\n  * Fix a strange re-placement of the window which happens\n    intermittently.\n  * Strange behavior when using the directional pad.\n  * In a few cases, the list does not correctly size itself to the IME.\n    This seems to be because the available height is calculated before\n    the IME is yet on screen, and thus is calculated as the entire screen.\n"
    },
    {
      "commit": "0bfbae2c3241112f14abca6c9792e759e85e1c5e",
      "tree": "cc24c75cf459a2546da9a0f13a45abc4428a68cf",
      "parents": [
        "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 08 14:28:40 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 08 14:28:40 2009 -0700"
      },
      "message": "Make the internal storage monitor work correctly when internal storage is very large.\n"
    },
    {
      "commit": "55280a91884b9256e8db6af6a09f28b3feeaa9d8",
      "tree": "ac29de79b8ecec41f2fde6014a1834418a82d2fd",
      "parents": [
        "672f1e2b07d985526bfd5606e6a888005fdcb70c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 07 15:53:46 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 12:59:21 2009 -0700"
      },
      "message": "Improve shutdown process to send broadcast for applications.\n\nThis introduces a new class in the base platform for performing a clean\nshutdown (which was copied from the classes in the policies).  It\nincludes new features to send a shutdown broadcast for applications\nto do cleanup, and ot have the activity manager pause the current\nactivity before proceeding with the shutdown.  These facilities are\nalso use to write at the most recent stat files for sync, battery\nand user activity.\n"
    },
    {
      "commit": "672f1e2b07d985526bfd5606e6a888005fdcb70c",
      "tree": "706c6cb88dc05d181e29955615dae5b25f32b8fe",
      "parents": [
        "3a6645a1cbee11932615afda6cfca0ec91c403a5",
        "704e00ab7b62eb0a89254fbb0151a45ee4052517"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:41:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:41:47 2009 -0700"
      },
      "message": "Merge change 1192 into donut\n\n* changes:\n  Fix 1825581 - device restarts when using A2DP.\n"
    },
    {
      "commit": "3a6645a1cbee11932615afda6cfca0ec91c403a5",
      "tree": "4b0e578912cec07550e50222410a1f3b09a28ffc",
      "parents": [
        "17a5e5de3d864842b723efe24650863db0656a14",
        "f04da95400e409dbb4ba33653f075bc76e091ef1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:31:03 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:31:03 2009 -0700"
      },
      "message": "Merge change 1114 into donut\n\n* changes:\n  Fix keyboard redraw bug on long-press of CapsLock.\n"
    },
    {
      "commit": "17a5e5de3d864842b723efe24650863db0656a14",
      "tree": "e3d772b68cac7ae6720d26ff05b4d329cf7ba3ae",
      "parents": [
        "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22",
        "e10be807872a88f872bef96d1fd5a1d9f78af282"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:10:34 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 11:10:34 2009 -0700"
      },
      "message": "Merge change 1217 into donut\n\n* changes:\n  Sketch out the IBackupTransport api\n"
    },
    {
      "commit": "f04da95400e409dbb4ba33653f075bc76e091ef1",
      "tree": "ae334fcecef0425e2de208812a8a3251097de92d",
      "parents": [
        "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed May 06 15:46:00 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri May 08 10:34:39 2009 -0700"
      },
      "message": "Fix keyboard redraw bug on long-press of CapsLock.\n\nExpose invalidateKey and invalidateAllKeys for subclasses to call when needed.\n"
    },
    {
      "commit": "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22",
      "tree": "dd9eca8ae68aaab8ed8d692ccf425a76541e9972",
      "parents": [
        "1e09a72a75f5e6236acffe84f2758dd042b1c8c0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 08 09:33:19 2009 -0700"
      },
      "message": "fix the sim build.  disables the tests for now.\n"
    },
    {
      "commit": "1e09a72a75f5e6236acffe84f2758dd042b1c8c0",
      "tree": "951dc9e9cf37a2b86d731ac9e5d7318442553b50",
      "parents": [
        "60f3eb54a01d30882dfab5e66318d8fdd9aab1dd",
        "b8908892674c188c8877fc97a2bd91c552f97cf2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:56:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:56:43 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "b8908892674c188c8877fc97a2bd91c552f97cf2",
      "tree": "fca0a24cf5c0e5d72ae71c93afb3830ff78bffd0",
      "parents": [
        "b2a5011578d4a64df2f39bdeeedfe9f37e7aecc4"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 07 18:52:53 2009 -0700"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 07 18:52:53 2009 -0700"
      },
      "message": "Fix the build.\n\nThere was an issue with current.xml from a previous backup related change. Joe blames the stage.\n"
    },
    {
      "commit": "60f3eb54a01d30882dfab5e66318d8fdd9aab1dd",
      "tree": "e46589a35dcb9426aaacbdf7e03476e3ecd34acf",
      "parents": [
        "b59f23d4de77caeb0a79d7f1d5cd927772b489db",
        "b2a5011578d4a64df2f39bdeeedfe9f37e7aecc4"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:49:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:49:48 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "b2a5011578d4a64df2f39bdeeedfe9f37e7aecc4",
      "tree": "556a8cc33a7db8ddd6ff746efbc8de8bf44b2bce",
      "parents": [
        "e20ea783a12f1031482c3aa01938efe39dcbf0a2"
      ],
      "author": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Tue May 05 21:14:01 2009 -0700"
      },
      "committer": {
        "name": "Karl Rosaen",
        "email": "krosaen@google.com",
        "time": "Thu May 07 18:37:11 2009 -0700"
      },
      "message": "Define the URI path, columns and constants for shortcut validation.\n"
    },
    {
      "commit": "b59f23d4de77caeb0a79d7f1d5cd927772b489db",
      "tree": "076c5f882929f30b7a7b611b0769b03bb0e2bc11",
      "parents": [
        "3fd7e13960c2763225c5c8bc187bd15da04820dd",
        "e20ea783a12f1031482c3aa01938efe39dcbf0a2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:34:11 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 18:34:11 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "e20ea783a12f1031482c3aa01938efe39dcbf0a2",
      "tree": "b32727a25f4cd4ca8c6ced40a9feb4ef6a665b9d",
      "parents": [
        "538bcd702c0053772245dfbb634c266959cf6af9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu May 07 18:28:29 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu May 07 18:28:29 2009 -0700"
      },
      "message": "Require native-order direct buffers for glXXXPointer APIs.\n\nThis was always a documented restriction, but was not enforced by the runtime until now.\n\nUntil now, if you passed in some other kind of buffer, it would sometimes work, and\nsometimes fail. The failures happened when the Java VM moved the buffer data while\nOpenGL was still holding a pointer to it.\n\nNow we throw an exception rather than leaving the system in a potentially bad state.\n"
    },
    {
      "commit": "3fd7e13960c2763225c5c8bc187bd15da04820dd",
      "tree": "9cf36074d5f0a9dd656d62a74393ae3b4dace19d",
      "parents": [
        "8705a41a778bd0561737fd9b6fb2e1cdca0532b5",
        "538bcd702c0053772245dfbb634c266959cf6af9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:51:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:51:28 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "538bcd702c0053772245dfbb634c266959cf6af9",
      "tree": "03c691c53c943844bb1c6b0b76c45eca26ce5160",
      "parents": [
        "881c4c25f1f807952a6740ecad1680a8241b4de4",
        "2a04aefdf03abbdabb035f89c8a1df636c168de0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:47:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:47:54 2009 -0700"
      },
      "message": "Merge change 1164 into donut\n\n* changes:\n  Add new binder methods to camera client to support generic callbacks This is the first step in a multi-step change to move from the old specific callbacks to a generic callback. This will allow future flexibility in the interface without requiring binder rewrites. Bug 1837832\n"
    },
    {
      "commit": "8705a41a778bd0561737fd9b6fb2e1cdca0532b5",
      "tree": "9340d5cbf7b0fe4f0640fd3a6179a42f2e97225a",
      "parents": [
        "c664d1837c34f3e7ab743f7fb96771b0c9d8df6e",
        "881c4c25f1f807952a6740ecad1680a8241b4de4"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:40:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:40:33 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "881c4c25f1f807952a6740ecad1680a8241b4de4",
      "tree": "b22c3f4ef0c266389c5c37ca5d8908e1d617d05f",
      "parents": [
        "07d7521376ec46c73f5c4289450b71d4c1042385",
        "2e3d3b9ce74cb9c906e5cc0e9898d757d45c4237"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:39:57 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:39:57 2009 -0700"
      },
      "message": "Merge change 1108 into donut\n\n* changes:\n  * update density correctly when the configuration is changed. * Turns private sLcdDensity to public DEVICE_DENSITY to use it in ActivityThread\n"
    },
    {
      "commit": "c664d1837c34f3e7ab743f7fb96771b0c9d8df6e",
      "tree": "798dc192a1bc3911b0e2cc14a23c766230c9e0e4",
      "parents": [
        "572ae14f6e38b9c3262937f2f4b57bd6779c3c5f",
        "07d7521376ec46c73f5c4289450b71d4c1042385"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:25:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:25:17 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "07d7521376ec46c73f5c4289450b71d4c1042385",
      "tree": "832d1b8704b71a1564a9cd1e6545bef3de952da9",
      "parents": [
        "2108e5c74ff8ce55e97c26afb8f46af65f7f2e4e",
        "d4cc32ca99390ca54762f86d4850ab553a05ccf7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:23:51 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:23:51 2009 -0700"
      },
      "message": "Merge change 760 into donut\n\n* changes:\n  don\u0027t use modulo\n"
    },
    {
      "commit": "e10be807872a88f872bef96d1fd5a1d9f78af282",
      "tree": "a7be7eddb2a2909cfe9ceae4c032f760749038cf",
      "parents": [
        "08d00b9ad794d9f627f1c2c4b282c3950806f4bd"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 07 17:22:16 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 07 17:22:16 2009 -0700"
      },
      "message": "Sketch out the IBackupTransport api\n"
    },
    {
      "commit": "572ae14f6e38b9c3262937f2f4b57bd6779c3c5f",
      "tree": "6b3f5e4b39c35961c90ba897a3e934cb38146ac8",
      "parents": [
        "7ec32cc7c33240c50cca31d2fa1b17f6dc2ccead",
        "2108e5c74ff8ce55e97c26afb8f46af65f7f2e4e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:04:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 17:04:14 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "d4cc32ca99390ca54762f86d4850ab553a05ccf7",
      "tree": "ae435fa626d24dc5f464ca3ea5c6486f3818b22c",
      "parents": [
        "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Thu May 07 17:02:27 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Thu May 07 17:02:27 2009 -0700"
      },
      "message": "don\u0027t use modulo\n"
    },
    {
      "commit": "2108e5c74ff8ce55e97c26afb8f46af65f7f2e4e",
      "tree": "1ac2199aaae9528b0d9e2cf3b1cf18a98cc927f1",
      "parents": [
        "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8",
        "be509c9c7de5929d014dfe6d45e71cc8454ede0f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:01:13 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 17:01:13 2009 -0700"
      },
      "message": "Merge change 1163 into donut\n\n* changes:\n  Fix automatically generated code for glGet\n"
    },
    {
      "commit": "7ec32cc7c33240c50cca31d2fa1b17f6dc2ccead",
      "tree": "4447453314d54c82d64a6218ae5d45c84a5a8d06",
      "parents": [
        "5085ef64ac3e589b1674dddcb6dabe3600e347da",
        "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 16:45:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 16:45:46 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8",
      "tree": "cd7745a25c1ab0d4c7c136672a8a87634d5fee4c",
      "parents": [
        "fedf566b9e00f18588fc104caafd047af069844a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 18:06:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 07 15:32:48 2009 -0700"
      },
      "message": "More backup tests\n"
    },
    {
      "commit": "5085ef64ac3e589b1674dddcb6dabe3600e347da",
      "tree": "a4f50316fcb814f8fff4d72ebdfba861cf96de67",
      "parents": [
        "b6868d0048ec814e02ced35df6ad6e7b72389ca4",
        "fedf566b9e00f18588fc104caafd047af069844a"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 14:28:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 14:28:57 2009 -0700"
      },
      "message": "Merge branch \u0027donut\u0027 of ssh://android-git.corp.google.com:29418/platform/frameworks/base into donut\n"
    },
    {
      "commit": "fedf566b9e00f18588fc104caafd047af069844a",
      "tree": "ed42f3224921564ea225793148c6e8d381a6f7ab",
      "parents": [
        "b85c37432b3836fd30c81191425d7e00dcf2082c",
        "cdd0ac6d85f5530dc88e73b0b51f44708c804b55"
      ],
      "author": {
        "name": "Brandon Ballinger",
        "email": "nobody@android.com",
        "time": "Thu May 07 14:26:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 14:26:17 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "cdd0ac6d85f5530dc88e73b0b51f44708c804b55",
      "tree": "6e4ce5355c52ac21bf771bba7a5de7b574d33469",
      "parents": [
        "e96440fa15b9158690996dd1e5ef2096099d5388"
      ],
      "author": {
        "name": "Brandon Ballinger",
        "email": "nobody@android.com",
        "time": "Thu May 07 14:24:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 14:24:02 2009 -0700"
      },
      "message": "AI 148484: (1) Pass recognizer intent to RecognitionService when starting to listen.\n  (2) Return error strings to client rather than error types.\n\nAutomated import of CL 148484\n"
    },
    {
      "commit": "704e00ab7b62eb0a89254fbb0151a45ee4052517",
      "tree": "07ec605f10e98afb71b93b2a483c3f6138d3506d",
      "parents": [
        "b85c37432b3836fd30c81191425d7e00dcf2082c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 07 14:06:45 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 07 14:09:29 2009 -0700"
      },
      "message": "Fix 1825581 - device restarts when using A2DP.\n\nHad to do with using the wrong JNIEnv.  Now storing the VM and looking up a\nJNIEnv appropriate to the thread as needed.\n"
    },
    {
      "commit": "2a04aefdf03abbdabb035f89c8a1df636c168de0",
      "tree": "af1373ffe5244655f868c9145fdf3813fe82e66a",
      "parents": [
        "50396063c2fbb1f427cf31e0b8a56567fb5a069c"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 12:25:25 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 12:25:25 2009 -0700"
      },
      "message": "Add new binder methods to camera client to support generic callbacks\nThis is the first step in a multi-step change to move from the old\nspecific callbacks to a generic callback. This will allow future\nflexibility in the interface without requiring binder rewrites.\nBug 1837832\n"
    },
    {
      "commit": "b6868d0048ec814e02ced35df6ad6e7b72389ca4",
      "tree": "356a9e3afcca5cb1a0fe6e4c4c9aac194950d9fe",
      "parents": [
        "b85c37432b3836fd30c81191425d7e00dcf2082c",
        "9b825aa0eec5f143cec4c3cfeff97ba8d3d9d093"
      ],
      "author": {
        "name": "Scott Main",
        "email": "nobody@android.com",
        "time": "Thu May 07 12:00:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 12:00:28 2009 -0700"
      },
      "message": "am 9b825aa: AI 148470: add documentation about aapt image optimization\n\nMerge commit \u00279b825aa0eec5f143cec4c3cfeff97ba8d3d9d093\u0027 into donut\n\n* commit \u00279b825aa0eec5f143cec4c3cfeff97ba8d3d9d093\u0027:\n  AI 148470: add documentation about aapt image optimization\n"
    },
    {
      "commit": "9b825aa0eec5f143cec4c3cfeff97ba8d3d9d093",
      "tree": "163bc73a1e733802678142bb0fcc24e657ddbf1c",
      "parents": [
        "1f8059f19f3345042121a55481d7f01dacc8d29e"
      ],
      "author": {
        "name": "Scott Main",
        "email": "nobody@android.com",
        "time": "Thu May 07 11:59:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 11:59:14 2009 -0700"
      },
      "message": "AI 148470: add documentation about aapt image optimization\n  BUG\u003d1735176\n\nAutomated import of CL 148470\n"
    },
    {
      "commit": "b85c37432b3836fd30c81191425d7e00dcf2082c",
      "tree": "03301b75efbfe5afaf674c5c07258fef12b30890",
      "parents": [
        "e87bf13924199225d2751ae7b4d0451954ee3711",
        "4c9224709862c38a97c51853a93d284f55d6135d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 11:52:06 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 11:52:06 2009 -0700"
      },
      "message": "Merge change 1155 into donut\n\n* changes:\n  Don\u0027t allow negative numbers in ToneGenerator toneType parameter Bug 1836596\n"
    },
    {
      "commit": "e87bf13924199225d2751ae7b4d0451954ee3711",
      "tree": "8aea135007a1bf5a201a1cc57cbb86da6ba6322e",
      "parents": [
        "2a50606532cfc26d100d6b7a966c73f785e5b3b8",
        "1f8059f19f3345042121a55481d7f01dacc8d29e"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "nobody@android.com",
        "time": "Thu May 07 11:18:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 11:18:35 2009 -0700"
      },
      "message": "am 1f8059f: AI 148461: Changes to support ADT 0.9.1. Update ADT version \n\nMerge commit \u00271f8059f19f3345042121a55481d7f01dacc8d29e\u0027 into donut\n\n* commit \u00271f8059f19f3345042121a55481d7f01dacc8d29e\u0027:\n  AI 148461: Changes to support ADT 0.9.1. Update ADT version id, move older ADT versions to a separate table.\n"
    },
    {
      "commit": "1f8059f19f3345042121a55481d7f01dacc8d29e",
      "tree": "4e862c0513dcbd30b2cc9a00d2000f4cb605cf52",
      "parents": [
        "f096acd37994e47792552c2e53a6246dc8afb0d3"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "nobody@android.com",
        "time": "Thu May 07 11:15:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 11:15:03 2009 -0700"
      },
      "message": "AI 148461: Changes to support ADT 0.9.1. Update ADT version id, move older ADT versions to a separate table.\n  BUG\u003d1790234\n\nAutomated import of CL 148461\n"
    },
    {
      "commit": "2a50606532cfc26d100d6b7a966c73f785e5b3b8",
      "tree": "7429f69f9a62865b9cf07d1fd8764d6b8c2d1fd3",
      "parents": [
        "08d00b9ad794d9f627f1c2c4b282c3950806f4bd",
        "f096acd37994e47792552c2e53a6246dc8afb0d3"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "nobody@android.com",
        "time": "Thu May 07 11:14:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 11:14:26 2009 -0700"
      },
      "message": "am f096acd: AI 148460: Misc changes for dev site.\n\nMerge commit \u0027f096acd37994e47792552c2e53a6246dc8afb0d3\u0027 into donut\n\n* commit \u0027f096acd37994e47792552c2e53a6246dc8afb0d3\u0027:\n  AI 148460: Misc changes for dev site.\n"
    },
    {
      "commit": "f096acd37994e47792552c2e53a6246dc8afb0d3",
      "tree": "a2cfdc96e975626ea69f9094e0e198627a9e85f6",
      "parents": [
        "0c11b990908df26aca7f017d330535b9bf21a903"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "nobody@android.com",
        "time": "Thu May 07 11:12:11 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 11:12:11 2009 -0700"
      },
      "message": "AI 148460: Misc changes for dev site.\n  BUG\u003d1790234\n\nAutomated import of CL 148460\n"
    },
    {
      "commit": "be509c9c7de5929d014dfe6d45e71cc8454ede0f",
      "tree": "53f649d9cd25b0d5930c5c9835d36b5521a6a02d",
      "parents": [
        "0efb0868841cc1c2b5a669b39880d931f54f705a"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu May 07 09:52:14 2009 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu May 07 10:52:18 2009 -0700"
      },
      "message": "Fix automatically generated code for glGet\n\nRemove include of an internal agl header file. We should not depend on any implementation details\nof our software renderer, since they may not be correct if another renderer is used.\nFix glGet number-of-elements logic for GL_FOG_COLOR GL_LIGHT_MODEL_AMBIENT,\nand GL_COMPRESSED_TEXTURE_FORMATS.\n"
    },
    {
      "commit": "08d00b9ad794d9f627f1c2c4b282c3950806f4bd",
      "tree": "e6a4cf2c99dd993a13dc6fc9dbc1f1efe4505e8a",
      "parents": [
        "39bfa72172560b479fc100bf165883b86f5b2f5d",
        "7f7840b41e1253b1bb03e40014611a37adec7c6c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 10:33:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 10:33:25 2009 -0700"
      },
      "message": "Merge change 1159 into donut\n\n* changes:\n  CoreTests: Fix LocationManagerProximityTest.\n"
    },
    {
      "commit": "39bfa72172560b479fc100bf165883b86f5b2f5d",
      "tree": "b512e4f8463e4a3ca785bc26bafad400e209082b",
      "parents": [
        "0efb0868841cc1c2b5a669b39880d931f54f705a",
        "95427cdbd802f7cb529d62bb79953c45b36a8fcf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 10:32:52 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 10:32:52 2009 -0700"
      },
      "message": "Merge change 1158 into donut\n\n* changes:\n  location: Fix mock provider support\n"
    },
    {
      "commit": "7f7840b41e1253b1bb03e40014611a37adec7c6c",
      "tree": "6a645e0d32302fee73e447e96ebe9675dad873a4",
      "parents": [
        "95427cdbd802f7cb529d62bb79953c45b36a8fcf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:29:59 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:29:59 2009 -0400"
      },
      "message": "CoreTests: Fix LocationManagerProximityTest.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "95427cdbd802f7cb529d62bb79953c45b36a8fcf",
      "tree": "ae907dc90b346cd96e62f44ccb589eae2bb0d560",
      "parents": [
        "8dfe5d8c6ba9cb165994f09843abaa6302d63c1d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:27:54 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:27:54 2009 -0400"
      },
      "message": "location: Fix mock provider support\n\nAllow mock providers to be used for proximity alerts.\nClear calling identity so mock provider support does not fail due to\nlack of INSTALL_LOCATION_PROVIDER permission.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0efb0868841cc1c2b5a669b39880d931f54f705a",
      "tree": "464832975af02a514c776f5e1a7b5505b304587b",
      "parents": [
        "50396063c2fbb1f427cf31e0b8a56567fb5a069c",
        "fe1766474bb1a6f52305bb40bcf887eaa61b48ba"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 09:34:28 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 09:34:28 2009 -0700"
      },
      "message": "Merge change 1120 into donut\n\n* changes:\n  Suppress all tests on Windows Media in MediaPlayerApiTest and MediaMetadataTest (Currently not supported by OpenCore 2.0)\n"
    },
    {
      "commit": "4c9224709862c38a97c51853a93d284f55d6135d",
      "tree": "250f959188da951abe10ff2e27a0db77888bea35",
      "parents": [
        "50396063c2fbb1f427cf31e0b8a56567fb5a069c"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 09:26:06 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 09:26:06 2009 -0700"
      },
      "message": "Don\u0027t allow negative numbers in ToneGenerator toneType parameter\nBug 1836596\n"
    },
    {
      "commit": "50396063c2fbb1f427cf31e0b8a56567fb5a069c",
      "tree": "3393cc6a9f76632d840686a871c0c4c8ce09f121",
      "parents": [
        "f792fc59c18aa470eb44cc596d5774115e2d9d02",
        "8dfe5d8c6ba9cb165994f09843abaa6302d63c1d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:51:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:51:33 2009 -0700"
      },
      "message": "Merge change 1152 into donut\n\n* changes:\n  location: Remove two unnecessary variables.\n"
    },
    {
      "commit": "8dfe5d8c6ba9cb165994f09843abaa6302d63c1d",
      "tree": "f6299aadc4c3572ab9e96325332b1b890c76697c",
      "parents": [
        "0528b9b26a9d64ba43acd0e334638303d514b8eb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:49:01 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:49:01 2009 -0400"
      },
      "message": "location: Remove two unnecessary variables.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f792fc59c18aa470eb44cc596d5774115e2d9d02",
      "tree": "892dde766efff2493e70361299f7dcd11aa295aa",
      "parents": [
        "a6706b3c8f7e8759d5165535c95f6cd7147ab5e2",
        "0528b9b26a9d64ba43acd0e334638303d514b8eb"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:23:40 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:23:40 2009 -0700"
      },
      "message": "Merge change 1150 into donut\n\n* changes:\n  location: Location Manager wakelock cleanup\n"
    },
    {
      "commit": "0528b9b26a9d64ba43acd0e334638303d514b8eb",
      "tree": "52b5ce3b9887e8b6e5ca7800b3fe41a42144a9f8",
      "parents": [
        "90da134befec804852775be7fd4905a1a188ff00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 10:12:54 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:02:22 2009 -0400"
      },
      "message": "location: Location Manager wakelock cleanup\n\nLocation Providers are now responsible for their own wakelocks and scheduling.\n\nAlso fixed a deadlock in LocationManagerService in the code for releasing\nwakelocks after client notifications have been received.\nThe fix is to use the Receiver object and mWakeLock for synchronization\n instead of the global mLock lock.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a6706b3c8f7e8759d5165535c95f6cd7147ab5e2",
      "tree": "de36053c483779df0cb201a966616fb2584d9bc6",
      "parents": [
        "90da134befec804852775be7fd4905a1a188ff00",
        "9648e4b6774910afde095be94b8359ae80cd3dcb"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 07:46:42 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 07:46:42 2009 -0700"
      },
      "message": "Merge change 1131 into donut\n\n* changes:\n  fix issue 1641535: SoundPool should use AudioTrack with shared memory buffer\n"
    },
    {
      "commit": "9648e4b6774910afde095be94b8359ae80cd3dcb",
      "tree": "8f427da17ab65eb1620e879c7f25ffeeee6b3fd3",
      "parents": [
        "05d24afb61e2fbd137468a065fd58685e1a62d78"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 03:14:31 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 03:14:31 2009 -0700"
      },
      "message": "fix issue 1641535: SoundPool should use AudioTrack with shared memory buffer\n\nEnabled USE_SHARED_MEM_BUFFER switch in SoundPool.cpp\n"
    },
    {
      "commit": "90da134befec804852775be7fd4905a1a188ff00",
      "tree": "9eb7d4447499d9bc363dc5fe74160b297adfa568",
      "parents": [
        "05d24afb61e2fbd137468a065fd58685e1a62d78",
        "697805d02a750d007f62857c6d4064e5c9e47f93"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 01:05:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 01:05:41 2009 -0700"
      },
      "message": "Merge change 1065 into donut\n\n* changes:\n  Add a contact placeholder picture.\n"
    },
    {
      "commit": "fe1766474bb1a6f52305bb40bcf887eaa61b48ba",
      "tree": "e9116c1e0e047afb384355c5fe8e45cd450da1d0",
      "parents": [
        "05d24afb61e2fbd137468a065fd58685e1a62d78"
      ],
      "author": {
        "name": "Xia Wang",
        "email": "xiaw@google.com",
        "time": "Wed May 06 19:32:34 2009 -0700"
      },
      "committer": {
        "name": "Xia Wang",
        "email": "xiaw@google.com",
        "time": "Wed May 06 21:12:39 2009 -0700"
      },
      "message": "Suppress all tests on Windows Media in MediaPlayerApiTest and MediaMetadataTest\n(Currently not supported by OpenCore 2.0)\n"
    },
    {
      "commit": "05d24afb61e2fbd137468a065fd58685e1a62d78",
      "tree": "7006a5ca5ed49bf0a069031e08e3f33138205e45",
      "parents": [
        "d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3a",
        "e96440fa15b9158690996dd1e5ef2096099d5388"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "nobody@android.com",
        "time": "Wed May 06 17:39:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 17:39:50 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3a",
      "tree": "6233ef66b9e5a7663b9db51f6d2a7052efb3bb74",
      "parents": [
        "413cf5f4536b9c029d07f99b1c769c026313cd12"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed May 06 14:54:28 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed May 06 16:49:56 2009 -0700"
      },
      "message": "Add new setTag(int, Object) API to allow applications to specify several tags.\n"
    },
    {
      "commit": "2e3d3b9ce74cb9c906e5cc0e9898d757d45c4237",
      "tree": "290b7354db79d006ae9aae1c22bc496ba8161090",
      "parents": [
        "f2331a63c0e7f6ffeedf16185c92a0aeffa5512c"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed May 06 15:04:28 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed May 06 16:42:11 2009 -0700"
      },
      "message": "* update density correctly when the configuration is changed.\n* Turns private sLcdDensity to public DEVICE_DENSITY to use it in ActivityThread\n"
    },
    {
      "commit": "413cf5f4536b9c029d07f99b1c769c026313cd12",
      "tree": "e03606bb73ac8bef03b40a50e9278bb270c2f4e7",
      "parents": [
        "f2331a63c0e7f6ffeedf16185c92a0aeffa5512c",
        "3799bc241b5cfc876cf082fbf39acc67c90a25b7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:15:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:15:21 2009 -0700"
      },
      "message": "Merge change 1110 into donut\n\n* changes:\n  Track install/removal/update of packages that provide backup services\n"
    },
    {
      "commit": "3799bc241b5cfc876cf082fbf39acc67c90a25b7",
      "tree": "4b3db9da132550555973070a886d5adb9a85931e",
      "parents": [
        "f7598245489c6d28c2673acd269ada2e6e834065"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "message": "Track install/removal/update of packages that provide backup services\n"
    },
    {
      "commit": "f2331a63c0e7f6ffeedf16185c92a0aeffa5512c",
      "tree": "a1bf488f27bce8d76df85b87a03112ed31611543",
      "parents": [
        "729a901b2a9ca163d6395983711cea1fdc7b5eb5",
        "a92041306e4d73baa10fb711fb905b9590f06b26"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 14:20:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 14:20:53 2009 -0700"
      },
      "message": "Merge change 1063 into donut\n\n* changes:\n  Refactor SearchableInfo.\n"
    },
    {
      "commit": "729a901b2a9ca163d6395983711cea1fdc7b5eb5",
      "tree": "64dece0f1c5d2bb3c6065c1fb7316ede4860fb1d",
      "parents": [
        "f7598245489c6d28c2673acd269ada2e6e834065",
        "027405155ff25ebe760dff03128519fb13cb8311"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 14:06:08 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 14:06:08 2009 -0700"
      },
      "message": "Merge change 1099 into donut\n\n* changes:\n  Fix Phone-based locale selection to never choose a lang-only locale.\n"
    },
    {
      "commit": "f7598245489c6d28c2673acd269ada2e6e834065",
      "tree": "be041c664b82080d48e2902fe8b476d493bac328",
      "parents": [
        "b1d790b63e2115be558d451efbc914d1f8dfa846",
        "e5b7632e5b3509beb7d0729a9640741d7f4ca466"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 12:45:16 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 12:45:16 2009 -0700"
      },
      "message": "Merge change 1086 into donut\n\n* changes:\n  Fixes regression introduced in Cupcake: a couple of adapters were using setTag() to store their own data, which could interfere with the use of setTag() made by the applications. The fix is quite simple an rely on a WeakHashMap to store the holders within the adapters; using the Views as the keys of the map.\n"
    },
    {
      "commit": "b1d790b63e2115be558d451efbc914d1f8dfa846",
      "tree": "9f322b0eeab2171d6d2af0be67dcb816d190fc52",
      "parents": [
        "9a6f25033c51390cbcc4eec38f27e0ac35e97f1c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "message": "Pass null as savedState to indicate a full backup is required\n"
    },
    {
      "commit": "9a6f25033c51390cbcc4eec38f27e0ac35e97f1c",
      "tree": "9356b2b33f14f559a8202ee89130ab1ca8277939",
      "parents": [
        "fd445d3510cddc7a67cf7720935626684a2f3011",
        "46758123868d91e7b186aebb27c4c4988dede43e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 12:18:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 12:18:21 2009 -0700"
      },
      "message": "Merge change 1089 into donut\n\n* changes:\n  Add a Backup Manager interface to request a full backup\n"
    },
    {
      "commit": "027405155ff25ebe760dff03128519fb13cb8311",
      "tree": "a1019a13199397fb778a84e66b46d0e17b6d4c08",
      "parents": [
        "fd445d3510cddc7a67cf7720935626684a2f3011"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed May 06 11:53:25 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed May 06 12:00:01 2009 -0700"
      },
      "message": "Fix Phone-based locale selection to never choose a lang-only locale.\n\nThis avoids us using the non-standard lang-only locale when communicating\noff device.  Fixes 1810133.\n"
    },
    {
      "commit": "fd445d3510cddc7a67cf7720935626684a2f3011",
      "tree": "13fefaf33708f8139bba8332fe09e0804595c932",
      "parents": [
        "f3af740bdfc261b1cb25c0799af780d3753d4518",
        "29c84340a14e70419449628ab193d11b7a609e9a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 11:58:27 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 11:58:27 2009 -0700"
      },
      "message": "Merge change 1095 into donut\n\n* changes:\n  gps: Move GPS scheduling from libgps to GpsLocationProvider.\n"
    },
    {
      "commit": "29c84340a14e70419449628ab193d11b7a609e9a",
      "tree": "80ae761f0fadb9b54cd13973a1439a458a49c1d1",
      "parents": [
        "b7c4ae91d95cfdb9a87eca1f543ddb2fa38a7c45"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 06 14:01:15 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 06 14:52:25 2009 -0400"
      },
      "message": "gps: Move GPS scheduling from libgps to GpsLocationProvider.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f3af740bdfc261b1cb25c0799af780d3753d4518",
      "tree": "f33c3453caf03db8c4b7a358ddc8a8d3945076ae",
      "parents": [
        "b9c9d260f21b321527c4622a123af9767630d94d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 05 00:49:01 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 11:35:46 2009 -0700"
      },
      "message": "Fixed issue 1709450: Requirements for CDMA Tone Generator\n\nAdded new tone types for CDMA IS-95 specific tones.\nAutomatic selection between IS-95, CEPT and JAPAN version base on operator\ncountry code for call supervisory tones.\nAlso improved tone generator capabilities:\n- Each tone segment can now generate its own set of frequencies\n- A tone does not have to be a succession of alternating ON/OFF segments\n- The sequence repetition does not have to start from first segment\n"
    },
    {
      "commit": "46758123868d91e7b186aebb27c4c4988dede43e",
      "tree": "dacb54c6da67d1ed7f355a956fc0b335d77af4b8",
      "parents": [
        "c770ed8a6bb7614ed4a85a672e4e6830bed19a95"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:22:00 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:24:27 2009 -0700"
      },
      "message": "Add a Backup Manager interface to request a full backup\n\nGiven a package name, the Backup Manager schedules a *full* (i.e. non-\nincremental) backup pass for that package.  Also added the state-file\nhandling for distinguishing to the target between the full and incremental\nbackup requests.\n"
    },
    {
      "commit": "e5b7632e5b3509beb7d0729a9640741d7f4ca466",
      "tree": "f6489d5686d43fba7ac9e978c0cd0eee6b5fe7e0",
      "parents": [
        "c770ed8a6bb7614ed4a85a672e4e6830bed19a95"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed May 06 11:12:38 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed May 06 11:12:38 2009 -0700"
      },
      "message": "Fixes regression introduced in Cupcake: a couple of adapters were using setTag() to store their own data, which could interfere with the use of setTag() made by the applications. The fix is quite simple an rely on a WeakHashMap to store the holders within the adapters; using the Views as the keys of the map.\n"
    },
    {
      "commit": "b9c9d260f21b321527c4622a123af9767630d94d",
      "tree": "581cf182a724dcc4a7ba9078229d57f8e3e9ff4f",
      "parents": [
        "c770ed8a6bb7614ed4a85a672e4e6830bed19a95"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 08:13:20 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 10:52:19 2009 -0700"
      },
      "message": "fix issue 1713090: After a Bluetooth call, MusicPlayer starts playing on speaker rather than wired external audio.\n\nTemporary fix until audio routing is refactored in Eclair release:\n- centralized and synchronized all audio routing control in AudioService.setRouting()\n- deprecated AudioManager.setRouting() and AudioManager.getRouting() methods\n"
    },
    {
      "commit": "e96440fa15b9158690996dd1e5ef2096099d5388",
      "tree": "7b638caafc25dd686026406a662142f5d2a69fe3",
      "parents": [
        "dffbb4dbceb7e90e91b65d02dfdbd1abd6147b94"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "nobody@android.com",
        "time": "Wed May 06 10:27:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 10:27:36 2009 -0700"
      },
      "message": "AI 148368: Decrease CPU usage by throttling touch events\n  We are decreasing CPU usage at the cost of event latency. Events are queued up\n  and released to the app at the specified rate. You can\n  experiment with different values via:\n  adb shell setprop windowsmgr.max_events_per_sec 35\n  The new value is picked up when you let go and retouch the screen. No\n  reboot needed.\n  Also the following changes were made after profiling:\n  - In WindowManagerService, limit the call to userActivity() when we\n  have a flood touch events.\n  - In PowerManagerService, skip checking of permission if the caller\n  is system user.\n  - In PowerManagerService, integrated the functionality of gatherState()\n  into reactivateWakeLocksLocked(). They loop through the same data\n  structure and are called back to back.\n  BUG\u003d1692771\n\nAutomated import of CL 148368\n"
    },
    {
      "commit": "c770ed8a6bb7614ed4a85a672e4e6830bed19a95",
      "tree": "cd3475fc91abd6b1f9bdecce4ee2e520967129ae",
      "parents": [
        "d2b124f97c52c566b68aff9fa58306f461686af0",
        "b7c4ae91d95cfdb9a87eca1f543ddb2fa38a7c45"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 08:06:35 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 08:06:35 2009 -0700"
      },
      "message": "Merge change 1069 into donut\n\n* changes:\n  GpsStatus: Increase NUM_SATELLITES to 255 for future compatibility.\n"
    },
    {
      "commit": "b7c4ae91d95cfdb9a87eca1f543ddb2fa38a7c45",
      "tree": "19bb01ba586d6b1cc74117190b4eeb69bfee2dd1",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 06 10:48:30 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed May 06 10:48:30 2009 -0400"
      },
      "message": "GpsStatus: Increase NUM_SATELLITES to 255 for future compatibility.\n\n64 satellties are required for NavStar, WAAS, EGNOS, and GLONASS satellites.\nIncreasing to 255 allows for future compatibility with Galileo.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "697805d02a750d007f62857c6d4064e5c9e47f93",
      "tree": "252e53a26abe4a168862b3320a3babafeadd7f65",
      "parents": [
        "d2b124f97c52c566b68aff9fa58306f461686af0"
      ],
      "author": {
        "name": "yes",
        "email": "bringert@android.com",
        "time": "Wed May 06 14:35:48 2009 +0100"
      },
      "committer": {
        "name": "yes",
        "email": "bringert@android.com",
        "time": "Wed May 06 14:35:48 2009 +0100"
      },
      "message": "Add a contact placeholder picture.\n\nPreviously, there was no generic contact icon in the framework.\nContactsProvider needs to have a generic contact icon to use\nfor contacts that don\u0027t have photos. Since there are multiple\npackages (MyFaves, GoogleSubscribedFeedsProvider) that use\nContactsProvider.java directly, adding the icon in the\nContactsProvider package is not an option.\n\nThe icon is a copy of\npackages/apps/Contacts/res/drawable-finger/ic_contact_picture.png\n"
    },
    {
      "commit": "a92041306e4d73baa10fb711fb905b9590f06b26",
      "tree": "f8259eb5beeedb157e71dbe0d75c3bcce51e5929",
      "parents": [
        "d2b124f97c52c566b68aff9fa58306f461686af0"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue May 05 14:06:35 2009 +0100"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed May 06 13:54:42 2009 +0100"
      },
      "message": "Refactor SearchableInfo.\n\n- Removes the mSearchable field which was only\n  for communication between the constructor and\n  getActivityMetaData().\n- Removes the badge and query rewriting fields,\n  since their values can be efficiently computed\n  on the fly.\n- Makes all the other public fields private and adds getters\n  for them.\n- Makes all fields final, except mActionKeys.\n- Removes the DBG_INHIBIT_SUGGESTIONS_CONSTANT.\n  I don\u0027t see why we would every want that, and it\n  complicated making the fields final.\n- Makes all fields in ActionKeyInfo final.\n- Makes all fields in ActionKeyInfo private and adds getters.\n- Removes the use of ActioKeyInfo.mKeyCode for failure\n  signalling. Uses IllegalArgumentException instead.\n- Replaces the ad hoc linked list for looking up\n  action keys by a HashMap. This is needed to\n  make the fields in ActionkeyInfo final, and also avoids O(N)\n  lookup in the (unlikely) case that an activity\n  has lots of action keys.\n- Don\u0027t throw exceptions when reading searchable\n  meta-data, since that could crash SearchManagerService.\n- Adds debug logging.\n"
    },
    {
      "commit": "d2b124f97c52c566b68aff9fa58306f461686af0",
      "tree": "79d33ec8358cf7382b7f1eacfbde1796f83687dd",
      "parents": [
        "be3ac2d5ba8ef93c3cbf4d05edaf3434a14df2c9"
      ],
      "author": {
        "name": "Tammo Spalink",
        "email": "tammo@google.com",
        "time": "Wed May 06 15:05:45 2009 +0800"
      },
      "committer": {
        "name": "Tammo Spalink",
        "email": "tammo@google.com",
        "time": "Wed May 06 15:05:45 2009 +0800"
      },
      "message": "new cdma sms unit tests (from QC on-site test)\n"
    },
    {
      "commit": "be3ac2d5ba8ef93c3cbf4d05edaf3434a14df2c9",
      "tree": "5bb517d2722e762f4c7cca769b515b3d9532504d",
      "parents": [
        "4488b11c51ad8f5b8330279a9405e5a0f8586aa4",
        "f9225f89aafa13dcbc3a69a721acf9b76c34485c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:58:05 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:58:05 2009 -0700"
      },
      "message": "Merge change 1040 into donut\n\n* changes:\n  Add a test app for the backup\n"
    },
    {
      "commit": "4488b11c51ad8f5b8330279a9405e5a0f8586aa4",
      "tree": "265634f88182eff5ae4049d219073d2f220ffcbc",
      "parents": [
        "e556248e859e7197d5f97c6c0724806d5913da24",
        "3ad977b41c6e4ef30c2f4f316b909b742ffc04aa"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:58:01 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:58:01 2009 -0700"
      },
      "message": "Merge change 1039 into donut\n\n* changes:\n  Add some C++ code to do raw files for backup\n"
    },
    {
      "commit": "e556248e859e7197d5f97c6c0724806d5913da24",
      "tree": "acaeded7f4f7d5c5dac0a94da8432eab834282df",
      "parents": [
        "dccc39b17ab85ad5b970dc299d95c0b53b4e7f25",
        "c1b80cb7e30102b304d62beb9649f84c798e00e9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:46:51 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 18:46:51 2009 -0700"
      },
      "message": "Merge change 1017 into donut\n\n* changes:\n  Changes in mediaframework test for the OpenCore 2.0 integration. Changes included: 1) The default value for the metatData 2) Add the videoSizedChange callback to get the video dimension Added the test cases for the async reset callback test case for the Qualcomm new realease.\n"
    },
    {
      "commit": "f9225f89aafa13dcbc3a69a721acf9b76c34485c",
      "tree": "dd3f94bdce3db4108883517f446c3e503cb3a867",
      "parents": [
        "3ad977b41c6e4ef30c2f4f316b909b742ffc04aa"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 18:34:31 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 18:34:31 2009 -0700"
      },
      "message": "Add a test app for the backup\n"
    },
    {
      "commit": "c1b80cb7e30102b304d62beb9649f84c798e00e9",
      "tree": "a9d253dd9d77fac738fc982bd113863256850468",
      "parents": [
        "fa3e5562793c5bd7d4513a9e1a5869e763a47ab5"
      ],
      "author": {
        "name": "Yu Shan Emily Lau",
        "email": "yslau@google.com",
        "time": "Tue May 05 15:08:28 2009 -0700"
      },
      "committer": {
        "name": "Yu Shan Emily Lau",
        "email": "yslau@google.com",
        "time": "Tue May 05 17:29:53 2009 -0700"
      },
      "message": "Changes in mediaframework test for the OpenCore 2.0 integration. Changes included:\n1) The default value for the metatData\n2) Add the videoSizedChange callback to get the video dimension\nAdded the test cases for the async reset callback test case for the Qualcomm new realease.\n"
    },
    {
      "commit": "dccc39b17ab85ad5b970dc299d95c0b53b4e7f25",
      "tree": "62f59b775fe44cdc8488e2da7803f756bc0a3117",
      "parents": [
        "3ed8b3dc42800068951332aea024f9737c25a0ed",
        "231cc608d06ffc31c24bf8aa8c8275bdd2636581"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "message": "Merge change 777 into donut\n\n* changes:\n  Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n"
    },
    {
      "commit": "3ed8b3dc42800068951332aea024f9737c25a0ed",
      "tree": "2cadc27da4ffaf63cd51916b583b4baf64308ded",
      "parents": [
        "f417247fa68524f2f34960f7389168eed7eb4a88",
        "e7e6fa3fbfeae278f739f3863197d0c4fc750abe"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:15:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:15:53 2009 -0700"
      },
      "message": "Merge change 1018 into donut\n\n* changes:\n  If no battery stats are found, return status_unknown\n"
    },
    {
      "commit": "e7e6fa3fbfeae278f739f3863197d0c4fc750abe",
      "tree": "d453eac6fdc6470fe6e8ee04434d8a6c047fae9b",
      "parents": [
        "ef65477523a6170bab7897809d1a8f9a3f5165f6"
      ],
      "author": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Tue Apr 28 17:24:47 2009 -0700"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Tue May 05 16:15:36 2009 -0700"
      },
      "message": "If no battery stats are found, return status_unknown\n\nIf the battery files can\u0027t be found return status_unkown instead of an\nerror.  On systems where we haven\u0027t brought up battery stats yet they\nassume the battery is dead and turn off as soon as the runtime starts\n\nSigned-off-by: Rebecca Schultz Zavin \u003crebecca@android.com\u003e\n"
    },
    {
      "commit": "f417247fa68524f2f34960f7389168eed7eb4a88",
      "tree": "96725ef9323a5617a117c3d8a2944c39f196677d",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "message": "Further development of backup file handling\n\n    Put backup data in flight into /cache\n    Close the files and delete the intermediates after backup pass\n"
    },
    {
      "commit": "231cc608d06ffc31c24bf8aa8c8275bdd2636581",
      "tree": "9b435c670f0f16751a21ae4678bfbed7d8e159b4",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 27 17:10:36 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 05 15:40:53 2009 -0700"
      },
      "message": "Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n\nThe previous implementation used a database for storing all of its state, which could cause\na significant amount of IO activity as its tables were updated through the stages of a sync.\nThis new implementation replaces that in-memory data structures, with hand-written code\nfor writing them to persistent storage.\n\nThere are now 4 files associated with this class, holding various pieces of its state that\nshould be consistent.  These are everything from a main XML file of account information that\nmust always be retained, to a binary file of per-day statistics that can be thrown away at\nany time.  Writes of these files as scheduled at various times based on their importance of\nthe frequency at which they change.\n\nBecause the database no longer exists, there needs to be a new explicit interface for\ninteracting with the sync manager database.  This is provided by new APIs on IContentService,\nwith a hidden method on ContentResolver to retrieve the IContentService so that various\nsystem entities can use it.  Other changes in other projects are required to update to the\nnew API.\n\nThe goal here is to have as little an impact on the code and functionality outside of\nSyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.\n"
    },
    {
      "commit": "3ad977b41c6e4ef30c2f4f316b909b742ffc04aa",
      "tree": "0b3c7a5263817709bc31c19e02f9fbc19b63de82",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 11:50:51 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 13:45:25 2009 -0700"
      },
      "message": "Add some C++ code to do raw files for backup\n"
    },
    {
      "commit": "06d96020c35dac2bf1651cb8bd4cfced911f1142",
      "tree": "6c50f2dcf748c8da2500ec074d780d945094af46",
      "parents": [
        "ad5aaea2c5bda0a73c1bc0ae99f17f700e952907",
        "33fbd3bee0d2160c79ffca246c6999e10a663aa2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 13:45:05 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 13:45:05 2009 -0700"
      },
      "message": "Merge change 1000 into donut\n\n* changes:\n  Ignore layout bin directories in git.\n"
    },
    {
      "commit": "33fbd3bee0d2160c79ffca246c6999e10a663aa2",
      "tree": "2bfbc243840e8ede323eebccacabc0be7ff681de",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue May 05 12:38:33 2009 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Tue May 05 12:39:28 2009 -0700"
      },
      "message": "Ignore layout bin directories in git.\n"
    },
    {
      "commit": "ad5aaea2c5bda0a73c1bc0ae99f17f700e952907",
      "tree": "21e34fb4050bba1ede56d978ab5c5182a3acb446",
      "parents": [
        "0c0221b86b518630f8210060438bc31433e175f9",
        "0c11b990908df26aca7f017d330535b9bf21a903"
      ],
      "author": {
        "name": "Scott Main",
        "email": "nobody@android.com",
        "time": "Tue May 05 11:25:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 05 11:25:38 2009 -0700"
      },
      "message": "am 0c11b99: AI 148308: revise aidl support documentation -- now the same\n\nMerge commit \u00270c11b990908df26aca7f017d330535b9bf21a903\u0027 into donut\n\n* commit \u00270c11b990908df26aca7f017d330535b9bf21a903\u0027:\n  AI 148308: revise aidl support documentation -- now the same in all environments;\n"
    },
    {
      "commit": "0c11b990908df26aca7f017d330535b9bf21a903",
      "tree": "0ed042854d15b6b51dd3c0820fd95091edce81ca",
      "parents": [
        "eb086d60b2b3425dec37d41b059d9e9cadfbbd18"
      ],
      "author": {
        "name": "Scott Main",
        "email": "nobody@android.com",
        "time": "Tue May 05 11:23:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 05 11:23:54 2009 -0700"
      },
      "message": "AI 148308: revise aidl support documentation -- now the same in all environments;\n  also added a table of contents and tweaked the markup for the anchor links\n  BUG\u003d1760241\n\nAutomated import of CL 148308\n"
    },
    {
      "commit": "0c0221b86b518630f8210060438bc31433e175f9",
      "tree": "0bbbace055293c9c139676fac53620275dffce76",
      "parents": [
        "22b8787ed4be8d4b7ed5d54802f9913fedb41425",
        "b933f669e26afad8a2466edcae8c1ffda6c15721"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 11:16:17 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 11:16:17 2009 -0700"
      },
      "message": "Merge change 972 into donut\n\n* changes:\n  Back-merge all changes done in master to DumpRenderTree to donut.\n"
    },
    {
      "commit": "b933f669e26afad8a2466edcae8c1ffda6c15721",
      "tree": "b276ceb2ed43cb05bb056dc9b892ac08e4dc23b8",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 05 01:02:14 2009 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 05 01:02:14 2009 -0700"
      },
      "message": "Back-merge all changes done in master to DumpRenderTree to donut.\n"
    },
    {
      "commit": "22b8787ed4be8d4b7ed5d54802f9913fedb41425",
      "tree": "1055eb6988e1265fa75dbf0ab9f7d08c694c481f",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 16:41:53 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 20:19:21 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Mon May 4 16:38:11 2009 -0700\n\n    IBackupService now passes ParcelFileDescriptors rather than int fds\n\n    The outlines of backup state file / data file handling are now in place as well\n    in the BackupManagerService.\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Thu Apr 30 12:40:19 2009 -0700\n\n    Hide the backup stuff for now\n\n    Also adjust based on comments:\n    + changed service intent string to conform to usage guidelines\n    + only publish the IBackupService binder when invoked with the right\n      intent action\n    + docs tweaks\n"
    },
    {
      "commit": "636274185ed5ee75faf6ef4d84bbb7d5b0371248",
      "tree": "79e05b1615e387e4c6457684a40d2ce7edbbbc7b",
      "parents": [
        "1ab6e21237fc9f436be002d4f3821fce963a0a2a",
        "20fb46fa1e16b57fe7aba2ac7cdf1efbf1a12393"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 17:54:39 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 17:54:39 2009 -0700"
      },
      "message": "Merge change 966 into donut\n\n* changes:\n  Fixes 1830181. Tapping disabled items in a ListView would cause the framework to take a code path that wasn\u0027t resetting the mMotionCorrection variable if it had been previously set. This would force ListView to apply a scroll to its children even though it was unnecessary. This simple fix prevents the issue by resetting mMotionCorrection appropriately.\n"
    }
  ],
  "next": "20fb46fa1e16b57fe7aba2ac7cdf1efbf1a12393"
}
