)]}'
{
  "log": [
    {
      "commit": "a298d6fd2a920e8ff2dfd5fd03a2f95cbce5451f",
      "tree": "fe681292bc788015bac2dda3266f0da7da6fcc67",
      "parents": [
        "986a038030ab57bd36a6eb630da1773b33dfb30b",
        "a2a568e58d77848471a2f1d9ab6df2cbb2c916d6"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 22 15:54:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 22 15:54:37 2010 -0700"
      },
      "message": "am a2a568e5: Merge \"Fix error code when media is filled up.\" into froyo\n\nMerge commit \u0027a2a568e58d77848471a2f1d9ab6df2cbb2c916d6\u0027 into froyo-plus-aosp\n\n* commit \u0027a2a568e58d77848471a2f1d9ab6df2cbb2c916d6\u0027:\n  Fix error code when media is filled up.\n"
    },
    {
      "commit": "d345bb6e5b42ff644ce224fe57e4d7b4e546a48d",
      "tree": "e6af91677bacbcc1b040af1863a9506760046117",
      "parents": [
        "05fa2144e458dc8f024235ea01b8682055d828bf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 22 13:22:17 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Apr 22 13:43:20 2010 -0700"
      },
      "message": "Fix error code when media is filled up.\n\nChange-Id: Id8dae2e7c967e3f103aecd2f31abb7e292af8f1d\n"
    },
    {
      "commit": "5ebaf10693725c9dc48219c3c65945b84d74692f",
      "tree": "5124cb6169287afd69e85a4082cea2dce4d41c22",
      "parents": [
        "d9b802bd03d0ef4792bc99289f16f6a05bd1ee95",
        "392fc3573553b71dc5c2712aca16e262efd33ce9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 22 11:43:17 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 22 11:43:17 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I2a3a06f0bd3530f9c0d3cb64ca6a87913649d64b\n"
    },
    {
      "commit": "bdc7f891cf47c077c26ef418dbea23c04820c152",
      "tree": "794605a0ec15fe40a50ba68c92222181d8af49f5",
      "parents": [
        "e3491b6b5f1d3fb871074766597b275d9f682faa"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 21 18:24:57 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 21 18:31:56 2010 -0400"
      },
      "message": "Fix broken logic in SettingsProvider.parseProviderList.\n\nWe were accidentally stripping both leading and trailing commas\nwhen removing a provider from the enabled provider list.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "315a5fb91dbafe6073435a13d937cee9d26877f6",
      "tree": "3e5bdebfa89ae4e997a726e5e600751823cca580",
      "parents": [
        "40b6996a8fb7da131e8b91453b08e292723662be"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Apr 13 14:32:16 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 14 18:24:06 2010 -0700"
      },
      "message": "Dont fall back to installing on sdcard when internal storage is filled up\nwhen the install location is set to internal only. Similary if install\nlocation is set to external only(via adb), dont fall back to installing on\ninternal storage if sdcard is filled up.\nIf nothing is specified ie install location is set to let system decide,\nwe just check on internal storage.\nFix tests\n\nChange-Id: I7400ccc131782d9c45284bd9ebd0dee43a3b412b\n"
    },
    {
      "commit": "cd66caf015d18baa03a86796649550cb65cd99ea",
      "tree": "f78d7820e01297ab80c576de8d4f4e3231a16129",
      "parents": [
        "290a48b365479eccd16023b5de0d92063bb68b4d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 12 15:49:12 2010 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Apr 12 15:49:12 2010 -0700"
      },
      "message": "Fix an upgrade bug in SettingsProvider.\n\nBug: 2569112\n\nWrong usage of local method.\n\nChange-Id: I9d7c68baa7cf8dd2b7e4345555c1edc374de94e6\n"
    },
    {
      "commit": "40e472521a544f26cb6956995788f7c36fff1404",
      "tree": "b579a480e80d8ac15128c31c142b22d0938a44f8",
      "parents": [
        "4b18ced6b5409bb9dd4013c06b9562b76a062939"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 16:15:50 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 20:43:54 2010 -0700"
      },
      "message": "Fix 2579461\nMove install location values to secure settings.\nDiable attribute for UI. Set default value to auto.\nAdd command line interface to set install location via pm.\n\nChange-Id: I80e97b3d24845adad7102f40dcbe238f00efa406\n"
    },
    {
      "commit": "ddc2eb8ee3c422b9f57bf55c50a76c7afb4ced76",
      "tree": "a70e793f8270ca68d86356296a88823b3c6cfe87",
      "parents": [
        "e11bafec8d6c887c6ae95fa3d39c202859e86d48",
        "1a2712ce2a18eba6809d984d2f7443fbdccaa7ed"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Apr 01 17:56:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 01 17:56:47 2010 -0700"
      },
      "message": "Merge \"Fix for bug 2564771 - pitch setting between apps can interfere with one another.\" into froyo"
    },
    {
      "commit": "1a2712ce2a18eba6809d984d2f7443fbdccaa7ed",
      "tree": "196f3028a13a0ed829e258417a85d41ed54a03de",
      "parents": [
        "9d32d24dbd8a015c9d5c44ed4901d5a666eb8e7f"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Apr 01 17:16:28 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Apr 01 17:39:15 2010 -0700"
      },
      "message": "Fix for bug 2564771 - pitch setting between apps can\ninterfere with one another.\n\nRoot cause was not caching all the params that were needed.\nThis change fixes that bug as well as related bugs for remembering\nthe default engine and for making sure that the right engine is\nloaded when checking for language availability.\n\nChange-Id: I2a76da8faec8112036e68d27539db444c53a1509\n"
    },
    {
      "commit": "b6e6ffae3564f0c8935cd2d307ffa4d17c57f992",
      "tree": "628926481e3a799b99afe30a425a5592f0032267",
      "parents": [
        "fef8cebcdcf0cbd4a0dafba87e33e3b500fb1321"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 29 17:58:53 2010 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 30 15:04:19 2010 -0700"
      },
      "message": "Fix for Never not existing in latest timeout values.\n\nBug: 2535288\n\nChange-Id: I15ca60c7afe58fbe57e557e6d0028dc200d8b322\n"
    },
    {
      "commit": "f5f300678abb79574bb56eee13c8dd2b7b98b740",
      "tree": "ea7ea3220260c11aab2caf13e16427ce769ba597",
      "parents": [
        "a599dafe4ffc3e6cc4953a7e3d33f4da80aabf45",
        "1f4df90bfab8ca42eabe95f19eadff3432eee7fd"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Mar 29 18:56:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 29 18:56:57 2010 -0700"
      },
      "message": "Merge \"DO NOT MERGE Removing unused features from source tree. Please refer to Bug#2502219.\" into froyo"
    },
    {
      "commit": "a599dafe4ffc3e6cc4953a7e3d33f4da80aabf45",
      "tree": "5c15d8ed24ad27aaaed69f93a4dc7c837f4c3df9",
      "parents": [
        "8c6af52fdd572e19cd40a0be53615eb6c80ccde5",
        "42229259a6fca8851db74dc1c0ecbab2d3fb788d"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Mar 29 18:37:41 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 29 18:37:41 2010 -0700"
      },
      "message": "Merge \"Fix for bug 2548048 - it was impossible for applications to discover if their TTS settings were being overridden by the user or not.\" into froyo"
    },
    {
      "commit": "42229259a6fca8851db74dc1c0ecbab2d3fb788d",
      "tree": "cf09418bd32edcc3e3bf37e5c3a36f937de8e3a1",
      "parents": [
        "ab69e29c1927bdc6143324eba5ccd78f7c43128d"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Mar 29 18:30:30 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Mar 29 18:35:30 2010 -0700"
      },
      "message": "Fix for bug 2548048 - it was impossible for applications to discover\nif their TTS settings were being overridden by the user or not.\n\nChange-Id: I28856a1b79c9455435671d13ed614a1ccb4e95ea\n"
    },
    {
      "commit": "1f4df90bfab8ca42eabe95f19eadff3432eee7fd",
      "tree": "13d9bc806e8850259b2b939d7ee9cf02651bf9d7",
      "parents": [
        "59fc58dc3f164e33a96aee09505fac5818747cb6"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Mar 26 18:44:14 2010 -0700"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Mar 29 18:12:24 2010 -0700"
      },
      "message": "DO NOT MERGE\nRemoving unused features from source tree.\nPlease refer to Bug#2502219.\n\nChange-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a\n"
    },
    {
      "commit": "cc84c69726507a85116f5664e20e2ebfac76edbe",
      "tree": "1f58e9d718d8694d2b22f925a7e79263991d0c74",
      "parents": [
        "89d4e2dd7888913d3eb1f4f669bd756a3b85f2c1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 14:54:02 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 15:48:14 2010 -0700"
      },
      "message": "API CHANGE: rename BackupHelperAgent \u003d\u003e BackupAgentHelper per API Council\n\nPart of bug #2545514\n\nChange-Id: Ic775e3b942c485252149c1b6c15c88517fa4e3e5\n"
    },
    {
      "commit": "def7185cf19d48c95b50c2b83503d5cd21a613bf",
      "tree": "e74a813f03a3e4ecacba580bec34948a5ac67426",
      "parents": [
        "9c3cee9824026764275e4d84ba9b5d9fdc5da690"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Mar 25 19:59:50 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Mar 26 16:14:10 2010 -0700"
      },
      "message": "Cherry-picking this fix into Froyo.\n\nThis fix is part of addressing bug #2548048\n\nMaking it possible to determine which TTS engine is currently set\nas the default by the user.\n\nChange-Id: Ifa422f43a33498b94d96811078c0794d64668357\n"
    },
    {
      "commit": "89206fdb3b75a8bc12ac75fc8a95a5c9c79c3220",
      "tree": "45e4a7bbba69c1f40caa56d79c25aa7c12501acc",
      "parents": [
        "6460d6e7b9608c00c4d38572b755f2d552a7e105"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Mar 22 10:37:03 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Mar 22 14:05:38 2010 -0700"
      },
      "message": "close SQLiteStatement objects in finally block\n\nunclosed SQLiteStatement objects cause finalizer warnings.\nnix them by closing this object in finally block.\n\nChange-Id: Iea86ff169f935bb743aa0c32aa4aeb0cb4fcd4ad\n"
    },
    {
      "commit": "54a3dcdbef2361670def6db94b7f89166fe2c41e",
      "tree": "463ced1534a1e45f7d61697ba63d45cc0c7a070d",
      "parents": [
        "a0d6b59d875edb54b1c820fd4573552989c3869b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 14:50:06 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 14:50:06 2010 -0700"
      },
      "message": "Fix bug where the setConfig method in SynthProxy has the wrong\nsignature.\n\nChange-Id: If04b9a1d6de6384d7f53efac4e60f1cd4d659625\n"
    },
    {
      "commit": "900e0d095442d7111e77a2f2e9467a39b164bb73",
      "tree": "011b41b7684f27c49aeb9b4bfbc67e85e78d661e",
      "parents": [
        "2fbc10f3559b85f6550dd34b8779e9ee94e4c73c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:07:45 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:52:41 2010 -0700"
      },
      "message": "Update TTS plugin interface to receive engine configuration data\ncoming from the plugin helper code (handling config and preferences).\n\nChange-Id: Ibc1d229463f11f8977552d74d1fd2aa6a6cab88e\n"
    },
    {
      "commit": "ea3e8e0758b6561917ba35baf934ccbf414144b9",
      "tree": "740c92aa877dcb2dd42f62eedeb12c52c2927d4d",
      "parents": [
        "faf535ea36381286f11cbf1f7c392aeb7a45d003",
        "35f480eb06b12e4636fd84ad8cfc38c49cd9e46a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 18 10:25:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 10:25:37 2010 -0700"
      },
      "message": "Merge \"Import revised translations\""
    },
    {
      "commit": "726a40bc503060b52064cb74c2a56f589e5fa2b4",
      "tree": "db830538278bfa9746204545705a60f1fbbb5206",
      "parents": [
        "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 23:47:07 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 23:47:07 2010 -0700"
      },
      "message": "Enabling plugin engines to pass in their engine specific settings\nvia a ContentProvider to the TtsService so that the TtsService can\ninvoke their .so file with those settings.\n\nChange-Id: Icd0e966971c36ebb4da191a50cda96d6f4525df5\n"
    },
    {
      "commit": "76dd788a6eed08d537d9deb16e656b74e49b1e5a",
      "tree": "f798b47d6d0bba207be5cd47218cd5097850ff55",
      "parents": [
        "cc83c868b6a34c52060698ef441745ba9e4537a2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 17 22:07:13 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 17 22:08:26 2010 -0700"
      },
      "message": "Support plugin parameter updates for TTS plugin settings.\n\nChange-Id: Ia18a15b260a5eccb9ac55a8d526832c015224bca\n"
    },
    {
      "commit": "6c261f327a58ebf1393ef94c9228d11771fe65cc",
      "tree": "eac72351e6a267a7e63d5dfa8f1e61504e7eced9",
      "parents": [
        "fdd9d1878b7c14671d82cc88c80a528eeda010d9",
        "dd5b4e2150c8e9f1511ab1b19890d9170407d9a6"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 19:19:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 19:19:17 2010 -0700"
      },
      "message": "Merge \"Added a check to TtsService to make sure that the engine is enabled before using it; if the engine is not enabled, TtsService will fall back to using the default system engine.\""
    },
    {
      "commit": "dd5b4e2150c8e9f1511ab1b19890d9170407d9a6",
      "tree": "6ae3c5202efb6e38805389b0bb353528eb1f6160",
      "parents": [
        "a378de742f6da53db442722894c5d68259593ef1"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 19:15:41 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 19:15:41 2010 -0700"
      },
      "message": "Added a check to TtsService to make sure that the engine is enabled\nbefore using it; if the engine is not enabled, TtsService will fall\nback to using the default system engine.\n\nChange-Id: I401f9c19cc1351c0ae6daf2b11069e5036febc51\n"
    },
    {
      "commit": "14b6abda1309631d49d4bebbb0317a7e1dfc0a50",
      "tree": "bee361e635743a09bb7253fef333d6fb94df6322",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 08:37:04 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:43:31 2010 -0700"
      },
      "message": "Add new install flag to install on internal flash only\nChange default install location policy for new flag.\nNew error code for media unavailable.\n\nChange-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2\n"
    },
    {
      "commit": "35f480eb06b12e4636fd84ad8cfc38c49cd9e46a",
      "tree": "8235adf0f51b2131a9b273f155c29b4bb7fb59c1",
      "parents": [
        "3be0b0a15d9e250e45f01a2127b41b20d0b1b635"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 17 18:29:29 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 17 18:30:12 2010 -0700"
      },
      "message": "Import revised translations\n\nChange-Id: Id1a0d62dc917937fc14ccab26eb7bd2c2148137e\n"
    },
    {
      "commit": "8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d",
      "tree": "f445dbf1504f02783b550a80a01ee06d45fbcb4a",
      "parents": [
        "50fdbef2fbcd390035517090bc54220c265f5c75"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 11 16:49:16 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 16 16:36:26 2010 -0700"
      },
      "message": "Do storage checks before initiating a move.\nAdd new remote method to check for insufficient error conditions.\nSome fixes in MountService when updating media status on PackageManagerService\nFix size calculation condition in installd.\n\nAdd new error code if media is unavailable.\nNew tests for testing error codes.\nSome additional debugging statements in MountService.\n\nChange-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf\n"
    },
    {
      "commit": "1105f0f2739953b707b63a72179da09b324741a2",
      "tree": "b84901221e25d66653aee0747402697d967c9648",
      "parents": [
        "1a3786a3e34112e3e68e6a9b07ba72802867a002"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 15 15:37:51 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 15 15:37:51 2010 -0700"
      },
      "message": "Revert TTS output filter tuning after reverting the Pico 1.1.0.2\nenergy distribution change in an attempt to fix bug 2449814.\n\nChange-Id: I144649f599e066e7ec85c05f6b2a5fdda64ec7b5\n"
    },
    {
      "commit": "15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab",
      "tree": "2dbbf0c31082373354fb17308de3681e22c66169",
      "parents": [
        "8abb26ee6c77e01a23d26c305a65b25a33710024"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:20:12 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:22:10 2010 -0800"
      },
      "message": "Add correct copyright headers to multiple files\n\nFormat for the list of changes shows the origin commit reference followed\nby the file name.\n\n33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java\n33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java\n133776-p9 core/java/android/app/IntentService.java\n127013-p9 core/java/android/appwidget/AppWidgetHost.java\n27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java\n60765-p9 core/java/android/content/SyncResult.java\n43920-p9 core/java/android/content/pm/ActivityInfo.java\n43920-p9 core/java/android/content/pm/ApplicationInfo.java\n43920-p9 core/java/android/content/pm/InstrumentationInfo.java\n43920-p9 core/java/android/content/pm/PackageInfo.java\n44103-p9 core/java/android/content/pm/PackageItemInfo.java\n68960-p9 core/java/android/content/pm/PackageStats.java\n43920-p9 core/java/android/content/pm/ResolveInfo.java\n43920-p9 core/java/android/content/pm/ServiceInfo.java\n60641-p9 core/java/android/content/res/Configuration.java\n60734-p9 core/java/android/content/res/TypedArray.java\n137672-p9 core/java/android/inputmethodservice/ExtractButton.java\n123112-p9 core/java/android/inputmethodservice/ExtractEditText.java\n119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java\n112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java\n115078-p9 core/java/android/os/BatteryStats.java\n124790-p9 core/java/android/text/style/UpdateAppearance.java\n45083-p9 core/java/android/view/RawInputEvent.java\n101491-p9 core/java/android/view/inputmethod/EditorInfo.java\n114701-p9 core/java/android/view/inputmethod/ExtractedText.java\n123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java\n119291-p9 core/java/com/android/internal/os/HandlerCaller.java\n129279-p9 core/java/com/android/internal/os/PkgUsageStats.java\n114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java\n114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java\n84364-p9 opengl/java/android/opengl/EGLLogWrapper.java\n11355-p9 opengl/tools/glgen/src/CFunc.java\n11355-p9 opengl/tools/glgen/src/CType.java\n11355-p9 opengl/tools/glgen/src/CodeEmitter.java\n11355-p9 opengl/tools/glgen/src/GenerateGL.java\n11355-p9 opengl/tools/glgen/src/JFunc.java\n11355-p9 opengl/tools/glgen/src/JType.java\n11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java\n11355-p9 opengl/tools/glgen/src/ParameterChecker.java\n57236-p9 services/java/com/android/server/status/AnimatedImageView.java\n66754-p9 services/java/com/android/server/status/CloseDragHandle.java\n57188-p9 services/java/com/android/server/status/DateView.java\n46928-p9 services/java/com/android/server/status/ExpandedView.java\n70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java\n45968-p9 services/java/com/android/server/status/IconData.java\n57470-p9 services/java/com/android/server/status/IconMerger.java\n82719-p9 services/java/com/android/server/status/LatestItemView.java\n45968-p9 services/java/com/android/server/status/NotificationData.java\n66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java\n57458-p9 services/java/com/android/server/status/NotificationViewList.java\n45968-p9 services/java/com/android/server/status/StatusBarException.java\n45968-p9 services/java/com/android/server/status/StatusBarIcon.java\n46130-p9 services/java/com/android/server/status/StatusBarNotification.java\n45968-p9 services/java/com/android/server/status/StatusBarView.java\n46199-p9 services/java/com/android/server/status/Ticker.java\n62286-p9 services/java/com/android/server/status/TickerView.java\n57188-p9 services/java/com/android/server/status/TrackingView.java\n86041-p9 telephony/java/android/telephony/PhoneStateListener.java\n87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java\n136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java\n34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java\n55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java\n127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java\n129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java\n25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java\n46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java\n77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java\n9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java\n53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java\n93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java\n328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java\neb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java\n49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java\na2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java\n3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java\n5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java\nc4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java\n9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java\n21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java\ne540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java\n192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java\n1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java\n27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java\n69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java\nc028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java\ndf8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java\n\nCopyright header moved to top in following file:\n\ncore/tests/coretests/src/android/widget/ListViewTest.java\n\nChange-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418\n"
    },
    {
      "commit": "dca5f191ace4bc52fbc6d4ed80a7e40ccb698422",
      "tree": "27f2ea035615ee2723869592a24bd692071c29da",
      "parents": [
        "94d4b034adff90f681b0937bde8f7657b855929b"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Mar 11 15:26:18 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Mar 11 15:26:45 2010 -0800"
      },
      "message": "Close db statement.\n\nFix finalizer error bug 2483608\n\nChange-Id: I49c33dc68cd3f24772990a467790ecaa06e13a18\n"
    },
    {
      "commit": "089262dc022d87e31eefc536025be6c015c7ebde",
      "tree": "2c4706dc952c2c3a4407427579a01057564fab52",
      "parents": [
        "e182a92ae408f27f46d15de01c8a263cfe6f9246"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 14:19:21 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 16:08:51 2010 -0800"
      },
      "message": "Dont include code size for apps on sdcard.\nUse constants defined in PackageHelper for user preferences\nto install auto, internal, external.\nSet default install location to external.\nUpdate settings db version number\n\nChange-Id: Ib5110c9377990e20a48cee923e55898dfddfd1e6\n"
    },
    {
      "commit": "1c7fa4836bfa7ff61f176461ca0557e90f714121",
      "tree": "596161fd0b8751af5a2f3bfb428386159360712f",
      "parents": [
        "746f666029f67cbb3d9e274d718ab7d88e8455cd"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Mar 10 09:45:01 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Wed Mar 10 15:01:25 2010 -0500"
      },
      "message": "Add VIBRATE_IN_SILENT to the settings database \u0026 backup.\n\nChange-Id: Id31e24ef0536278ccb66b22bba7ed2b47eb1a371\n"
    },
    {
      "commit": "547a96bc12f25f585271c678395d4c991f08c52d",
      "tree": "59c3521a9cc6e2fba7204a45d800425b1c705b3d",
      "parents": [
        "f3bcc62584f714ac4994601d74761b6f14e1fc48"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 09 17:58:53 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 09 17:58:53 2010 -0800"
      },
      "message": "SettingsProvider: dup-suppress from cache.\n\nOn insert(), check to see if the value is redundant by checking if\nit\u0027s the same value already in our cache (but without faulting it in\nto check).  If so, avoid hitting sqlite or spamming all the\nnotification listeners with such uselessness.\n\nThis reportedly is happening a fair bit.\n\nChange-Id: If58feb3ff1d00027dd927e0900087388cbcd72ae\n"
    },
    {
      "commit": "342984a17ddd010381c462066e33e18354b79e4f",
      "tree": "6b3c1eabcb6616948d858a4e82dca40be8829bd9",
      "parents": [
        "104798b706370c1bf403a1d07a0d69a740a3fb2f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 09 16:59:30 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Mar 09 16:59:30 2010 -0800"
      },
      "message": "SettingsProvider: defensively cap size of settings kept cached in memory.\n\nChange-Id: I50289ece2d7f5f50d2ea2efbacac7a0bb1483bf6\n"
    },
    {
      "commit": "28ada96218d8869e746cafcea335ccafc37ae41c",
      "tree": "7c19afc262b7a8d357b9ab20461eaccea276bae2",
      "parents": [
        "2f0bf83e45ad990479b7c7ec2eb6bded8e29c96c",
        "f02811f7853202c0934622702ebb9c82e6ab0592"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Mar 09 16:39:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 16:39:13 2010 -0800"
      },
      "message": "Merge \"Support unbundled bookmarks. Bug #2460685\""
    },
    {
      "commit": "f02811f7853202c0934622702ebb9c82e6ab0592",
      "tree": "7bab1fc7b7b21563da6a591988cf0f9906833db4",
      "parents": [
        "6509662adb12a506f3d584630f78d0edc9a62922"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Mar 09 16:33:51 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue Mar 09 16:33:51 2010 -0800"
      },
      "message": "Support unbundled bookmarks.\nBug #2460685\n\nChange-Id: I402e342673cd8de88664a595401a141e09583e1d\n"
    },
    {
      "commit": "f4743a869d8ee74b55a5f6335a554b011cfa33ab",
      "tree": "56f8dd9aae03714fbf95b26a665577d3996f99f4",
      "parents": [
        "6509662adb12a506f3d584630f78d0edc9a62922",
        "b21651c10ca833e073337ae6a0ee55fcc39c32f1"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 09 10:31:30 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 10:31:30 2010 -0800"
      },
      "message": "Merge \"Fix bug 2481825 When TTS is synthesizing to a file, return an error if the file cannot be created.\""
    },
    {
      "commit": "a2b6c3775ed6b8924232d6a01bae4a19740a15f8",
      "tree": "f78953add86351bd04f2788c712b1285497e2016",
      "parents": [
        "a9fb0a2497e563c2066e10a816ff1f7baaf8aa9b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 05 17:40:11 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 09 09:24:35 2010 -0800"
      },
      "message": "Add conditions to check for updated system applications. Restrict them\nto internal flash only even before we copy.\n\nReturn error codes when install flag options mismatch.\nSome conditions for existings apps\n - install flags override existing location\n - explicity manifest option install location overrides previous location\n - if upgraded package\u0027s install location is unspecified or auto, fall\n   back to recommended install policy which considers user setting as well.\n\nCheck for sdcard status before finding available size on sdcard\nAdd light weight parsing for manifest attributes including package name and\ninstall location only\n\nChange-Id: I5143dda87c88c595f564b317326c926d0ec3ceb8\n"
    },
    {
      "commit": "1bd62bd3ca4d098196e91b43799d4010c1d26623",
      "tree": "0100fd907399e541cf8b44a23f4112ce95de51d3",
      "parents": [
        "f19d43d8805948a85924706f76ef9b0eb5f80c9f"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Mar 08 18:30:52 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Mar 08 22:20:43 2010 -0800"
      },
      "message": "Cache hot settings in-memory in the SettingsProvider.\n\nThis brings down Settings lookups to 0.5 ms on sholes.  (down from\n~10.5 ms originally, and ~2.5 ms after the ContentProvider.call()\ninterface)\n\nChange-Id: Ibde7c3d21e0b0e5714714a2075f314726edfc19d\n"
    },
    {
      "commit": "b21651c10ca833e073337ae6a0ee55fcc39c32f1",
      "tree": "e2609d4ae08581fa9083b6ee95c1315b520f06cf",
      "parents": [
        "55535c83fd1409a9bafcc4ee69a7df2aec36f65c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 04 12:12:56 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 08 16:45:00 2010 -0800"
      },
      "message": "Fix bug 2481825\nWhen TTS is synthesizing to a file, return an error if the file\ncannot be created.\n"
    },
    {
      "commit": "156c43545529fb3d731ffdd9c4514d38758e3f06",
      "tree": "1ddbd96090770853f358aed7cab27f040ba68998",
      "parents": [
        "9e7b076cadc941feaa44838d39497537b8106ff0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 05 17:10:03 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 08 15:42:48 2010 -0800"
      },
      "message": "Move lockscreen settings to secure table to prevent tampering. b/2343673\n\nMigrate old settings to secure on upgrade.\n"
    },
    {
      "commit": "8c9233fba2d73ed9f9cfe38a9be6294c3da2a3ca",
      "tree": "593f8d3f7a4bbfa01eb3cce21fb9c28f49580be4",
      "parents": [
        "5bffb45057a17bb307b20259fea5a2527272a503"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Mar 08 12:03:05 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Mar 08 12:03:05 2010 -0500"
      },
      "message": "Correct path to LowBattery.ogg.\n\nBug: 2320026\nChange-Id: Idede20701c5a3d0e60bd327a869b1adf1577db21\n"
    },
    {
      "commit": "c6120193efebf426186b24520d70ec3e4a4aeadf",
      "tree": "08e816037cc2ae1409b17c1dea59a875aee9eada",
      "parents": [
        "796325b619a467eade0d6303c05b94a791a9c241"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 07 14:29:58 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 07 14:29:58 2010 -0800"
      },
      "message": "Fix typo in log message in TTS SynthProxy.\n\nChange-Id: Ica7dbf6cb3db2e07958fadad476571b91bde2c24\n"
    },
    {
      "commit": "796325b619a467eade0d6303c05b94a791a9c241",
      "tree": "7a20d78765b1261907672c3a9bd579a765c9fc17",
      "parents": [
        "83835359e51ddb8be37cea9bf4bb32f9390d82b7"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 07 13:05:52 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 07 14:02:31 2010 -0800"
      },
      "message": "Fix bug 2449814\n Reduced the amount of filtering and amplification at the output\n of the Pico TTS engine v1.1.0.2\n\nChange-Id: I89f577b5e94e171b4ed892faffb863f19428cc1a\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "1877d0158b529663b8315482e7346a7bcaa96166",
      "tree": "5194b59937b70c2f48366f27a4458d4043957d16",
      "parents": [
        "cd47f11dfad012be1b176ea06904a00da157ed7b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 04 17:48:13 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Mar 05 12:08:39 2010 -0800"
      },
      "message": "Add \"call\" method on ContentProvider.\n\nThis permits implementing interfaces which are faster than using\nremote Cursors.  It then uses it for Settings \u0026 SettingProvider, which\ntogether account for ~50% of total ContentProvider event loop stalls\nacross Froyo dogfooders.\n\nFor fetching Settings this looks like it should reduce average\nSettings lookup from 10 ms to 0.4 ms on Sholes, once the\nSettingsProvider serves most gets from in-memory cache.  Currently it\nbrings the Sholes average down from 10ms to 2.5 ms while still using\nSQLite queries on each get.\n"
    },
    {
      "commit": "fe73ce15fcd215b6886c1a76fe40d4610a86c1c8",
      "tree": "4f68c2be19ea7b62df668cae920dc7d0fb0d0ea1",
      "parents": [
        "5997c05fe51f1077d30fb4aee3442bc5ec88fd86",
        "3602f76d417b0940a26f28b7ad892abcfe03ef7c"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 04 11:23:52 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 04 11:23:52 2010 -0800"
      },
      "message": "Merge \"Null check for scheme. If scheme is unspecified let package parse continue. We will return errors if parsing fails anyway. If scheme is not null, restrict it to being a file uri.\""
    },
    {
      "commit": "1ead4f0f707d5fc966563e39eadd7aa73fa71aca",
      "tree": "205ac6fa16065a853a9d7025f47dcfd099b91ce1",
      "parents": [
        "3f5144b8a4b45a05cf7c1b0bd0422d0bd9ecb59b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 10:35:17 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 04 11:06:59 2010 -0800"
      },
      "message": "Expand buffer in SynthProxy to hold int\n\n32-bit signed integers are 11 bytes and a byte at the end for \\0\n\nChange-Id: I6a9cf69ecc64614c610cbade1c3398506d6f62f5\n"
    },
    {
      "commit": "3602f76d417b0940a26f28b7ad892abcfe03ef7c",
      "tree": "07859c25cd8a91092da0fa3d023f90795501af3d",
      "parents": [
        "01f4385d86537cf656cfc70ea075177d50619206"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 17:29:33 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 18:21:07 2010 -0800"
      },
      "message": "Null check for scheme.\nIf scheme is unspecified let package parse continue. We will return\nerrors if parsing fails anyway.\nIf scheme is not null, restrict it to being a file uri.\n"
    },
    {
      "commit": "9b10ef5fe85e9d29721ff0cd15161f960d38a8db",
      "tree": "a6830aad34d62273b02f0e3dbaa054dd7ec7c270",
      "parents": [
        "a034cd3e15b6626be03e60f2d6a0f929dcb950d9"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 09:45:24 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 14:06:10 2010 -0800"
      },
      "message": "Rework the way PackageManager binds to default container service.\n\nClean up stale containers when enabling/disabling packages on sdcard.\nCheck the path of packages which are being enabled.\nMake sure gc\u0027s are done prior to destroying containers when moving applicati\nas well as enabling/disabling packages for sdcard mount status changes.\n\nSome miscellaneous issues\n   Remove hack to avoid renaming containers.\n   Fix test with forward locked apps\n   Remove adding container id to asec list when renaming\n   Some cosmetic changes to DefaultContainerService\n"
    },
    {
      "commit": "c882ddacc8b3085a51f8ae18d89d8fd1d055141f",
      "tree": "a0dc4328f367ebd4ff70eb150feb1e53eb924ccb",
      "parents": [
        "43242d02e931c116d7f334cda2b0d677bedfdd97"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Fri Feb 19 18:47:49 2010 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Mar 02 09:36:33 2010 -0800"
      },
      "message": "Fix Proguard flags.\n"
    },
    {
      "commit": "6a8b73be572f37b471322e7d49b44c3783633d96",
      "tree": "a5c11a7c81dd8a01e97690ee7614c5c191896f2c",
      "parents": [
        "5d3bea6229c2ba71e87c750204662ee71a01c2dd"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Mar 01 18:52:41 2010 -0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Mar 01 18:52:41 2010 -0800"
      },
      "message": "Fixing a bug with TTS that caused TTS to ignore the default settings\nunless the user had set the defaults to always override app settings.\n"
    },
    {
      "commit": "03b6d90db9acc531a945c57795b903a3b74dd0b7",
      "tree": "be0018dbc10766ac4a6353d035406b19af147301",
      "parents": [
        "1b487ec44b6b5594914d52fa427bec4f29a60541"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 14:12:03 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 14:15:24 2010 -0800"
      },
      "message": "Make sure to apply the auto-restore setting when the system is restored\n\nChange-Id: If2e09d6b4e65c75e7e90754adc2425fa73d2602a\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "e379710cc5914c7ed10e9236079ec7f02c99ee4e",
      "tree": "af5408bcc2cc382d4c7d7b794fdaf9a53874c009",
      "parents": [
        "2ec30697c6cc6812dfaeb9a2e7d1da0443aeb8e6",
        "e3c1890a4c9777dde3f8addad111f4660b5d95ef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 25 08:47:40 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 08:47:40 2010 -0800"
      },
      "message": "Merge \"Fix bug 2452941 Add a flag to maintain the intended direct playback  of TTS data independently from the associated AudioTrack state.  Only start the track when it\u0027s been stopped but is supposed to be  playing.\""
    },
    {
      "commit": "e3c1890a4c9777dde3f8addad111f4660b5d95ef",
      "tree": "a2e2734b017714e3da3f0981933a217a53cc0433",
      "parents": [
        "d651629478ea4615e3a493aa63ae455d6fefb38f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 24 18:52:39 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 24 18:52:39 2010 -0800"
      },
      "message": "Fix bug 2452941 Add a flag to maintain the intended direct playback\n of TTS data independently from the associated AudioTrack state.\n Only start the track when it\u0027s been stopped but is supposed to be\n playing.\n"
    },
    {
      "commit": "00f58438bdb506d84015df45b5b3ff1594aab1d2",
      "tree": "324307694827363852af5d32f6aabb2ff5382371",
      "parents": [
        "a141ecff2fa21263404f32114c7cd27f4191af01"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Feb 24 11:43:12 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Feb 24 11:43:12 2010 -0800"
      },
      "message": "Filenames of sound effects are not translatable.\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "63e1d264a751519b465f9be84f648d338a095cd1",
      "tree": "97a9c3ce2244932a4c2068715c6e14bf887f2ccb",
      "parents": [
        "e575d3dff5b06cb5a4aae0fa0626f884297eb15d"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Feb 23 19:43:35 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Tue Feb 23 19:43:35 2010 -0500"
      },
      "message": "Turn off lock screen sounds by default.\n\nThis change also fixes a typo that was suppressing the dock\nsounds. But: so as not to surprise anyone, this change\ndefaults dock sounds off as well. Will need to add UI\nsomewhere to turn them on (Spare Parts?).\n\nBug: 2465483\nChange-Id: Ic2cccb416d5616a84363debb740bf5897f0831c4\n"
    },
    {
      "commit": "f1cbfff03ac53be9475f419d16a2e79b6c28a494",
      "tree": "f1c5ef7ef327802c3284d058fa034ac9b01a796b",
      "parents": [
        "582ae172a4e9784f377c9935b47160fba1764142"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 16:12:07 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 16:23:19 2010 -0800"
      },
      "message": "Fix bug when adding SET_INSTALL_LOCATION to SettingsProvider database, upgrade path.\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9",
      "tree": "883f9fde4fdcde9c073ee2b0987c5dd393a00745",
      "parents": [
        "855dd9e074c4dcb9c90deaeff1eb33d6394dd5da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 20:38:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:29:52 2010 -0800"
      },
      "message": "Fix issue #2420412: API review: DeviceAdmin API changes\n\nNote in docs that callbacks are on main thread.\nRename to DeviceAdminReceiver?\nDocument resetPassword is the device\u0027s password.\n\nAlso hide android.R.attr.neverEncrypt.\n"
    },
    {
      "commit": "679bba339ef6948091180c776d6a284cddd812f5",
      "tree": "03c629b1f8bd427a3917efd3fa9a61c6ee9930e7",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 11:52:44 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 15:11:04 2010 -0800"
      },
      "message": "Move mount service wrapper calls to PackageHelper\n\nFix bug related to forward locked apps.\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "commit": "0e9d2af2d60b381ba52d0c25e583b3d2a9906051",
      "tree": "fd8348dea0d0a7ddbc3116c92e2ea506886bc50d",
      "parents": [
        "8fe5571aa46321a97dd6e7470e9df208a0324103"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Jan 25 11:33:03 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Feb 12 23:26:12 2010 -0500"
      },
      "message": "New user interface sound effects:\n\n - Low battery. (http://b/2320026)\n - Dock/undock events.\n - Keyguard lock/unlock events.\n\nNew system settings have been created to turn these on/off\nand to specify the relevant sound files.\n\n[Production notes: The provided low battery sound and dock\nsounds were synthesized; the lock screen sounds are\nprocessed samples of a ballpoint pen click mechanism.]\n\nBug: 2320026\nChange-Id: I374285b0f94f59c7555bb8816580f5a8c802e90d\n"
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "cf36010357b0e106e600c953437e6375b3e65fcb",
      "tree": "315da1fb8fb9d521eda4125aa2453e14d68f8dae",
      "parents": [
        "d705fd2b0aca3f57168934f2ea8c351ef249f829",
        "a87240c2270e83c3e865ffa1e56f79bfa74daffc"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 12 16:30:39 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 16:30:39 2010 -0800"
      },
      "message": "Merge \"Remove BACKUP_DATA permission and associated checks\""
    },
    {
      "commit": "a87240c2270e83c3e865ffa1e56f79bfa74daffc",
      "tree": "56185fa9fc74ee9a55e3a35e6f228459a0cff04d",
      "parents": [
        "7f66d6e63dc79709ea308440ec57906980046531"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 14:12:34 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 15:49:30 2010 -0800"
      },
      "message": "Remove BACKUP_DATA permission and associated checks\n\nAny package can now participate in backup/restore, without requiring any\nmanifest-declared permission.  *Control* of the backup manager is still\nguarded by the BACKUP permission, which is signatureOrSystem.\n\nChange-Id: I116fcfcd4cd255e3c976330da1c4dea7d4faae9d\n"
    },
    {
      "commit": "6176677e01964cb5751ff217c091571ce6a8b5fb",
      "tree": "4b7336ce8dd28b36516e42196509723a41c164ea",
      "parents": [
        "ba7ec917ea91364598de1ba7a29910cec08fd5de"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Feb 12 14:56:49 2010 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Feb 12 14:56:49 2010 -0800"
      },
      "message": "Watch 2274882: Add a field to the db when we wipe due to an error in the upgrader.\n\nThis should give us the ability to diagnose and fix db upgrade errors as reported by partners and end users.\n"
    },
    {
      "commit": "cb0be8a530d6fefdb05f009980c029c4da14bf98",
      "tree": "47ced4a365121574672e7fee442b69f097720f28",
      "parents": [
        "378ae126d9d61feed77ad596fa0823394eac6240"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 15:01:27 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 15:01:27 2010 -0800"
      },
      "message": "Use the new RecognitionService.SERVICE_INTERFACE instead of\nRecognizerIntent.ACTION_RECOGNIZE_SPEECH when finding a voice\nrecognition service.\n"
    },
    {
      "commit": "d5663a108760de672b130ffabd4f6632982f75e5",
      "tree": "d09ba48136800786dafb8c1ba5ccd001393ce02f",
      "parents": [
        "1ceb79e99c081068b75cebd999dac423398a8b21",
        "9b7cb792d08222e132c9d7db83f7b2064f8f1cfd"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Feb 11 11:58:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 11:58:01 2010 -0800"
      },
      "message": "Merge \"Setting the synth busy flag inside a synchronized block for thread safety.\""
    },
    {
      "commit": "5d34e9b63d5305934dcedac11e8dd658ae23c174",
      "tree": "7a6c896c25efa8df5163d5ea4086cd1c3615e1e4",
      "parents": [
        "575c6710a38f608aca2c25e7784674a47d18a871"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Wed Feb 10 19:34:56 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 11:40:02 2010 -0800"
      },
      "message": "Add new setting for the ComponentName of the service to be used\nfor voice recognition on the device. Right now this just queries\nthe package manager at boot and finds the (hopefully) single\navailable recognizer.\n\nTODO: Add an attribute to let recognition services expose a settings\nactivity, and expose the settings activity of the chosen recognition\nservice in the system settings for voice input \u0026 output.\n"
    },
    {
      "commit": "9b7cb792d08222e132c9d7db83f7b2064f8f1cfd",
      "tree": "5773d204fa0192761c1c4e28b0d058efea5fedee",
      "parents": [
        "53bd2522ca7767f46646606123b6e2689b811850"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Feb 10 19:46:48 2010 -0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Feb 10 19:46:48 2010 -0800"
      },
      "message": "Setting the synth busy flag inside a synchronized block for\nthread safety.\n"
    },
    {
      "commit": "a9c1625e71ddd7a9cdaf9d1720be8c58e4809fa6",
      "tree": "550539d08ffb8935e74d10c781972f56283dd1c9",
      "parents": [
        "117818e4f171b1fd9daa05349c48f61388f04567"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 12:39:20 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 12:39:59 2010 -0800"
      },
      "message": "Set default value for default install location\n"
    },
    {
      "commit": "117818e4f171b1fd9daa05349c48f61388f04567",
      "tree": "2bb350a719caf06727a410ce662c46a28c45fb72",
      "parents": [
        "596ce7fbfe5a81a4270949448c08dcb3a684cc3a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 09 03:45:40 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 08:59:08 2010 -0800"
      },
      "message": "Add new manifest option for install location\nChange recommendAppInstallLocation api\nadd code to parse new attribute.\nDefine flags in PackageInfo\nAdd new settings attributes for enabling setting and value for install location\nSome tests\nThe policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.\nIf the user enables setting SET_INSTALL_LOCATION(which will always\nbe set to false in final release builds) and sets a prefered location, we try\nto honour it.\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "b104340496e3a531e26c8f428c808eca0e039f50",
      "tree": "11247cb68359d43ca4871c0cb0165c9bec339a6f",
      "parents": [
        "3ee1317173260252d475772fec09d492f8fcfd33"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 05 08:26:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:16 2010 -0800"
      },
      "message": "Framework: Clean up / Refactor Mount APIs\n\n - Move android.storage.* -\u003e android.os.storage.* and refactor users\n - Refactor generic shares back to explicit ums enable/disable/isEnabled\n - Remove media insert/removed event callbacks (not ready for Froyo)\n - Remove \u0027label\u0027 from volume state change callbacks\n - Add public API functions for enabling/disabling USB mass storage (permissions enforced\n   in MountSevice)\n - Remove some stray un-needed import lines\n - Move android.os.IMountService / android.os.IMountServiceListener -\u003e android.os.storage\n - Improve code comments\n\nUpdated:\n  MountService: Add dup state check and move debugging behind a conditional\n  UsbStorageActivity: Fix review comments + a TODO\n  StorageNotification: Add @Override tags\n  StorageManager: Don\u0027t use a static Listener list\n  MountService: Reduce bloat and fix \u003d\u003d where I meant .equals()\n  PackageManagerTests: Update for new API\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "44afb7be73047b462e61eb451c14774d3ff7848a",
      "tree": "8358ef080978fb4c2f0051f25546eb3fa40b82de",
      "parents": [
        "6b31e4d21f809bfb440034364aac8db4aa0cfcea"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Feb 05 21:36:07 2010 -0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Mon Feb 08 14:11:45 2010 -0800"
      },
      "message": "Fixing a race condition in the TextToSpeech service that could be\ntriggered if many long utterances are started and interrupted in\nrapid succession.\n"
    },
    {
      "commit": "6004edc67c94a0d034dfb8981b7d4b7a0172a814",
      "tree": "88aa90094c4d6e6bce0e9f854425234934c898c0",
      "parents": [
        "f6a5c0999d79a52d2f8b4160a802e2aba08467cb",
        "f5c87b386c839ccc9974bcb7f636aa2f8c14f78d"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Feb 05 17:23:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 17:23:44 2010 -0800"
      },
      "message": "Merge \"Fixing a bug with the TextToSpeech speech queue processing. The queue processor should not be called for the next item until synthesis has actually happened for the current item; before it was being incorrectly called regardless of whether or not the synthesizer had processed the current item.\""
    },
    {
      "commit": "f5c87b386c839ccc9974bcb7f636aa2f8c14f78d",
      "tree": "a43fbb73b7e5483c98660c6e32f170ee86b76508",
      "parents": [
        "679091849754c60bdde5670495c38493065fd308"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Feb 05 16:00:17 2010 -0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Feb 05 17:13:59 2010 -0800"
      },
      "message": "Fixing a bug with the TextToSpeech speech queue processing.\nThe queue processor should not be called for the next item\nuntil synthesis has actually happened for the current item;\nbefore it was being incorrectly called regardless of\nwhether or not the synthesizer had processed the current item.\n"
    },
    {
      "commit": "4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5",
      "tree": "67295a6b7219bfb33187a066577eb2addf353533",
      "parents": [
        "2c355e26e9920966051b5aae3cc991c1055e586e"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 03 10:36:40 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 03 10:48:22 2010 -0800"
      },
      "message": "use device serial number to seed RNG for generating ANDROID_ID\n\nChange-Id: I1bcc55f1309cb908803bc42084846a046041eda6\n"
    },
    {
      "commit": "08675a3376819a82aa5ab344bc3e7b1635c30b05",
      "tree": "9a16e6be377fe367639ef9e02c5421e0ce9b9044",
      "parents": [
        "57405b93f194851eb2187a8ed3362be18a483a17"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Jan 28 09:57:30 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 02 18:33:29 2010 -0800"
      },
      "message": "Apps on sdcard: Add new broadcasts\n\nAdd new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and\nACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by\nPackageManagerService when sdcard gets mounted/unmounted\nby MountService so that packages on sdcard get recognized by\nvarious system services as being installed/available or\nremoved/unavailable by the system.\nThe broadcasts are sent before the actual package cleanup which includes\nmounting/unmounting the packages and we force a gc right after so\nthat any lingering file references to resources on sdcard get\nreleased.\n"
    },
    {
      "commit": "63d15ee6ae4ff5079c7551ca4131c6d7f23ad91c",
      "tree": "4adae3b65891dc1455a6be9539d60c265e99300b",
      "parents": [
        "be16cb15b39f5140b764854bc78c139bfa9fbe8b"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:35:53 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:17:47 2010 -0800"
      },
      "message": "DefaultContainerService: Refactor MountService calls (new api)\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "9327f4f671de3cbb795612bf4f314ceff88de865",
      "tree": "f6f1109e4b3c8966eb6747f6f73835ea0623312e",
      "parents": [
        "7912a29cf24cab2f999186d95afa13ecdada0b8e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 29 10:38:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 29 17:16:02 2010 -0800"
      },
      "message": "More device policy work: clarify password modes, monkeying.\n\nClarifies what the password modes mean, renaming them to \"quality\"\nand updating their documentation and the implementation to follow.\n\nAlso adds a facility to find out if a monkey is running, which I\nneed for the api demo to avoid letting it wipe the device.\n"
    },
    {
      "commit": "a8eed0d3b698700f7af3230a985f5d0cd436f4c2",
      "tree": "0d24b78296cdf1538139d8c34ef908e909c86400",
      "parents": [
        "0ebff76e95aab7f6827ce1a8c25f1b4ad87a9029"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 15:02:41 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 15:02:41 2010 -0800"
      },
      "message": "Add asec permission  to DefaultContainerService\n"
    },
    {
      "commit": "c028be4f3b8c7476b46859f66c3f33d528adf181",
      "tree": "8a740e6207e958572706a636fcb92425dbf13a6e",
      "parents": [
        "aeb4126736c1b93abe5252e1723c568a13da7c81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 25 12:19:12 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 10:26:43 2010 -0800"
      },
      "message": "AppsOnSd feature - Add default container\n\nAdd new remote interface to do temporary copies. The new\nremote stub handling is done on mHandler thread and doesn\u0027t need locking\nfor now.\nAdd new InstallArgs class and subclasses to isolate cases for installation.\nMove resource deletion for failed installs/upgrades to later on in installation\ncycle.\nFix code path for forward locked apps when using scanPackageLI\n\nTODO\u0027s\nFix installation paths to completely use InstallArgs based design later on.\nGet rid of using flags in various install/uninstall code paths.\nIdeally InstallArgs should be created using these flags and used in the\nrest of the code.\nFunction renames.\nRevisit mount api\u0027s.\n"
    },
    {
      "commit": "e79f721e710166b6fd57fd101de84367156b77b7",
      "tree": "bfbb1234b860e71bbfe81eb788dc0c4ddccb35b2",
      "parents": [
        "a69a23b2a5fa7738a5c5c3b74865f20308a96190"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Fri Jan 22 00:14:31 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Fri Jan 22 00:14:50 2010 -0800"
      },
      "message": "Remove unused providers\n\nbug 2388178\n"
    },
    {
      "commit": "df83afaf299666e99c519aa86e7e082b7c116e95",
      "tree": "65480fb272324aee6613d0449d40d5e078a700a8",
      "parents": [
        "04ce08f34e39928a5b8e9ea59134f255c9ff08f6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 20 13:37:26 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 21 14:30:57 2010 -0800"
      },
      "message": "More device policy manager / admin work.\n\nUpdate API with some new features, re-arrange how you check for valid\npasswords, and start hooking up the back-end implementation.\n"
    },
    {
      "commit": "31f90b62e8c83270094f5b0b4c75a0e06d72cd75",
      "tree": "5f3cd8d9dfe70cbb5ed607cb4dabf7e46a29c648",
      "parents": [
        "b49d9af7e1205312cc25e23636ef3980bee4c1b0"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 20 13:35:20 2010 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 20 14:48:37 2010 -0800"
      },
      "message": "Fix 2385283: Add DevicePolicyManager calls to LockScreen.\n"
    },
    {
      "commit": "0320f8bdfbaa733ff9d702f30417315830a162da",
      "tree": "d516e19505be5f2e1deba9260920dc3e3c568e73",
      "parents": [
        "9b0b155e6075b4aef742535afd1719ee6a88c1a3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jan 11 14:04:50 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jan 11 14:16:28 2010 -0800"
      },
      "message": "Apply EQ on the output of the speech synthesis only when using the Pico\nTTS engine.\n"
    },
    {
      "commit": "714834d757ee9e6dc9405cef2b6c014cd0f602cc",
      "tree": "10668b386ab23d99f3f0d7b74782c9e71777fa2e",
      "parents": [
        "2a6c63b678e83956dc363762a4bf39fa42c78143",
        "60dd360640a400d9b4a602160733281d284aaee5"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Jan 08 15:26:57 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 15:26:57 2010 -0800"
      },
      "message": "Merge \"Enabling multiple apps to use different speech synthesis engines and not interfere with one another.\""
    },
    {
      "commit": "2a6c63b678e83956dc363762a4bf39fa42c78143",
      "tree": "81bb9142e27a9c095ae77810d70c23a1829bc9ff",
      "parents": [
        "0a0289420227fee51406cf4cc508f09d8ecdd2f4",
        "ddc63ad04b58b8a883b4984a7af2aea2fdbff337"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 08 15:21:39 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 15:21:39 2010 -0800"
      },
      "message": "Merge \"Remove useless start of AudioTrack for TTS and improper volume setting. The AudioTrack that plays the synthesized audio data should only be started when the first synthesis request is sent, not after the initialization of the engine. The track volume should be initialized to it nominal level. Volumes above 1 do not provide amplification, so setting the volume to 2 is not necessary.\""
    },
    {
      "commit": "60dd360640a400d9b4a602160733281d284aaee5",
      "tree": "97ebd5699d2f324fc8215c6714ddd3e5e6771997",
      "parents": [
        "6414970ac7dc629345942059f75362d894c2310e"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Thu Jan 07 18:56:24 2010 -0800"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Fri Jan 08 15:06:57 2010 -0800"
      },
      "message": "Enabling multiple apps to use different speech synthesis engines and not\ninterfere with one another.\n"
    },
    {
      "commit": "ddc63ad04b58b8a883b4984a7af2aea2fdbff337",
      "tree": "ef99f976e9658fc4510ad29007db317b40c7326b",
      "parents": [
        "923432d5ca397b3c83de4049434f060f307c7c3a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 08 14:06:21 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 08 15:03:50 2010 -0800"
      },
      "message": "Remove useless start of AudioTrack for TTS and improper volume setting.\nThe AudioTrack that plays the synthesized audio data should only be\nstarted when the first synthesis request is sent, not after the\ninitialization of the engine.\nThe track volume should be initialized to it nominal level. Volumes\nabove 1 do not provide amplification, so setting the volume to 2 is\nnot necessary.\n"
    },
    {
      "commit": "87734d3bc118cba8f42845ddd51f10edadb84abf",
      "tree": "d989b6a10506d4f93506f5b6597c9f91a3d45e52",
      "parents": [
        "f5d95cbc1a6974afeb4d3155bdaa8dae55722a39"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 08 12:53:06 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 08 12:55:22 2010 -0800"
      },
      "message": "Settings: Add settings for MountService prefs and bump DB version to 46\n\nAdds 4 new Settings:\n    Secure.MOUNT_PLAY_NOTIFICATION_SND - Play notification sound on events\n    Secure.MOUNT_UMS_AUTOSTART         - Auto-start UMS when host detected\n    Secure.MOUNT_UMS_PROMPT            - Show notification when host detected\n    Secure.MOUNT_UMS_NOTIFY_ENABLED    - Show notification while UMS enabled\n\nThese settings are also added to the Settings backup list\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "f5d95cbc1a6974afeb4d3155bdaa8dae55722a39",
      "tree": "a999860303c704ecfd8ac0848a005fc0b8447dc3",
      "parents": [
        "51d3e798985944a3be1aafb1e01216a6627625e0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jan 07 21:48:32 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Jan 08 15:46:24 2010 -0500"
      },
      "message": "less log spew\n"
    },
    {
      "commit": "698893fc902b0510d45864e4d221d01eec508386",
      "tree": "bf62c74a4acf9063db1f301b2d1cc0097367f1a9",
      "parents": [
        "b816377fed0180ff0b132a8d9891e51fb3527138",
        "d22c49a2d5321682496e7ca349686d365b76994e"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Fri Jan 08 10:00:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 10:00:58 2010 -0800"
      },
      "message": "Merge \"Update with latest translations.\""
    },
    {
      "commit": "aed8f8eb1491a21c8c71d39258b70edb74533a62",
      "tree": "ca22744f758f39f0832e3f6de586e51ed75785ae",
      "parents": [
        "60545527b63209332fec096b5cf2e4a503fbc6c8"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 18:07:50 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 18:24:48 2010 -0800"
      },
      "message": "remove Settings.Gservices\n\nMove the last few keys to secure settings, and delete the Gservices\ntable.\n\nChange-Id: Ie3ba45aa8c1f220824aa027c547cb82884452eb5\n"
    },
    {
      "commit": "d22c49a2d5321682496e7ca349686d365b76994e",
      "tree": "ec273d19422128088d16e76cc48dd0aa5c05006a",
      "parents": [
        "0a49913c810b9bd72d593f878acb714f2b8f3715"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jan 07 15:55:17 2010 -0800"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Thu Jan 07 15:55:17 2010 -0800"
      },
      "message": "Update with latest translations.\n"
    }
  ],
  "next": "edc5189c33de03f3e2f5f73edc0e007992b933c9"
}
