)]}'
{
  "log": [
    {
      "commit": "97ecc9cbe7eccafc0923d7655daf07f4c2ea9791",
      "tree": "3d57380415f1782f70a75b42d8f28234abf857cf",
      "parents": [
        "6a8d5332f00bdfade6674b312e7166940aa28348"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Mon May 11 17:44:20 2009 -0700"
      },
      "committer": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Wed May 13 13:20:59 2009 -0700"
      },
      "message": "define Intent.ACTION_REMOTE_INTENT, which replaces the old GTalk data messaging intent \"android.intent.action.GTALK_DATA_MESSAGE_RECEIVED\".\n\nThe remote intent concept shouldn\u0027t be limited to Google or GTalkService. It should be owned by the Android platform.\n"
    },
    {
      "commit": "09b87a7d18752923b9a9c7034929c0b97bb69034",
      "tree": "7bc09f0331fe49b786765e0b28464ff3ee59a0f2",
      "parents": [
        "937809ccf9a30daec09371a38f39afdd6381489e",
        "8ad028117d4b99883bbc52b29f097b2fb1d9b0c2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 12 22:49:11 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 22:49:11 2009 -0700"
      },
      "message": "am 8ad0281: With this, the BackupService onBackup method is called.\n\nMerge commit \u00278ad028117d4b99883bbc52b29f097b2fb1d9b0c2\u0027\n\n* commit \u00278ad028117d4b99883bbc52b29f097b2fb1d9b0c2\u0027:\n  With this, the BackupService onBackup method is called.\n"
    },
    {
      "commit": "8ad028117d4b99883bbc52b29f097b2fb1d9b0c2",
      "tree": "a51bb51a34be08f2e5ac408de902bb07a3f293a3",
      "parents": [
        "d39afbdc92e95e597c311e78ac32edaad27fcf0d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "message": "With this, the BackupService onBackup method is called.\n\nIt took a bunch of refactoring inside BackupManagerService,\nwhich is unfortunately all temporary anyway, but it unblocks\na bunch of stuff.\n"
    },
    {
      "commit": "d2b4929ba00939c1aa5037927f27427637cc2f68",
      "tree": "7aec3b9191499c5ef256d9e0f45966e2feec0315",
      "parents": [
        "7118a2cf547ed53900a7591ca93b99ee0508cea9",
        "ade3ecad94d1f4431576f53bae26c35efbf7a2c9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 12 22:39:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 22:39:08 2009 -0700"
      },
      "message": "am ade3eca: Implement issue #1783881 (manifest option for adb-install-on\n\nMerge commit \u0027ade3ecad94d1f4431576f53bae26c35efbf7a2c9\u0027\n\n* commit \u0027ade3ecad94d1f4431576f53bae26c35efbf7a2c9\u0027:\n  Implement issue #1783881 (manifest option for adb-install-only apps)\n"
    },
    {
      "commit": "ade3ecad94d1f4431576f53bae26c35efbf7a2c9",
      "tree": "066fc83ddeb6c52011e13744152b594911895094",
      "parents": [
        "807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 11 18:54:45 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 12 16:09:43 2009 -0700"
      },
      "message": "Implement issue #1783881 (manifest option for adb-install-only apps)\n\nYou can now use android:testOnly\u003d\"true\" to not allow your .apk to be installed\nas a normal app.  The only way to do so is with the pm command and giving the\n-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.\n\nI also used this to clean up the install API...  actually, mostly to hide\nit, since it is not accessible to apps so shouldn\u0027t be in the SDK.  We\nwill be doing some more work on it, so this will prevent adding yet\nanother backwards-compatibility-for-no-reason version.\n"
    },
    {
      "commit": "c64322c35212e919906ffd66118c7d5d3ad36636",
      "tree": "846d1a95480c87f18975245ceea201535e23c553",
      "parents": [
        "3e3439d5ba0cf5eda060c4991219c32af917fc5b"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue Apr 28 15:26:38 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue May 12 23:16:20 2009 +0200"
      },
      "message": "PackageManager keeps track of who installed what.\n\nStores the package name of the installer app in packages.xml\n"
    },
    {
      "commit": "9e5d5d6fac951d4d97c4d1df250f6a0f67a95c77",
      "tree": "53b9f9e342eabae4bb6c8b81f8bf183c8700ddaa",
      "parents": [
        "9e355606720858edf72c16cef4dbef8c15814d7a",
        "3681f2614fa8c10560c790f6b4287f65d6fd2663"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 12 07:58:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 07:58:55 2009 -0700"
      },
      "message": "am 3681f26: LocationManager:  Recover if process containing NetworkLocat\n\nMerge commit \u00273681f2614fa8c10560c790f6b4287f65d6fd2663\u0027\n\n* commit \u00273681f2614fa8c10560c790f6b4287f65d6fd2663\u0027:\n  LocationManager:  Recover if process containing NetworkLocation provider crashes\n"
    },
    {
      "commit": "3681f2614fa8c10560c790f6b4287f65d6fd2663",
      "tree": "e63317d42231df5146a9406efe18ae47208971b1",
      "parents": [
        "2677d0da34acad93cd7f164d587ccc30c46facc6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 12 10:52:03 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 12 10:52:03 2009 -0400"
      },
      "message": "LocationManager:  Recover if process containing NetworkLocation provider crashes\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "65e13171e12cb9e9fc2f608d0c8a92cd3c098648",
      "tree": "99faa0eca90516b12ec085f622cf55403522bad0",
      "parents": [
        "21fa8d31f4a686143090fb8597b6c4297081d7ca"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue Apr 28 15:26:38 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue May 12 10:48:27 2009 +0200"
      },
      "message": "PackageManager keeps track of who installed what.\n\nStores the package name of the installer app in packages.xml\n"
    },
    {
      "commit": "d01547761a8ec4bd1bcc4799a537b6fdcd9d24bc",
      "tree": "b8335dd5dde0e16e9d0351c3439872fef80fb4ad",
      "parents": [
        "710957c1417005418d0516a3ccb553e262f2c010",
        "1655be46d2b7d45f071a6a1411ac8bd41c749c21"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 11 11:18:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 11 11:18:24 2009 -0700"
      },
      "message": "am 1655be4: Fix issue #1837610 and #1753079\n\nMerge commit \u00271655be46d2b7d45f071a6a1411ac8bd41c749c21\u0027\n\n* commit \u00271655be46d2b7d45f071a6a1411ac8bd41c749c21\u0027:\n  Fix issue #1837610 and #1753079\n"
    },
    {
      "commit": "1655be46d2b7d45f071a6a1411ac8bd41c749c21",
      "tree": "0b874b6acc545850478ad85d0ba94170c1ce1909",
      "parents": [
        "5e1d8aed4a557a7c055aa4c19875df75d7e41ae6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 14:29:01 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 11 11:14:26 2009 -0700"
      },
      "message": "Fix issue #1837610 and #1753079\n\nIssue 1837610 Adding a Widget before Running the Associated App Causes a Force Close\n\nWe were not retrieving the shared libraries of an application when deliving a\nbroadcast to an explicit component.\n\nIssue 1753079 loading class path of instrumented app into instrumentation may load wrong path when instrumented app shares process with other apps:\n\nWe were using the ApplicationInfo that was used to originally create the process, not the one that the\ninstrumentation is against.\n"
    },
    {
      "commit": "710957c1417005418d0516a3ccb553e262f2c010",
      "tree": "8a5692f746467cb192487acbf0a602808eae0178",
      "parents": [
        "22a262f09d1f4142ed699f50b128071da704b819",
        "a82842f98d64897e92e1012404863f940bd03d26"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 11 10:57:23 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 11 10:57:23 2009 -0700"
      },
      "message": "Merge change 720\n\n* changes:\n  Move ACTION_BATTERY_LOW logic to BatteryService (bug 1630733).\n"
    },
    {
      "commit": "849e89c94d206d9723fd5635ed6e7a69814849e3",
      "tree": "a6499b6d05bfcf273e1e72367f7001ae4e1ccc77",
      "parents": [
        "837bcca25af14b009742a3256cc074a62481ba8f",
        "851a54143c15a1c33361efae2db3f7f45059b472"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 22:51:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 22:51:10 2009 -0700"
      },
      "message": "am 851a541: Implement targetSdkVersion and maxSdkVersion, plus version c\n\nMerge commit \u0027851a54143c15a1c33361efae2db3f7f45059b472\u0027\n\n* commit \u0027851a54143c15a1c33361efae2db3f7f45059b472\u0027:\n  Implement targetSdkVersion and maxSdkVersion, plus version code names.\n"
    },
    {
      "commit": "1246e3d56c12b6c19300eee60aca4128abc90016",
      "tree": "67f1c08f4156d760037a9e70cc07e327e4daff29",
      "parents": [
        "049315a0f6c1868498b57a5d2a86e4fd36a12a38",
        "c39aae0ee060b4ff54ba0ab37fd1925ce191f013"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 22:51:07 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 22:51:07 2009 -0700"
      },
      "message": "am c39aae0: Merge change 1278 into donut\n\nMerge commit \u0027c39aae0ee060b4ff54ba0ab37fd1925ce191f013\u0027\n\n* commit \u0027c39aae0ee060b4ff54ba0ab37fd1925ce191f013\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "049315a0f6c1868498b57a5d2a86e4fd36a12a38",
      "tree": "ebde105e7fab831ff5f013ba7e0fdc4b8589a096",
      "parents": [
        "ddf9856c7de043674d9ede006aefc7769879a4b8",
        "7b59fe316e23e05ef33648a855c2280dd8fad981"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 22:51:06 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 22:51:06 2009 -0700"
      },
      "message": "am 7b59fe3: Merge change 1275 into donut\n\nMerge commit \u00277b59fe316e23e05ef33648a855c2280dd8fad981\u0027\n\n* commit \u00277b59fe316e23e05ef33648a855c2280dd8fad981\u0027:\n  Make the internal storage monitor work correctly when internal storage is very large.\n"
    },
    {
      "commit": "851a54143c15a1c33361efae2db3f7f45059b472",
      "tree": "c9e6ced5424530ff9a40f5471afb969e15cac35e",
      "parents": [
        "ed3b804f2cc61029cf2969cbfa499ea230c22bb0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 12:06:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 15:15:36 2009 -0700"
      },
      "message": "Implement targetSdkVersion and maxSdkVersion, plus version code names.\n\nThis adds new attributes for specifying a targetSdkVersion and maxSdkVersion.\nThere is a new ApplicationInfo flag that is set if the application has set\nits targetSdkVersion to the current platform or later.  Also you can now\nuse a string for minSdkVersion and targetSdkVerion, to indicate you are\nbuilding against a development tree instead of an official platform.\n"
    },
    {
      "commit": "c39aae0ee060b4ff54ba0ab37fd1925ce191f013",
      "tree": "56cfce33540826a0027219487725a3387a751adc",
      "parents": [
        "7b59fe316e23e05ef33648a855c2280dd8fad981",
        "c2af31f89bf3688db066c6eaee44d3b6bdc1d6ef"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:41 2009 -0700"
      },
      "message": "Merge change 1278 into donut\n\n* changes:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "7b59fe316e23e05ef33648a855c2280dd8fad981",
      "tree": "faff3cdd69675dd5b67642171e7eaaa49fdd2170",
      "parents": [
        "98acd54fa6657e8131b3a2a957de7882a2f511ab",
        "0bfbae2c3241112f14abca6c9792e759e85e1c5e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 14:46:21 2009 -0700"
      },
      "message": "Merge change 1275 into donut\n\n* changes:\n  Make the internal storage monitor work correctly when internal storage is very large.\n"
    },
    {
      "commit": "c2af31f89bf3688db066c6eaee44d3b6bdc1d6ef",
      "tree": "8e2b47eac81380d5ec99841c67db926bba566a2a",
      "parents": [
        "55280a91884b9256e8db6af6a09f28b3feeaa9d8"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri May 08 14:44:41 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri May 08 14:44:41 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 85585eb0860e52a3dc3b8efe57ef8b30ee35c98d\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 11:59:24 2009 -0700\n\n    Remove new error code in PackageManager.\n    Remove version check in installation code path. Let the install continue irrespective of version number.\n    Check if data needs to be wiped(for downgrades only) in uninstallation code path.\n    Also remove only code and resources when checking for updated system packages(via ota)\n    Add version attribute when persisting package settings\n\ncommit f90797348c5170e6263d249e4fc77f1c0328eb27\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 10:54:07 2009 -0700\n\n    remove trailing white spaces\n    hide new install code in PackageManager\n\ncommit 397eb81265160f73caf9827d381ed6622041d54e\nAuthor: Suchi Amalapurapu \u003casuchitra@google.com\u003e\nDate:   Thu May 7 10:33:23 2009 -0700\n\n    Add version check in install and uninstall code paths.\n    New error code for invalid upgrades in PackageManager\n"
    },
    {
      "commit": "0bfbae2c3241112f14abca6c9792e759e85e1c5e",
      "tree": "cc24c75cf459a2546da9a0f13a45abc4428a68cf",
      "parents": [
        "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 08 14:28:40 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri May 08 14:28:40 2009 -0700"
      },
      "message": "Make the internal storage monitor work correctly when internal storage is very large.\n"
    },
    {
      "commit": "3531fdb1d9a0ca536bd7a7a27d35b3e62c318ad9",
      "tree": "e68ad5210663cdb59b6cbeebda48f13c167f8095",
      "parents": [
        "3cf650dec40c0e40d613c76bd70453205af76ed8",
        "55280a91884b9256e8db6af6a09f28b3feeaa9d8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 13:33:21 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 13:33:21 2009 -0700"
      },
      "message": "merge 55280a9\n\nMerge commit \u002755280a9\u0027\n"
    },
    {
      "commit": "55280a91884b9256e8db6af6a09f28b3feeaa9d8",
      "tree": "ac29de79b8ecec41f2fde6014a1834418a82d2fd",
      "parents": [
        "672f1e2b07d985526bfd5606e6a888005fdcb70c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 07 15:53:46 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 08 12:59:21 2009 -0700"
      },
      "message": "Improve shutdown process to send broadcast for applications.\n\nThis introduces a new class in the base platform for performing a clean\nshutdown (which was copied from the classes in the policies).  It\nincludes new features to send a shutdown broadcast for applications\nto do cleanup, and ot have the activity manager pause the current\nactivity before proceeding with the shutdown.  These facilities are\nalso use to write at the most recent stat files for sync, battery\nand user activity.\n"
    },
    {
      "commit": "1a36071092c209ac763fdb48dcfe87043a2b2cf6",
      "tree": "9d053660a58b8f8119d6b0378a22728e1a3869f0",
      "parents": [
        "aec09d7ea9eaa842b606d26f8eda3cbd8537e0b3",
        "7ec32cc7c33240c50cca31d2fa1b17f6dc2ccead"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 07:21:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 07:21:43 2009 -0700"
      },
      "message": "manual merge of 7ec32cc\n\nMerge commit \u00277ec32cc\u0027\n"
    },
    {
      "commit": "b1a7ffef3a0007b6991b8338460f6aac8cbb11e8",
      "tree": "cd7745a25c1ab0d4c7c136672a8a87634d5fee4c",
      "parents": [
        "fedf566b9e00f18588fc104caafd047af069844a"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 18:06:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 07 15:32:48 2009 -0700"
      },
      "message": "More backup tests\n"
    },
    {
      "commit": "04f7e416b8259f3d61fe34fa637d3608c086e00f",
      "tree": "c1751b950f39943da2f6ba74440a1c6804baef81",
      "parents": [
        "2bbaaf72ea2ca9003f7b6023ccc078445e38c722",
        "39bfa72172560b479fc100bf165883b86f5b2f5d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 10:35:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 10:35:08 2009 -0700"
      },
      "message": "am 39bfa72: Merge change 1158 into donut\n\nMerge commit \u002739bfa72172560b479fc100bf165883b86f5b2f5d\u0027\n\n* commit \u002739bfa72172560b479fc100bf165883b86f5b2f5d\u0027:\n  location: Fix mock provider support\n"
    },
    {
      "commit": "95427cdbd802f7cb529d62bb79953c45b36a8fcf",
      "tree": "ae907dc90b346cd96e62f44ccb589eae2bb0d560",
      "parents": [
        "8dfe5d8c6ba9cb165994f09843abaa6302d63c1d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:27:54 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 13:27:54 2009 -0400"
      },
      "message": "location: Fix mock provider support\n\nAllow mock providers to be used for proximity alerts.\nClear calling identity so mock provider support does not fail due to\nlack of INSTALL_LOCATION_PROVIDER permission.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a15f0fc6f70a5a67e3546e2816f63e6c5174cc6d",
      "tree": "230bef8dc1a519b55a0f40fdc9be1772993b88be",
      "parents": [
        "158b2129cfd50105305ca0c170163d59e9804106",
        "50396063c2fbb1f427cf31e0b8a56567fb5a069c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:51:42 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 08:51:42 2009 -0700"
      },
      "message": "am 5039606: Merge change 1152 into donut\n\nMerge commit \u002750396063c2fbb1f427cf31e0b8a56567fb5a069c\u0027\n\n* commit \u002750396063c2fbb1f427cf31e0b8a56567fb5a069c\u0027:\n  location: Remove two unnecessary variables.\n"
    },
    {
      "commit": "8dfe5d8c6ba9cb165994f09843abaa6302d63c1d",
      "tree": "f6299aadc4c3572ab9e96325332b1b890c76697c",
      "parents": [
        "0528b9b26a9d64ba43acd0e334638303d514b8eb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:49:01 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:49:01 2009 -0400"
      },
      "message": "location: Remove two unnecessary variables.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "158b2129cfd50105305ca0c170163d59e9804106",
      "tree": "bbaa37e9186d5a1b22c3332f75867debccfe0e85",
      "parents": [
        "7c6b6fbe4c2cf621844aba0c9b409f067f574ef0",
        "f792fc59c18aa470eb44cc596d5774115e2d9d02"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 08:24:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 07 08:24:05 2009 -0700"
      },
      "message": "am f792fc5: Merge change 1150 into donut\n\nMerge commit \u0027f792fc59c18aa470eb44cc596d5774115e2d9d02\u0027\n\n* commit \u0027f792fc59c18aa470eb44cc596d5774115e2d9d02\u0027:\n  location: Location Manager wakelock cleanup\n"
    },
    {
      "commit": "0528b9b26a9d64ba43acd0e334638303d514b8eb",
      "tree": "52b5ce3b9887e8b6e5ca7800b3fe41a42144a9f8",
      "parents": [
        "90da134befec804852775be7fd4905a1a188ff00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 10:12:54 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 07 11:02:22 2009 -0400"
      },
      "message": "location: Location Manager wakelock cleanup\n\nLocation Providers are now responsible for their own wakelocks and scheduling.\n\nAlso fixed a deadlock in LocationManagerService in the code for releasing\nwakelocks after client notifications have been received.\nThe fix is to use the Receiver object and mWakeLock for synchronization\n instead of the global mLock lock.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a82842f98d64897e92e1012404863f940bd03d26",
      "tree": "6b55cf2340d0f12aea912936acfc5981383fba75",
      "parents": [
        "5bd1d84aa81162754a20cf87d37e659a5e83fa3d"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Wed Apr 29 15:05:56 2009 +0200"
      },
      "committer": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Thu May 07 11:59:10 2009 +0200"
      },
      "message": "Move ACTION_BATTERY_LOW logic to BatteryService (bug 1630733).\n"
    },
    {
      "commit": "eec4c7737b101355ee3378b2cdc46a0fbf3d15c1",
      "tree": "0b9c6c6f944de600366559f23b3e98c81694ec5f",
      "parents": [
        "cfe5cdd3a13b166e93e5f74e5a23fa9303238bb5",
        "05d24afb61e2fbd137468a065fd58685e1a62d78"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "nobody@android.com",
        "time": "Wed May 06 18:18:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 18:18:49 2009 -0700"
      },
      "message": "am 05d24af: Merge branch \\\u0027readonly-p4-donut\\\u0027 into donut\n\nMerge commit \u002705d24afb61e2fbd137468a065fd58685e1a62d78\u0027\n\n* commit \u002705d24afb61e2fbd137468a065fd58685e1a62d78\u0027:\n  AI 148368: Decrease CPU usage by throttling touch events\n"
    },
    {
      "commit": "05d24afb61e2fbd137468a065fd58685e1a62d78",
      "tree": "7006a5ca5ed49bf0a069031e08e3f33138205e45",
      "parents": [
        "d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3a",
        "e96440fa15b9158690996dd1e5ef2096099d5388"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "nobody@android.com",
        "time": "Wed May 06 17:39:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 17:39:50 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "77066048f48fc99b76c0f828033b1f0c52e8c18e",
      "tree": "3ef017240cc0921f2efa1d6dc797c8ea30f41213",
      "parents": [
        "34f97460bd518b69c1e3a4dc21d02a353510c69e",
        "413cf5f4536b9c029d07f99b1c769c026313cd12"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:18:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 16:18:45 2009 -0700"
      },
      "message": "am 413cf5f: Merge change 1110 into donut\n\nMerge commit \u0027413cf5f4536b9c029d07f99b1c769c026313cd12\u0027\n\n* commit \u0027413cf5f4536b9c029d07f99b1c769c026313cd12\u0027:\n  Track install/removal/update of packages that provide backup services\n"
    },
    {
      "commit": "3799bc241b5cfc876cf082fbf39acc67c90a25b7",
      "tree": "4b3db9da132550555973070a886d5adb9a85931e",
      "parents": [
        "f7598245489c6d28c2673acd269ada2e6e834065"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 16:13:56 2009 -0700"
      },
      "message": "Track install/removal/update of packages that provide backup services\n"
    },
    {
      "commit": "959a4bcc4693b0ea69e1db15a8331c0993cfcc26",
      "tree": "8b38d2fe3e4ae91481520722da6f96f930f57ca6",
      "parents": [
        "37dbf099170ec96df8f3f405345e5255ac8dfc21",
        "b1d790b63e2115be558d451efbc914d1f8dfa846"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 15:49:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 15:49:00 2009 -0700"
      },
      "message": "am b1d790b: Pass null as savedState to indicate a full backup is require\n\nMerge commit \u0027b1d790b63e2115be558d451efbc914d1f8dfa846\u0027\n\n* commit \u0027b1d790b63e2115be558d451efbc914d1f8dfa846\u0027:\n  Pass null as savedState to indicate a full backup is required\n"
    },
    {
      "commit": "37dbf099170ec96df8f3f405345e5255ac8dfc21",
      "tree": "cd61ac2ecadb6713a3e91ecbfabcb031b05b3d5c",
      "parents": [
        "54f2422b487334f6a618fcf8a6ec9353bf651bab",
        "9a6f25033c51390cbcc4eec38f27e0ac35e97f1c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 15:48:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 15:48:59 2009 -0700"
      },
      "message": "am 9a6f250: Merge change 1089 into donut\n\nMerge commit \u00279a6f25033c51390cbcc4eec38f27e0ac35e97f1c\u0027\n\n* commit \u00279a6f25033c51390cbcc4eec38f27e0ac35e97f1c\u0027:\n  Add a Backup Manager interface to request a full backup\n"
    },
    {
      "commit": "b1d790b63e2115be558d451efbc914d1f8dfa846",
      "tree": "9f322b0eeab2171d6d2af0be67dcb816d190fc52",
      "parents": [
        "9a6f25033c51390cbcc4eec38f27e0ac35e97f1c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 12:38:21 2009 -0700"
      },
      "message": "Pass null as savedState to indicate a full backup is required\n"
    },
    {
      "commit": "46758123868d91e7b186aebb27c4c4988dede43e",
      "tree": "dacb54c6da67d1ed7f355a956fc0b335d77af4b8",
      "parents": [
        "c770ed8a6bb7614ed4a85a672e4e6830bed19a95"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:22:00 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 06 11:24:27 2009 -0700"
      },
      "message": "Add a Backup Manager interface to request a full backup\n\nGiven a package name, the Backup Manager schedules a *full* (i.e. non-\nincremental) backup pass for that package.  Also added the state-file\nhandling for distinguishing to the target between the full and incremental\nbackup requests.\n"
    },
    {
      "commit": "e96440fa15b9158690996dd1e5ef2096099d5388",
      "tree": "7b638caafc25dd686026406a662142f5d2a69fe3",
      "parents": [
        "dffbb4dbceb7e90e91b65d02dfdbd1abd6147b94"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "nobody@android.com",
        "time": "Wed May 06 10:27:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 10:27:36 2009 -0700"
      },
      "message": "AI 148368: Decrease CPU usage by throttling touch events\n  We are decreasing CPU usage at the cost of event latency. Events are queued up\n  and released to the app at the specified rate. You can\n  experiment with different values via:\n  adb shell setprop windowsmgr.max_events_per_sec 35\n  The new value is picked up when you let go and retouch the screen. No\n  reboot needed.\n  Also the following changes were made after profiling:\n  - In WindowManagerService, limit the call to userActivity() when we\n  have a flood touch events.\n  - In PowerManagerService, skip checking of permission if the caller\n  is system user.\n  - In PowerManagerService, integrated the functionality of gatherState()\n  into reactivateWakeLocksLocked(). They loop through the same data\n  structure and are called back to back.\n  BUG\u003d1692771\n\nAutomated import of CL 148368\n"
    },
    {
      "commit": "7a1355950172b7a549820e9a2cd4a9b2099ec32f",
      "tree": "dc8940cdf38bae09e3427e44ebf1328861abc20b",
      "parents": [
        "39a8bb26326ceeaad5b46d29bf485329c67ced2f",
        "231cc608d06ffc31c24bf8aa8c8275bdd2636581"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 06 00:28:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 06 00:28:37 2009 -0700"
      },
      "message": "merged 231cc608d06ffc31c24bf8aa8c8275bdd2636581\n"
    },
    {
      "commit": "dccc39b17ab85ad5b970dc299d95c0b53b4e7f25",
      "tree": "62f59b775fe44cdc8488e2da7803f756bc0a3117",
      "parents": [
        "3ed8b3dc42800068951332aea024f9737c25a0ed",
        "231cc608d06ffc31c24bf8aa8c8275bdd2636581"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:17:25 2009 -0700"
      },
      "message": "Merge change 777 into donut\n\n* changes:\n  Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n"
    },
    {
      "commit": "17ac18e280b7667c3f25af2dd913811f8b4c617e",
      "tree": "2f76e2be0850e4ac8eb20656b41d65c38f639b81",
      "parents": [
        "f8e0169b78994bb6f251b5bd3c2ec000b52c8149",
        "f417247fa68524f2f34960f7389168eed7eb4a88"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 16:14:39 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 05 16:14:39 2009 -0700"
      },
      "message": "am f417247: Further development of backup file handling\n\nMerge commit \u0027f417247fa68524f2f34960f7389168eed7eb4a88\u0027\n\n* commit \u0027f417247fa68524f2f34960f7389168eed7eb4a88\u0027:\n  Further development of backup file handling\n"
    },
    {
      "commit": "f417247fa68524f2f34960f7389168eed7eb4a88",
      "tree": "96725ef9323a5617a117c3d8a2944c39f196677d",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 15:50:03 2009 -0700"
      },
      "message": "Further development of backup file handling\n\n    Put backup data in flight into /cache\n    Close the files and delete the intermediates after backup pass\n"
    },
    {
      "commit": "231cc608d06ffc31c24bf8aa8c8275bdd2636581",
      "tree": "9b435c670f0f16751a21ae4678bfbed7d8e159b4",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 27 17:10:36 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 05 15:40:53 2009 -0700"
      },
      "message": "Rewrite SyncStorageEngine to use flat files and in-memory data structures.\n\nThe previous implementation used a database for storing all of its state, which could cause\na significant amount of IO activity as its tables were updated through the stages of a sync.\nThis new implementation replaces that in-memory data structures, with hand-written code\nfor writing them to persistent storage.\n\nThere are now 4 files associated with this class, holding various pieces of its state that\nshould be consistent.  These are everything from a main XML file of account information that\nmust always be retained, to a binary file of per-day statistics that can be thrown away at\nany time.  Writes of these files as scheduled at various times based on their importance of\nthe frequency at which they change.\n\nBecause the database no longer exists, there needs to be a new explicit interface for\ninteracting with the sync manager database.  This is provided by new APIs on IContentService,\nwith a hidden method on ContentResolver to retrieve the IContentService so that various\nsystem entities can use it.  Other changes in other projects are required to update to the\nnew API.\n\nThe goal here is to have as little an impact on the code and functionality outside of\nSyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.\n"
    },
    {
      "commit": "3cbab32afe8004483c3cb9b28c10703d690084a6",
      "tree": "3120f710b7dfa35bb15f4175e3b76900fd16d708",
      "parents": [
        "545ac3a040d3448d43c5d863faf2ded933f5ebe3",
        "22b8787ed4be8d4b7ed5d54802f9913fedb41425"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 05 10:51:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 05 10:51:45 2009 -0700"
      },
      "message": "am 22b8787: Squashed commit of the following:\n\nMerge commit \u002722b8787ed4be8d4b7ed5d54802f9913fedb41425\u0027\n\n* commit \u002722b8787ed4be8d4b7ed5d54802f9913fedb41425\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "22b8787ed4be8d4b7ed5d54802f9913fedb41425",
      "tree": "1055eb6988e1265fa75dbf0ab9f7d08c694c481f",
      "parents": [
        "636274185ed5ee75faf6ef4d84bbb7d5b0371248"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 16:41:53 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 04 20:19:21 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Mon May 4 16:38:11 2009 -0700\n\n    IBackupService now passes ParcelFileDescriptors rather than int fds\n\n    The outlines of backup state file / data file handling are now in place as well\n    in the BackupManagerService.\n\nAuthor: Christopher Tate \u003cctate@google.com\u003e\nDate:   Thu Apr 30 12:40:19 2009 -0700\n\n    Hide the backup stuff for now\n\n    Also adjust based on comments:\n    + changed service intent string to conform to usage guidelines\n    + only publish the IBackupService binder when invoked with the right\n      intent action\n    + docs tweaks\n"
    },
    {
      "commit": "176ef2dfa4f0741ab5fab0545de01d47ad2842be",
      "tree": "ef899b5d0306c764c912e4931a3f5700bc766baf",
      "parents": [
        "4b72c1eb9fb193b8a8cf0b9278b880c3e987f814",
        "1ab6e21237fc9f436be002d4f3821fce963a0a2a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 17:20:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 04 17:20:31 2009 -0700"
      },
      "message": "am 1ab6e21: Merge change 909 into donut\n\nMerge commit \u00271ab6e21237fc9f436be002d4f3821fce963a0a2a\u0027\n\n* commit \u00271ab6e21237fc9f436be002d4f3821fce963a0a2a\u0027:\n  Let screenOrientation\u003d\"behind\" works as expected\n"
    },
    {
      "commit": "3413b8983a3af1c44ab7bafd186a56a5a116e5cc",
      "tree": "b6f540b517eb92d8611ca85b4d6e02ac9078f6eb",
      "parents": [
        "854c8c78c1bce214f6479772d94147070ec6764f"
      ],
      "author": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Fri May 01 17:12:32 2009 -0700"
      },
      "committer": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Fri May 01 19:31:33 2009 -0700"
      },
      "message": "Let screenOrientation\u003d\"behind\" works as expected\n"
    },
    {
      "commit": "e90c0da675a945a86ac06098c1f5694ddc4efb23",
      "tree": "f34f4c0f9409846103b59c362f8192f028d58d49",
      "parents": [
        "ee96dc5113922fdc7c678f791cb65ac8bef21f4b",
        "275555c8eb3fb5df6e7320873b88b77cdde85a9e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 12:39:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 01 12:39:03 2009 -0700"
      },
      "message": "am 275555c: location: Add support for location providers outside of the \n\nMerge commit \u0027275555c8eb3fb5df6e7320873b88b77cdde85a9e\u0027\n\n* commit \u0027275555c8eb3fb5df6e7320873b88b77cdde85a9e\u0027:\n  location: Add support for location providers outside of the system process.\n"
    },
    {
      "commit": "275555c8eb3fb5df6e7320873b88b77cdde85a9e",
      "tree": "96c3bfe004179e2c08e87bf8784ad278dfdfe53d",
      "parents": [
        "767db0a1ec760042b145e7c19a672c7180ad10f3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 11:30:34 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 15:06:31 2009 -0400"
      },
      "message": "location: Add support for location providers outside of the system process.\n\nAlso added new permissions android.permission.INSTALL_LOCATION_PROVIDER\nand android.permission.INSTALL_LOCATION_COLLECTOR to the public API.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "ac7a3de471da65ae3111560a1404c12985c8741f",
      "tree": "59db348eb9851925405b50a304ddc2c8081b6d5d",
      "parents": [
        "da7b5e2dacb5a6010c23c4c9651389da58347a45",
        "15e3d0f082d551f8819fbe4b0d502cc108627876"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 05:26:44 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 01 05:26:44 2009 -0700"
      },
      "message": "am 15e3d0f: location: Use ILocationProvider Binder interface for all loc\n\nMerge commit \u002715e3d0f082d551f8819fbe4b0d502cc108627876\u0027\n\n* commit \u002715e3d0f082d551f8819fbe4b0d502cc108627876\u0027:\n  location: Use ILocationProvider Binder interface for all location providers.\n"
    },
    {
      "commit": "15e3d0f082d551f8819fbe4b0d502cc108627876",
      "tree": "ee0b12d89c14986b5447e7a000fd2a3f91fb6c13",
      "parents": [
        "a56b318cf2d4c3700899f9de394c5635761dda66"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 07:53:28 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 01 08:24:47 2009 -0400"
      },
      "message": "location: Use ILocationProvider Binder interface for all location providers.\n\nThis change eliminates the LocationProviderImpl class which had been used\nfor location providers running in the system process.\nNow the LocationProvider base class is only used to implement the\nLocationManager.createProvider() method for retrieving provider information.\nAdded a new IGpsStatusProvider interface for providers that serve GPS status.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "718d8a2d7ff3e864a73879eb646f46c14ab74d07",
      "tree": "0368a95bc5cf042971f7151547cbfa221674b020",
      "parents": [
        "90b6abd83952e42fe2bb15af4fb117d427e640f0"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Apr 29 17:53:20 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Apr 30 17:28:09 2009 -0700"
      },
      "message": "decouple SyncAdapter from ContentProvider\n"
    },
    {
      "commit": "171fd532135b1bf2e585d3e28a6e5b1bd9ddecdc",
      "tree": "7e11fddf30950918a3873c8aeff67aecb9f3a168",
      "parents": [
        "4ba120d2ce706b1bcc34486b25b2d45463e07d9f",
        "2cd006c8f927d3e364c32f946b844377bdc56d3e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 17:03:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 30 17:03:26 2009 -0700"
      },
      "message": "am 2cd006c: Merge change 837 into donut\n\nMerge commit \u00272cd006c8f927d3e364c32f946b844377bdc56d3e\u0027\n\n* commit \u00272cd006c8f927d3e364c32f946b844377bdc56d3e\u0027:\n  Make the home screen come up in the simulator.\n"
    },
    {
      "commit": "54796e740584b50323fe742a27e5d3f5be01ca06",
      "tree": "642dc67260a8a17a2ff1b1f95b39487ed82a7c05",
      "parents": [
        "36742528f89fd13e65c8652cc684cffc9e97b567"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 30 15:16:30 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 30 15:16:30 2009 -0700"
      },
      "message": "Make the home screen come up in the simulator.\n"
    },
    {
      "commit": "171134a0e292490b9e0737d03062cf560ef7d618",
      "tree": "a63628cbaf2c9655d392ec55f1a29ebae36abb9e",
      "parents": [
        "60c8b8e48b239b99cfc8760a63f096255c5b88c5",
        "021dce4198afbf602109ba5807a193c437b05361"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 12:34:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 30 12:34:10 2009 -0700"
      },
      "message": "am 021dce4: Merge change 811 into donut\n\nMerge commit \u0027021dce4198afbf602109ba5807a193c437b05361\u0027\n\n* commit \u0027021dce4198afbf602109ba5807a193c437b05361\u0027:\n  Add android.backup.BackupManager\n"
    },
    {
      "commit": "a8bf815c6153290b173f34b071dddb0a0034a115",
      "tree": "0fa451a3a1035092ce916e3d6a25b8e8553f03bd",
      "parents": [
        "487529a70cd1479ae8d6bbfb356be7e72542c185"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 30 11:36:21 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 30 11:36:21 2009 -0700"
      },
      "message": "Add android.backup.BackupManager\n\nAlso tweak the dataChanged() api to have the client supply a package name.  We\ndon\u0027t necessarily TRUST this, but we use it to narrow the set of packages requesting\na backup pass, no longer blithely scheduling a pass for all packages associated\nwith the caller\u0027s uid.\n"
    },
    {
      "commit": "f8997690da3790a1ff87f1f96a6e68fbb79b5ddc",
      "tree": "620dc745ffd15f960b350675f44fe85886f96ef4",
      "parents": [
        "55a664f87bc073c775e3d1b36beaf4783697b277",
        "487529a70cd1479ae8d6bbfb356be7e72542c185"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 29 15:16:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 15:16:57 2009 -0700"
      },
      "message": "am 487529a: First baby steps towards settings backup\n\nMerge commit \u0027487529a70cd1479ae8d6bbfb356be7e72542c185\u0027\n\n* commit \u0027487529a70cd1479ae8d6bbfb356be7e72542c185\u0027:\n  First baby steps towards settings backup\n"
    },
    {
      "commit": "487529a70cd1479ae8d6bbfb356be7e72542c185",
      "tree": "ca19a948a28e9d4eb7b4c9890b006e43b89d7a6d",
      "parents": [
        "dc67739af90aa31a0b546c14bf1e68e6acbb8375"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 29 14:03:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 29 14:49:30 2009 -0700"
      },
      "message": "First baby steps towards settings backup\n\nThis change adds a sketched outline of the backup system architecture, with\nall of the major pieces represented other than client-side helpers for\nspecific types of data.  IBackupManager and BackupService are public so that\nwe can write test apps against SDK-domain symbols from the outset.\n\nWhat code exists in this change hasn\u0027t been tested and may crash.  It\u0027s the\nbeginnings of the real implementation but of course is barely begun.\n"
    },
    {
      "commit": "212548f634e80f419b29f547afb9472d7353cf2b",
      "tree": "ef28129cafb75dbc50e330b560f149b22ee8f155",
      "parents": [
        "c2839e087041b16a1ee7292b85459a396c25c771",
        "76b25e5e78dde3443f9c57c47e5989ad8ff43771"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:38 2009 -0700"
      },
      "message": "am 76b25e5: Merge change 692 into donut\n\nMerge commit \u002776b25e5e78dde3443f9c57c47e5989ad8ff43771\u0027\n\n* commit \u002776b25e5e78dde3443f9c57c47e5989ad8ff43771\u0027:\n  location: Optimize use of mProviders ArrayList.\n"
    },
    {
      "commit": "73ee32d41b4874f650be20f2f3e3c0c7d172e33c",
      "tree": "925776f9016447927b583727ccfcc89285dc3bff",
      "parents": [
        "05d024329604bb92dca02f1ecdff4876d6d7b28c",
        "b8adcad61d9225ecdabde1a01b73455f484cbed7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "message": "am b8adcad: location: Remove obsolete fake provider support.\n\nMerge commit \u0027b8adcad61d9225ecdabde1a01b73455f484cbed7\u0027\n\n* commit \u0027b8adcad61d9225ecdabde1a01b73455f484cbed7\u0027:\n  location: Remove obsolete fake provider support.\n"
    },
    {
      "commit": "05d024329604bb92dca02f1ecdff4876d6d7b28c",
      "tree": "6b1cc8baa4eab07e20e9bad7169953cdddae61a4",
      "parents": [
        "8749fecd99dbc468a79b993ff9926cded8e0552f",
        "79762a3ee34eb8be5549bcb183af844b6f19c266"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "message": "am 79762a3: location: Move DummyLocationProvider.java and LocationProvid\n\nMerge commit \u002779762a3ee34eb8be5549bcb183af844b6f19c266\u0027\n\n* commit \u002779762a3ee34eb8be5549bcb183af844b6f19c266\u0027:\n  location: Move DummyLocationProvider.java and LocationProviderImpl.java to the internal package.\n"
    },
    {
      "commit": "7c8dbb5418f69e75b2f06547b94e4fc4d3190ec1",
      "tree": "22d55ffcb265ef48d6870b1ca65971d759d0c578",
      "parents": [
        "070d4c023a4b67e9e29d1c21a7bf9f25d7528c03",
        "7cb8ed23ab81b7cffdff6fc1cad473f55732ea66"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:34 2009 -0700"
      },
      "message": "am 7cb8ed2: Merge change 414 into donut\n\nMerge commit \u00277cb8ed23ab81b7cffdff6fc1cad473f55732ea66\u0027\n\n* commit \u00277cb8ed23ab81b7cffdff6fc1cad473f55732ea66\u0027:\n  location: Run LocationManagerService in a separate thread.\n"
    },
    {
      "commit": "093dda9dec68029278cdf28b2a2d92bc5cdedcbc",
      "tree": "59d92542c9cb0ffd562ad67504405088a6872a07",
      "parents": [
        "d7047b0ca1c42ef7519aede116f7a2ee2b03595a",
        "5fa153302c1c7f179bfd6ddd301e7526b8c06de5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:22 2009 -0700"
      },
      "message": "am 5fa1533: Merge change 482 into donut\n\nMerge commit \u00275fa153302c1c7f179bfd6ddd301e7526b8c06de5\u0027\n\n* commit \u00275fa153302c1c7f179bfd6ddd301e7526b8c06de5\u0027:\n  location: Location Manager wakelock cleanup, phase 2\n"
    },
    {
      "commit": "137b0c9d6430ccb519c82a1198048cf413e06c5e",
      "tree": "8c7a982f1f1675774c54d7d474ef364c5034e3e8",
      "parents": [
        "e82dc4205285a40d6c2227e362c30ce24c96a552",
        "0b8ffd17bc6641fc522db3e842a868b6cdbf6d82"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:11:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:11:27 2009 -0700"
      },
      "message": "am 0b8ffd1: Merge change 460 into donut\n\nMerge commit \u00270b8ffd17bc6641fc522db3e842a868b6cdbf6d82\u0027\n\n* commit \u00270b8ffd17bc6641fc522db3e842a868b6cdbf6d82\u0027:\n  More optimization of dumpsys output.\n"
    },
    {
      "commit": "662ea09a71ab241774456f7bd4791a3532904da3",
      "tree": "0ec2f476da8848d85cd4b03202f9369098b0c79e",
      "parents": [
        "5f2788bc9d947f7793aaea06f7e21d6b74c98826"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 16:56:30 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 21:38:06 2009 -0400"
      },
      "message": "location: Optimize use of mProviders ArrayList.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b8adcad61d9225ecdabde1a01b73455f484cbed7",
      "tree": "b88cf6f21915391f1fbc1f0a910112215aeafd57",
      "parents": [
        "79762a3ee34eb8be5549bcb183af844b6f19c266"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 13:23:57 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 13:23:57 2009 -0400"
      },
      "message": "location: Remove obsolete fake provider support.\n\nNow that we have GPS support in the emulator and public APIs for mock providers,\nthe fake provider support is no longer needed.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "79762a3ee34eb8be5549bcb183af844b6f19c266",
      "tree": "e3cf612d4596fc4f5edf8f2edfab81776de48d79",
      "parents": [
        "eedf815a2bd44c365a6885553a52cd2fcbfdce8c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 11:31:44 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 12:42:08 2009 -0400"
      },
      "message": "location: Move DummyLocationProvider.java and LocationProviderImpl.java to the internal package.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3d12b51ee38537f6760a833618948f936e75561d",
      "tree": "18429d3fc13f7dd8850522d2b56a08033104a3c8",
      "parents": [
        "17f213bc528cf296e133e9ec9c9e0ce5dce41781"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 23:25:35 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 28 07:28:33 2009 -0400"
      },
      "message": "location: Run LocationManagerService in a separate thread.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "48f17518223a2917fd82195004fbb206cb9a05a3",
      "tree": "d87449f59ab8b22dada31f595c688bcee9bd3961",
      "parents": [
        "0a57e5b730beaea75c1c1b1ca51b40c463918b4d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 23 09:12:08 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Apr 23 19:27:41 2009 -0700"
      },
      "message": "location: Location Manager wakelock cleanup, phase 2\n\nRemove two second timeout for wakelock when broadcasting events to\nlocation listeners. Instead, hold wakelock until receipt of the event\nis acknowledged, either via a Binder call or the\nPendingIntent.OnFinished interface.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0b8ffd17bc6641fc522db3e842a868b6cdbf6d82",
      "tree": "ef8d5d562a1c8d61b997ed7ed522dc9034e85548",
      "parents": [
        "56137a258410bd08ecd0d9478f82816e1d0c6609",
        "1d442e0d990b581357f33f5463c7c5cb49b551e8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 18:33:57 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 18:33:57 2009 -0700"
      },
      "message": "Merge change 460 into donut\n\n* changes:\n  More optimization of dumpsys output.\n"
    },
    {
      "commit": "1d442e0d990b581357f33f5463c7c5cb49b551e8",
      "tree": "58963b9ba095e179ba7c63e52dfd525b93cb978e",
      "parents": [
        "a0c9e8526b094e3b4f2c2747622059215d00516f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 20 18:14:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 22 18:03:21 2009 -0700"
      },
      "message": "More optimization of dumpsys output.\n\nThere are three major classes of changes here:\n\n- Avoid writing lines where their values are often empty, false, or some other typical thing.\n- Use partial writes to the PrintWriter to avoid creating temporary strings.\n- Use StringBuilder where we need to generate real String objects (and where possible cache the result).\n"
    },
    {
      "commit": "74008f608af0c567456d37e63d48643689388c74",
      "tree": "02354593bed51d5c4bb0ac5f9b44032034cbbaaf",
      "parents": [
        "6fc52c4928ec8a658d7eb0b7881fcbc879aeb18c",
        "644cf62660c87a9b8d5bcb22412cc2ad2aeea291"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 22 17:12:34 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 22 17:12:34 2009 -0700"
      },
      "message": "Merge donut into master\n"
    },
    {
      "commit": "a0e3cd3853da1d14da4918c49d25128622cf0610",
      "tree": "ade384126851d16b3905ac8fa95052cd1be123bb",
      "parents": [
        "9ce7217c8eb4141bda68b85641814958da58a7ab"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 21:27:33 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 21:27:33 2009 -0700"
      },
      "message": "Fix timing problem that was introduced when we removed location provider polling\n\nThe wake lock was not being held until after we enabled location tracking,\nso the check to see if the wake lock was held before propogating a\nnew location prevented us from receiving a network location as soon as we\nenabled the provider.\nThis check is not necessary anyway, so this change removes it.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9ce7217c8eb4141bda68b85641814958da58a7ab",
      "tree": "dc3e526ad5922276cf884b9d90b26997bbd334ff",
      "parents": [
        "61fc286e8f7e33d0dd2a1e72ae9ef73ed3f42a00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:18:41 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:18:41 2009 -0700"
      },
      "message": "location: Remove support for a message that never actually gets sent.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "61fc286e8f7e33d0dd2a1e72ae9ef73ed3f42a00",
      "tree": "51149a9de5eecf77bc638da2941343d0369e33b7",
      "parents": [
        "22b8f5e4b7b0ddd7ed5c90a8710036b549e8858d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:02:52 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 20:02:52 2009 -0700"
      },
      "message": "location: Remove unnecessary code that monitors the screen on/off state.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3ea1f8759ddc0b714558d3c8f1e153d1d89f301f",
      "tree": "c49227d660d2cca920f45a4571b0af706dff44b6",
      "parents": [
        "1130ba283051da26a6ca53e2add854f7134bc552",
        "b30475ecef84303600302b6790420bcc66631bf0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 15:12:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 15:12:25 2009 -0700"
      },
      "message": "Merge change 372 into donut\n\n* changes:\n  WifiService: Cleanup parsing of wifi scan results.\n"
    },
    {
      "commit": "b30475ecef84303600302b6790420bcc66631bf0",
      "tree": "cc81531d98e8cda2a1e6c2188ac3f9cc3fff4830",
      "parents": [
        "31d40ab260bbf8b73a50dea29995192579a11947"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 13:55:07 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 13:55:07 2009 -0700"
      },
      "message": "WifiService: Cleanup parsing of wifi scan results.\n\nAlso add support for possitive RSSI values, fixing b/1786306\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6de3154674a268b0e109990a1f4c2742dfdc9c66",
      "tree": "3250edcf85033305a6924482775db0e5334e5ea1",
      "parents": [
        "31d40ab260bbf8b73a50dea29995192579a11947"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 12:13:35 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 12:13:35 2009 -0700"
      },
      "message": "location: Add some null pointer checks.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "31d40ab260bbf8b73a50dea29995192579a11947",
      "tree": "70bd2ce89d435aa3104cd5abd9abb2f3ed58bd86",
      "parents": [
        "5261402c795aa3e5fb4807e70d38bfc98e76f750",
        "e2b44c5aaff312fbb00e66dd42b8444938017672"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 09:40:38 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 09:40:38 2009 -0700"
      },
      "message": "Merge change 360 into donut\n\n* changes:\n  location: Location Manager wakelock cleanup, phase 1\n"
    },
    {
      "commit": "e2b44c5aaff312fbb00e66dd42b8444938017672",
      "tree": "197313bebcf481c50c2f9fdcc40ce4fc7a880b94",
      "parents": [
        "98cb66797422c4ccdee6f1a07636146d784a471b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 09:38:18 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 21 09:38:18 2009 -0700"
      },
      "message": "location: Location Manager wakelock cleanup, phase 1\n\nMove cell and wifi lock from LocationManagerService to NetworkLocationProvider\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c421e9ad74cd4244bf51bb68dbe3019b3959b290",
      "tree": "e304bc5695407a9885e0db0f9db28eec7fba83f7",
      "parents": [
        "ac9fd3e423f568c671954d20945e2f2997842a75",
        "69d27108e493c9d0b7e51199799f85780d618b38"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:54:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:54:14 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-master\u0027\n"
    },
    {
      "commit": "69d27108e493c9d0b7e51199799f85780d618b38",
      "tree": "acf527be9200611b16e436154e6f7e4d65d5752b",
      "parents": [
        "74e258d63eccef41da923adad47bd2b20056aa5f"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:52:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:52:56 2009 -0700"
      },
      "message": "AI 146935: am: CL 146934 Make TI Wifi driver choice framework-independent - part 1\n  Original author: dimitrysh\n\nAutomated import of CL 146935\n"
    },
    {
      "commit": "6d31eb895340f3b25f1388dd4ce1a4314de9a267",
      "tree": "e1f6659bafeab78dcce7d4c70ab74739b1d5dbd8",
      "parents": [
        "4482d8c8e41b02786efae97987394f60b68d6f6e",
        "42554c10b61f747c0689f2304f19a2af17b886ce"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:50:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:50:17 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "42554c10b61f747c0689f2304f19a2af17b886ce",
      "tree": "6659b4ca768e109d0712f8bb6f5fa5527bc794c0",
      "parents": [
        "c64edde69d18498fb2954f71a546357b07ab996a"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "",
        "time": "Mon Apr 20 09:48:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 20 09:48:54 2009 -0700"
      },
      "message": "AI 146934: Make TI Wifi driver choice framework-independent - part 1\n  BUG\u003d1786365\n\nAutomated import of CL 146934\n"
    },
    {
      "commit": "98cb66797422c4ccdee6f1a07636146d784a471b",
      "tree": "aed685bfa6fd15157085e3a1bb259ac4115ead15",
      "parents": [
        "981980e5da71e794d33eaea8c12bfe6e14745e90"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 18:03:44 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 18:06:18 2009 -0400"
      },
      "message": "More Location Manager cleanup:\n\nMove LocationCollector support out of GpsLocationProvider.\nDon\u0027t disable GPS when screen is off.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2f82c4eb0b4d315481ad79725ad6f52c5ec69685",
      "tree": "ef64e238443565b8f3e39a5079e4db27e8cd64b5",
      "parents": [
        "21b5817aaa2f0a61edff8752ed85130aa8cf7def"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 08:24:10 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 17 17:00:32 2009 -0400"
      },
      "message": "location: Generalize support for location provider usage tracking.\n\nThis replaces two different mechanisms that were used for GPS and Netork\nlocation provider tracking.\nMove BatteryStats logging of GPS usage from LocationManagerService to\nGpsLocationProvider.\nClean up tracking of location listeners in LocationManagerService and remove\nsome HashMaps that are no longer needed.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a55c321329ae52a2db7a4f2bd36673a20b8f271d",
      "tree": "97ee2b13cf6c464305930be581bcf14c072e7a55",
      "parents": [
        "967f7c169c0ff8723a72fce7073f591dcfab018d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 15 11:10:11 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Apr 15 11:17:37 2009 -0400"
      },
      "message": "location: Move geocoding support from ILocationProvider to a new interface.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f2aad4a468da1958bb12277d42754ccb42038537",
      "tree": "99d98bd1eff6727fc85ef81dfc6118c6f1d7b052",
      "parents": [
        "ab6f5c6e86276602605382be73b8df2b08ed494d",
        "f210d6b75e2c0fe60b90c074ff9f615c1137f23e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 13:15:43 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 13:15:43 2009 -0700"
      },
      "message": "Merge change 132 into donut\n\n* changes:\n  Let\u0027s do bug #1769910 actually right.\n"
    },
    {
      "commit": "f210d6b75e2c0fe60b90c074ff9f615c1137f23e",
      "tree": "112240b6d4c3d2d1f78e7badde174cbe11d1f31b",
      "parents": [
        "7680d67dc7445ba65a4fc4307afe24b20b333a52"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 13 18:42:49 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 13 18:42:49 2009 -0700"
      },
      "message": "Let\u0027s do bug #1769910 actually right.\n\nMy original implementation was computing averages and medians.  Now we do binning, as requested.  So much simpler, too!  In addition, it fixes a bug where when hoping across activities we were only accounting for the last activity as the total time; now we count the time from the start of the initial activity.\n\nThis also includes some reduction and optimization of the activity manager dumpsys output.\n"
    },
    {
      "commit": "0887540fa8cad30fa7688d3cd86904d61c9550c3",
      "tree": "f547c5f4b59e31382c6a7a535d3bb3a8f01f9030",
      "parents": [
        "b7c3675aefea21a4b49a19f5fd56fb93a55146c8",
        "cfe6524071624b6679e5fa4db847328e8d0317c8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 14:12:27 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 14:12:27 2009 -0700"
      },
      "message": "Merge change 63 into donut\n\n* changes:\n  Remove references to android.util.Config\n"
    },
    {
      "commit": "06ba55476ee9703c876d223cd41bd73c5f85f42d",
      "tree": "597ed553c488fdb9ff882887c45b1e2e1fe4f66f",
      "parents": [
        "4d08efb7d80db0e2d69c60a5fee6a923e440daac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 09 16:03:56 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Apr 09 16:03:56 2009 -0700"
      },
      "message": "Integrate new power connnect/disconnect broadcasts\n\nTwo new broadcasts, Intent.ACTION_POWER_CONNECTED and\nIntent.ACTION_POWER_CONNECTED, that are issued when the device is plugged\nand unplugged from USB or AC power.  This pulls two changes from the\nopen-source Gerrit repo into the internal Donut codeline:\n\n1241 fda6fae Added broadcasts for external power events.\n9491 37f8ca1 Fix system service crash when booting while on battery power\n\nThe current.xml API description has also been updated to include the\nnew Intent fields; the new API was approved in the original OSS change.\n"
    },
    {
      "commit": "cfe6524071624b6679e5fa4db847328e8d0317c8",
      "tree": "4600c8162173aa35874b2d9604a7a126692e652b",
      "parents": [
        "7680d67dc7445ba65a4fc4307afe24b20b333a52"
      ],
      "author": {
        "name": "Dave Bort",
        "email": "dbort@android.com",
        "time": "Thu Apr 09 14:51:04 2009 -0700"
      },
      "committer": {
        "name": "Dave Bort",
        "email": "dbort@android.com",
        "time": "Thu Apr 09 14:51:04 2009 -0700"
      },
      "message": "Remove references to android.util.Config\n\nThe semantics of Config.DEBUG will be changing soon, and all other\nConfig.* fields will become deprecated/hidden.\n"
    },
    {
      "commit": "3267062d9c6a34786025bc25abe6484244c731cb",
      "tree": "2647654843897960a391664104c93631b9d5ed42",
      "parents": [
        "12abafd643abd92a2ae2037e3f7477a6b25d2517",
        "babf19136cc373e5f169abc9be5c1f25f243d9d0"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 19:24:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 19:24:05 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-master\u0027\n"
    },
    {
      "commit": "babf19136cc373e5f169abc9be5c1f25f243d9d0",
      "tree": "c0658fd1cb9b58b8388bafdb739f7fe93ea553d0",
      "parents": [
        "5b13cb6486188d9e37dacbd730ad9bf196bc54d3"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 19:22:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 19:22:53 2009 -0700"
      },
      "message": "AI 145203: am: CL 145201 Hold wakelock while delaying for audio route switch after headset unplug.\n  Fixes bug where we go to sleep before switching audio, and we lose audio until the apps CPU wakes up again.\n  Original author: npelly\n\nAutomated import of CL 145203\n"
    },
    {
      "commit": "7680d67dc7445ba65a4fc4307afe24b20b333a52",
      "tree": "de7e01c3ca8a952a4edbad57ea3f3b604e3f814a",
      "parents": [
        "50457c1fc2bea834e64490f95e9f7e424a162b46",
        "9ac932179c704822c7ae5c7accb02119b578254e"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 15:10:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 15:10:29 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "9ac932179c704822c7ae5c7accb02119b578254e",
      "tree": "4360e7ccadf2309d0b4a67a9e28fa1b4681dbcc7",
      "parents": [
        "939151f1eb3d2522ed952d14a9bb79235a5d7126"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "",
        "time": "Wed Apr 08 15:09:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 08 15:09:15 2009 -0700"
      },
      "message": "AI 145201: Hold wakelock while delaying for audio route switch after headset unplug.\n  Fixes bug where we go to sleep before switching audio, and we lose audio until the apps CPU wakes up again.\n  BUG\u003d1774615\n\nAutomated import of CL 145201\n"
    },
    {
      "commit": "6447ca30b8e41c22c7214f201120327057e356dc",
      "tree": "0cd18bdbb4f924b95567a36b1834115cc2fa6d3a",
      "parents": [
        "60a51818483dae32d18414a4f128ca057e267e8c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 07 19:50:08 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Apr 07 19:50:08 2009 -0700"
      },
      "message": "Fix issue #1769910 (Track activity launch times)\n\nThe usage stats service now collects per-activity launch time stats.  There are a number of fixes and improvements to its statistics management and collection; it now operates its calendar in GMT and ensures that for checkin purposes it always reports one day and only one complete day to the checkin service.\n\nAlso change the checkin option from \"-c\" to \"--checkin\" since it is really a special thing.\n"
    },
    {
      "commit": "c92bb0cfe3dac076bc621f4c2844b3174561d169",
      "tree": "ca072a9f4a8b181af8305307cf745c939f6114ec",
      "parents": [
        "974bd7f2989fc20b44af308c2569f66ec8952851",
        "c1e8aa4c448807fc3ee9d21e8b67bb886fa065aa"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "",
        "time": "Mon Apr 06 10:53:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 06 10:53:41 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-master\u0027\n"
    }
  ],
  "next": "c1e8aa4c448807fc3ee9d21e8b67bb886fa065aa"
}
