)]}'
{
  "log": [
    {
      "commit": "cd83fd74ad77f494893d01b308c227e46ec59596",
      "tree": "dea144616097d124f7fcca01fad121427c0b0827",
      "parents": [
        "451c7fc49d65b93242e3dbbaae5c0625afca6598",
        "82a73dfb27e9766ffffa4ece032a06471c646575"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:59:48 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:59:48 2009 -0700"
      },
      "message": "Merge change 4815\n\n* changes:\n  GoogleFeedback handles errors in core apps.\n"
    },
    {
      "commit": "451c7fc49d65b93242e3dbbaae5c0625afca6598",
      "tree": "0ce49f9a8945b53a8b144d59f775d0fa3e1622d8",
      "parents": [
        "44c6e3e7857ac79694a439428bad6a6a6c8f1c5a",
        "52b0e73443ff8da195fbf0df851a028e07a691b2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:53:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:53:53 2009 -0700"
      },
      "message": "Merge change 4811\n\n* changes:\n  Process new property definitions for JIT-specific options for apps performance tuning and debugging.\n"
    },
    {
      "commit": "52b0e73443ff8da195fbf0df851a028e07a691b2",
      "tree": "70c2be87c503418cfd827d8d9e17d7130754d88b",
      "parents": [
        "350feeb8368846d674321db4fc1bee233959e4cf"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Fri Jun 19 13:31:12 2009 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Fri Jun 19 13:50:58 2009 -0700"
      },
      "message": "Process new property definitions for JIT-specific options for apps performance tuning and debugging.\n"
    },
    {
      "commit": "44c6e3e7857ac79694a439428bad6a6a6c8f1c5a",
      "tree": "39aff53a16d1de168df81dc5bbdebfe4a5a740aa",
      "parents": [
        "350feeb8368846d674321db4fc1bee233959e4cf"
      ],
      "author": {
        "name": "Ye Wen",
        "email": "ywen@google.com",
        "time": "Fri Jun 19 12:48:16 2009 -0700"
      },
      "committer": {
        "name": "Ye Wen",
        "email": "ywen@google.com",
        "time": "Fri Jun 19 13:45:47 2009 -0700"
      },
      "message": "Fix bug1435331: add a gservices setting for the retry threshold of auth expired failure.\n"
    },
    {
      "commit": "82a73dfb27e9766ffffa4ece032a06471c646575",
      "tree": "3da7c2b51cb2a47861ed6702eec78f099f7f6287",
      "parents": [
        "bd9ae1c2548a2aeafa0076e798e9499eeb3c7d32"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jun 17 14:33:18 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Fri Jun 19 22:05:02 2009 +0200"
      },
      "message": "GoogleFeedback handles errors in core apps.\n\nAdds support for system properties:\n  ro.error.receiver.system.apps - default error report receiver for system apps\n  ro.error.receiver.default - fallback error report receiver\n"
    },
    {
      "commit": "350feeb8368846d674321db4fc1bee233959e4cf",
      "tree": "493ccdd2dd52f8eef6584c063b3a0b285cadde27",
      "parents": [
        "c4c819e48d4c62af4e57e6a8f8267c11399b4edb",
        "b00518d81550c638728b53346a2a25f0a80a1049"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:57:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 12:57:22 2009 -0700"
      },
      "message": "am b00518d8: Merge change 4796 into donut\n\nMerge commit \u0027b00518d81550c638728b53346a2a25f0a80a1049\u0027\n\n* commit \u0027b00518d81550c638728b53346a2a25f0a80a1049\u0027:\n  Move USE_LOCATION_FOR_SERVICES to Secure.\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": "c4c819e48d4c62af4e57e6a8f8267c11399b4edb",
      "tree": "e6b011aa99c9c4a83362555cb90a4b42b7c19ca8",
      "parents": [
        "84c4335f86555059729460c1be94a1579f485315",
        "ab48bb9c008ade65e0f1313088a3089f5b65e8de"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:15:39 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 12:15:39 2009 -0700"
      },
      "message": "am ab48bb9c: Merge change 4686 into donut\n\nMerge commit \u0027ab48bb9c008ade65e0f1313088a3089f5b65e8de\u0027\n\n* commit \u0027ab48bb9c008ade65e0f1313088a3089f5b65e8de\u0027:\n  Set AuthType to 0 if username is not specified.\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": "84c4335f86555059729460c1be94a1579f485315",
      "tree": "a4a19730fc83c3c42fca85c4e9ad0afc8250b51e",
      "parents": [
        "d0b47a1740408d4e97d03765d41c39313791f943",
        "f781b39cb89dc19e6ad090bd3eb1bedbe7928429"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:12:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 12:12:18 2009 -0700"
      },
      "message": "am f781b39c: Merge change 4786 into donut\n\nMerge commit \u0027f781b39cb89dc19e6ad090bd3eb1bedbe7928429\u0027\n\n* commit \u0027f781b39cb89dc19e6ad090bd3eb1bedbe7928429\u0027:\n  gps: Set SUPL server via hostname rather than IP address.\n"
    },
    {
      "commit": "d0b47a1740408d4e97d03765d41c39313791f943",
      "tree": "24a548b732b31983156eceec5832d8ba6695e0bc",
      "parents": [
        "c13713519dd92f0008415bef8499d85bd7e3edb4",
        "ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 12:12:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 12:12:15 2009 -0700"
      },
      "message": "am ba6409f1: Merge change 4706 into donut\n\nMerge commit \u0027ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf\u0027\n\n* commit \u0027ba6409f1f69db7dfa16d5b914d2bc41a3aa43caf\u0027:\n  Add a new checkin server flag for Vending Machine heartbeats.\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": "c13713519dd92f0008415bef8499d85bd7e3edb4",
      "tree": "c66d19b944b1ce328fc8cd3fd50c14dd918bb70e",
      "parents": [
        "36adccf74fcc58aa0cc8b2a79abefec7c22a867d",
        "3d74bb4ab27ae9601f5c9c3706fad287845fb672"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:49:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 11:49:27 2009 -0700"
      },
      "message": "am 3d74bb4a: Add \"why?\" button to low battery dialog.\n\nMerge commit \u00273d74bb4ab27ae9601f5c9c3706fad287845fb672\u0027\n\n* commit \u00273d74bb4ab27ae9601f5c9c3706fad287845fb672\u0027:\n  Add \"why?\" button to low battery dialog.\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": "36adccf74fcc58aa0cc8b2a79abefec7c22a867d",
      "tree": "a7fdbe9d0f0dc74532bac08b7e2ea3111ba34fb1",
      "parents": [
        "530b7125fa7a1055044fb618e196891ad01dd6ef",
        "50c786d19cd2c70635a8b655823b2f9e0d654687"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:40:46 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:40:46 2009 -0700"
      },
      "message": "Merge change 4550\n\n* changes:\n  add a checkin eventlog tag for reporting GTalk heartbeat timeout; remove unused adaptive heartbeat settings.\n"
    },
    {
      "commit": "530b7125fa7a1055044fb618e196891ad01dd6ef",
      "tree": "a1de32165bdd2dd83b1bbbe5626a51fb402fcf1e",
      "parents": [
        "bd9ae1c2548a2aeafa0076e798e9499eeb3c7d32",
        "03255de32d127d17504b6d475e6e79190dd637f8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 11:31:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 11:31:37 2009 -0700"
      },
      "message": "am 03255de3: Merge change 4757 into donut\n\nMerge commit \u002703255de32d127d17504b6d475e6e79190dd637f8\u0027\n\n* commit \u002703255de32d127d17504b6d475e6e79190dd637f8\u0027:\n  Add getBatteryUsageHint() to BluetoothHeadset for power monitoring.\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": "bd9ae1c2548a2aeafa0076e798e9499eeb3c7d32",
      "tree": "2c27aefa8936af1b5cf7bd468f5ec007745a602b",
      "parents": [
        "6976dca6c89d4d3ff986e46b6eedebdbdd656b0c",
        "697f9caf8b63fa87ecfeb9a29aa129ba5321641f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:38:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:38:51 2009 -0700"
      },
      "message": "am 697f9caf: Merge change 4687 into donut\n\nMerge commit \u0027697f9caf8b63fa87ecfeb9a29aa129ba5321641f\u0027\n\n* commit \u0027697f9caf8b63fa87ecfeb9a29aa129ba5321641f\u0027:\n  Use standalone month name instead of format month name in year-month format.\n"
    },
    {
      "commit": "6976dca6c89d4d3ff986e46b6eedebdbdd656b0c",
      "tree": "7cdd95e9d394f3a0939a9e44861b593d2754a098",
      "parents": [
        "c73e9ad55a28f6bec3260e919573e0597fdd23ab",
        "6afe81339ed973f1ef4a6c30110d5ce3b001ea4c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:38:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:38:47 2009 -0700"
      },
      "message": "am 6afe8133: Merge change 4720 into donut\n\nMerge commit \u00276afe81339ed973f1ef4a6c30110d5ce3b001ea4c\u0027\n\n* commit \u00276afe81339ed973f1ef4a6c30110d5ce3b001ea4c\u0027:\n  Fix string formatters in SettingsProvider SecurityException message.\n"
    },
    {
      "commit": "c73e9ad55a28f6bec3260e919573e0597fdd23ab",
      "tree": "e669fa2a59927d4136b1d3ad2340ea10cf4d436e",
      "parents": [
        "903ccf479f7c06cd17f581b6633f2575d7dc7a60",
        "bc806f65edc33f6eda0f475ac84e5e037a013a90"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "message": "am bc806f65: Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n\nMerge commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027\n\n* commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027:\n  Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\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": "903ccf479f7c06cd17f581b6633f2575d7dc7a60",
      "tree": "54e669b919d99766a2bbbd6015cea243af1eeb64",
      "parents": [
        "1e3fc65b1f86bc97f4f375ae747658b555978ca7",
        "2b1aed1021fb472de83c4c0143f2c4452244a0af"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 10:09:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:09:00 2009 -0700"
      },
      "message": "am 2b1aed10: Merge change 4527 into donut\n\nMerge commit \u00272b1aed1021fb472de83c4c0143f2c4452244a0af\u0027\n\n* commit \u00272b1aed1021fb472de83c4c0143f2c4452244a0af\u0027:\n  Fix Canvas.finalize() for the case where the constructor throws an exception\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": "1e3fc65b1f86bc97f4f375ae747658b555978ca7",
      "tree": "e277e2ef4b227e0792e1cc6743b31ebd6c59fa4e",
      "parents": [
        "cc9baea938803dbed4728c6c008c17cefa87336d",
        "649f99e8347984c1e031dae302830f4c9ebd3df4"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jun 19 03:55:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 03:55:09 2009 -0700"
      },
      "message": "am 649f99e8: Add Intent.ACTION_SEND_MULTIPLE\n\nMerge commit \u0027649f99e8347984c1e031dae302830f4c9ebd3df4\u0027\n\n* commit \u0027649f99e8347984c1e031dae302830f4c9ebd3df4\u0027:\n  Add Intent.ACTION_SEND_MULTIPLE\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": "cc9baea938803dbed4728c6c008c17cefa87336d",
      "tree": "662a0930adae174e01d579983ead3d6f67def60b",
      "parents": [
        "061c3b505814053513741eb2c13e75a322ce9b20",
        "5647bb3cc21428dd5242255323dff13c71a3343d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 02:09:28 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 02:09:28 2009 -0700"
      },
      "message": "Merge change 4621\n\n* changes:\n  Update WebStorage methods used by DumpRenderTree to complete synchronously if they are called on the webcore thread.\n"
    },
    {
      "commit": "061c3b505814053513741eb2c13e75a322ce9b20",
      "tree": "37b07275f0af77bd5eef8854f5aad53c135ba1e0",
      "parents": [
        "ba165caf441f25e180922f83ce02f91d6e0012f2",
        "fd5f087536dcb04ac9c46f2b19f87a37455390b0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 20:51:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 20:51:09 2009 -0700"
      },
      "message": "am fd5f0875: Merge change 4721 into donut\n\nMerge commit \u0027fd5f087536dcb04ac9c46f2b19f87a37455390b0\u0027\n\n* commit \u0027fd5f087536dcb04ac9c46f2b19f87a37455390b0\u0027:\n  Make signature checks on restore work with unsigned apps\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": "ba165caf441f25e180922f83ce02f91d6e0012f2",
      "tree": "98cb9f37fc87010319db2e0ad46d4381133d8eac",
      "parents": [
        "49eb3301c78a104aad47149423aae92bf39e6800",
        "e0b7e916a1259d2dd9c116695607f9877ec56056"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:54:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:54:47 2009 -0700"
      },
      "message": "am e0b7e916: Merge change 4679 into donut\n\nMerge commit \u0027e0b7e916a1259d2dd9c116695607f9877ec56056\u0027\n\n* commit \u0027e0b7e916a1259d2dd9c116695607f9877ec56056\u0027:\n  Replace the dummy code with Keystore for \u003ckeygen\u003e support.\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": "49eb3301c78a104aad47149423aae92bf39e6800",
      "tree": "56e7058ae410cd8f6a759bb0044c6651dc90654b",
      "parents": [
        "8dbbe3b52f815c49be986814743a521f802b4785",
        "c6282977180c220b1a68c23a328e7d75a11963ab"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:46:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:46:59 2009 -0700"
      },
      "message": "am c6282977: Merge change 4718 into donut\n\nMerge commit \u0027c6282977180c220b1a68c23a328e7d75a11963ab\u0027\n\n* commit \u0027c6282977180c220b1a68c23a328e7d75a11963ab\u0027:\n  Fix sim-eng build and simplify previous lcd-density related patch\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": "8dbbe3b52f815c49be986814743a521f802b4785",
      "tree": "78ed9bc346ec5f1edfe702dbb74ea16e7b6b99af",
      "parents": [
        "f923ed6ff76a0fd022bcc83e748e82266ba4ed1b",
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "message": "am 63e7155c: Merge change 4696 into donut\n\nMerge commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027\n\n* commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\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": "f923ed6ff76a0fd022bcc83e748e82266ba4ed1b",
      "tree": "43cf39771f98ee89b714ddd9bb791d43addf8aa8",
      "parents": [
        "1c14776a13546fc2642baa251c8f1b7c545b0272",
        "5502f04c1dcf2b1918858bacb99fb0480a711707"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "message": "am 5502f04c: Merge change 4709 into donut\n\nMerge commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027\n\n* commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027:\n  backup stuff\n"
    },
    {
      "commit": "1c14776a13546fc2642baa251c8f1b7c545b0272",
      "tree": "0834ce3d68bee3d92d1c1042b36832aa28ce9543",
      "parents": [
        "81a2a3931f61a7fdd178ab8d56c3d132c68a7afe",
        "16ce3504c5bf98d95d5c36001f755bb4b15253c9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:04:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:04:50 2009 -0700"
      },
      "message": "am 16ce3504: Merge change 4708 into donut\n\nMerge commit \u002716ce3504c5bf98d95d5c36001f755bb4b15253c9\u0027\n\n* commit \u002716ce3504c5bf98d95d5c36001f755bb4b15253c9\u0027:\n  Make RestoreHelper and friends also write out the snapshot state.\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": "81a2a3931f61a7fdd178ab8d56c3d132c68a7afe",
      "tree": "28e5f8b9abea9f21689edf32f4e390faf9ac9fef",
      "parents": [
        "610a0af4e34c3476863200ae1db70a9c5d8b582f",
        "568b62c861ed4abc792d517f61640610400614e1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:47:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 18:47:24 2009 -0700"
      },
      "message": "am 568b62c8: Merge change 4702 into donut\n\nMerge commit \u0027568b62c861ed4abc792d517f61640610400614e1\u0027\n\n* commit \u0027568b62c861ed4abc792d517f61640610400614e1\u0027:\n  Fix bug 1927213 test failures.\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": "610a0af4e34c3476863200ae1db70a9c5d8b582f",
      "tree": "57fcd38d990893cc3e8e15c76c7035e100f6384f",
      "parents": [
        "6e9aa305d9fedbfe17833c899be2f9745267e5a1",
        "abce4e8714bed26a2b37b20ad3f02cf619d71c9a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:42:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 18:42:02 2009 -0700"
      },
      "message": "am abce4e87: Use signatures on restore\n\nMerge commit \u0027abce4e8714bed26a2b37b20ad3f02cf619d71c9a\u0027\n\n* commit \u0027abce4e8714bed26a2b37b20ad3f02cf619d71c9a\u0027:\n  Use signatures on restore\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": "6e9aa305d9fedbfe17833c899be2f9745267e5a1",
      "tree": "605a23702e78860298dc467c90eb0ec7b421a9d8",
      "parents": [
        "64d4d8343f0f57c1029ea7d4e4e493118cc5f8e5",
        "968706829fdfbc71a2d106d2ed70c1aec9de65c3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:29:49 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:29:49 2009 -0700"
      },
      "message": "Merge change 4700\n\n* changes:\n  Merge commit \u0027goog/master-webkit-merge\u0027 into webkit-merge-44544\n"
    },
    {
      "commit": "968706829fdfbc71a2d106d2ed70c1aec9de65c3",
      "tree": "4ff95e0144ac744b1ecb63eef184cb7f58ddf011",
      "parents": [
        "351b36c414b31e720532850761d95a9ec12ee8b4",
        "1155e18ccc1c5dd486aa6e6648f91cbbf1521b92"
      ],
      "author": {
        "name": "Feng Qian",
        "email": "fqian@google.com",
        "time": "Thu Jun 18 17:52:33 2009 -0700"
      },
      "committer": {
        "name": "Feng Qian",
        "email": "fqian@google.com",
        "time": "Thu Jun 18 17:52:33 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master-webkit-merge\u0027 into webkit-merge-44544\n"
    },
    {
      "commit": "64d4d8343f0f57c1029ea7d4e4e493118cc5f8e5",
      "tree": "ae526dc00cff5fc40a2e1381f756b16f9faebde2",
      "parents": [
        "6be4025b1290e257a8d9142caba5bc7df72afab3",
        "8edae3dfd3f594ca1b24c8365561f1f8c059440e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:42:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:42:25 2009 -0700"
      },
      "message": "Merge change 4698\n\n* changes:\n  Fix bug in BluetoothInputStream.read().\n"
    },
    {
      "commit": "6be4025b1290e257a8d9142caba5bc7df72afab3",
      "tree": "4f6f805ad557ddfcbc754fd40e1b5bc90ef144c3",
      "parents": [
        "0c7b07a00324b45c22618783903860f469ad6141",
        "2810f681991d1beb5ceb3515159f9fad3cc341d5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:26:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 17:26:48 2009 -0700"
      },
      "message": "am 2810f681: Merge change 4694 into donut\n\nMerge commit \u00272810f681991d1beb5ceb3515159f9fad3cc341d5\u0027\n\n* commit \u00272810f681991d1beb5ceb3515159f9fad3cc341d5\u0027:\n  Make SettingsProviders SecurityException messages more verbose.\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": "0c7b07a00324b45c22618783903860f469ad6141",
      "tree": "29099e5a750712604fc978ce46b85032cb4909de",
      "parents": [
        "5c2f39af8dcb10b7505bda8972fff7931252eff8",
        "5f7fc27dce3f0ea0ce7532ee8ecd8a2cd01ec47b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:21:31 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:21:31 2009 -0700"
      },
      "message": "Merge change 4692\n\n* changes:\n  Replace spins with proper pthread conditions.\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": "5c2f39af8dcb10b7505bda8972fff7931252eff8",
      "tree": "bca7d7a02e81b0b55efd57bf4308cebb4deb1c94",
      "parents": [
        "351b36c414b31e720532850761d95a9ec12ee8b4",
        "167dbe0bf1f8d807d1ced400f146b7780eb6c721"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:07:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 17:07:29 2009 -0700"
      },
      "message": "am 167dbe0b: Merge change 4670 into donut\n\nMerge commit \u0027167dbe0bf1f8d807d1ced400f146b7780eb6c721\u0027\n\n* commit \u0027167dbe0bf1f8d807d1ced400f146b7780eb6c721\u0027:\n  Update RandomBlock to use RandomAccessFile.  This helps\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": "351b36c414b31e720532850761d95a9ec12ee8b4",
      "tree": "de8c7b13d48870453325c47760467c99cdb5d161",
      "parents": [
        "e4839c4325e61ee23adf3fef1bf651f4754bbfec",
        "0bceb77b004a688ca044b794e0622385c6e2953d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:03:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 17:03:10 2009 -0700"
      },
      "message": "am 0bceb77b: Merge change 4669 into donut\n\nMerge commit \u00270bceb77b004a688ca044b794e0622385c6e2953d\u0027\n\n* commit \u00270bceb77b004a688ca044b794e0622385c6e2953d\u0027:\n  Fixes #1922373. Resolves a case of keys collision in Resources\u0027 cache.\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": "5f7fc27dce3f0ea0ce7532ee8ecd8a2cd01ec47b",
      "tree": "a9ca11ef8d57afb2c4055f54513444ae7c3f6d76",
      "parents": [
        "f8cd5d99888b7685d0304828a7fa549ddc0632c3"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Jun 18 16:58:42 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Jun 18 16:58:42 2009 -0700"
      },
      "message": "Replace spins with proper pthread conditions.\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": "8edae3dfd3f594ca1b24c8365561f1f8c059440e",
      "tree": "1f162cf50e372393552dcf68d1cd8f494c37ff91",
      "parents": [
        "e4839c4325e61ee23adf3fef1bf651f4754bbfec"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jun 18 16:23:15 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Thu Jun 18 16:25:47 2009 -0700"
      },
      "message": "Fix bug in BluetoothInputStream.read().\n\nInputStream.read() must return values in range [0, 255]. But the previous code\nwould sign extend when casting to int so return [-128, 127]. Bitwise AND with\n0xff to remove sign extension.\n"
    },
    {
      "commit": "e4839c4325e61ee23adf3fef1bf651f4754bbfec",
      "tree": "686c5f310458c2fe9b68ecc7544e8f388a0d6dc4",
      "parents": [
        "eba76ad5c80b703999095b2445fad9178f5000b2",
        "07eac016446c63711bebe6e553e98c02d1fe55a5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:17:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 16:17:12 2009 -0700"
      },
      "message": "am 07eac016: Merge change 4682 into donut\n\nMerge commit \u002707eac016446c63711bebe6e553e98c02d1fe55a5\u0027\n\n* commit \u002707eac016446c63711bebe6e553e98c02d1fe55a5\u0027:\n  Store the app signatures as part of the backup set\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": "eba76ad5c80b703999095b2445fad9178f5000b2",
      "tree": "3fb3a725bf4182a3aefa75a74299c1bcbffa1bf5",
      "parents": [
        "e9c1970bbfb1da56e9ff4c25556fbb061265a29c",
        "c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:43:34 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 15:43:34 2009 -0700"
      },
      "message": "am c9dc19bb: Merge change 4668 into donut\n\nMerge commit \u0027c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044\u0027\n\n* commit \u0027c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044\u0027:\n  Fix runtime restarts due to sending the wrong flags to dbus.\n"
    },
    {
      "commit": "e9c1970bbfb1da56e9ff4c25556fbb061265a29c",
      "tree": "a9439ad8860c275595ea5763747821c6faff22e3",
      "parents": [
        "ccbf125d6414b3734105eab63978c37252b57082",
        "b1cdb64877ebd3b8c5182913ff02edd8b54a6982"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:43:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 15:43:28 2009 -0700"
      },
      "message": "am b1cdb648: Merge change 4565 into donut\n\nMerge commit \u0027b1cdb64877ebd3b8c5182913ff02edd8b54a6982\u0027\n\n* commit \u0027b1cdb64877ebd3b8c5182913ff02edd8b54a6982\u0027:\n  Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density\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": "ccbf125d6414b3734105eab63978c37252b57082",
      "tree": "c454a24885aa8f3a2367f1c91fdadf387c5d8633",
      "parents": [
        "6b6e1c4b79ba6e18cd4e0e79b0e7c2e233769923",
        "9f53fcaacf745c1337144685cc30ad3f4740e885"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:13:06 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:13:06 2009 -0700"
      },
      "message": "Merge change 4666\n\n* changes:\n  Another javadoc attempted fix.\n"
    },
    {
      "commit": "9f53fcaacf745c1337144685cc30ad3f4740e885",
      "tree": "c7756a74691e77b46ccee9d1116bc90e76c76d2a",
      "parents": [
        "7e2ff1a600555accb1836e4e960d705d13e35f60"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Jun 18 18:12:10 2009 -0400"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Jun 18 18:12:10 2009 -0400"
      },
      "message": "Another javadoc attempted fix.\n"
    },
    {
      "commit": "6b6e1c4b79ba6e18cd4e0e79b0e7c2e233769923",
      "tree": "56271fc897d5893b7130638abf476aedaeb878f1",
      "parents": [
        "1942c7497645c9a9bf75514eeb3e991a3e7cb20b",
        "7153739a92dda971fd865defae0747bec921d8af"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 15:08:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 15:08:47 2009 -0700"
      },
      "message": "am 7153739a: Merge change 4661 into donut\n\nMerge commit \u00277153739a92dda971fd865defae0747bec921d8af\u0027\n\n* commit \u00277153739a92dda971fd865defae0747bec921d8af\u0027:\n  Grouping under TextToSpeech.Engine the constants to be used by\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": "1942c7497645c9a9bf75514eeb3e991a3e7cb20b",
      "tree": "c8a07dd1c3f95a3f2d1b04d46a10d88070a8ce4f",
      "parents": [
        "6ff97edef79fda447143e51cc527fc3fb816f310",
        "7e2ff1a600555accb1836e4e960d705d13e35f60"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 14:46:28 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 14:46:28 2009 -0700"
      },
      "message": "Merge change 4662\n\n* changes:\n  Truly fix the build (I hope).\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": "7e2ff1a600555accb1836e4e960d705d13e35f60",
      "tree": "cf75ab1b30701c427c235812e468332c3a53e68b",
      "parents": [
        "7cb6f3d61561a2cdb56f3a89809ae0c8eafd825f"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Jun 18 17:45:14 2009 -0400"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Jun 18 17:45:14 2009 -0400"
      },
      "message": "Truly fix the build (I hope).\n\nI also changed the API.  Hide the new fields.\n"
    },
    {
      "commit": "6ff97edef79fda447143e51cc527fc3fb816f310",
      "tree": "51e7aaa805d8768baf7a18a7003a8a0dd8f0aa36",
      "parents": [
        "7cb6f3d61561a2cdb56f3a89809ae0c8eafd825f",
        "8696d7030af6f0d58859f1027c423143b67f9fb4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 13:56:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 13:56:41 2009 -0700"
      },
      "message": "am 8696d703: Merge change 3874 into donut\n\nMerge commit \u00278696d7030af6f0d58859f1027c423143b67f9fb4\u0027\n\n* commit \u00278696d7030af6f0d58859f1027c423143b67f9fb4\u0027:\n  for cdma concatenated (long) messages, replace ascii7bit with gsm7bit encoding\n"
    },
    {
      "commit": "7cb6f3d61561a2cdb56f3a89809ae0c8eafd825f",
      "tree": "937eb5bfc0a029f3740f4e2c6a28e5de94a21758",
      "parents": [
        "f8cd5d99888b7685d0304828a7fa549ddc0632c3",
        "908baedfcf83abc8f5564aa8b427b05989f8591f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 13:53:17 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 13:53:17 2009 -0700"
      },
      "message": "Merge change 4629\n\n* changes:\n  Alter the HISTORY_PROJECTION and BookmarkColumns.\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": "50c786d19cd2c70635a8b655823b2f9e0d654687",
      "tree": "9169eb1fd88453e4b9b952faab8aefca3113c9d4",
      "parents": [
        "cd94979e57b4552b5c18de26a34aa70549bb42c4"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Wed Jun 17 09:37:24 2009 -0700"
      },
      "committer": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Thu Jun 18 13:28:07 2009 -0700"
      },
      "message": "add a checkin eventlog tag for reporting GTalk heartbeat timeout; remove unused adaptive heartbeat settings.\n"
    },
    {
      "commit": "f8cd5d99888b7685d0304828a7fa549ddc0632c3",
      "tree": "8fcb01708a788d00f7c0e0f7103f13149ca83b5e",
      "parents": [
        "366a40884cddc20bdbc786a4eda7ec4379a36709",
        "77dcf735ff3115ef20244408313823d489d88143"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:23:23 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 12:23:23 2009 -0700"
      },
      "message": "am 77dcf735: Merge change 4561 into donut\n\nMerge commit \u002777dcf735ff3115ef20244408313823d489d88143\u0027\n\n* commit \u002777dcf735ff3115ef20244408313823d489d88143\u0027:\n  Work around the Czech lack of abbreviated month names.\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": "366a40884cddc20bdbc786a4eda7ec4379a36709",
      "tree": "5f2ed305487399bdaf95ec0c274348223a196624",
      "parents": [
        "a791bc070f1ea0008781ef67b22945282285d5f6",
        "47a67ebcf2d772d5dcae459caa57125b3fe733b3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:09:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 12:09:15 2009 -0700"
      },
      "message": "am 47a67ebc: Merge change 4544 into donut\n\nMerge commit \u002747a67ebcf2d772d5dcae459caa57125b3fe733b3\u0027\n\n* commit \u002747a67ebcf2d772d5dcae459caa57125b3fe733b3\u0027:\n  Connect TabHost/TabWidget/FrameLayout in the layout editor.\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": "a791bc070f1ea0008781ef67b22945282285d5f6",
      "tree": "c04676e5a5393b7fa7b68c772ffa6950150b1c0c",
      "parents": [
        "ecde11351dca9ef57eaf5037dd1c52bcb49047b0",
        "5ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:00:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 12:00:41 2009 -0700"
      },
      "message": "am 5ad76ef5: Merge change 4521 into donut\n\nMerge commit \u00275ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe\u0027\n\n* commit \u00275ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe\u0027:\n  load entropy data at boot.  Periodically write entropy data to disk.\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"
    }
  ],
  "next": "83189c985a0e617ba7856343ea8b7080c37396a7"
}
