)]}'
{
  "log": [
    {
      "commit": "3af8e9389e008c0076b86cc6b3c6f005e7473d10",
      "tree": "84acce43fa9a460e2d888cea9df28b0bbe1ec5ee",
      "parents": [
        "5254657540b0a6ad54be6229b68fa5626e4ef9e5"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 15:03:46 2009 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 15:09:34 2009 -0700"
      },
      "message": "Change addCertificate to take byte[] instead of String as we don\u0027t know the encoding.\n\nIn WebView, if we run into the certificate, we will save it to the Keystore instead of sending it to the WebKit.\n"
    },
    {
      "commit": "5254657540b0a6ad54be6229b68fa5626e4ef9e5",
      "tree": "401d00a7e551088fb9fe27de4d2a007b3fbb83e7",
      "parents": [
        "b4e456bf1823e2dd8c975ae02451b7b72541c236",
        "a6fcc9541161de5d1c39e62d2646076706d87b96"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 14:43:37 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 14:43:37 2009 -0700"
      },
      "message": "Merge change 4818 into donut\n\n* changes:\n  Added in Settings.Secure default country and variant for the default TTS language.\n"
    },
    {
      "commit": "b4e456bf1823e2dd8c975ae02451b7b72541c236",
      "tree": "6c1f9834c4abe8ab4a53157a225332fc9419d4e6",
      "parents": [
        "4d1b5bd148d0830d2acc03bafbe58dfd17e5b3f8",
        "d97c7adfc2d6e885826e40694a116cf3f9225025"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 14:24:39 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 14:24:39 2009 -0700"
      },
      "message": "Merge change 4785 into donut\n\n* changes:\n  Fix issue #1753079: running instrumentation in shared processes.\n"
    },
    {
      "commit": "a6fcc9541161de5d1c39e62d2646076706d87b96",
      "tree": "3c897c0e8f1d8f87786295018843669762ff66be",
      "parents": [
        "4d1b5bd148d0830d2acc03bafbe58dfd17e5b3f8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 19 14:06:01 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 19 14:18:41 2009 -0700"
      },
      "message": "Added in Settings.Secure default country and variant for the default TTS language.\n"
    },
    {
      "commit": "4d1b5bd148d0830d2acc03bafbe58dfd17e5b3f8",
      "tree": "4ab04475ff5ed8b95909283232d1200bbe27719c",
      "parents": [
        "066e6bfd01a5ddd4748eacdc82fee5374e2af929",
        "e35c23514592efe07d54fdbed7e7ec0b717e8bbe"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:31:14 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:31:14 2009 -0700"
      },
      "message": "Merge change 4808 into donut\n\n* changes:\n  Fixes #1928566. Prevents runtime restart upon configuration change.\n"
    },
    {
      "commit": "066e6bfd01a5ddd4748eacdc82fee5374e2af929",
      "tree": "a83aed7998ce399d269ee005ecaedab6ae15dd94",
      "parents": [
        "9ebd737e12e4e06b9635cd3decff77ff13806af9",
        "290f5baf9192752287723a29ede4399ae3e4c826"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:30:15 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:30:15 2009 -0700"
      },
      "message": "Merge change 4792 into donut\n\n* changes:\n  when we reset a paint, it should return to the state it was in when it was first created. for java, this means setting its text-encoding to UTF16...\n"
    },
    {
      "commit": "9ebd737e12e4e06b9635cd3decff77ff13806af9",
      "tree": "a5bc77709064ecaf194bb58ae53f8d94068b7881",
      "parents": [
        "b00518d81550c638728b53346a2a25f0a80a1049",
        "257379162050df40545c464b165c5ed6a158a29c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:24:44 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:24:44 2009 -0700"
      },
      "message": "Merge change 4793 into donut\n\n* changes:\n  dpi changes for webview\n"
    },
    {
      "commit": "e35c23514592efe07d54fdbed7e7ec0b717e8bbe",
      "tree": "309749084cea84acbe4c7c3b3ba488e0b40378af",
      "parents": [
        "649f99e8347984c1e031dae302830f4c9ebd3df4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jun 19 13:18:12 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jun 19 13:18:12 2009 -0700"
      },
      "message": "Fixes #1928566. Prevents runtime restart upon configuration change.\n\nManaged dialogs could cause dispatchOnCreate() to be called twice, which\nwould cause an exception.\n"
    },
    {
      "commit": "b00518d81550c638728b53346a2a25f0a80a1049",
      "tree": "c3294bb140d9fb14b6f0d9c93c80afa8308d80aa",
      "parents": [
        "ab48bb9c008ade65e0f1313088a3089f5b65e8de",
        "630cd06414dede289e5319861b6c06984b7953ae"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:55:34 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:55:34 2009 -0700"
      },
      "message": "Merge change 4796 into donut\n\n* changes:\n  Move USE_LOCATION_FOR_SERVICES to Secure.\n"
    },
    {
      "commit": "257379162050df40545c464b165c5ed6a158a29c",
      "tree": "3c3035871e6ea6a0b6c8e02effdf8fb129d0d433",
      "parents": [
        "e0b7e916a1259d2dd9c116695607f9877ec56056"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 12:42:47 2009 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 12:42:47 2009 -0700"
      },
      "message": "dpi changes for webview\n"
    },
    {
      "commit": "ab48bb9c008ade65e0f1313088a3089f5b65e8de",
      "tree": "06595ce410ddab6bcf4ad34a5ee6f3bd1ed0b0f5",
      "parents": [
        "f781b39cb89dc19e6ad090bd3eb1bedbe7928429",
        "238bfa9efdcf5b4b7fae8c65c528ea01c4499b8a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:13:50 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:13:50 2009 -0700"
      },
      "message": "Merge change 4686 into donut\n\n* changes:\n  Set AuthType to 0 if username is not specified.\n"
    },
    {
      "commit": "290f5baf9192752287723a29ede4399ae3e4c826",
      "tree": "3af9dcd0d95894929fa853a6e502b14162c74190",
      "parents": [
        "36c153f84f2728ffc67b7f30a1f326a7731c2088"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Jun 19 15:13:39 2009 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Jun 19 15:13:39 2009 -0400"
      },
      "message": "when we reset a paint, it should return to the state it was in when it was first created.\nfor java, this means setting its text-encoding to UTF16...\n"
    },
    {
      "commit": "f781b39cb89dc19e6ad090bd3eb1bedbe7928429",
      "tree": "18bfbb913577021671232dcdcc1e659b0324e47d",
      "parents": [
        "ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf",
        "a9e546169b3c2c9c5f248d2f3abe3b934f48695d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:09:36 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:09:36 2009 -0700"
      },
      "message": "Merge change 4786 into donut\n\n* changes:\n  gps: Set SUPL server via hostname rather than IP address.\n"
    },
    {
      "commit": "630cd06414dede289e5319861b6c06984b7953ae",
      "tree": "932fd5944f4171913a199b2831845e190dd69386",
      "parents": [
        "ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jun 19 12:07:02 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jun 19 12:08:20 2009 -0700"
      },
      "message": "Move USE_LOCATION_FOR_SERVICES to Secure.\n\nSince SetupWizard needs to be able to write the setting, it\ncouldn\u0027t live in Gservices. Moved it to Secure.\n"
    },
    {
      "commit": "238bfa9efdcf5b4b7fae8c65c528ea01c4499b8a",
      "tree": "20c68a305ebdc3a46e9a7b1a4c77b5ca4503f7c2",
      "parents": [
        "ef29379c28596dfa02702fad46bbe2f599e2e073"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Jun 18 16:25:55 2009 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Fri Jun 19 12:06:48 2009 -0700"
      },
      "message": "Set AuthType to 0 if username is not specified.\n\nIf username is not specified, set authType to No PAP / No CHAP\nso that the code is backward compatible.\n"
    },
    {
      "commit": "a9e546169b3c2c9c5f248d2f3abe3b934f48695d",
      "tree": "ca6b5b01b76e239c021903981f6a246e9566af9c",
      "parents": [
        "649f99e8347984c1e031dae302830f4c9ebd3df4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 19 14:54:42 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jun 19 14:54:42 2009 -0400"
      },
      "message": "gps: Set SUPL server via hostname rather than IP address.\n\nThe GPS engine needs the hostname for the secure SUPL case\nand deferring the DNS lookup to the HAL might be helpful in the future\nif the SUPL server is on a carrier\u0027s private network.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf",
      "tree": "050eb0b0c75cf20b17ea0fef13b5cd5b3ea2dbda",
      "parents": [
        "3d74bb4ab27ae9601f5c9c3706fad287845fb672",
        "abd7eba70b38752d0ecac98e51416d2b33d2d1ec"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:50:22 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:50:22 2009 -0700"
      },
      "message": "Merge change 4706 into donut\n\n* changes:\n  Add a new checkin server flag for Vending Machine heartbeats.\n"
    },
    {
      "commit": "3d74bb4ab27ae9601f5c9c3706fad287845fb672",
      "tree": "535a85ff083f52453637c2ece5d643e79276c142",
      "parents": [
        "03255de32d127d17504b6d475e6e79190dd637f8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 10:35:21 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:46:58 2009 -0700"
      },
      "message": "Add \"why?\" button to low battery dialog.\n\nThis takes the user to the power usage activity.\n"
    },
    {
      "commit": "d97c7adfc2d6e885826e40694a116cf3f9225025",
      "tree": "67c989be345718a7b32898cc7e5042dbd70e31d7",
      "parents": [
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:37:35 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:37:35 2009 -0700"
      },
      "message": "Fix issue #1753079: running instrumentation in shared processes.\n\nThe check for allowing the start of an activity was broken, it was\ncomparing the process of that activity\u0027s application vs. the current\ninstrumentation target package name.  Okay it was utterly insane.\n\nNow this check is that the target activity will be running in the\nsame process as the instrumentation, which is really what we want.\n"
    },
    {
      "commit": "03255de32d127d17504b6d475e6e79190dd637f8",
      "tree": "b9adf690e967740645c8bed52d789a9178102b2e",
      "parents": [
        "697f9caf8b63fa87ecfeb9a29aa129ba5321641f",
        "6c901db72dbaf57d8fdf26adae6721de14ecae22"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:29:57 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:29:57 2009 -0700"
      },
      "message": "Merge change 4757 into donut\n\n* changes:\n  Add getBatteryUsageHint() to BluetoothHeadset for power monitoring.\n"
    },
    {
      "commit": "697f9caf8b63fa87ecfeb9a29aa129ba5321641f",
      "tree": "86cd143e6d9b1636bc5fcf0acb817b9f04342c8c",
      "parents": [
        "6afe81339ed973f1ef4a6c30110d5ce3b001ea4c",
        "693a2237226597b8b5ae21a0c03232a1499e6159"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:30:15 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:30:15 2009 -0700"
      },
      "message": "Merge change 4687 into donut\n\n* changes:\n  Use standalone month name instead of format month name in year-month format.\n"
    },
    {
      "commit": "6afe81339ed973f1ef4a6c30110d5ce3b001ea4c",
      "tree": "a7cd6560482e4317804f96a700edb731483e8e90",
      "parents": [
        "bc806f65edc33f6eda0f475ac84e5e037a013a90",
        "31a88fac91cbdddb2ba63b0557cfd18b31d5eaac"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:29:59 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:29:59 2009 -0700"
      },
      "message": "Merge change 4720 into donut\n\n* changes:\n  Fix string formatters in SettingsProvider SecurityException message.\n"
    },
    {
      "commit": "bc806f65edc33f6eda0f475ac84e5e037a013a90",
      "tree": "086604fbc605d4b416e85b565227ffb7e489d1d7",
      "parents": [
        "2b1aed1021fb472de83c4c0143f2c4452244a0af"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 15:18:19 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:25:37 2009 -0700"
      },
      "message": "Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n"
    },
    {
      "commit": "6c901db72dbaf57d8fdf26adae6721de14ecae22",
      "tree": "f49c0fa11e6fd06ab20abe870456d041aaee433b",
      "parents": [
        "fd5f087536dcb04ac9c46f2b19f87a37455390b0"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jun 19 10:08:09 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Jun 19 10:08:09 2009 -0700"
      },
      "message": "Add getBatteryUsageHint() to BluetoothHeadset for power monitoring.\n\nThis is a monotonically increasing integer. Wraps to 0 at\nInteger.MAX_INT, and at boot.\nCurrent implementation returns the number of AT commands handled since\nboot. This is a good indicator for spammy headset/handsfree units that\ncan keep the device awake by polling for cellular status updates. As a\nrule of thumb, each AT command prevents the CPU from sleeping for 500 ms\n"
    },
    {
      "commit": "2b1aed1021fb472de83c4c0143f2c4452244a0af",
      "tree": "5d5478774fe8cf04e82cfed0c3aefbd8aa2ca9af",
      "parents": [
        "649f99e8347984c1e031dae302830f4c9ebd3df4",
        "4566b79736f236c0f605c57130d1fa954f4642d6"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:07:29 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:07:29 2009 -0700"
      },
      "message": "Merge change 4527 into donut\n\n* changes:\n  Fix Canvas.finalize() for the case where the constructor throws an exception before the native canvas instance was created.\n"
    },
    {
      "commit": "31a88fac91cbdddb2ba63b0557cfd18b31d5eaac",
      "tree": "5724eab3d1f4252cea9a3c6ff1aff548ae0bd0e5",
      "parents": [
        "16dd82cfdc879b7c3e51b19e54c70dbf78e8d697"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jun 18 20:44:42 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Jun 19 09:45:48 2009 -0700"
      },
      "message": "Fix string formatters in SettingsProvider SecurityException message.\n"
    },
    {
      "commit": "649f99e8347984c1e031dae302830f4c9ebd3df4",
      "tree": "77fbf21a988d3ad99b7b492ecd04386e347183c2",
      "parents": [
        "fd5f087536dcb04ac9c46f2b19f87a37455390b0"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jun 17 14:29:57 2009 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jun 19 18:48:37 2009 +0800"
      },
      "message": "Add Intent.ACTION_SEND_MULTIPLE\n\nActivities can use this intent to send multiple data.\n"
    },
    {
      "commit": "fd5f087536dcb04ac9c46f2b19f87a37455390b0",
      "tree": "48c0a48925ba482246054a554d33d9ab95a60cfc",
      "parents": [
        "e0b7e916a1259d2dd9c116695607f9877ec56056",
        "20efdf6b56e54b0520d8629cd706045dc8d280d3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 20:49:06 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 20:49:06 2009 -0700"
      },
      "message": "Merge change 4721 into donut\n\n* changes:\n  Make signature checks on restore work with unsigned apps\n"
    },
    {
      "commit": "e0b7e916a1259d2dd9c116695607f9877ec56056",
      "tree": "5272e0fbdb6d1d254faf20add4fe246fe816a56a",
      "parents": [
        "c6282977180c220b1a68c23a328e7d75a11963ab",
        "0de8e4398d81a770f8bf648e8137272c3d841296"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:52:00 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:52:00 2009 -0700"
      },
      "message": "Merge change 4679 into donut\n\n* changes:\n  Replace the dummy code with Keystore for \u003ckeygen\u003e support.\n"
    },
    {
      "commit": "c6282977180c220b1a68c23a328e7d75a11963ab",
      "tree": "99b8041ae0b4cc0f44e98f7cc7a8fbdc656f9ded",
      "parents": [
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d",
        "3c08a446c5b4f2682da1d8461bd1ed94060c29dc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:45:07 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:45:07 2009 -0700"
      },
      "message": "Merge change 4718 into donut\n\n* changes:\n  Fix sim-eng build and simplify previous lcd-density related patch\n"
    },
    {
      "commit": "20efdf6b56e54b0520d8629cd706045dc8d280d3",
      "tree": "8f1a5cd2f092c418c93e234c61ad6bcefc72e9fd",
      "parents": [
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 19:41:36 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 19:42:24 2009 -0700"
      },
      "message": "Make signature checks on restore work with unsigned apps\n"
    },
    {
      "commit": "3c08a446c5b4f2682da1d8461bd1ed94060c29dc",
      "tree": "b0910aa8c13d0fc13c02ec4aabfa35e31b366e2f",
      "parents": [
        "5502f04c1dcf2b1918858bacb99fb0480a711707"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 04:41:12 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 04:41:12 2009 +0200"
      },
      "message": "Fix sim-eng build and simplify previous lcd-density related patch\n"
    },
    {
      "commit": "63e7155c7d1d0c3f0027400aa09e9a45f648a80d",
      "tree": "1f3bf9743613460533de9df78f2c8c5cd65cf070",
      "parents": [
        "5502f04c1dcf2b1918858bacb99fb0480a711707",
        "5c1e00b14d2ef10ec76abf3e951fa8003a67f558"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "message": "Merge change 4696 into donut\n\n* changes:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "5502f04c1dcf2b1918858bacb99fb0480a711707",
      "tree": "6a6a58f6181726e1b5cbb964b31e7c55a27f87fc",
      "parents": [
        "16ce3504c5bf98d95d5c36001f755bb4b15253c9",
        "5d605dc56b036232e885f6ec36b888b729673060"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:02:39 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:02:39 2009 -0700"
      },
      "message": "Merge change 4709 into donut\n\n* changes:\n  backup stuff\n"
    },
    {
      "commit": "16ce3504c5bf98d95d5c36001f755bb4b15253c9",
      "tree": "310568ef29e725de1341275bb355fcb525e0701f",
      "parents": [
        "568b62c861ed4abc792d517f61640610400614e1",
        "d2d9ceb7305d593c1b767bbb05de0082a9af4109"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:02:30 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:02:30 2009 -0700"
      },
      "message": "Merge change 4708 into donut\n\n* changes:\n  Make RestoreHelper and friends also write out the snapshot state.\n"
    },
    {
      "commit": "abd7eba70b38752d0ecac98e51416d2b33d2d1ec",
      "tree": "8b7a4be31ec57606a8cd893bfab3a8f005d6a960",
      "parents": [
        "83248c432ffe2e2a17abbc8e4960c26574b46bca"
      ],
      "author": {
        "name": "Linda Nguyen",
        "email": "lknguyen@google.com",
        "time": "Thu Jun 18 18:52:59 2009 -0700"
      },
      "committer": {
        "name": "Linda Nguyen",
        "email": "lknguyen@google.com",
        "time": "Thu Jun 18 18:52:59 2009 -0700"
      },
      "message": "Add a new checkin server flag for Vending Machine heartbeats.\n"
    },
    {
      "commit": "568b62c861ed4abc792d517f61640610400614e1",
      "tree": "acce18f88cc6cb671f182c79052220b43f6e6781",
      "parents": [
        "abce4e8714bed26a2b37b20ad3f02cf619d71c9a",
        "d7ed9175aa269db8977ef05b095cfc2fabcc9c7a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:45:08 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:45:08 2009 -0700"
      },
      "message": "Merge change 4702 into donut\n\n* changes:\n  Fix bug 1927213 test failures.\n"
    },
    {
      "commit": "5d605dc56b036232e885f6ec36b888b729673060",
      "tree": "8a29f6a2feb495cbac08bb43b08e0ca9b8cf7dce",
      "parents": [
        "d2d9ceb7305d593c1b767bbb05de0082a9af4109"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:23:43 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "backup stuff\n"
    },
    {
      "commit": "d2d9ceb7305d593c1b767bbb05de0082a9af4109",
      "tree": "1ba39c3c5901d65a18855286e240f177820a6ec6",
      "parents": [
        "abce4e8714bed26a2b37b20ad3f02cf619d71c9a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 13:11:18 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "Make RestoreHelper and friends also write out the snapshot state.\n"
    },
    {
      "commit": "abce4e8714bed26a2b37b20ad3f02cf619d71c9a",
      "tree": "274cf438fcda8dca4b13a056bc73fea61ba4dd77",
      "parents": [
        "2810f681991d1beb5ceb3515159f9fad3cc341d5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:35:32 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:38:02 2009 -0700"
      },
      "message": "Use signatures on restore\n\nOn restore now, the backup manager gets the signature blocks corresponding to\nthe restore set from the transport.  It then validates those signatures against\nthe on-device app signatures, and refuses to restore data to an app whose\non-device sig block does not match the backup image\u0027s.\n\nAlso actually implement \u0027bmgr transport N\u0027 so that we can select the local\ntransport easily during runtime.\n"
    },
    {
      "commit": "d7ed9175aa269db8977ef05b095cfc2fabcc9c7a",
      "tree": "4651f685661824951ede16d642e3f020c8f9eda7",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 18:36:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 18:36:37 2009 -0700"
      },
      "message": "Fix bug 1927213 test failures.\n\nEat the security exception that is now thrown by the window manager to\nretain the old behavior for tests.  (We still need to throw the\nexception from the WM for the new permission tests.)\n"
    },
    {
      "commit": "2810f681991d1beb5ceb3515159f9fad3cc341d5",
      "tree": "37c2b0d6e86028c957575e2534fb35e42e294d61",
      "parents": [
        "167dbe0bf1f8d807d1ced400f146b7780eb6c721",
        "16dd82cfdc879b7c3e51b19e54c70dbf78e8d697"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:24:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:24:47 2009 -0700"
      },
      "message": "Merge change 4694 into donut\n\n* changes:\n  Make SettingsProviders SecurityException messages more verbose.\n"
    },
    {
      "commit": "5c1e00b14d2ef10ec76abf3e951fa8003a67f558",
      "tree": "fa723a6f96f5b977dfdfdc08b5b8aab98c20d500",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "message": "Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n\n- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.\n  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.\n\n- Change the API for resize compatibility mode to be a bit in the flags field, instead\n  of a separate boolean.\n\n- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is\n  only enabled for \"eng\" builds.  When in this mode, the activity manager will make\n  sure that a dexopt has been done before loading an .apk into a process, and will\n  try to avoid displaying ANRs if they are due to the dexopt causing some operation\n  to take longer than it normally would (though I make no guarantees about this\n  totally working).\n\n- Add API to Context to get the ApplicationInfo for its package, for easy access to\n  things like targetSdkVersion.\n"
    },
    {
      "commit": "167dbe0bf1f8d807d1ced400f146b7780eb6c721",
      "tree": "deec759d42c4364a9363674d337374b635de4f6b",
      "parents": [
        "0bceb77b004a688ca044b794e0622385c6e2953d",
        "2854254c2f59544d682d41ffee4fc1e1f2a604a3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:05:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:05:19 2009 -0700"
      },
      "message": "Merge change 4670 into donut\n\n* changes:\n  Update RandomBlock to use RandomAccessFile.  This helps prevent certain unusual conditions from corrupting the entropy file.  (for example, if Android should happen to crash while a write is in progress)\n"
    },
    {
      "commit": "16dd82cfdc879b7c3e51b19e54c70dbf78e8d697",
      "tree": "2c100cbb5e0d086ddbb2415a9146ae213d6a4195",
      "parents": [
        "6cdd1c8a60f56eabbdb09e4c1231975c96715388"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jun 18 17:00:48 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jun 18 17:05:03 2009 -0700"
      },
      "message": "Make SettingsProviders SecurityException messages more verbose.\n"
    },
    {
      "commit": "0bceb77b004a688ca044b794e0622385c6e2953d",
      "tree": "dbbb1b8a69038e75fc9fdd59df8f6e7235cd88aa",
      "parents": [
        "07eac016446c63711bebe6e553e98c02d1fe55a5",
        "fdbf6a7eac39a23e0e910c29678fe00d4eb56c99"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:01:37 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:01:37 2009 -0700"
      },
      "message": "Merge change 4669 into donut\n\n* changes:\n  Fixes #1922373. Resolves a case of keys collision in Resources\u0027 cache.\n"
    },
    {
      "commit": "693a2237226597b8b5ae21a0c03232a1499e6159",
      "tree": "6741e6add8f1782a34629113521ba668f89c8c65",
      "parents": [
        "77dcf735ff3115ef20244408313823d489d88143"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jun 18 16:37:41 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jun 18 16:37:41 2009 -0700"
      },
      "message": "Use standalone month name instead of format month name in year-month format.\n\nI think this is the last place the Czech date formats still had problems.\n"
    },
    {
      "commit": "07eac016446c63711bebe6e553e98c02d1fe55a5",
      "tree": "413817514a1a5f6d7f232947a1eb1e61e89d1ed3",
      "parents": [
        "c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044",
        "6785dd842075889e5230d93ed9c0ab9c204ab432"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:15:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:15:47 2009 -0700"
      },
      "message": "Merge change 4682 into donut\n\n* changes:\n  Store the app signatures as part of the backup set\n"
    },
    {
      "commit": "6785dd842075889e5230d93ed9c0ab9c204ab432",
      "tree": "7b7c6894f0c80254a3ceb4e14f9c113a5edeb6b6",
      "parents": [
        "df1ff2cb332ad2d819671f1e78e5bd68d758ca54"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 15:58:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 15:58:25 2009 -0700"
      },
      "message": "Store the app signatures as part of the backup set\n\nUnder a pseudo-app for the Package Manager, we store the app signatures for all\nparticipating applications installed on the device.  At restore time we will\nrestore this first, then ensure that the current on-device signature chain is\ncompatible with the one in the backup set.  If there\u0027s a mismatch, this may be a\nspoof attempt and we will refuse to restore that app\u0027s data.\n\nThe restore side of this is not implemented, but the Package Manager agent is\nhere as well as the backup side theoretically pushing the data now.\n"
    },
    {
      "commit": "0de8e4398d81a770f8bf648e8137272c3d841296",
      "tree": "3c97a533be7d49854dbdfa78ff35284bcc06bc8a",
      "parents": [
        "5553f1528e94377ae5adf423e91331f5eb57dd44"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 18 15:52:42 2009 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 18 15:52:42 2009 -0700"
      },
      "message": "Replace the dummy code with Keystore for \u003ckeygen\u003e support.\n"
    },
    {
      "commit": "c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044",
      "tree": "288e6596cf5530870c25f3ac66b6773c372d8392",
      "parents": [
        "b1cdb64877ebd3b8c5182913ff02edd8b54a6982",
        "4a364130fb072bf44367e537f8d24e7e00c6ca69"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:42:00 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:42:00 2009 -0700"
      },
      "message": "Merge change 4668 into donut\n\n* changes:\n  Fix runtime restarts due to sending the wrong flags to dbus.\n"
    },
    {
      "commit": "b1cdb64877ebd3b8c5182913ff02edd8b54a6982",
      "tree": "f2a5fabc1ee0e4073e0f986c4a1a72489dc0678d",
      "parents": [
        "7153739a92dda971fd865defae0747bec921d8af",
        "2a578ae518ff3d8a2d4768b3d190e4702509e82c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:41:34 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:41:34 2009 -0700"
      },
      "message": "Merge change 4565 into donut\n\n* changes:\n  Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density\n"
    },
    {
      "commit": "4a364130fb072bf44367e537f8d24e7e00c6ca69",
      "tree": "c2b62def6449ec54789ef33479a1cfc67731f388",
      "parents": [
        "7153739a92dda971fd865defae0747bec921d8af"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jun 18 15:05:34 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jun 18 15:33:31 2009 -0700"
      },
      "message": "Fix runtime restarts due to sending the wrong flags to dbus.\n\nIn eventLoopMain we were correctly translating from unix events to dbus flags,\nbut a coding typo then gave the unix events to dbus. Fix this typo.\n\nAlso noticed that we were passing raw dbus flags to poll() in another area.\nThis did not cause any immediate problem, since POLLIN | POLLPRI is harmless\nand we do not usually need POLLOUT. But fixed anyway.\n"
    },
    {
      "commit": "2854254c2f59544d682d41ffee4fc1e1f2a604a3",
      "tree": "189b267f10f5ac94a00934cee7c5e3fca01ac68e",
      "parents": [
        "77dcf735ff3115ef20244408313823d489d88143"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 15:23:17 2009 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 15:23:17 2009 -0700"
      },
      "message": "Update RandomBlock to use RandomAccessFile.  This helps\nprevent certain unusual conditions from corrupting the\nentropy file.  (for example, if Android should happen to\ncrash while a write is in progress)\n"
    },
    {
      "commit": "2a578ae518ff3d8a2d4768b3d190e4702509e82c",
      "tree": "9275c473a3caee6f985a9abd2d7b33ff54c21b40",
      "parents": [
        "4ebd855bb7362d45833dc811f2622fcc788dec17"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 18 04:30:32 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 00:17:31 2009 +0200"
      },
      "message": "Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density\n\nro.sf.lcd_density is usually defined in the build.prop file which is parsed by init\nbefore anything else. Since its name begins with \"ro.\", this property is write-once\nand cannot later be modified, e.g. in /system/etc/init.goldfish.sh.\n\nIn other words, you cannot use \"emulator -prop ro.sf.lcd_density\u003d\u003cvalue\u003e\", since\nit is impossible to override the value defined in build.prop\n\nThis patch modifies the system to recognize \"qemu.sf.lcd_density\" as an override\nvalue, which can be set with \"emulator -prop qemu.sf.lcd_density\u003d\u003cvalue\u003e\", forcing\na specific density.\n\nA later patch will allow the emulator to automatically set this property depending\non AVD hardware configuration settings.\n"
    },
    {
      "commit": "fdbf6a7eac39a23e0e910c29678fe00d4eb56c99",
      "tree": "a9048aed350b79a8810dfec0625c7b6ae834bcf3",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Jun 18 15:13:40 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Jun 18 15:13:40 2009 -0700"
      },
      "message": "Fixes #1922373. Resolves a case of keys collision in Resources\u0027 cache.\n\nThe Resources class keeps a cache of known resources. The keys used by the\ncache are stored as int primitives. For any given drawable resource, a key\nis built thusly:\n\nTypeValue.assetCookie \u003c\u003c 24 | TypedValue.data\n\nIn the case of a plain color drawable, assetCookie always equals -1, that\nis 0xFF once right-shifted and the data contains the color value. Which\nmeans the key for the following two colors is the same:\n\n0xFF000000\n0x00000000\n\nBecause of the int storage and the use of the (constant in this case)\nasset cookie, the alpha channel of a color is ignored. That means that\nif you first load an opaque black color (0xFF000000), subsequent loads\nof a totally transparent black color (0x00000000) will give you an\nopaque black color.\n\nA workaround is to use a transparent color that is not black,\n0x00000001 for instance. Note that this issue would arise with any color\nand any opacity level.\n\nThe solution to fix this issue is simply to change the cache to use\nlongs instead of ints to represent the keys. A key thus becomes:\n\nTypedValue.assetCookie \u003c\u003c 32 | TypedValue.data\n\nThis allows us correct storage of all colors at the cost of a few bytes.\nThe tradeoff is that we can keep caching ColorDrawable, which is\ndefinitely worth it.\n"
    },
    {
      "commit": "7153739a92dda971fd865defae0747bec921d8af",
      "tree": "dfde4bbb137462a9e551c233b8821fe108fcaf22",
      "parents": [
        "8696d7030af6f0d58859f1027c423143b67f9fb4",
        "d146874d7341bc9602c93719582b4209e7b81f01"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:07:00 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:07:00 2009 -0700"
      },
      "message": "Merge change 4661 into donut\n\n* changes:\n  Grouping under TextToSpeech.Engine the constants to be used by a TTS engine implementation or a settings application for default values, and data integrity check return codes.\n"
    },
    {
      "commit": "d146874d7341bc9602c93719582b4209e7b81f01",
      "tree": "c7f898fd22c65d837d96170532c85d96f99db84b",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 18 14:41:41 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 18 14:46:25 2009 -0700"
      },
      "message": "Grouping under TextToSpeech.Engine the constants to be used by\na TTS engine implementation or a settings application for default\nvalues, and data integrity check return codes.\n"
    },
    {
      "commit": "8696d7030af6f0d58859f1027c423143b67f9fb4",
      "tree": "6dcbbe40ede2aefcb25a6204480a32c9e0bbc19f",
      "parents": [
        "77dcf735ff3115ef20244408313823d489d88143",
        "fc78f358cb1d1cee99758bcd6ef998a122ef27c9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 13:45:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 13:45:19 2009 -0700"
      },
      "message": "Merge change 3874 into donut\n\n* changes:\n  for cdma concatenated (long) messages, replace ascii7bit with gsm7bit encoding\n"
    },
    {
      "commit": "77dcf735ff3115ef20244408313823d489d88143",
      "tree": "c15e52ea50172a4270155546dde3e8c56c3abde1",
      "parents": [
        "47a67ebcf2d772d5dcae459caa57125b3fe733b3",
        "5669ce59aad19f17e1e89913e7483fb93b8aa0cf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:20:50 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:20:50 2009 -0700"
      },
      "message": "Merge change 4561 into donut\n\n* changes:\n  Work around the Czech lack of abbreviated month names.\n"
    },
    {
      "commit": "47a67ebcf2d772d5dcae459caa57125b3fe733b3",
      "tree": "420b9d1e9db56e39c4798f35d74b015ab03b7826",
      "parents": [
        "5ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe",
        "83189c985a0e617ba7856343ea8b7080c37396a7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:06:59 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:06:59 2009 -0700"
      },
      "message": "Merge change 4544 into donut\n\n* changes:\n  Connect TabHost/TabWidget/FrameLayout in the layout editor.\n"
    },
    {
      "commit": "5ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe",
      "tree": "678a5ed37827560b44aeab6f93e56225722421a3",
      "parents": [
        "df1ff2cb332ad2d819671f1e78e5bd68d758ca54",
        "4fb256117ca271e3e37284a19b663d116f6ec20c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 11:58:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 11:58:54 2009 -0700"
      },
      "message": "Merge change 4521 into donut\n\n* changes:\n  load entropy data at boot.  Periodically write entropy data to disk.\n"
    },
    {
      "commit": "83189c985a0e617ba7856343ea8b7080c37396a7",
      "tree": "742d1fe9128b3e2f9c8a49c571055fcb03ff5302",
      "parents": [
        "5553f1528e94377ae5adf423e91331f5eb57dd44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 17 17:20:00 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 18 11:56:36 2009 -0700"
      },
      "message": "Connect TabHost/TabWidget/FrameLayout in the layout editor.\n\nBasically this does automatically what the developer has to do in his/her\nactivity so that the TabHost gets tabs that connects the TabWidgets and the\ncontent of the FrameLayout.\n"
    },
    {
      "commit": "5669ce59aad19f17e1e89913e7483fb93b8aa0cf",
      "tree": "302fdbbb10c76695b8db0222d26b2b9cb867844a",
      "parents": [
        "ed336839d20aae0cb2ff46d3b231e39570281880"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 17 18:11:04 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jun 18 11:34:06 2009 -0700"
      },
      "message": "Work around the Czech lack of abbreviated month names.\n\nMake the date formats that want abbreviated month names use either\nthe full name or a numeric format.\n"
    },
    {
      "commit": "df1ff2cb332ad2d819671f1e78e5bd68d758ca54",
      "tree": "8d749230e01e46d7aee59cc17709ee09a0c5c7d3",
      "parents": [
        "0b1ff191cd94a450c01e0ce5139ca08af0677dd6"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Jun 18 11:02:22 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Jun 18 11:02:22 2009 -0700"
      },
      "message": "Use a full-screen-width version of the in-app search dropdown with\nrounded corners. We may decide to use this for global search too,\nI\u0027ll try that out in a bit.\n"
    },
    {
      "commit": "4fb256117ca271e3e37284a19b663d116f6ec20c",
      "tree": "1882f2a0a7e69dfeeb1238c9690a560c8d2ec77e",
      "parents": [
        "3f4263fac6bcc68b3c7fff8e6ac9ad2d97b2ad4c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 17 16:03:22 2009 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 11:00:19 2009 -0700"
      },
      "message": "load entropy data at boot.  Periodically write entropy data to disk.\n"
    },
    {
      "commit": "0b1ff191cd94a450c01e0ce5139ca08af0677dd6",
      "tree": "a7b9ab50fc71a83f83b8008af3b16a165de367f0",
      "parents": [
        "cce7dbc31ed100b39c3e1174dd3d9a01de648e5b"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Jun 16 20:17:01 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Jun 18 10:52:31 2009 -0700"
      },
      "message": "Icons for create a contact and call contact suggestions, to be used by all\ncontacts providers.\n"
    },
    {
      "commit": "cce7dbc31ed100b39c3e1174dd3d9a01de648e5b",
      "tree": "b4829a33428721ab084151eca30bf7ba52a13c38",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Jun 18 09:25:18 2009 -0700"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Jun 18 10:52:31 2009 -0700"
      },
      "message": "Re-enable query jamming.\n"
    },
    {
      "commit": "e748161ca89867e8c57d4e71c780486d4de8039c",
      "tree": "8cef1a3cab15bb2909934d62c3816cb3e1005ae2",
      "parents": [
        "36c153f84f2728ffc67b7f30a1f326a7731c2088",
        "605a66bd56f01713f240ee8bc1435512500498e0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 08:53:58 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 08:53:58 2009 -0700"
      },
      "message": "Merge change 4529 into donut\n\n* changes:\n  In the TTS service, read the default TTS settings from Settings.Secure.\n"
    },
    {
      "commit": "36c153f84f2728ffc67b7f30a1f326a7731c2088",
      "tree": "16b44a89cc508df012ecde309ff681fa7838431a",
      "parents": [
        "c14b9ccdf13163cae5ce5d21bcf377010b37594b",
        "ca74c90cf5c15f648abca77e12a91e1ce2b435e4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 07:11:06 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 07:11:06 2009 -0700"
      },
      "message": "Merge change 4535 into donut\n\n* changes:\n  Add title to nested preference screens.\n"
    },
    {
      "commit": "fc78f358cb1d1cee99758bcd6ef998a122ef27c9",
      "tree": "241ad4b107330ac381dc82290b4dbcc97ea7c89b",
      "parents": [
        "83248c432ffe2e2a17abbc8e4960c26574b46bca"
      ],
      "author": {
        "name": "Tammo Spalink",
        "email": "tammo@google.com",
        "time": "Thu Jun 11 17:36:37 2009 +0800"
      },
      "committer": {
        "name": "Tammo Spalink",
        "email": "tammo@google.com",
        "time": "Thu Jun 18 14:57:06 2009 +0800"
      },
      "message": "for cdma concatenated (long) messages, replace ascii7bit with gsm7bit encoding\n"
    },
    {
      "commit": "c14b9ccdf13163cae5ce5d21bcf377010b37594b",
      "tree": "45c2309b18ff4e56aef65e0c7d66f8800492e33e",
      "parents": [
        "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 18:02:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 21:48:14 2009 -0700"
      },
      "message": "Extend Intent/Uri conversion for use by Browser\n\nThis introduces a new Uri form of Intent with an \"intent:\" scheme, and a\ncorresponding update to the parser to handle these, so that the browser\ncan use this generic facility for starting activities based on the links\nthat are clicked and allow for web pages to link to arbitrary intents.\n\nThere is also a new \"package\" field on Intent which allows you to limit\nthe components it finds to a given package.  This replaces the new method\nthat was added to PackageManger for doing this when resolving activities,\nand implements it for all Intent queries against the package manager.\n"
    },
    {
      "commit": "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c",
      "tree": "be4412a48f3bcd4ee6271bb8661949c5d7a2c490",
      "parents": [
        "e9190a2750e1fb67e300d2c128227cc9b7339efe",
        "760ec4a095567457707abe764cf4dfda0ed84032"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:40:20 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:40:20 2009 -0700"
      },
      "message": "Merge change 4579 into donut\n\n* changes:\n  Fix issue #1924851\n"
    },
    {
      "commit": "760ec4a095567457707abe764cf4dfda0ed84032",
      "tree": "c2631746b144977ebfa44d41676847fefb009d06",
      "parents": [
        "83248c432ffe2e2a17abbc8e4960c26574b46bca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 20:05:26 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 21:36:52 2009 -0700"
      },
      "message": "Fix issue #1924851\n\nWe now only increment the launch count when we are launching from one package\nto another.  Also the individual components in a package now have a count\nof the number of times they have been entered, which likewise is only updated\nwhen going to one component from another.\n\nThis requires a new data format (all old data is wiped) and new checkin\ndump format (tools must be updated to read it).\n"
    },
    {
      "commit": "e9190a2750e1fb67e300d2c128227cc9b7339efe",
      "tree": "65b66ff00cd7c6beb3e99016c83a93706d789e14",
      "parents": [
        "3c2f8e6651178742bc685e7bd62fa8a6ca409a74"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 17 17:52:05 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 17 20:11:03 2009 -0700"
      },
      "message": "Base64 the keys to make filenames in LocalTransport\n"
    },
    {
      "commit": "3c2f8e6651178742bc685e7bd62fa8a6ca409a74",
      "tree": "00cfc33663f3f143c8cb7dc806fce60d1e940812",
      "parents": [
        "83248c432ffe2e2a17abbc8e4960c26574b46bca",
        "87a02bcf68dd4cc1f6d9fdcee3d1ebc9b04cf1f8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 19:31:36 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 19:31:36 2009 -0700"
      },
      "message": "Merge change 4456 into donut\n\n* changes:\n  Replace the stub GoogleTransport with callout to the GoogleTransportService (which lives in vendor/google). Use the Google transport by default. Also, fix a bug: Thread.run() !\u003d Thread.start()\n"
    },
    {
      "commit": "4566b79736f236c0f605c57130d1fa954f4642d6",
      "tree": "38640c9b8dc0cbdc958350d6023bd7df64ec90d0",
      "parents": [
        "3f4263fac6bcc68b3c7fff8e6ac9ad2d97b2ad4c"
      ],
      "author": {
        "name": "Phil Dubach",
        "email": "phillipd@google.com",
        "time": "Wed Jun 17 15:27:42 2009 -0700"
      },
      "committer": {
        "name": "Phil Dubach",
        "email": "phillipd@google.com",
        "time": "Wed Jun 17 18:26:32 2009 -0700"
      },
      "message": "Fix Canvas.finalize() for the case where the constructor throws an exception\nbefore the native canvas instance was created.\n\nIf the canvas constructors throw an exception (because the bitmap passed in is\nimmutable or already recycled), the constructor terminates early without\nallocating the native canvas instance. For the most part, that\u0027s okay, since\nthe Canvas instance will never be returned to the application.  However, the GC\nwill still call finalize() on the half-initialized Canvas.\n\nThe native methods for Canvas all assume that the canvas pointer passed down is\nnot null.\n"
    },
    {
      "commit": "87a02bcf68dd4cc1f6d9fdcee3d1ebc9b04cf1f8",
      "tree": "49f1177443cbed65a44a806d4390c0fe9dfb3725",
      "parents": [
        "ed336839d20aae0cb2ff46d3b231e39570281880"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 17 02:30:10 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 17 18:23:05 2009 -0700"
      },
      "message": "Replace the stub GoogleTransport with callout to the\nGoogleTransportService (which lives in vendor/google).\nUse the Google transport by default.\nAlso, fix a bug: Thread.run() !\u003d Thread.start()\n"
    },
    {
      "commit": "605a66bd56f01713f240ee8bc1435512500498e0",
      "tree": "8cf3229ad721d751506a5a697aaeec1b826c2300",
      "parents": [
        "07ca8c71f47ac8c61b3aef0210e44d2c48e62e48"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 17 16:36:46 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 17 17:59:50 2009 -0700"
      },
      "message": "In the TTS service, read the default TTS settings from Settings.Secure.\n"
    },
    {
      "commit": "83248c432ffe2e2a17abbc8e4960c26574b46bca",
      "tree": "9e8de2f1eb84d52481573c9c1d824c6be4a6fdc0",
      "parents": [
        "6ce1983a2b5e9f5e735ac09b270b400084edb7db"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 17:55:20 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 17:57:30 2009 -0700"
      },
      "message": "backup fixes:\n\n- BackupTestAgent calls the DispatchHelper\n- Make BackupAgent.onRestore take a BackupDataInput, not just a\n  generic ParcelFileDescriptor.\n"
    },
    {
      "commit": "6ce1983a2b5e9f5e735ac09b270b400084edb7db",
      "tree": "ff3fcb32028859297bc007e202b25ea3f3e1adfd",
      "parents": [
        "cff19c1a014284dce2577f82d931e4c65edd437e",
        "764d5331d15c19162c938e617777b4bf15a6314d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 17:04:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 17:04:33 2009 -0700"
      },
      "message": "Merge change 4532 into donut\n\n* changes:\n  Fixes #1924909. When restoring managed dialogs, do exactly the same thing as when showing a dialog.\n"
    },
    {
      "commit": "764d5331d15c19162c938e617777b4bf15a6314d",
      "tree": "64b68ceef1270e7aeca468842f697c061721aeb9",
      "parents": [
        "de72697b771d33738c5f9d6c28087504e0796622"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 16:52:22 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 17:04:09 2009 -0700"
      },
      "message": "Fixes #1924909. When restoring managed dialogs, do exactly the same thing as when showing a dialog.\n"
    },
    {
      "commit": "cff19c1a014284dce2577f82d931e4c65edd437e",
      "tree": "01329778bffa436faeab5d6cc33ac4b299f2895e",
      "parents": [
        "465dee4b4b491fdbb082218e5eb1010a416992f9",
        "536fb04c1c419d5dd3816112ab5af7baee7cd549"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 17:01:55 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 17:01:55 2009 -0700"
      },
      "message": "Merge change 4539 into donut\n\n* changes:\n  Fixes #1925003. Make ListView honor the android:choiceMode XML attribute.\n"
    },
    {
      "commit": "ca74c90cf5c15f648abca77e12a91e1ce2b435e4",
      "tree": "6dca750d7b1b38677daf1da538c0970afa131d01",
      "parents": [
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 17 16:56:08 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 17 17:01:27 2009 -0700"
      },
      "message": "Add title to nested preference screens.\n\nFixes #1894381\n"
    },
    {
      "commit": "536fb04c1c419d5dd3816112ab5af7baee7cd549",
      "tree": "6edfcabc5c83235e92ba92f3a9f39e56dcbfbb68",
      "parents": [
        "de72697b771d33738c5f9d6c28087504e0796622"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 17:01:04 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 17:01:04 2009 -0700"
      },
      "message": "Fixes #1925003. Make ListView honor the android:choiceMode XML attribute.\n\nThe attribute was simply ignored by the constructor.\n"
    },
    {
      "commit": "465dee4b4b491fdbb082218e5eb1010a416992f9",
      "tree": "0c7393d650f649132b4504344afc8c147ea966b8",
      "parents": [
        "de72697b771d33738c5f9d6c28087504e0796622"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 16:49:17 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 17 16:49:17 2009 -0700"
      },
      "message": "Fixes #1819572. Do not resurrect the list\u0027s selection when the user moved it away.\n\nThis is a workaround for a touch mode issue.\n\nTouch mode is propagated lazily to windows. This causes problems in\nthe following scenario:\n- Type something in the AutoCompleteTextView and get some results\n- Move down with the d-pad to select an item in the list\n- Move up with the d-pad until the selection disappears\n- Type more text in the AutoCompleteTextView *using the soft keyboard*\nand get new results; you are now in touch mode\n- The selection comes back on the first item in the list, even though\nthe list is supposed to be in touch mode\n\nUsing the soft keyboard triggers the touch mode change but that change\nis propagated to our window only after the first list layout, therefore\nafter the list attempts to resurrect the selection.\n\nThe trick to work around this issue is to pretend the list is in touch\nmode when we know that the selection should not appear, that is when\nwe know the user moved the selection away from the list.\n\nThis boolean is set to true whenever we explicitely hide the list\u0027s\nselection and reset to false whenver we know the user moved the\nselection back to the list.\n\nWhen this boolean is true, isInTouchMode() returns true, otherwise it\nreturns super.isInTouchMode().\n"
    },
    {
      "commit": "de72697b771d33738c5f9d6c28087504e0796622",
      "tree": "bbee6ea088441d83463ab4a0356986060285a563",
      "parents": [
        "ed336839d20aae0cb2ff46d3b231e39570281880",
        "efd0fab04b96d7ab0c1d8bf3b79397c8621e31c5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 16:34:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 16:34:41 2009 -0700"
      },
      "message": "Merge change 4524 into donut\n\n* changes:\n  FileRestoreHelper and RestoreHelperDispatcher work.\n"
    },
    {
      "commit": "efd0fab04b96d7ab0c1d8bf3b79397c8621e31c5",
      "tree": "f4b5afd53736822e9dc9e4c0f08140cd6fac8d60",
      "parents": [
        "2cf3971ea4d22f8981ae71e6ba358f19e1628d09"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 17 16:20:55 2009 -0700"
      },
      "message": "FileRestoreHelper and RestoreHelperDispatcher work.\n"
    },
    {
      "commit": "ed336839d20aae0cb2ff46d3b231e39570281880",
      "tree": "2f9d9af222b31f1151bd93d377012754e267d7c9",
      "parents": [
        "3f4263fac6bcc68b3c7fff8e6ac9ad2d97b2ad4c",
        "9e0a19515b9047a00a6e98ce7f20690dff511f43"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:41:51 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:41:51 2009 -0700"
      },
      "message": "Merge change 4515 into donut\n\n* changes:\n  Tell DBUS not to call _exit() if the DBUS connection disconnects.\n"
    },
    {
      "commit": "9e0a19515b9047a00a6e98ce7f20690dff511f43",
      "tree": "1f791a8ecb5ac01853e77d2a7873ea0b671eb459",
      "parents": [
        "e6881c6300193422af6b33edf4380ac933315504"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jun 17 15:27:59 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jun 17 15:27:59 2009 -0700"
      },
      "message": "Tell DBUS not to call _exit() if the DBUS connection disconnects.\n\nThis was causing the system server to quietly die. Naughty DBUS!!\n\nNow you will just see errors in the log \"DBUS connection disconnected\"\non every DBUS call.\n\nThere is still the root cause problem of why the DBUS connection disconnects,\nwhich is not addressed by this change.\n"
    },
    {
      "commit": "3f4263fac6bcc68b3c7fff8e6ac9ad2d97b2ad4c",
      "tree": "14cd69d4fce3d7f9ee8b4ee3f167bbbaffdc38b2",
      "parents": [
        "5553f1528e94377ae5adf423e91331f5eb57dd44",
        "f204ab3ebc089373c44b6977f0db4b82891f128d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:20:58 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:20:58 2009 -0700"
      },
      "message": "Merge change 4411 into donut\n\n* changes:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "f204ab3ebc089373c44b6977f0db4b82891f128d",
      "tree": "33956c1c749ff9abdd861224eac7cc68aed8c65c",
      "parents": [
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 17 15:17:29 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 17 15:17:29 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 8e1a200225b7e4756b83d17d679a71a06a38b696\nAuthor: Eric Fischer \u003cenf@google.com\u003e\nDate:   Tue Jun 16 16:32:56 2009 -0700\n\n    Make names of Settings, VPN, Subscribed Feeds providers localizable.\n"
    },
    {
      "commit": "5553f1528e94377ae5adf423e91331f5eb57dd44",
      "tree": "f71d3bce5ff5a36bf4fd9413759907a5133a13cb",
      "parents": [
        "826a54dd74317f87d4afa8c0f1fc3491a69169ff",
        "f829a78f6c78141d2cf8074f00fcded37fbf9007"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 13:34:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 13:34:41 2009 -0700"
      },
      "message": "Merge change 3936 into donut\n\n* changes:\n  add exception message to ApplicationErrorReport\n"
    },
    {
      "commit": "826a54dd74317f87d4afa8c0f1fc3491a69169ff",
      "tree": "077344b0a369eab8ed2b4de86d00a36f2e51694e",
      "parents": [
        "0781df943e5a7a72ac82394874b6200d14ddd02c",
        "6cdd1c8a60f56eabbdb09e4c1231975c96715388"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 12:51:17 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 12:51:17 2009 -0700"
      },
      "message": "Merge change 4489 into donut\n\n* changes:\n  Add SmsManager permission test.\n"
    },
    {
      "commit": "f829a78f6c78141d2cf8074f00fcded37fbf9007",
      "tree": "c2d2639dcb578022f16a50751ac5d7f42d03264f",
      "parents": [
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Thu Jun 11 22:47:02 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jun 17 21:48:17 2009 +0200"
      },
      "message": "add exception message to ApplicationErrorReport\n\nuseful signal for clustering\n"
    },
    {
      "commit": "0781df943e5a7a72ac82394874b6200d14ddd02c",
      "tree": "6ace49a2a3af1619b5070cad16c87b32d144ef11",
      "parents": [
        "3571ff40d34be7be07b6db482cf3aa066c66ca5a",
        "1ccac75e1f1b97eccb916a8de04fc1012b30f6e5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 11:33:22 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 11:33:22 2009 -0700"
      },
      "message": "Merge change 4129 into donut\n\n* changes:\n  Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app Create a new public IntentSender class that can be used by PackageManager instead. This new class uses IIntentSender internally and can only be created by PendingIntent for now. Provide a new getIntentSender api in PendingIntent to create an instance of this class. Move IIntentSender and IIntentReceiver from android.app to android.content Change imports of IIntentSender and IIntentReceiver to reflect the new package name The PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage once the older api(which has been deprecated) will be removed shortly.\n"
    },
    {
      "commit": "1ccac75e1f1b97eccb916a8de04fc1012b30f6e5",
      "tree": "181c91a427de2ea609eff1f42c3970a441225b45",
      "parents": [
        "ef29f6afb4746eae8263ab901a5d3677bc04574b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 12 10:09:58 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 11:31:26 2009 -0700"
      },
      "message": "Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app\nCreate a new public IntentSender class that can be used by PackageManager instead.\nThis new class uses IIntentSender internally and can only be created by PendingIntent for now.\nProvide a new getIntentSender api in PendingIntent to create an instance of this class.\nMove IIntentSender and IIntentReceiver from android.app to android.content\nChange imports of IIntentSender and IIntentReceiver to reflect the new package name\nThe PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage\nonce the older api(which has been deprecated) will be removed shortly.\n"
    },
    {
      "commit": "6cdd1c8a60f56eabbdb09e4c1231975c96715388",
      "tree": "94f68a148c2aae11d4fbbd016db3141129b0a5a3",
      "parents": [
        "8ad473994d402e42ec3c8f44f31e99ef2f7e9237"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jun 17 11:28:26 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jun 17 11:29:45 2009 -0700"
      },
      "message": "Add SmsManager permission test.\n"
    },
    {
      "commit": "3571ff40d34be7be07b6db482cf3aa066c66ca5a",
      "tree": "df7f10daf4e39c551a5183c92ce9544386e0e312",
      "parents": [
        "ef29f6afb4746eae8263ab901a5d3677bc04574b",
        "4969af7d9f58f8e08b7beca20a87f4da2131f72a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 11:05:56 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 11:05:56 2009 -0700"
      },
      "message": "Merge change 4486 into donut\n\n* changes:\n  Fixes #1107690. Updates javadoc for Intent.java, android:value -\u003e android:name.\n"
    },
    {
      "commit": "ef29f6afb4746eae8263ab901a5d3677bc04574b",
      "tree": "194dfb62ccef9bc86a7b5160b392e9764db6ea6e",
      "parents": [
        "07ca8c71f47ac8c61b3aef0210e44d2c48e62e48",
        "d20927410c973c98360afe3b9b174af0a8af2175"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 10:58:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 10:58:47 2009 -0700"
      },
      "message": "Merge change 4483 into donut\n\n* changes:\n  Fixes #1414069. Display recent activities with two lines of text.\n"
    }
  ],
  "next": "4969af7d9f58f8e08b7beca20a87f4da2131f72a"
}
