)]}'
{
  "log": [
    {
      "commit": "2c13b9d155e3beed801dc472ee44a67cc94edbb2",
      "tree": "d71b0e80dbaa13966717900e58f5cdfdb5c14bfe",
      "parents": [
        "a4008606a2c006c7e1ab1c064d935c45da20c07a",
        "e0cadd7cd811a674df62279dec00d17678b2c501"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Mon Nov 16 15:25:01 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 16 15:25:01 2009 -0800"
      },
      "message": "am e0cadd7c: Merge change Iffbb6e55 into eclair\n\nMerge commit \u0027e0cadd7cd811a674df62279dec00d17678b2c501\u0027 into eclair-plus-aosp\n\n* commit \u0027e0cadd7cd811a674df62279dec00d17678b2c501\u0027:\n  Make perf metrics collection \u0026 output via instrumentation simpler\n"
    },
    {
      "commit": "4f414bd7a76fc7ff063db70d1cdd09303c28cbe5",
      "tree": "9c05d4e13d3325b1c85ac5bf54914aace7f0e9ea",
      "parents": [
        "075997f12e2fb2b646172a92926be0f26f739099"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Fri Nov 06 20:53:47 2009 -0800"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Nov 10 19:26:14 2009 -0800"
      },
      "message": "Make perf metrics collection \u0026 output via instrumentation simpler\n\n- Added includeDetailedStats metadata to TimedTest for collecting additional\n  metrics like memory usage and binder transactions\n- Added PerformanceCollectorTestCase interface for hard-typing test class as\n  performance test while still able to inherit from instrumenation test classes\n- Reverted previous changes to PerformanceTestBase, will deprecate\n  PerformanceTestBase/Case in a future CL\n- Removed \u0027performance.\u0027 prefix from keys written to instrumentation output\n"
    },
    {
      "commit": "1d225d67d94049151fef90bc431dcd5def9e948a",
      "tree": "9547eab544673284fa10f27ca1000ace7fa7869a",
      "parents": [
        "0fc2131aa2a164288adcc6f3ec9e0fe88494fd93",
        "e8228afb2bd005ae25ce58719f9d678389b26a16"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Fri Oct 30 17:07:21 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 30 17:07:21 2009 -0700"
      },
      "message": "am e8228afb: Merge change I92cdc5ed into eclair\n\nMerge commit \u0027e8228afb2bd005ae25ce58719f9d678389b26a16\u0027 into eclair-plus-aosp\n\n* commit \u0027e8228afb2bd005ae25ce58719f9d678389b26a16\u0027:\n  PerformanceCollector: Collect \u0026 report perf measurements in key/value form\n"
    },
    {
      "commit": "075997f12e2fb2b646172a92926be0f26f739099",
      "tree": "80752d7d775d710f8be21f405a0f0979b67e110f",
      "parents": [
        "59625fa86ad0e520931361aba120e2d868f01618"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Oct 27 22:01:09 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Wed Oct 28 14:32:05 2009 -0700"
      },
      "message": "PerformanceCollector: Collect \u0026 report perf measurements in key/value form\n\n- Added new functions to PerformanceCollector and PerformanceResultsWriter\n- Modified unit tests to test new functionality and fix flakiness reported in\n  2218327 and 2118268\n- Added PerformanceCollectorTest to small suite\n"
    },
    {
      "commit": "a4f6c96f1acb4f0e7aaa233c2a5b884aaac2f573",
      "tree": "d7221d613fb582bf9b5541afcd25aaa1f6e9814e",
      "parents": [
        "935c3eb25b0c98fa18bad36c1f21f10b296f9387",
        "348b92bd513087369ac682e29620d7829fa1381b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Oct 08 15:10:25 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 08 15:10:25 2009 -0700"
      },
      "message": "am 348b92bd: Merge change Iee227ace into eclair\n\nMerge commit \u0027348b92bd513087369ac682e29620d7829fa1381b\u0027 into eclair-plus-aosp\n\n* commit \u0027348b92bd513087369ac682e29620d7829fa1381b\u0027:\n  GPS: Fix problem with SUPL when SUPL APN is already active.\n"
    },
    {
      "commit": "03d246779ea65fc2bd10d0b4f32620f45211133a",
      "tree": "c0bba5558070d24e11c324af60f716f580229703",
      "parents": [
        "9d5b58991ef90e91b3c942c80ae3502ed62d10aa"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Oct 08 15:45:03 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Oct 08 17:24:21 2009 -0400"
      },
      "message": "GPS: Fix problem with SUPL when SUPL APN is already active.\n\nUse ConnectivityManager.CONNECTIVITY_ACTION broadcast in LocationManagerService\nto notify GPS when SUPL connection is ready instead of TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED,\nwhich is not sent in all cases.\nExpand LocationProvider.updateNetworkState() to include NetworkInfo object.\n\nFixes bug b/2155661\n\nChange-Id: Iee227ace7d536b36cf7973e3e6a8b7a621ce6565\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "6c0af3b2453ae25fb08fda966c4701b37a86960d",
      "tree": "bb138ee700cabf14989f0eb03c3c3b4b12192906",
      "parents": [
        "1d16200eefd1ce9d47fde70625fc3f4812c0d361",
        "5bba632d877c2878384ff21566c8eb6a1a22f37b"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Oct 07 11:55:10 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:55:10 2009 -0700"
      },
      "message": "am 5bba632d: - hide Entity and all its references - remove updateEntity and insertEntity, since they are not   used - add the RawContacts.Entity class, which is used in lieu of the   android.content.Entity\n\nMerge commit \u00275bba632d877c2878384ff21566c8eb6a1a22f37b\u0027 into eclair-plus-aosp\n\n* commit \u00275bba632d877c2878384ff21566c8eb6a1a22f37b\u0027:\n  - hide Entity and all its references\n"
    },
    {
      "commit": "1eeca9291050ef0acc54e8abdedc065fb6be13fc",
      "tree": "7b1fdf46246cd3b065d91ee56c931ab269753a38",
      "parents": [
        "031e4ac7dd0405e16664d2ec5311d2e96221ce23",
        "f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Oct 07 11:46:24 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:46:24 2009 -0700"
      },
      "message": "am f7ae77cd: account manager api review changes\n\nMerge commit \u0027f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d\u0027 into eclair-plus-aosp\n\n* commit \u0027f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d\u0027:\n  account manager api review changes\n"
    },
    {
      "commit": "5bba632d877c2878384ff21566c8eb6a1a22f37b",
      "tree": "e8bd6afd4bb1df723420de4a6e7f17ab3a253427",
      "parents": [
        "5163cd6d1cb664977eb4473b98657c7e92ae430e"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Oct 05 14:21:12 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Oct 06 11:51:19 2009 -0700"
      },
      "message": "- hide Entity and all its references\n- remove updateEntity and insertEntity, since they are not\n  used\n- add the RawContacts.Entity class, which is used in lieu of the\n  android.content.Entity\n"
    },
    {
      "commit": "f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d",
      "tree": "b08af808ac180e30716166a7c41dbf052246b727",
      "parents": [
        "48e6725c828a8d420d43925b0c9a9a915a8c4e2f"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Oct 02 17:19:31 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Oct 05 11:19:49 2009 -0700"
      },
      "message": "account manager api review changes\n"
    },
    {
      "commit": "264f9b4530d6ecbd9e9d02cf5c61c7b19f4c6376",
      "tree": "b717af1949faca40739282bb18d2df17d8fd0a18",
      "parents": [
        "90183823b00ad5ce04948cf03d827a47c82ca445",
        "3348f14b3d46b172a5b557f81aac526b7e8bf5fb"
      ],
      "author": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Tue Sep 29 22:58:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 29 22:58:53 2009 -0700"
      },
      "message": "am 3348f14b: Remove GAIA string\n\nMerge commit \u00273348f14b3d46b172a5b557f81aac526b7e8bf5fb\u0027 into eclair-plus-aosp\n\n* commit \u00273348f14b3d46b172a5b557f81aac526b7e8bf5fb\u0027:\n  Remove GAIA string\n"
    },
    {
      "commit": "3348f14b3d46b172a5b557f81aac526b7e8bf5fb",
      "tree": "af66a1968163d529addff9c15b776102a3ecf91a",
      "parents": [
        "b4ee8349cc7e64a264335ee2dfecc00980eca07a"
      ],
      "author": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Tue Sep 29 18:58:36 2009 -0700"
      },
      "committer": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Tue Sep 29 22:52:05 2009 -0700"
      },
      "message": "Remove GAIA string\n"
    },
    {
      "commit": "bc21ba2410233b40b21a190b26285a791ac5cc58",
      "tree": "6d4977afd686b413e784571495da1bb2da5da773",
      "parents": [
        "c321ab992d526cde098986d512ce4a051c486607",
        "093f581090d8cf98f5877746d924107f7695dd8b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 26 17:06:41 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Sep 26 17:06:41 2009 -0700"
      },
      "message": "am 093f5810: Merge change 27238 into eclair\n\nMerge commit \u0027093f581090d8cf98f5877746d924107f7695dd8b\u0027 into eclair-plus-aosp\n\n* commit \u0027093f581090d8cf98f5877746d924107f7695dd8b\u0027:\n  The touch screen is probably a feature.\n"
    },
    {
      "commit": "039c68e75606e837cf021815a0210836724574ad",
      "tree": "c65d4f12f6401a113421e3d6b59601da3d7ea97d",
      "parents": [
        "075a18d607c3aa8386b4d06aea22f4bfacbe447b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 26 16:39:23 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 26 16:39:23 2009 -0700"
      },
      "message": "The touch screen is probably a feature.\n\nAlso extend the feature APIs a bit.\n\nChange-Id: I99e932d7f4e61edb0e20f75c55e9831e4b59a14d\n"
    },
    {
      "commit": "b7b083090f7312f83453e3f3c2e40a91644a3059",
      "tree": "3b8dbe781aa0ef2aaa5c4b7a718995047abab612",
      "parents": [
        "480a353f589035b62a81e2981cfba325ad1264f2",
        "a382cb81187437aa389dc131687e181ceaefa8ba"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:29:56 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Sep 19 12:29:56 2009 -0700"
      },
      "message": "am a382cb81: Merge change 25929 into eclair\n\nMerge commit \u0027a382cb81187437aa389dc131687e181ceaefa8ba\u0027 into eclair-plus-aosp\n\n* commit \u0027a382cb81187437aa389dc131687e181ceaefa8ba\u0027:\n  Add API to send an ordered sticky broadcast.\n"
    },
    {
      "commit": "efa199f016985b0a9d0471e42c803ee9f7941f0e",
      "tree": "0320870eeb2ca842a3729eb0f72220037ea89f82",
      "parents": [
        "338c48554f35dbee3faa4e39525a972f20a7c32d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:03:15 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:05:25 2009 -0700"
      },
      "message": "Add API to send an ordered sticky broadcast.\n\nChange-Id: Ida7081204e226db0cd07ff618c08e308a909ec0c\n"
    },
    {
      "commit": "1f3914b7f2f3c233da8b643c426c0ffd42f32f87",
      "tree": "85f6c8bc024bb8dd9166d3aed508049529e98160",
      "parents": [
        "fb4ef8fd2e046d022f0e3eb550094be28b048b44",
        "fa82f22f1d8c4c828bdf9b670006be4f4fec772e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 18:13:26 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 17 18:13:26 2009 -0700"
      },
      "message": "am fa82f22f: Fix issue #2093608: Calendar widget takes a few seconds to launch\n\nMerge commit \u0027fa82f22f1d8c4c828bdf9b670006be4f4fec772e\u0027 into eclair-plus-aosp\n\n* commit \u0027fa82f22f1d8c4c828bdf9b670006be4f4fec772e\u0027:\n  Fix issue #2093608: Calendar widget takes a few seconds to launch\n"
    },
    {
      "commit": "fa82f22f1d8c4c828bdf9b670006be4f4fec772e",
      "tree": "586dbd1bf9cbefe26cfecd6cf853b78eb6a4fb64",
      "parents": [
        "9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 15:14:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 18:01:35 2009 -0700"
      },
      "message": "Fix issue #2093608: Calendar widget takes a few seconds to launch\n\nAvert your eyes!\n\nThe key change here is that RemoteViews can now call a Context API to\nstart its pending intent, which inside of the activity manager we can\nuse to determine to cancel the timeout delay for external entities\nto disrupt the home screen.\n\nChange-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197\n"
    },
    {
      "commit": "e525eef4b8e284ac8eb023bd0df4eeed37916d4b",
      "tree": "565020de633597ec0e49429478918b1c27b47d22",
      "parents": [
        "ea8844811d1b0965f5c2f43006c0a08bcd73f23a",
        "62e73f466e52b98ecc2eef85010618a655b40924"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 16 16:22:13 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Sep 16 16:22:13 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "2419fa842b5c940de23c9f22a52282554ded1217",
      "tree": "883a4989a2c98a6ab5772c22c7cd7506017fa107",
      "parents": [
        "fc01794f33057862a361a0d0113630c58befc21b",
        "ae5d46fddf39e784427a9c344a782001dd6f195c"
      ],
      "author": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Sep 15 13:14:58 2009 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Sep 15 13:14:58 2009 -0700"
      },
      "message": "Merge change 10326\n\n* changes:\n  Javadoc used startApplication() which doesnt exists, changed to createApplication()\n"
    },
    {
      "commit": "ff1df69dd4835c177c724e1b5f1ba02d1f674047",
      "tree": "6112d867f442b998d4ecca304c015bb17cbe74fe",
      "parents": [
        "38eeac305a188b7ea4f586071c1d467c3f952be6"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Wed Aug 26 17:19:13 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Fri Sep 11 17:15:15 2009 -0700"
      },
      "message": "Performance measurement framework:\n\n+ For bug 1810508\n  - Added PerformanceCollector class to collect runtime and memory usage data\n    * Moved performance snapshotting from Intrumentation to PerformanceCollector\n  - Added PerformanceResultsWriter interface which defines functions for\n    reporting performance data\n\n+ Framework integration\n  - Added TimedTest annotation to automatically time tests and write results\n    to instrumentation output\n  - Modified PerformanceTestBase to add collection hooks and wrapper methods\n  - Modified WatcherResultPrinter in InstrumentationTestRunner to implement\n    PerformanceResultsWriter for instrumentation output of performance data\n  - Modified InstrumentationTestRunner and AndroidTestRunner to pass writer\n    instance to test\n"
    },
    {
      "commit": "904de61465abff8dba6fcc768d6bf5586f86ed0f",
      "tree": "ea64e3f181c5c8f968c1fdbd3f1de5a7e0ff53fb",
      "parents": [
        "ea6fca8231c94064917e40dea23be8df50930cf9"
      ],
      "author": {
        "name": "Cynthia Wong",
        "email": "cynthiaw@google.com",
        "time": "Thu Sep 03 10:06:55 2009 -0700"
      },
      "committer": {
        "name": "Cynthia Wong",
        "email": "cynthiaw@google.com",
        "time": "Thu Sep 03 10:06:55 2009 -0700"
      },
      "message": "Override getAccounts to return an empty AccountSet in MockAccountManager. This used to throw an NPE instead since IAccountManagerService is set to NULL.\n"
    },
    {
      "commit": "49237345d83e62fdb9eb8d50b13ad086636a04fa",
      "tree": "224ca2d134177a09184c1440f4fceac13a10b627",
      "parents": [
        "5511c66955d96019ee62ac334d73e4d2bcda178b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 20:08:01 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 27 21:51:00 2009 -0700"
      },
      "message": "Add platform infrastructure for features.\n\nThis introduces a new mechanism to define features associated with\na platform, query the current device for the available features,\nand enforce that apps requiring features that aren\u0027t available can\u0027t\nbe installed.\n\nAlso now allows uses-library to specify that a library is optional,\nso the lack of such a library will not prevent the app from being\ninstalled (but if it does exist it will be correctly linked into\nthe app).\n\nChange-Id: I5b369b46cfa0b3d37c9e08fd14ef1098a978e67b\n"
    },
    {
      "commit": "7aba54b2edcb94f43c991c555b23fc1de364835e",
      "tree": "236e10de49ded0f19999f0669ebc66d5273c19c7",
      "parents": [
        "617b22dc075bbf704421adf15f39388ec098b4fd"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Thu Aug 20 19:20:54 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Aug 25 12:44:56 2009 -0700"
      },
      "message": "Fix bug 1546445: Correct spelling errors in API\n- InstrumentationTestCase.injectInsrumentation\n- AndroidTestRunner.setInstrumentaiton\n"
    },
    {
      "commit": "4a51c20ce607c74914f90fd897f04080121ac13b",
      "tree": "067caf43aa752a8952061d7d8e03fb1aeb77c96e",
      "parents": [
        "cf3a08307d1599eaa91d7cc4e7c601e5fa13037f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 21 15:14:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 24 17:37:32 2009 -0700"
      },
      "message": "I am getting tired of the java doc warnings, so fix them.\n\nChange-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1\n"
    },
    {
      "commit": "a8db0a4ff6689f9f00dea6af44e65aa32a8546e1",
      "tree": "92e643ab6dd74bd2cd771407d99c2429e09948f3",
      "parents": [
        "0ef135d5c79ff5b443b43f8743250044700a8bb5"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Mon Aug 17 14:19:52 2009 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Mon Aug 17 14:19:52 2009 -0700"
      },
      "message": "Fix bug 2056252: android.test.AndroidTestRunnerTest:testRunTestWithNullListener is failing\n- Verify mInstrumentation is not null before calling getContext()\n"
    },
    {
      "commit": "766cbfe44be3c5013a6a22bd6cd8ad1055a37256",
      "tree": "6421896684d28f3483fd60de185ed8dc63d4aa44",
      "parents": [
        "2cd0a5c6aab3089b5b7edeeae808405b077d13cd"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 18:33:39 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 21:40:05 2009 -0700"
      },
      "message": "Add new API to compare certs of two UIDs.\n"
    },
    {
      "commit": "ac1e59d887651220f5367cc7fa4207b34eab774d",
      "tree": "971ee29f4bceffd00248b4aa17a7413078e4f14d",
      "parents": [
        "5c1207be90fdf296c1b83034b7c68915e1749284"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 11 13:12:34 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 11 13:12:34 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "44a29dd097350e3050e44a2f64aa4c75d26ec695",
      "tree": "ede70810414746e53136a938e7c3395f571f089a",
      "parents": [
        "f6d1a5528ee626487c78f17501d61e61bbe26b10"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Mon Aug 03 14:27:20 2009 -0700"
      },
      "committer": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Mon Aug 03 14:27:20 2009 -0700"
      },
      "message": "Adding \"test context\" to AndroidTestCase\n"
    },
    {
      "commit": "5c1207be90fdf296c1b83034b7c68915e1749284",
      "tree": "e5679f6183458d8179821d5615dabafcb959704d",
      "parents": [
        "a8675f67e33bc7337d148358783b0fd138b501ff"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 31 17:38:20 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 31 17:38:20 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "bfefdcda94e056f6dee68debefb35ce9e7cd03b7",
      "tree": "bbd7b777cd8b1f62aafed27a00e60bcc2440295f",
      "parents": [
        "3eb434487825b7ced55527dc50dd3957dfe187b6",
        "04cc0e121f0f9fb236150be5e9afa1b8d0105026"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 28 17:42:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 28 17:42:53 2009 -0700"
      },
      "message": "Merge change 8886\n\n* changes:\n  Fix broken calendar tests.\n"
    },
    {
      "commit": "04cc0e121f0f9fb236150be5e9afa1b8d0105026",
      "tree": "58774e68ee417c11a73d192afd8e1cd6c57c2d50",
      "parents": [
        "27700ef16b9058a3cfa4010a18d843888ef4b07d"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Tue Jul 28 16:15:38 2009 -0700"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Tue Jul 28 16:20:48 2009 -0700"
      },
      "message": "Fix broken calendar tests.\n\nThe tests end up in the widget code, which calls getResources().  This needs to\nbe supported by the mock.\n\nbug\u003d1985641\n"
    },
    {
      "commit": "02f5228c3c224dc8804cbedd40899fa0c42bfd4a",
      "tree": "21267ea74f5159b7aa52751c6e8a3de368c08c39",
      "parents": [
        "b2fe1fd4ae31df7a0366c59c4a1393fb281c4fde",
        "f0d83fd907e0d2a0b2fe563cea9ffa830ecfd33f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 15:23:21 2009 -0700"
      },
      "message": "resolved conflicts for merge of f0d83fd9 to master\n"
    },
    {
      "commit": "7f2054392e9957d3ba8579ef08c29cfb27df564e",
      "tree": "5e07f36bea3038fa5c13e4b81fa6421be79652ac",
      "parents": [
        "ecbbecf6c535e7f3e1d072d43766a95aa18ee464"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 00:13:47 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 28 00:13:47 2009 -0700"
      },
      "message": "Updates from API review.\n\n    * AccessibilityService -- document onBind() to not be implemented.\n    * GestureLibrary.getLearner() -- needs to be hidden.\n    * IntentSender -- remove protected constructors, document that it is retrieved from a PendingIntent.\n    * Hide permissions: SHUTDOWN, STOP_APP_SWITCHES.\n    * Context -- hide BACKUP_SERVICE.\n    * ContextWrapper -- hide getSharedPrefs bla h blah\n    * Intent.parseUri() -- fix docs.\n    * ApplicationInfo.FLAG_TEST_ONLY?!?\n    * Hide MockContext.getSharedPrefs blah blah\n"
    },
    {
      "commit": "54a16f059040d8680b71e2e962fb438c993b674b",
      "tree": "4a468827b13e14ca3d9345a0f04dbe80aabee822",
      "parents": [
        "30b06eb8b98b6e6dc685cf65ad4faa25a85008c5"
      ],
      "author": {
        "name": "Andrew Stadler",
        "email": "stadler@android.com",
        "time": "Thu Jul 23 20:00:08 2009 -0700"
      },
      "committer": {
        "name": "Andrew Stadler",
        "email": "stadler@android.com",
        "time": "Fri Jul 24 10:52:21 2009 -0700"
      },
      "message": "Add getCacheDir() to RenamingDelegatingContext.\n\nThis allows providers under ProviderTestCase2 to access getCacheDir().\n"
    },
    {
      "commit": "cf4550c3198d6b3d92cdc52707fe70d7cc0caa9f",
      "tree": "6510f35ad004f1a4640b48264c290926e8596d7a",
      "parents": [
        "4cf03d381b2dff908857fceff0bec445f8d44f36"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jul 21 11:16:54 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jul 21 11:16:54 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "70277a21d9e935b4afd30e14efd8a371e8a1aa9a",
      "tree": "12d4882532e141f417611d15d32a2fa740a9028e",
      "parents": [
        "c494ba2544699e576370b35b7e94fe09e29d1226",
        "3b95f5378957c4e985429dfefda3975416c1a039"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 15:35:41 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 15:35:41 2009 -0700"
      },
      "message": "Merge change 6223\n\n* changes:\n  Changes for new sync.\n"
    },
    {
      "commit": "a2b5dab5b7796d3967c73df95154810ae38efd82",
      "tree": "34578e2bcce048956a6be9168490f08e9336e752",
      "parents": [
        "4fad469b65f8b932b9521808822c3c8f09867080",
        "870e09fcd2dfdc12ac318962efd28b0420c562bb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Jul 06 17:10:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 17:10:41 2009 -0700"
      },
      "message": "am 870e09fc: Fixes #1963229. Introduces Context#isRestricted().\n\nMerge commit \u0027870e09fcd2dfdc12ac318962efd28b0420c562bb\u0027\n\n* commit \u0027870e09fcd2dfdc12ac318962efd28b0420c562bb\u0027:\n  Fixes #1963229. Introduces Context#isRestricted().\n"
    },
    {
      "commit": "870e09fcd2dfdc12ac318962efd28b0420c562bb",
      "tree": "e96f3395c7176695e7007b21ec054c1e3d5a5e71",
      "parents": [
        "453dd50e707aa3a4d24240935f3ff7ea0a08dc7a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Jul 06 16:35:25 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Jul 06 16:45:17 2009 -0700"
      },
      "message": "Fixes #1963229. Introduces Context#isRestricted().\n\nA restricted Context is a special type of Context that prevents specific features\nfrom being used. For instance, android:onClick, used by View, can be dangerous when\nused from within apps widgets. By using a restricted Context to inflate apps widgets,\nwidgets providers are prevented from using android:onClick.\n"
    },
    {
      "commit": "3b95f5378957c4e985429dfefda3975416c1a039",
      "tree": "5c463b9a6e1eef6f50171e2c23bdd1ab5cbd0f8e",
      "parents": [
        "c2b9d63953c1261b12a99f295366d43ed90bae7f"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Mon Jul 06 10:45:38 2009 -0700"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Mon Jul 06 10:45:38 2009 -0700"
      },
      "message": "Changes for new sync.\n\nAdd ContentValues-based RecurrenceSet processing.\nAdd test stub needed by SSL caching.\n"
    },
    {
      "commit": "f888bc4dfe75c990874a8ca793a6217d38ef2757",
      "tree": "ecbb610f851183c290499c584df9c5bfd6f5c9eb",
      "parents": [
        "f907ec4268dc2e0a32fcd38b61d0c658e83e06fc",
        "441cb04efc0048585b3a6e6fa3d564e3d1b26f62"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 16:01:30 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jul 01 16:01:30 2009 -0700"
      },
      "message": "am 441cb04e: Merge change 5732 into donut\n\nMerge commit \u0027441cb04efc0048585b3a6e6fa3d564e3d1b26f62\u0027\n\n* commit \u0027441cb04efc0048585b3a6e6fa3d564e3d1b26f62\u0027:\n  Fix assertContentsInOrder (bug 1790350).\n"
    },
    {
      "commit": "97eb32e2cad1871f89f9d7e91681b2977c8a4d19",
      "tree": "e15ba1bd3b402043351a085a1917a184915987f9",
      "parents": [
        "c25dbf88fc21c707b72502c43695c2c31ff22a23"
      ],
      "author": {
        "name": "Karl Rosaen",
        "email": "krosaen@android.com",
        "time": "Mon Jun 29 18:06:40 2009 -0700"
      },
      "committer": {
        "name": "Karl Rosaen",
        "email": "krosaen@android.com",
        "time": "Mon Jun 29 18:06:40 2009 -0700"
      },
      "message": "Fix assertContentsInOrder (bug 1790350).\n\nif we ever get an updated Lists class that includes a\nLists.newArrayList(Iterable\u003c?\u003e\nimplementation, that would work too.\n"
    },
    {
      "commit": "b09296dbd8a5cff3a13308d6fc1ab504a8c63221",
      "tree": "cf64e3441307ddac6ea69c4fa2dc6cf38f45f274",
      "parents": [
        "afed82bca9e173cabe2c2f25314b202e5c1ccbca"
      ],
      "author": {
        "name": "Andrew Stadler",
        "email": "stadler@android.com",
        "time": "Wed Jun 24 22:32:40 2009 -0700"
      },
      "committer": {
        "name": "Andrew Stadler",
        "email": "stadler@android.com",
        "time": "Wed Jun 24 22:32:40 2009 -0700"
      },
      "message": "Add missing filename remap to RenamingDelegatingContext\n\nThis makes ProviderTestCase2 work better by enabling code under test\nto make calls to context.getDatabasePath().  Without this fix the call\nthrows an exception.\n\nIt would be reasonable (and useful) to backport this to donut, but I\u0027m\nnot even building donut these days.\n"
    },
    {
      "commit": "ac9385ef3105fb7464e1f46049c62755a8b7f0e9",
      "tree": "922fb69a8ec88aaa1ade3be16a9f7aa0d46fa25b",
      "parents": [
        "f86a58ff3d14fa6af3fa447809b45895bbb365f6"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Jun 22 18:00:59 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Jun 23 15:53:16 2009 -0700"
      },
      "message": "- clean up the sync settings names to:\n   (get|set)SyncAutomatically\n   (get|set)MasterSyncAutomatically\n- change SYNC_EXTRAS_FORCE to SYNC_EXTRAS_MANUAL to mace clear that\n  this overrides the .*SyncAutomatically settings\n- make ContentResolver methods that call the sync controls methods\n  in IContentService so that SDK users can use them\n- rename startSync to requestSync to reinforce the fact that a sync\n  is not immediately or always started when this method is called\n- add an Account parameter to all the sync settings and control methods\n- change the sync control methods to take a String authority rather than a Uri uri\n"
    },
    {
      "commit": "c73e9ad55a28f6bec3260e919573e0597fdd23ab",
      "tree": "e669fa2a59927d4136b1d3ad2340ea10cf4d436e",
      "parents": [
        "903ccf479f7c06cd17f581b6633f2575d7dc7a60",
        "bc806f65edc33f6eda0f475ac84e5e037a013a90"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "message": "am bc806f65: Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n\nMerge commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027\n\n* commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027:\n  Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n"
    },
    {
      "commit": "bc806f65edc33f6eda0f475ac84e5e037a013a90",
      "tree": "086604fbc605d4b416e85b565227ffb7e489d1d7",
      "parents": [
        "2b1aed1021fb472de83c4c0143f2c4452244a0af"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 15:18:19 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:25:37 2009 -0700"
      },
      "message": "Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n"
    },
    {
      "commit": "8dbbe3b52f815c49be986814743a521f802b4785",
      "tree": "78ed9bc346ec5f1edfe702dbb74ea16e7b6b99af",
      "parents": [
        "f923ed6ff76a0fd022bcc83e748e82266ba4ed1b",
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "message": "am 63e7155c: Merge change 4696 into donut\n\nMerge commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027\n\n* commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "5c1e00b14d2ef10ec76abf3e951fa8003a67f558",
      "tree": "fa723a6f96f5b977dfdfdc08b5b8aab98c20d500",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "message": "Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n\n- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.\n  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.\n\n- Change the API for resize compatibility mode to be a bit in the flags field, instead\n  of a separate boolean.\n\n- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is\n  only enabled for \"eng\" builds.  When in this mode, the activity manager will make\n  sure that a dexopt has been done before loading an .apk into a process, and will\n  try to avoid displaying ANRs if they are due to the dexopt causing some operation\n  to take longer than it normally would (though I make no guarantees about this\n  totally working).\n\n- Add API to Context to get the ApplicationInfo for its package, for easy access to\n  things like targetSdkVersion.\n"
    },
    {
      "commit": "abb01dba70fa52b3576fa9f6a175f3840b959fde",
      "tree": "1c6d7ce021830cc831488c5ee116565defc29bc5",
      "parents": [
        "cc4b106f736ceab3680b19a4cd7e14be2be8f341",
        "c14b9ccdf13163cae5ce5d21bcf377010b37594b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 22:45:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 22:45:54 2009 -0700"
      },
      "message": "am c14b9ccd: Extend Intent/Uri conversion for use by Browser\n\nMerge commit \u0027c14b9ccdf13163cae5ce5d21bcf377010b37594b\u0027\n\n* commit \u0027c14b9ccdf13163cae5ce5d21bcf377010b37594b\u0027:\n  Extend Intent/Uri conversion for use by Browser\n"
    },
    {
      "commit": "c14b9ccdf13163cae5ce5d21bcf377010b37594b",
      "tree": "45c2309b18ff4e56aef65e0c7d66f8800492e33e",
      "parents": [
        "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 18:02:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 21:48:14 2009 -0700"
      },
      "message": "Extend Intent/Uri conversion for use by Browser\n\nThis introduces a new Uri form of Intent with an \"intent:\" scheme, and a\ncorresponding update to the parser to handle these, so that the browser\ncan use this generic facility for starting activities based on the links\nthat are clicked and allow for web pages to link to arbitrary intents.\n\nThere is also a new \"package\" field on Intent which allows you to limit\nthe components it finds to a given package.  This replaces the new method\nthat was added to PackageManger for doing this when resolving activities,\nand implements it for all Intent queries against the package manager.\n"
    },
    {
      "commit": "e1fae30e20b1515eeb036a7c103e1e70de130bdd",
      "tree": "7cafbd21f0df7606d64ea19e07c622efe4dbc6b4",
      "parents": [
        "253e8e34b323f05bb7d5fdc8591bdaadbab55dd6",
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 18:24:44 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 18:24:44 2009 -0700"
      },
      "message": "Merge commit \u00270781df94\u0027 into manualmerge\n\nConflicts:\n\tAndroid.mk\n\tapi/current.xml\n"
    },
    {
      "commit": "1ccac75e1f1b97eccb916a8de04fc1012b30f6e5",
      "tree": "181c91a427de2ea609eff1f42c3970a441225b45",
      "parents": [
        "ef29f6afb4746eae8263ab901a5d3677bc04574b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 12 10:09:58 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 11:31:26 2009 -0700"
      },
      "message": "Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app\nCreate a new public IntentSender class that can be used by PackageManager instead.\nThis new class uses IIntentSender internally and can only be created by PendingIntent for now.\nProvide a new getIntentSender api in PendingIntent to create an instance of this class.\nMove IIntentSender and IIntentReceiver from android.app to android.content\nChange imports of IIntentSender and IIntentReceiver to reflect the new package name\nThe PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage\nonce the older api(which has been deprecated) will be removed shortly.\n"
    },
    {
      "commit": "bf85d63cb8858432ff845250fdaffdb556d2ef1b",
      "tree": "bccd2a36cb6534bbb9fc75cdf3ff550fce35e8e7",
      "parents": [
        "32c79898c0020637b2f8e536c8208519801eb9cb",
        "78f0f8cb2efe9410127c39201e240f6d438eb53c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 08:26:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 12 08:26:05 2009 -0700"
      },
      "message": "am 78f0f8cb: Merge changes 3953,3954 into donut\n\nMerge commit \u002778f0f8cb2efe9410127c39201e240f6d438eb53c\u0027\n\n* commit \u002778f0f8cb2efe9410127c39201e240f6d438eb53c\u0027:\n  Make the file backup helper not crash if a file you requested\n  Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n"
    },
    {
      "commit": "23ecae3bbb60c5af940f3a22170d75eb6ac05b69",
      "tree": "1138102ba856743cffd931121409a71c2bae37c3",
      "parents": [
        "0b77453076a22569f24318d194b378b68f11a63e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 10 17:07:15 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 11:29:57 2009 -0700"
      },
      "message": "Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n\nThis took quite a bit of refactoring.\n"
    },
    {
      "commit": "ae5d46fddf39e784427a9c344a782001dd6f195c",
      "tree": "c0461d49aebbdaa03be86de8c9d35f58aa3c6615",
      "parents": [
        "734bc9bacba363f7970ea8394bcc38d1fadcede4"
      ],
      "author": {
        "name": "Simon Schoar",
        "email": "schoar@googlemail.com",
        "time": "Wed Jun 10 20:49:56 2009 +0200"
      },
      "committer": {
        "name": "Simon Schoar",
        "email": "schoar@googlemail.com",
        "time": "Wed Jun 10 20:49:56 2009 +0200"
      },
      "message": "Javadoc used startApplication() which doesnt exists, changed to createApplication()\n"
    },
    {
      "commit": "342d59d3197caa1cd1de7a600c6e0ba4a59883f4",
      "tree": "046d7a2f14ff8a76e2f4ac5afbe4016731f77e68",
      "parents": [
        "138197f961b671ff5b48785b0fe61477ebfc7627",
        "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:34:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 16:34:47 2009 -0700"
      },
      "message": "am 9189cabb: * Moved supports-density tag under manifest * Refactored Compatibility code   * Added CompatibilityInfo class   * Removed getApplicationScale from Context   * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context * Expandable support   * Added expandable tag under manifest   * Old application w/o expandable is given the default screen size  ([320, 480] x density).   * The non-expandable window is centered.\n\nMerge commit \u00279189cabb0b6c6c28232fe6f412b7ba7a37352a6a\u0027\n\n* commit \u00279189cabb0b6c6c28232fe6f412b7ba7a37352a6a\u0027:\n  * Moved supports-density tag under manifest\n"
    },
    {
      "commit": "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a",
      "tree": "6ddc6a8eb0158cba32cc6139b04c6b6eb9f0ba5f",
      "parents": [
        "eaeb663bcd7a82b654954b42663232cbd7bef7e7"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 11:19:12 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:28:10 2009 -0700"
      },
      "message": "* Moved supports-density tag under manifest\n* Refactored Compatibility code\n  * Added CompatibilityInfo class\n  * Removed getApplicationScale from Context\n  * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context\n* Expandable support\n  * Added expandable tag under manifest\n  * Old application w/o expandable is given the default screen size  ([320, 480] x density).\n  * The non-expandable window is centered.\n"
    },
    {
      "commit": "ae8c5b868fa518306b50e08da9e5258ad075fa61",
      "tree": "d2ec0e1ee9aad833e9e9a3cf865c4e2b93dc0972",
      "parents": [
        "9081cd577889ea96075a3034611c0762f3e3d27e",
        "8dbe612dc60526d635e57257b58627b33a099678"
      ],
      "author": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Wed Jun 03 00:05:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 00:05:36 2009 -0700"
      },
      "message": "am 8dbe612d: Adding internal method replacePreferredActivity.\n\nMerge commit \u00278dbe612dc60526d635e57257b58627b33a099678\u0027\n\n* commit \u00278dbe612dc60526d635e57257b58627b33a099678\u0027:\n  Adding internal method replacePreferredActivity.\n"
    },
    {
      "commit": "8dbe612dc60526d635e57257b58627b33a099678",
      "tree": "2f02924de3a2e890aab2d4a75a1b52d2e2aa1328",
      "parents": [
        "5f784df5680e07f6cbc5d929560dfadc0e22db3b"
      ],
      "author": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Tue Jun 02 23:35:54 2009 +0100"
      },
      "committer": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Wed Jun 03 07:54:42 2009 +0100"
      },
      "message": "Adding internal method replacePreferredActivity.\n\nThis was required because we need a way to set the preferred activity for a\nparticular intent filter based on user selection (in our case the\nACTION_WEB_SEARCH intent filter for selecting the preferred search engine from\nthe list of available search engines providers). The current\naddPreferredActivity call was not sufficient since it leaves the existing\npreferred activities in the list and does not remove them, which this call\ndoes.\n"
    },
    {
      "commit": "03d9490758c9318cee6d14d3cc5007556dce92d0",
      "tree": "58d56d848d0a1f0638157f0ba70afc9b75119601",
      "parents": [
        "b0d031ad132dac585d1f21d46ebebcc4d13f40c7"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri May 22 14:23:31 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Jun 01 16:17:03 2009 -0700"
      },
      "message": " - create a new generic ISyncAdapter implementation, SyncAdapterNew\n - change the applyBatch to take an ArrayList rather than an []\n - change Entity to be a final flass that contains ContentValues\n - remove the ability to update/insert Entities by a ContentProviderOperation\n"
    },
    {
      "commit": "8c5e96fb680fb6a90c07645797c889f785da4696",
      "tree": "6dd9baca7f25ff84ffc9ec632e293e9fb9a0225a",
      "parents": [
        "8e19b7c0e4c578703a1df0f8346b22b9e7c8a0f7",
        "ecad93e5f3c7345febcfa078b1d2aa00a2e1fd66"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 29 12:20:52 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 29 12:20:52 2009 -0700"
      },
      "message": "am ecad93e5: Merge change 2685 into donut\n\nMerge commit \u0027ecad93e5f3c7345febcfa078b1d2aa00a2e1fd66\u0027\n\n* commit \u0027ecad93e5f3c7345febcfa078b1d2aa00a2e1fd66\u0027:\n  Change code coverage to write to app data folder rather than sdcard.\n"
    },
    {
      "commit": "51e03642cee5a695d6ff6f5b318925efcab05100",
      "tree": "885dc4b34b491dd2ac6bfb4ab80a3315c7faba40",
      "parents": [
        "1e2e44e900cb9a25d548e27a20d65292a7f321bc"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Thu May 28 18:18:15 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Thu May 28 18:26:26 2009 -0700"
      },
      "message": "Change code coverage to write to app data folder rather than sdcard.\n\nThe InstrumentationTestRunner would previously write code coverage data to the sdcard. With the recent SDCARD_WRITE permission addition, generating code coverage would fail if test app did not declare the SDCARD_WRITE permission. This CL changes InstrumentationTestRunner so by default, the coverage data is saved to the app\u0027s private data folder. At the test run conclusion it outputs the path to this file so runtest or another test harness find the path to the coverage file.\n"
    },
    {
      "commit": "8943737692169f564cd34a9c8d471f3a5d438712",
      "tree": "7b017cbed472235c15d32e694b1fa18c5446c751",
      "parents": [
        "fc5095f44ba46b57f4ef6179ee4d69ce3a7fe69a"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri May 15 15:10:40 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri May 22 14:17:48 2009 -0700"
      },
      "message": "add ipc support to batching\n"
    },
    {
      "commit": "9b1e1400df4c6c4b69985f164097f0c842dd796f",
      "tree": "cae61f8f495e8a93dcc0ffdc887e7445c46fae70",
      "parents": [
        "a59fa9b6cba9cae0f7d02e240dbd10603cc127a5",
        "8c690ea9976d644db3c96eddbbbd2d50eac56913"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 09:42:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 21 09:42:38 2009 -0700"
      },
      "message": "am 8c690ea9: Merge change 2182 into donut\n\nMerge commit \u00278c690ea9976d644db3c96eddbbbd2d50eac56913\u0027\n\n* commit \u00278c690ea9976d644db3c96eddbbbd2d50eac56913\u0027:\n  location: Replace ILocationCollector interface with new ILocationProvider method\n"
    },
    {
      "commit": "fd6e5f0dda50e113db4ccc55338b6c4f09da37a4",
      "tree": "faf8e2c6510d2a0c4439cdcdfe74d97100dc9020",
      "parents": [
        "bb7b7b316a6a15f4df6af3c62a293920c68c7b00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "message": "location: Replace ILocationCollector interface with new ILocationProvider method\n\nThis change replaces ILocationCollector with a more general mechanism that\npasses locations received from a provider to all other providers.\nThe network location provider now uses this to implement the location collector.\nIn the future, this could be used to inject network locations to the GPS\nas aiding data.\n\nThis change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "843ef36f7b96cc19ea7d2996b7c8661b41ec3452",
      "tree": "560e1648c99a93986f8b7deef851ef8bb8029db7",
      "parents": [
        "358d23017d0d6c4636eb7599ae7a9b48108899a3"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 20 11:28:04 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 20 11:28:04 2009 -0700"
      },
      "message": "donut snapshot\n"
    },
    {
      "commit": "dd6face5a66ed6c9ac24b2754ec046b82881182c",
      "tree": "c9ab91b75db59bd663524cc29ef324508957fed2",
      "parents": [
        "76879bc2343779d4d2a870b7bd46b0544c0cc46c",
        "eae850cefe7e149f396c9e8ca1f34ec02b20a3f0"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Fri May 15 07:06:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 07:06:46 2009 -0700"
      },
      "message": "am eae850ce: Allow intent resolution to be constrained by package name.\n\nMerge commit \u0027eae850cefe7e149f396c9e8ca1f34ec02b20a3f0\u0027\n\n* commit \u0027eae850cefe7e149f396c9e8ca1f34ec02b20a3f0\u0027:\n  Allow intent resolution to be constrained by package name.\n"
    },
    {
      "commit": "eae850cefe7e149f396c9e8ca1f34ec02b20a3f0",
      "tree": "a4e19d75aeef5529a0a8084d513638890afac2cd",
      "parents": [
        "75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Wed May 13 10:13:48 2009 +0200"
      },
      "committer": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Fri May 15 12:32:07 2009 +0200"
      },
      "message": "Allow intent resolution to be constrained by package name.\n"
    },
    {
      "commit": "6a8d5332f00bdfade6674b312e7166940aa28348",
      "tree": "c45f5e5bc0fb4918e3df45821c723845d64506d3",
      "parents": [
        "7dfc85f1199790a3c3dab701cec45045d100d7d3"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu May 07 17:35:38 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed May 13 12:49:04 2009 -0700"
      },
      "message": "content provider entities\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": "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": "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": "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": "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": "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": "e07cd1a4c359dcc7cb9e92c37e0893aea3cadaf8",
      "tree": "0df146ba37d51fb9fb4b78f87202c35584bfc7c4",
      "parents": [
        "1fd11b4bdb8299edcc4e12d0873b81cb8bfab900",
        "19aa8e01b8fe4ebd6d518bd48ea9b53ec95a49a7"
      ],
      "author": {
        "name": "Jorg Pleumann",
        "email": "",
        "time": "Wed Apr 29 13:35:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:41 2009 -0700"
      },
      "message": "am 19aa8e0: am b867019: AI 147725: Some fixes for the CTS test runner. O\n\nMerge commit \u002719aa8e01b8fe4ebd6d518bd48ea9b53ec95a49a7\u0027\n\n* commit \u002719aa8e01b8fe4ebd6d518bd48ea9b53ec95a49a7\u0027:\n  AI 147725: Some fixes for the CTS test runner. One is a\n"
    },
    {
      "commit": "c2839e087041b16a1ee7292b85459a396c25c771",
      "tree": "667f11899be570bcc3e825ee6d3c63c033f5a02b",
      "parents": [
        "c36349034a399e41e5a78861d03dfe2a40e294fe",
        "13735a255dedd2c2e3b0cff66f0be2e17671f553"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "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 13735a2: Merge branch \\\u0027readonly-p4-donut\\\u0027 into donut\n\nMerge commit \u002713735a255dedd2c2e3b0cff66f0be2e17671f553\u0027\n\n* commit \u002713735a255dedd2c2e3b0cff66f0be2e17671f553\u0027:\n  AI 147976: Compatibility mode support. Part 2.\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": "19aa8e01b8fe4ebd6d518bd48ea9b53ec95a49a7",
      "tree": "f23ec51e8a83443dfa090faba0eddd8cde1d3e1d",
      "parents": [
        "e17210c17aa26d600f825e2f45c9aa66452e9988",
        "b867019173d20cd4fd7ee79a3ce924096e95a241"
      ],
      "author": {
        "name": "Jorg Pleumann",
        "email": "",
        "time": "Tue Apr 28 21:54:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 21:54:10 2009 -0700"
      },
      "message": "am b867019: AI 147725: Some fixes for the CTS test runner. One is a\n\nMerge commit \u0027b867019173d20cd4fd7ee79a3ce924096e95a241\u0027 into donut\n\n* commit \u0027b867019173d20cd4fd7ee79a3ce924096e95a241\u0027:\n  AI 147725: Some fixes for the CTS test runner. One is a\n"
    },
    {
      "commit": "13735a255dedd2c2e3b0cff66f0be2e17671f553",
      "tree": "9b55fcc3089076210763f62acf89563ed71a720b",
      "parents": [
        "d30605200b8b0f10e4740a9d7266d240023e69cd",
        "8169daed2f7a8731d478b884b1f455c747b88478"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:13:25 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-donut\u0027 into donut\n"
    },
    {
      "commit": "8169daed2f7a8731d478b884b1f455c747b88478",
      "tree": "3ab1f44b128cef2f18f470af7483a8405329da23",
      "parents": [
        "8d112675879a2b83197d3b4ae4fb623abd1a1ec3"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 28 18:12:09 2009 -0700"
      },
      "message": "AI 147976: Compatibility mode support. Part 2.\n  * Introduced ApplicationScale (may not be good name. CompatibilityScale? CanvasScale? Pls let me know if you have better idea)\n  * Changes to RootView / SurfaceView\n  - Makes the app believe it\u0027s running in the supported density/resolution.\n  - Makes the window manager believe it\u0027s running at the right density/resolution.\n  * Added methods to Rect/Event for scaling up/down.\n  Known issues:\n  * certain kind of images (such as nine patch for buttons) seesm to be loaded not by app, thus does not take the scale into account,\n  which, in turn, is causing layout issue.\n  * ZoomButton in MapView is rendered in wrong place\n  * Transparent region on Surface is not correct\n  * Specifying different densities in one process is not working.\n  BUG\u003d1770627\n\nAutomated import of CL 147976\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": "0eabf0228a17e07ef831bc1ee1951c9697d2a079",
      "tree": "2e34c6f41c478289cd1122913f43d27f9bff0172",
      "parents": [
        "d004ee1b0a1f869f5e48ffc29b8ce9c6a8c77e23"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Apr 27 15:08:17 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Apr 27 15:08:17 2009 -0700"
      },
      "message": "change the IsolatedContext to have a test version of the AccountManager that has no IBinder to the AccountManagerService.\n"
    },
    {
      "commit": "b867019173d20cd4fd7ee79a3ce924096e95a241",
      "tree": "ae654d5111c6b2cc9206503070c77522c20ba265",
      "parents": [
        "14533d2652ce786f1ca84af1b54adaa201455989"
      ],
      "author": {
        "name": "Jorg Pleumann",
        "email": "",
        "time": "Fri Apr 24 13:08:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 24 13:08:47 2009 -0700"
      },
      "message": "AI 147725: Some fixes for the CTS test runner. One is a\n  workaround for the binder problems which occur\n  when too many tests are executed in too little\n  time. The other is a fix for the memory cleanup\n  that was added a while ago, but should have\n  affected non-static fields, not static ones.\n  BUG\u003d1796494\n\nAutomated import of CL 147725\n"
    },
    {
      "commit": "d9d2f1140b52fd0c014e9deac59f6000564b7e84",
      "tree": "2c30edce5a148ef94400277f20619c821fd9da94",
      "parents": [
        "843bbb8597d561c2541f86d1f391ae65261cf743"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Apr 23 13:36:27 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Thu Apr 23 15:37:45 2009 -0700"
      },
      "message": "change the sync framework and users to understand Account\n"
    },
    {
      "commit": "72d5de71f205d1c7f43c495d01185b0fbba7c47f",
      "tree": "d9f65dcbe700f732153710f6f06dedc904be1c8c",
      "parents": [
        "65640aa0507a618e74cdbcc2ddf53f90cab96e27"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "",
        "time": "Tue Apr 21 11:54:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 21 11:54:14 2009 -0700"
      },
      "message": "AI 147169: am: CL 147167 am: CL 147162 Emphasize in the javadoc that the \"pkg\" parameters to\n  InstrumentationTestCase and its descendants should be the\n  package manager package name (not the java package name, and\n  not the test package) of the package holding the Activity\n  under test.\n  Added similar notations to the ApiDemos call sites.\n  JAVADOC ONLY - should be safe change for cupcake sdk.\n  Original author: stadler\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n\nAutomated import of CL 147169\n"
    },
    {
      "commit": "df2a463b01fe5222e377828225ca6710d5c14743",
      "tree": "3a47fae74e590c15880eb383fbe0c841c938b419",
      "parents": [
        "5ed91c81709e6c4734c82dc6b9230c1d7d8c7436"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "",
        "time": "Tue Apr 21 11:51:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 21 11:51:43 2009 -0700"
      },
      "message": "AI 147167: am: CL 147162 Emphasize in the javadoc that the \"pkg\" parameters to\n  InstrumentationTestCase and its descendants should be the\n  package manager package name (not the java package name, and\n  not the test package) of the package holding the Activity\n  under test.\n  Added similar notations to the ApiDemos call sites.\n  JAVADOC ONLY - should be safe change for cupcake sdk.\n  Original author: stadler\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 147167\n"
    },
    {
      "commit": "54bd245f574379319769471279c7cbf295feac46",
      "tree": "e498364aed7337f686eb8cb1075127fe1ed753bc",
      "parents": [
        "f20e1bdf62da9f0225c36b0e5b0146db60062474"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "",
        "time": "Tue Apr 21 11:48:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Apr 21 11:48:54 2009 -0700"
      },
      "message": "AI 147162: Emphasize in the javadoc that the \"pkg\" parameters to\n  InstrumentationTestCase and its descendants should be the\n  package manager package name (not the java package name, and\n  not the test package) of the package holding the Activity\n  under test.\n  Added similar notations to the ApiDemos call sites.\n  JAVADOC ONLY - should be safe change for cupcake sdk.\n  BUG\u003d1783981\n\nAutomated import of CL 147162\n"
    },
    {
      "commit": "7d41b8c26a2e255978393e9447d5c4a6f240e67e",
      "tree": "f77fb2353fc39d4c28e9418c055f8582a4eb360b",
      "parents": [
        "32346a89c3b40a4f87186550d0ed2d75ced6f42c"
      ],
      "author": {
        "name": "Urs Grob",
        "email": "",
        "time": "Sat Apr 18 22:47:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sat Apr 18 22:47:14 2009 -0700"
      },
      "message": "AI 146828: am: CL 146743 am: CL 146711 Enhancing the test runner. Now it filters BrokenTests and only executes tests\n  annotated with SideEffect if the host is running in single test mode.\n  Also adding some cleanup mechanism and some logcat logging about memory consumption\n  Original author: ursg\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n\nAutomated import of CL 146828\n"
    },
    {
      "commit": "da13ef5dca5cac0e89b82a6d7360a575610b7bcc",
      "tree": "3aba3be6e822b51bf9ebafb7dc8ab5696aa58ac3",
      "parents": [
        "2170312ab0b6766e8b73b806efbe6abdbb702bbc"
      ],
      "author": {
        "name": "Urs Grob",
        "email": "",
        "time": "Fri Apr 17 11:30:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 17 11:30:14 2009 -0700"
      },
      "message": "AI 146743: am: CL 146711 Enhancing the test runner. Now it filters BrokenTests and only executes tests\n  annotated with SideEffect if the host is running in single test mode.\n  Also adding some cleanup mechanism and some logcat logging about memory consumption\n  Original author: ursg\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 146743\n"
    },
    {
      "commit": "358d23017d0d6c4636eb7599ae7a9b48108899a3",
      "tree": "0e6e6de43561386fc36fc8f3a309060f523b8666",
      "parents": [
        "6cb76f6c238afdad0b37628a003c7d88186b5c2f"
      ],
      "author": {
        "name": "Urs Grob",
        "email": "",
        "time": "Fri Apr 17 02:09:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 17 02:09:00 2009 -0700"
      },
      "message": "AI 146711: Enhancing the test runner. Now it filters BrokenTests and only executes tests\n  annotated with SideEffect if the host is running in single test mode.\n  Also adding some cleanup mechanism and some logcat logging about memory consumption\n  BUG\u003d1789657\n\nAutomated import of CL 146711\n"
    },
    {
      "commit": "935ae463d495d41155e27feb849768ad2b8b16db",
      "tree": "da8889bec20daacb2a85ff98bca0874078e5c1cf",
      "parents": [
        "b3230cb1e33c3de7ae7d63217617606d23943708"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Mon Apr 13 16:11:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 13 16:11:55 2009 -0700"
      },
      "message": "AI 145994: Integrate #145778 from Donut.\n\nAutomated import of CL 145994\n"
    },
    {
      "commit": "f8a7ceaef2e7d5cd530c9426bde91b6fa9a40b75",
      "tree": "1dd68eeddbfa83d571a3544d6d2e25ba9be21b49",
      "parents": [
        "1eb75a0b3770177c3f0d0c2e843f80fc34451ef5"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "",
        "time": "Fri Apr 10 16:24:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 10 16:24:47 2009 -0700"
      },
      "message": "AI 145778: Manual merge changes 145382-145384 from cupcake.\n\nAutomated import of CL 145778\n"
    }
  ],
  "next": "48276ab989a4d775961ce30a43635a317052672a"
}
