)]}'
{
  "log": [
    {
      "commit": "ac8dea12c17aa047e03a358110aeb60401d36aa2",
      "tree": "373ab19dcf21fce62352a6b511855261017649b5",
      "parents": [
        "700ab1c75862babba90f54e02bdc877becd4f4fc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 20 18:18:51 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 11:58:27 2011 -0700"
      },
      "message": "DO NOT MERGE.  Integrate from master: Rework display size access.\n\nApplications now get the display size from the window manager.  No\nbehavior should be changed yet, this is just prep for some real\nchanges.\n\nChange-Id: I47bf8b55ecd4476c25ed6482494a7bcc5fae45d2\n"
    },
    {
      "commit": "71431bb5ca0d8d566d4ebd9d0bc7eb20950290dc",
      "tree": "ee723ebdccdc82fe04fc99a96f136934e7793530",
      "parents": [
        "b732b7b5e8192501360edc15fb8c6399d11fb97d",
        "79b66725b7755e403e10a9d073121789f09b1a9e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Feb 28 11:05:55 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 11:05:55 2011 -0800"
      },
      "message": "am 79b66725: am 25be2c72: am e0537f18: Merge \"Fix of tearDown() in SingleLaunchActivityTestCase.\"\n\n* commit \u002779b66725b7755e403e10a9d073121789f09b1a9e\u0027:\n  Fix of tearDown() in SingleLaunchActivityTestCase.\n"
    },
    {
      "commit": "25be2c725eba1c94c7fc700e37b194fdcd83a1fb",
      "tree": "352ae9de626d92b0299616fc0f854919879a9777",
      "parents": [
        "6504490cde3ec5d48321d539e654d1f2072b33f9",
        "e0537f1859664ba9c9cf87eb9d6dc3c16986dbb8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Feb 28 10:15:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 28 10:15:46 2011 -0800"
      },
      "message": "am e0537f18: Merge \"Fix of tearDown() in SingleLaunchActivityTestCase.\"\n\n* commit \u0027e0537f1859664ba9c9cf87eb9d6dc3c16986dbb8\u0027:\n  Fix of tearDown() in SingleLaunchActivityTestCase.\n"
    },
    {
      "commit": "7aee61f5a96e94e158bf5ad3d8e192c4d4f7eff6",
      "tree": "153bab6076f6f309e4d3aa0ccf831d8c8ff492c7",
      "parents": [
        "7d9d8efebab9bda05cdb7733374723e1e3787d7c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Feb 08 11:25:01 2011 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Feb 08 11:37:44 2011 -0800"
      },
      "message": "docs: fix links to revised fundamentals documents\n\nChange-Id: Ie2a660cce1d00f924c9fde5c6a00776307e5e1c7\n"
    },
    {
      "commit": "e8a534d8f0008e27f24016c5978ca0a5f0ecbce2",
      "tree": "47976c63dec66f7b25e9f55d8a6151bc2478bfa0",
      "parents": [
        "73fddbae964ee41895c8218454d0ed7fd71d6913"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:12:23 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:13:37 2011 -0800"
      },
      "message": "Remove API that snuck into MockPackageManager\n\nWe didn\u0027t release the get/setPackageObbPath API, but it snuck into\nMockPackageManager. However, it is not usable as a developer anyway.\nRemoving it so it doesn\u0027t stay in the API forever.\n\nCherry-pick from gingerbread\n\nChange-Id: I2083a8f398d983d53661c33270854442e34f9bc9\n"
    },
    {
      "commit": "849dc24fa6a2bb6e1e5496c4710ee60c32abdb7f",
      "tree": "5c565286b72233f286c94ea9404e0f5401643013",
      "parents": [
        "e26aa3f78a33af5720e141e98a1ab0c77ef0456d",
        "524133cc793b5e372cc97c62653281605f57b5b3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:05:24 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 17 13:05:24 2011 -0800"
      },
      "message": "am 524133cc: Remove API that snuck into MockPackageManager\n\n* commit \u0027524133cc793b5e372cc97c62653281605f57b5b3\u0027:\n  Remove API that snuck into MockPackageManager\n"
    },
    {
      "commit": "a1cbb94dbc9a82d4eb3a47242fe161af21803858",
      "tree": "31e227475f199e3a1bdc34193f5e63b5645e47f1",
      "parents": [
        "db7f38673c33ba55801019007ff18fa4c57f75e0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 12:46:23 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:00:47 2011 -0800"
      },
      "message": "Revert \"Add the {get,set}PackageObbPaths calls to API\"\n\nThis reverts commit 5d40fe9c6846ba765072e50ed1254293cb9195e4.\n\nChange-Id: Ie41010c92fb860b19a12bcf63f6fe95ffa68da81\n"
    },
    {
      "commit": "524133cc793b5e372cc97c62653281605f57b5b3",
      "tree": "7d2ff33bb31ad9daa4a17ed5d79abe12626f36c2",
      "parents": [
        "34d2b41e48281d1df2c844e004740f008e699093"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 12:40:57 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 12:40:57 2011 -0800"
      },
      "message": "Remove API that snuck into MockPackageManager\n\nWe didn\u0027t release the get/setPackageObbPath API, but it snuck into\nMockPackageManager. However, it is not usable as a developer anyway.\nRemoving it so it doesn\u0027t stay in the API forever.\n\nChange-Id: Ia569754691dc3a9f2672c1f25e4e08d780db6028\n"
    },
    {
      "commit": "e26aa3f78a33af5720e141e98a1ab0c77ef0456d",
      "tree": "064acf99973b68c4db14bfcfa863d8ddee8763b2",
      "parents": [
        "3392b8e23e7eb0275071af621802ed04c829c911",
        "34d2b41e48281d1df2c844e004740f008e699093"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 12:23:43 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 17 12:23:43 2011 -0800"
      },
      "message": "am 34d2b41e: Revert \"Add the {get,set}PackageObbPaths calls to API\"\n\n* commit \u002734d2b41e48281d1df2c844e004740f008e699093\u0027:\n  Revert \"Add the {get,set}PackageObbPaths calls to API\"\n"
    },
    {
      "commit": "34d2b41e48281d1df2c844e004740f008e699093",
      "tree": "15bb723f523d330dd8eedb0d1ebd022637d2e1b6",
      "parents": [
        "4a2e478a5bf6b4650181d1dfa643eadcc387fcec"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Jan 16 17:25:18 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 11:49:22 2011 -0800"
      },
      "message": "Revert \"Add the {get,set}PackageObbPaths calls to API\"\n\nThis reverts commit 6c4d904851772313930f800ac7c323cf90c709bb.\n\nGoing with a different tactic that doesn\u0027t dump stuff on\nPackageManagerService.\n\nBug: 3214719\nChange-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4\n"
    },
    {
      "commit": "805fd7ee0e5dc2939e85c84f78d9890a51982bc0",
      "tree": "e2487cd3d7917fa6a126463e2cc5771295544627",
      "parents": [
        "cf18c4788af740773c9b2720a1c4ed5f45454b8e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 16 18:30:29 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 16 18:43:04 2011 -0800"
      },
      "message": "Add API to get path to OBBs.\n\nAlso hide the bitmap thumbnail stuff, we can\u0027t support it in its\ncurrent form.\n\nAnd fix some bugs with propagating paths to native code.  Yikes!\n\nChange-Id: I13ab37ddbdba5c073489cba5eab035117d3c1574\n"
    },
    {
      "commit": "5d40fe9c6846ba765072e50ed1254293cb9195e4",
      "tree": "3fd67e01ffba461a5700262e32d155febba317d5",
      "parents": [
        "c69d5f3b536a56da9120ace34e05b9878ed164c6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 14 10:54:46 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 14 12:18:48 2011 -0800"
      },
      "message": "Add the {get,set}PackageObbPaths calls to API\n\nAdd getPackageObbPaths() and setPackageObbPaths() to the public API.\n\nBug: 3214719\nChange-Id: I8627b5f674a795d5780eb5c08911419110670a41\n"
    },
    {
      "commit": "470750793b6e930a323ee63cbed05c43dc435ba1",
      "tree": "3ff696f1e9022f62934bdc0e256ca123c2028bfb",
      "parents": [
        "471de1f5b3cc629739d8315ff195d6af928e7ae4",
        "e8c04db71e347396e9537ead7113ba9f46706e44"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jan 12 15:06:51 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 12 15:06:51 2011 -0800"
      },
      "message": "am e8c04db7: Merge \"Add the {get,set}PackageObbPaths calls to API\" into gingerbread\n\n* commit \u0027e8c04db71e347396e9537ead7113ba9f46706e44\u0027:\n  Add the {get,set}PackageObbPaths calls to API\n"
    },
    {
      "commit": "c6bf4075c96d8738ee375835a5b92b1332e4d929",
      "tree": "71e532d6232669f7028d370982b192aabb95f3a6",
      "parents": [
        "cb8427538dfdc5eae941e377b11bfd11a95fc5a5"
      ],
      "author": {
        "name": "Mikael Andreen",
        "email": "mikael.andreen@sonyericsson.com",
        "time": "Wed Dec 01 12:49:08 2010 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Tue Jan 11 15:27:23 2011 +0100"
      },
      "message": "Fix of tearDown() in SingleLaunchActivityTestCase.\n\nBefore a suite of SingleLaunchActivityTestCase tests are run,\nan activity is started. The activity is supposed to close\nwhen all the tests in the suite have run. The activity is\nhowever finished one test too early. This causes problems\nfor the last test.\n\nChange-Id: Ie9fb2df350a70f827495a0dc30952e30fbe491e0\n"
    },
    {
      "commit": "6c4d904851772313930f800ac7c323cf90c709bb",
      "tree": "2f84951fb1aafb2b141419003cef9a64534e5c9a",
      "parents": [
        "9b447d122a2f0a4798f03749e9d93b9a58834fe3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Nov 19 12:48:05 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Jan 09 13:20:28 2011 -0800"
      },
      "message": "Add the {get,set}PackageObbPaths calls to API\n\nAdd getPackageObbPaths() and setPackageObbPaths() to the public API.\n\nBug: 3214719\nChange-Id: Icb9f2f92f8c59bb3d31317f609854e81abbd1449\n"
    },
    {
      "commit": "ac77f4629c1bbdf2e440d0fcc9fd665e5dd1ae6e",
      "tree": "5cd5a0217063445064876c39bc6fcfba5a8f8d65",
      "parents": [
        "cd3676e7b835653b04d4f66251a63749e7603f5b"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Jan 07 12:06:47 2011 -0800"
      },
      "committer": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Jan 07 12:06:47 2011 -0800"
      },
      "message": "Prevent ActivityTestCase from erasing constants.\n\nIf you test case is declaring a non-primitive constant,\nthis method would clear out the constant between\nindividual tests.\n\nChange-Id: I570f2bbbbbb0a170bf63b7473b4aaf84869e93e0\n"
    },
    {
      "commit": "f48e94005b6f7d648ebe659960bed32998779439",
      "tree": "54be9683c7ed474303ed57478544e8c10eeda7b5",
      "parents": [
        "63acafec59d7af24e8579e6f895747b528864a23"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 12:58:40 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 12:58:40 2010 -0800"
      },
      "message": "Remove an obsolete import for performance tests.\n\nChange-Id: Ifc76ef821f71ea7469b4044b15071f5d2a7418fd\n"
    },
    {
      "commit": "bd1c5da28dab9c3fb7e19bdadb22d7ad960fa3c3",
      "tree": "a929e584ab215ff780f695710a004cb393ef3a93",
      "parents": [
        "41e7e6f9339cd9181df26ca96f0ac133371bc524"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 08:21:48 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 10:23:28 2010 -0800"
      },
      "message": "Remove unused performance tests.\n\nChange-Id: I5a252e314831716f99ce5fbb32d983c7473ee787\n"
    },
    {
      "commit": "c91893511dc1b9e634648406c9ae61b15476e65d",
      "tree": "3ad578a43734d2ed63403a8b9076c2c5c6d07dbe",
      "parents": [
        "60e41fa4456ce6bc37a33b1e4b81a56e9411199b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 15 14:57:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 16 20:09:13 2010 -0800"
      },
      "message": "Fix issue #3272082: Contacts: when going back from edit view,\nlist UI is not ready yet\n\nThis involves some reworking of Loaders.\n\nLoaders, in particular CursorLoader, are now expected to retain\ntheir current data after being stopped.  This allows applications\nto keep that data across onStop() -\u003e onStart(), so when the user\nreturns to the app it doesn\u0027t have to wait for the data to reload\nand thus cause flicker.\n\nThis includes various API changes to better reflect the new\nsemantics, plus a new LoaderCallbacks method to tell the application\nwhen it is actually time to stop their use of a loader\u0027s data.\n\nNote this is somewhat half-done, to help checking in the extensive\napplication changes that are required without causing build breakage.\n\nChange-Id: Ib4b3bf8185a6da46e7f06ca125521d65e2e380a1\n"
    },
    {
      "commit": "4f3867e3ce92101224ad79b8f2ff446bb4f99108",
      "tree": "34fe1bf3f235ce5ae2ec4d66046ab7a0bbb439a7",
      "parents": [
        "6866d6912b6b5cbaaf482857d279037135aeb45f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 14 22:09:51 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 14 22:19:03 2010 -0800"
      },
      "message": "Time to remove some old APIs!\n\nChange-Id: I73ca23b0d5c7971a00dfa05357f9b630d9b6ebc8\n"
    },
    {
      "commit": "621e17de87f18003aba2dedb719a2941020a7902",
      "tree": "978b402ced5bd03d3b4f6eaa9fbaaf186427823c",
      "parents": [
        "703c5f39c58168829e8d8f7ed7b5aea3f4fb600b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 15:59:56 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 18:35:55 2010 -0800"
      },
      "message": "Implement issue #3221502: New APIs to support new back stack / task navigation\n\nWhat this adds:\n\n- A new Intent activity flag to completely replace an existing task.\n- A new Intent activity flag to bring the current home task up behind\n  a new task being started/brought to the foreground.\n- New versions of startActivity() that take an array of Intents to be\n  started, allowing applications to start a task in a specific state.\n- A public moveTaskToFront() method on ActivityManager, with a new flag\n  that allows the caller to have the task moved to the front with the\n  current home task immediately behind it.\n\nChange-Id: Ie8028d09acffb5349d98043c67676daba09f75c8\n"
    },
    {
      "commit": "be4e1c8f6f2731e61d1c9302662892007a4579b9",
      "tree": "c222ab7e6b71ac93680578b77998b070c0f56893",
      "parents": [
        "dbc7f092f63172602596c8cdc213159ea5ff0003",
        "7b76ed693e42caea0c5f1bcbe7059c580e9cb314"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 19 16:56:42 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 16:56:42 2010 -0800"
      },
      "message": "am 7b76ed69: am e3bef7c4: Merge \"Added noop unregisterReceiver to complement existing noop registerReceiver.\"\n\n* commit \u00277b76ed693e42caea0c5f1bcbe7059c580e9cb314\u0027:\n  Added noop unregisterReceiver to complement existing noop registerReceiver.\n"
    },
    {
      "commit": "7b76ed693e42caea0c5f1bcbe7059c580e9cb314",
      "tree": "979062841c9a23a97fdee0ef9265349d12d83530",
      "parents": [
        "00f502a38cc4d6e2278f962b04308e6590dba36b",
        "e3bef7c48d7ec13cb8c7c81dba8d775377e69bed"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 19 15:43:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 15:43:28 2010 -0800"
      },
      "message": "am e3bef7c4: Merge \"Added noop unregisterReceiver to complement existing noop registerReceiver.\"\n\n* commit \u0027e3bef7c48d7ec13cb8c7c81dba8d775377e69bed\u0027:\n  Added noop unregisterReceiver to complement existing noop registerReceiver.\n"
    },
    {
      "commit": "880119bf43d738ca632b5d3861eb52d655c1c0fc",
      "tree": "684a13f821e570aee075c77bde7f5fc28191015f",
      "parents": [
        "7ffd0871e6b8d7ab9443bef6e8b2a31674d1f623"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Nov 18 22:26:40 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 19 13:21:08 2010 -0800"
      },
      "message": "Implement issue #2367442: Please add API for manipulating installer\npackage names\n\nChange-Id: I0563e896a47ae1a6e77aebc2d624fb1bde52ffbc\n"
    },
    {
      "commit": "48983959a34f67024bd0411c8353c196e6a87717",
      "tree": "02e306ba2f70971265902810f70a35cb6e30d5d3",
      "parents": [
        "81c4cea9ec4b08f8c06fdef86d51069adb739eb7"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Nov 17 12:28:51 2010 -0800"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Nov 17 12:28:51 2010 -0800"
      },
      "message": "Fix NPE in InstrumentationTestRunner\n\nThis fixes a problem where the test runner would die when a\ntest case has tests that are not methods of the test class.\n\nChange-Id: I5adc464bb4a0c8d282428895e422a47dcb6bfe1f\n"
    },
    {
      "commit": "3fc03e619fb01678549b80e7a89af2c8e3f19968",
      "tree": "8219675f058c1939b7662dfd08fc284ee60e32c5",
      "parents": [
        "62f2ada64f7213243eafd7a4a4c3ccd5040ad85a"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Oct 19 15:13:07 2010 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Oct 19 18:23:18 2010 -0700"
      },
      "message": "Added RepetitiveTest annotation and test runner support\n\nChange-Id: I7bf0871ede6dd69512c6b6ea3484693ba5b78e89\n"
    },
    {
      "commit": "d672475753af1feff1c0f81bba72637ec0b536cd",
      "tree": "cac22eda9f7813d2497a13b515752549aed44f38",
      "parents": [
        "7d9c73fb6f6f79f7f92b77482a0edbd7b89f2564"
      ],
      "author": {
        "name": "Jonas Schwertfeger",
        "email": "jschwertfeger@gmail.com",
        "time": "Thu Sep 30 14:04:09 2010 +0200"
      },
      "committer": {
        "name": "Jonas Schwertfeger",
        "email": "jschwertfeger@gmail.com",
        "time": "Thu Sep 30 14:04:09 2010 +0200"
      },
      "message": "Added noop unregisterReceiver to complement existing noop registerReceiver.\n\nWithout this addition, code that is being tested using an isolated context\ncan cause an exception if it unregisters a previously registered broadcast\nreceiver.  This is because the isolated context never actually registered\nthe receiver in the first place.  The fix is to make sure the isolated\ncontext is consistent in ignoring both recevier registration and\nunregistration calls.\n\nChange-Id: Ie0ba6f4bb10f5248704327a0ffc8e37ee8b71ae2\n"
    },
    {
      "commit": "cca1f0e3476edd09cdd81b075a6b7780a2959b46",
      "tree": "d403a9351ccb722771dea382852bde6df8f23a68",
      "parents": [
        "c63806d852a550d82bbe6cadff8a2139d78ed559"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 27 18:05:44 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "8313fc7e94e46e5cc09f457a15a771a325b9f74f",
      "tree": "d68bf554b0d92a64cde72e58178e60d4d30b521d",
      "parents": [
        "08c09b0f84b23627b4cd02e1b9a642952fbd2e7f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 21:31:47 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "8e34203c41f2f38f9d58547881bb4febd7c07bc7",
      "tree": "af4aeda8ef3a609a30cc79e10498c65e5b35e959",
      "parents": [
        "ed4fbd98d05a368ea17d6759f262b3547406c8c5"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Sep 07 14:27:25 2010 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Sep 07 14:27:25 2010 -0700"
      },
      "message": "Add getApplicationContext to the mock implementation.\n\nSo that it\u0027ll be compatible with Loaders, which uses this method.\n(Otherwise MockContext.getApplicationContext(), which just throws\nan exception, will be used.)\n\nChange-Id: I529b60466cf086b514fcddbef4583d1c5b750b9c\n"
    },
    {
      "commit": "2394c164a76f6d3f8ad9f1c1517f58f72adab9d7",
      "tree": "f0cee0035a0983071d2cdd713d77eacc156dab36",
      "parents": [
        "633524731b2a7a0871aabfabc60459ac27f0e5ab",
        "ec438e1448ebc578ee5a4c4beb1e26292cdedd6e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 31 19:06:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 19:06:25 2010 -0700"
      },
      "message": "am ec438e14: am 361199b5: Add PackageManager API to get information about a provider component.\n\nMerge commit \u0027ec438e1448ebc578ee5a4c4beb1e26292cdedd6e\u0027\n\n* commit \u0027ec438e1448ebc578ee5a4c4beb1e26292cdedd6e\u0027:\n  Add PackageManager API to get information about a provider component.\n"
    },
    {
      "commit": "361199b5e742c6635d4d7a03de6cf37b31cf442c",
      "tree": "170d0ba61242ba04a3491a98f894f3a2e416bbe7",
      "parents": [
        "22cd420bfa431b4ad55e699afadf109dcc54f201"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 30 17:42:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 31 18:59:04 2010 -0700"
      },
      "message": "Add PackageManager API to get information about a provider component.\n\nKind-of useful when all you have is a ComponentName.\n\nChange-Id: I9a99f12daabb29e97e882e09c43ca0df70c00651\n"
    },
    {
      "commit": "23fdaf6fb62a9b5154b2508916a21c678462c5d0",
      "tree": "14b794a1f76f738576bbaa8295141914f5b2b123",
      "parents": [
        "163935113919a184122b8b3bd672ef08c8df65dc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 06 12:16:55 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 08 18:49:31 2010 -0700"
      },
      "message": "Add new ContentProvider for doing conversions to data streams.\n\nThis introduces basic infrastructure that should allow content\nproviders holding complex data to perform on-demand conversion\nof their data to streams of various types.  It is achieved through\ntwo new content provider APIs, one to interrogate the possible\nstream MIME types the provider can return, and the other to\nrequest a stream of data in a particular MIME type.\n\nBecause implementations of this will often need to do on-demand\ndata conversion, there is also a utility intoduced in ContentProvider\nfor subclasses to easily run a function to write data into a\npipe that is read by the client.\n\nThis feature is mostly intended for cut and paste and drag and\ndrop, as the complex data interchange allowing the source and\ndestination to negotiate data types and copy (possible large)\ndata between them.  However because it is fundamental facility\nof ContentProvider, it can be used in other places, such as for\nmore advanced GET_CONTENT data exchanges.\n\nAn example implementation of this would be in ContactsProvider,\nwhich can now provider a data stream when a client opens certain\npieces of it data, to return data as flat text, a vcard, or other\nformat.\n\nChange-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2\n"
    },
    {
      "commit": "3c7c351a6217ac48b741740167c201a679a0ca65",
      "tree": "f539d70e0a46249f01dd6fb45563f1ebc4bed706",
      "parents": [
        "cde66df44240cfe5a7bec12ac52464c3bf26c14f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 15:44:39 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 23:47:38 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit f77cf7f0\ngit cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113\ngit cherry-pick --no-commit 570bb561\ngit cherry-pick --no-commit e2417541\ngit cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30\ngit cherry-pick --no-commit 5e8a587d\n\nChange-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88\n"
    },
    {
      "commit": "b6d1437f32d92369da208f6201df7bcdb5d17763",
      "tree": "fdb90588a0e8a61a00b1934967ec44178d91a269",
      "parents": [
        "8e552630e72a17d7340f1bebccbc6fd6faef82fb"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 18:05:00 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 18:05:00 2010 -0700"
      },
      "message": "fix build breakage\n\neclipse doesn\u0027t complain but our build does..\n\nChange-Id: If0289b68e91e7eb2ae7a9b7bd90d5cb6b728e944\n"
    },
    {
      "commit": "0c9e14aa4aa1370e01872dc05238f822f2dd552c",
      "tree": "881d1ab617e7b83a3b3d011755a1cb61bd3d414d",
      "parents": [
        "0d523e09bdc6373cba3c3c45ae84ffacfcfcf3b1"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 13:31:48 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 13:34:34 2010 -0700"
      },
      "message": "add shutdown() to ContentProvider \u0026 call in ProviderTestCase*.tearDown\n\nChange-Id: I3dd69b6907d68b7c1184139f22297ab92337f043\n"
    },
    {
      "commit": "ebd19e0f48b0cb246c246274a256a9bb494b7e7a",
      "tree": "a503f7f06b89a6259253f088b67a7c2d419697e6",
      "parents": [
        "a2a1b911a31dd94ee75e94845f762b91f1db1368"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jul 21 16:33:10 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Tue Jul 27 14:03:00 2010 -0500"
      },
      "message": "Add LoaderTestCase that makes it easier to test Loaders.\n\nChange-Id: I4e91d6767cfd5cc61d7893e9cd71e963e42601a4\n"
    },
    {
      "commit": "d93f4e5b70f37feae0cbdf1f456c167a1ea37433",
      "tree": "4ebf3b8930f32f2a754b22361175d4fef111346f",
      "parents": [
        "e339464f1c8efe7e53b761cf44ff5be6e537ecad",
        "87e98cda1c864cb2069d387a64346702a05574c4"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Tue Jul 13 09:46:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 13 09:46:38 2010 -0700"
      },
      "message": "Merge \"DO NOT MERGE Doc Change: Javadoc for test case classes\" into gingerbread"
    },
    {
      "commit": "bbfe0b2264703c243e2e74631abd26fdf4459e36",
      "tree": "e47eac80284822babe166ef4b099d9830010bbcc",
      "parents": [
        "d8a6271bb1da4ee2a8ae126b532f1b5f302decb8",
        "243f7f85ea9e57716590b9cf355e55d1f0236fce"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jul 08 19:10:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 08 19:10:29 2010 -0700"
      },
      "message": "am 243f7f85: am f6120cf4: Merge \"Improve InstrumentationTestRunner exception handling.\" into gingerbread\n\nMerge commit \u0027243f7f85ea9e57716590b9cf355e55d1f0236fce\u0027\n\n* commit \u0027243f7f85ea9e57716590b9cf355e55d1f0236fce\u0027:\n  Improve InstrumentationTestRunner exception handling.\n"
    },
    {
      "commit": "511d9ec363c5bb460e4695de56edc1b7785dc7bf",
      "tree": "0989c0d452b037d9621f701c0adacb96d6b4710b",
      "parents": [
        "28e230352b24b190d6750aa38a79b69e2fada067",
        "0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 08 19:09:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 08 19:09:06 2010 -0700"
      },
      "message": "am 0a21801f: am a5402dab: Merge \"OBB API for PackageManager\" into gingerbread\n\nMerge commit \u00270a21801f5fae22cd5e1b3e9f1c1405c744e24c9b\u0027\n\n* commit \u00270a21801f5fae22cd5e1b3e9f1c1405c744e24c9b\u0027:\n  OBB API for PackageManager\n"
    },
    {
      "commit": "f6120cf431804e072f34699a5d8a3fae62492cee",
      "tree": "dfc0e00fb75fe4d40949772df0dd5ffff275ce80",
      "parents": [
        "74bf59b450daf9e7e6bf234f01db164099edbfd5",
        "31e7ce762ccbbb747fabb4581e42a0a2fe56e780"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jul 08 14:09:21 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 08 14:09:21 2010 -0700"
      },
      "message": "Merge \"Improve InstrumentationTestRunner exception handling.\" into gingerbread"
    },
    {
      "commit": "31e7ce762ccbbb747fabb4581e42a0a2fe56e780",
      "tree": "f9d5ff503a6ce35c29aa2da2f9bdc6359f6640dc",
      "parents": [
        "dacabf97c609a040ada857a7da6c560097448ae3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jul 07 17:19:08 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jul 07 17:33:22 2010 -0700"
      },
      "message": "Improve InstrumentationTestRunner exception handling.\n\nThis commit fixes two somewhat related problems:\n  - Attempting to run a method which does not exist caused a runtime\nexception which stopped the test run. Change this so the runner reports\nan individual test failure instead\n  - A runtime exception during the test run would cause it to stop\ncompletely, with no information dumped to the logcat or stdout. Now\nexceptions are trapped and reported to stdout.\n\nAlso added associated unit tests to test these two conditions.\n\nRelated bug 2812262.\n\nChange-Id: I383f9b9bad99f14cb51071800fa9bdbf6a6a1119\n"
    },
    {
      "commit": "93565c4b3265c16aee4a82d7556f811776c17db8",
      "tree": "1b6802fea6d067d97410d67d6665721ea23fb327",
      "parents": [
        "7cee34a051eb0087322c8b965e498f88b1aa52d3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jun 18 15:46:06 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 07 09:57:51 2010 -0700"
      },
      "message": "OBB API for PackageManager\n\nSimple API for tracking .obb files associated with packages. Stores the\npath in the PackageSettings. No verification of file content is done\nnow since the PackageManagerService can\u0027t read the SD card where these\nfiles will likely live.\n\nChange-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e\n"
    },
    {
      "commit": "87e98cda1c864cb2069d387a64346702a05574c4",
      "tree": "71ce565d76f51c7a532436f102d32c17ab5edfb2",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 31 14:37:28 2010 -0700"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Fri Jul 02 17:52:37 2010 -0700"
      },
      "message": "DO NOT MERGE Doc Change: Javadoc for test case classes\n\nChange-Id: I21b78a84ee1345a98631dcaab937a10b4fa4344d\n\nOriginal change was SHA1 7d433aabb731a790fc8d06d260c826751215113f\n"
    },
    {
      "commit": "7d433aabb731a790fc8d06d260c826751215113f",
      "tree": "5e9d79ba13c3cecb80443d329b9814636b46a873",
      "parents": [
        "7ade1be822ed05a143b059319dccd5e9f623b56d"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 31 14:37:28 2010 -0700"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Tue Jun 29 15:03:58 2010 -0700"
      },
      "message": "Javadoc for test case classes\n\nChange-Id: Ibfa035cfe9091a81fca8bd0a6c141ec26c2de139\n"
    },
    {
      "commit": "25f3ab4ee7d14ac9453396e2100d27f3f52c7077",
      "tree": "d2e0dfb4860338027a2613e2e4be2806ae9c2a8f",
      "parents": [
        "a2650db770e93a9424d6d6948fd31f943f6dac49"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Jun 18 16:19:26 2010 -0700"
      },
      "committer": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Jun 18 16:19:26 2010 -0700"
      },
      "message": "Manual merge of change 53051 from master (DO NOT MERGE)\n\nChange-Id: Ia4697a15cb874f25849655994e10aa88ae60b328\n"
    },
    {
      "commit": "f6b979a04f38659177e06ff81cf7bc1b87389fe9",
      "tree": "35438c24a45d92ebc9b81ecf4a0ef5af9510808b",
      "parents": [
        "8fd2913a7d893f7b0c07217df246876318739db5"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jun 04 16:12:15 2010 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jun 04 16:14:42 2010 -0700"
      },
      "message": "Fix UnsupportedOperationException from MockContext.\n\nAdded the new variant of openOrCreateDatabase to RenamingDelegatingContext too.\n\nBug 2739822\n\nChange-Id: I65868d0975e0a0a87ade6b5a0d625b96676af0ba\n"
    },
    {
      "commit": "74f170f9468d3cf6d7d0ef453320141a3e63571b",
      "tree": "7fb4f06b43b5e0ef8d2fdebccb62172217e0b174",
      "parents": [
        "26ae7875ad41c79d595a137c2f4a55c8d8e16f4c"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Jun 01 18:06:18 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Thu Jun 03 12:38:11 2010 -0700"
      },
      "message": "new API in Context. on openDatabase, new param DatabaseErrorHandler\n\nadd new method openOrCreateDatabase in Context.java to allow\ncallers specify a DatabaseErrorHandler object to be used when\ndatabase corruption occurs.\nadd new constructor in SQLiteOpenHelper to accept DatabaseErrorHandler\nas an additional param to be used when SQLiteDatabase instance is\ncreated.\n\nChange-Id: I912a0202a74510f9ca0206dd8101c4abab9102ae\n"
    },
    {
      "commit": "8b0dd7da360d70920a37802eb455ba41500d3b45",
      "tree": "d31a63e67bbfad53c2dfe4002795b73286b7c361",
      "parents": [
        "3e7432f823b9f0457e935614787cff4eb71a8f2b"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue May 18 11:54:31 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jun 02 17:40:41 2010 -0700"
      },
      "message": "add API to Cursor to get column value type\n\nChange-Id: I3ef1bcdb2eb1c45f68e829ccb6e3ecde28076591\n"
    },
    {
      "commit": "71be4b5ed994030171fb3bd3f08fbc8c43c47567",
      "tree": "bd8e9a421ab626adc21f61db0bcc4175cae65f67",
      "parents": [
        "0e42b29eb0b279ad64c55890efd3fb533493224e"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Tue Jun 01 13:55:50 2010 -0700"
      },
      "committer": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Tue Jun 01 13:55:50 2010 -0700"
      },
      "message": "Bring ServiceTestCase in line with current Service APIs and remove unnecessary asserts.\n\n-Updated onStart() call to onStartCommand()\n-Removed asserts that disallowed starting an already bound service and vice versa, since\n that is a valid Service usage pattern.\n\nChange-Id: I79804aef5319a590c74fca54fc990954f7c3fdaa\n"
    },
    {
      "commit": "e26867793b6a0c226e02f7da880b06efbcb8707e",
      "tree": "30685e5c8ee5cd4e20895d99d5a923643cae6ea9",
      "parents": [
        "7cd51efcbd2d083bf577696591ef1769034f7e2f"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 13 02:34:10 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 13 23:44:10 2010 -0500"
      },
      "message": "Remove the unused modification APIs from MockCursor. They shouldn\u0027t have been public in the first place.\n\nChange-Id: I2932e5287f838f72acdc4c0c1fd5601ffa8c3f84\n"
    },
    {
      "commit": "c8f503b5285e30c1a881d0ba860ba9021f57d113",
      "tree": "48afc9f347ebe6b348254b1c88c35deafab10054",
      "parents": [
        "5d8636dbada23bd40c80dbf43702d538b2997ac4"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue May 04 16:34:55 2010 -0700"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed May 12 22:05:07 2010 -0700"
      },
      "message": "Moving junit out of core.jar and into core-junit.jar.\n\nChange-Id: I38b585044aaa0f0ef5a243a33d942ab0e490f8f1\n"
    },
    {
      "commit": "631447c6049c2ee18e6cd1553905dd8f15b3bcbd",
      "tree": "2f195e4ddef0358ae8472614dc36e5a916aeca46",
      "parents": [
        "88b299b123c7add985c78deb085880733c0dc7ea",
        "bb469fe3da7e6d17e851a95026a9eea905c52daa"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Apr 26 10:30:56 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 26 10:30:56 2010 -0700"
      },
      "message": "Merge \"Add test runner log when test case class is not loaded.\""
    },
    {
      "commit": "bb469fe3da7e6d17e851a95026a9eea905c52daa",
      "tree": "fea7c329f41977fabc3dc75c9122ce680a1aecb9",
      "parents": [
        "a2c980d30f41e6d5aff948e7b249d7c3360db89d"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Apr 23 16:22:09 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Apr 23 16:29:00 2010 -0700"
      },
      "message": "Add test runner log when test case class is not loaded.\n\nThe test runner will only load TestCase classes that have a public\nconstructor with either no params or a single String parameter.\n\nThis is fairly subtle behavior and can be difficult to catch. This change\nadds a log message when a TestCase class is not loaded, and adds some\nassociated unit tests.\n\nChange-Id: I6fc63e4179c949620f5773e0ae134f99905a6fb2\n"
    },
    {
      "commit": "81cd2e90ccdda498234384c8207afe2213714e60",
      "tree": "b521124675b8e4de73b45b24e3ecb9543ff946ea",
      "parents": [
        "1bdbb07237de7854797ac1574088eef4623eddbb"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 21 16:35:18 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 23 15:49:07 2010 -0700"
      },
      "message": "Logo attribute for manifest and PackageManager methods to fetch it\n\nChange-Id: I2c5ac44a4e2af982a616b2012901d7395013b19f\n"
    },
    {
      "commit": "d7c096845dee7616095eda0fe9e7aa08f0ba9c20",
      "tree": "d20190ae42b25ce05960e16a89b8eb803d837602",
      "parents": [
        "22375e4a736c0d646c3cf0905c15126f7f4107c2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 30 10:42:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 30 13:34:43 2010 -0700"
      },
      "message": "Package manager optimizations.\n\nAddresses:\nIssue #2550648: PackageManagerService setComponentEnabledSetting unconditionally\nwrites Settings xml\nIssue #2549084: Make PackageManager.addPermission have async version\n\nAlso make the writing of settings when changing the preferred activities to use\nthe same async mechanism, and fiddle with thread priorities in the background\nthread to go up to foreground priority when holding the lock to write settings\nand a few other places.  (At some point we should really clean this up to never\nacquire the main lock while in the background.)\n\nChange-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413\n"
    },
    {
      "commit": "89c0ef4aba57172bbc9288f2d22c943f220a3dd1",
      "tree": "54366fa0f8ca63ff9f0db8c7356e84e6b7f50d81",
      "parents": [
        "ed531b37e5315dab8987b6bfb4adcbb49df9cf88"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Mar 18 20:03:31 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Mar 19 11:40:50 2010 -0700"
      },
      "message": "Add -e package description to InstrumentationTestRunner javadoc.\n\nBug 2528316\n\nChange-Id: Ic707115e40a18521e0d57ee12f43df96be7033f2\n"
    },
    {
      "commit": "10362ab9d67d87c0c3217e804e64d3e7038211df",
      "tree": "3b564cde6d8a9d6fd219116051befad97e635df7",
      "parents": [
        "d3d9b85ef4e2991480201df91455c2ad7b8e0b78"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 11:13:50 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 11:14:55 2010 -0800"
      },
      "message": "Add missing license notices on test classes\n\nChange number and file origin info\n\n34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase2.java\n48099-p9 frameworks/base/test-runner/src/android/test/RenamingDelegatingContext.java\n40550-p9 frameworks/base/test-runner/src/android/test/BundlePrinter.java\n87783-p9 frameworks/base/test-runner/src/android/test/IsolatedContext.java\n34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase.java\n\nChange-Id: I1fea36db24e73f91ffdf43b84ff73be55478b53a\n"
    },
    {
      "commit": "1877d0158b529663b8315482e7346a7bcaa96166",
      "tree": "5194b59937b70c2f48366f27a4458d4043957d16",
      "parents": [
        "cd47f11dfad012be1b176ea06904a00da157ed7b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 04 17:48:13 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Mar 05 12:08:39 2010 -0800"
      },
      "message": "Add \"call\" method on ContentProvider.\n\nThis permits implementing interfaces which are faster than using\nremote Cursors.  It then uses it for Settings \u0026 SettingProvider, which\ntogether account for ~50% of total ContentProvider event loop stalls\nacross Froyo dogfooders.\n\nFor fetching Settings this looks like it should reduce average\nSettings lookup from 10 ms to 0.4 ms on Sholes, once the\nSettingsProvider serves most gets from in-memory cache.  Currently it\nbrings the Sholes average down from 10ms to 2.5 ms while still using\nSQLite queries on each get.\n"
    },
    {
      "commit": "69120a73d0f7a1862d51e0a95ebd5e507fee8cd2",
      "tree": "32d52fcfaf9b039c80ee29a689101f5337dfc2a6",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Feb 26 18:21:15 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Feb 26 18:24:29 2010 -0800"
      },
      "message": "Bug 2306842\n\nSince MockAccountManager was passing null to the AccountManager\nconstructor, unit tests where the AccountManager attempts to call\nthe AccountManagerService were crashing.\n\nNow the getAccountsByTypeAndFeatures and blockingGetAuthToken\n(which are the calls that the Gmail unit tests call) call a small\nstub\n\nAt some point, all of the other AccountManager calls should be stubbed\nout\n"
    },
    {
      "commit": "0375fa12c7f94bfc9c840721dcc5215b6c7575d6",
      "tree": "d2723b227d3f01956d2f51279fff63374536c722",
      "parents": [
        "925b4da0975ad98ece8a631040afa55b07cebb36"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 23 12:36:06 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 23 12:36:06 2010 -0800"
      },
      "message": "fix error in javadoc\n\nThe \"@link LargeTest\" is broken since it doesn\u0027t know where that class is.\n\nChange-Id: Ie15e40bac8a1965427e351926b2208775e79cb13\n"
    },
    {
      "commit": "88e03a97366d08fc69d852cf2219f9d0b1916af4",
      "tree": "99e50be3bfd8a264b6d84133e4e05ea59e2c50ef",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 09:57:11 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Feb 22 18:08:35 2010 -0800"
      },
      "message": "Add ability to run tests restricted to given annotation.\n\nAnd ability to exclude tests with given annotation.\n\nAlso fix class cast compile warning in emma output method.\n\nBug 2239240\n\nChange-Id: I56273a51a8c58a690680bdb612615fab69e6e13f\n"
    },
    {
      "commit": "08d13c3cbb0b250b84ca861edb462060556aead9",
      "tree": "9704cbf808666df16479b4b3a86e7e5c1dfd10e2",
      "parents": [
        "e70f61b1160e953e5e4d18d30a463fa9ba821779"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 18 15:42:13 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 18:38:30 2010 -0800"
      },
      "message": "Fix code coverage output message when running tests in non-raw mode.\n\nBug 2082804\n"
    },
    {
      "commit": "e70f61b1160e953e5e4d18d30a463fa9ba821779",
      "tree": "763d50921749fb256c7e2b656db045ee21277b06",
      "parents": [
        "fda25347b8aaa860e0fdbc972c0f4411c85f8fa3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:49:27 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 17:29:05 2010 -0800"
      },
      "message": "Retry test-runner tests move.\n\nThis time change the frameworks makefile so it only includes test-runner/src\nin the public API.\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "90762d35a99e32ed22cdfb1f81252544ee22e30b",
      "tree": "eadc40dab7605e4ccce6493bafc211b1becfb98b",
      "parents": [
        "30e694aea1b7fac450ff3c668094dcfe921e9421"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 11 20:07:17 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 12 11:09:26 2010 -0800"
      },
      "message": "Modify ActivityInstrumentationTestCase2 to not require hardcoded package name.\n\nDeprecate old constructor.\n\nBug 2440167\n"
    },
    {
      "commit": "470969346d7958f859d97d1a136b4ecc11e2a464",
      "tree": "c9c1ec33c9b3dd2463ffa4b7704cd87e1a12ca9c",
      "parents": [
        "b509065a586d11e6800373d0a57f5296428f2d89"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 15:57:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 20:02:20 2010 -0800"
      },
      "message": "Add APIs for mapping between new and current package names.\n\nThis will allow Market and others to find out what the \"real\" name\nof a package is, when it is currently running under the old name of\na previously installed version.\n"
    },
    {
      "commit": "1048108f1f57c96f746241b36b5181ff6cd0a8ee",
      "tree": "ae207a22753243e8e12cd725d64b4e11ca810653",
      "parents": [
        "575c6710a38f608aca2c25e7784674a47d18a871"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Feb 11 10:33:12 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Feb 11 14:09:10 2010 -0800"
      },
      "message": "Fix some Gmail tests\n\nThe SSLSessionCache attempts to create a directory through the context\nIn MockContext, this throws an UnsupportedOperationExcetion\n\nThis CL changes MockContext2 in ProviderTestCase2 to allow getDir\nto be called, but the directory is named so it will be seperated from\na directory created by a regular context\n"
    },
    {
      "commit": "117818e4f171b1fd9daa05349c48f61388f04567",
      "tree": "2bb350a719caf06727a410ce662c46a28c45fb72",
      "parents": [
        "596ce7fbfe5a81a4270949448c08dcb3a684cc3a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 09 03:45:40 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 08:59:08 2010 -0800"
      },
      "message": "Add new manifest option for install location\nChange recommendAppInstallLocation api\nadd code to parse new attribute.\nDefine flags in PackageInfo\nAdd new settings attributes for enabling setting and value for install location\nSome tests\nThe policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.\nIf the user enables setting SET_INSTALL_LOCATION(which will always\nbe set to false in final release builds) and sets a prefered location, we try\nto honour it.\n"
    },
    {
      "commit": "d03ff94fe58045b5bd1dd783fb98026778a4265d",
      "tree": "c35d201ab498f23f075f1c48ce4ce3ce55e9f2e4",
      "parents": [
        "ca35953c9064114cb09181e8bffddb2f7c2d8d53"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 09 08:46:14 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 10 09:41:25 2010 -0500"
      },
      "message": "Clean up interface between LocationManagerService and the location providers:\n\nLocationManagerService now uses new Java interface LocationProviderInterface\nrather than LocationProviderProxy to refer to location providers internally.\n\nLocationProviderProxy and the ILocationProvider binder interface are only\nused for location providers implemented as services (NetworkLocationProvider)\n\nBuilt-in location providers (GpsLocationProvider and mock providers) now just\nimplement LocationProviderInterface rather than using a Binder interface and proxy object.\n\nDelete obsolete and unused TestLocationProvider class.\n\nChange-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "53bd2522ca7767f46646606123b6e2689b811850",
      "tree": "40a43c4d19ee0c6af8443878e3e889307f33652a",
      "parents": [
        "9be54d400d68c735013bc8069fbcb66c3f98c3ee"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 05 15:28:12 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Feb 08 16:54:43 2010 -0800"
      },
      "message": "- change the SyncManager to retry MANUAL syncs that encounter a soft error\n- make the sync dump handle the case where there are no accounts\n- fix a bug that caused the SyncManager to burn up CPU in the system process\n\nThe following was implemented:\n\nscheduler offers:\n - settings to disable sync\n - retries of certain errors\n - backoffs\n\nwant a way to control these when scheduling a sync\n - \"ignore_settings\"\n - \"ignore initial backoff\"\n - \"manual\" : ignore settings, ignore initial backoff\n - \"do not retry\"\n\n- need to change the default behavior of not retrying manual syncs to retry regardless\n"
    },
    {
      "commit": "5d36c46d2d8fb3f1bdc8fd1ff407e14b4433272a",
      "tree": "7c38ac85045aca12f67b4428ff07ec384506cf7d",
      "parents": [
        "7406e53c4c152267bff799b0bb5d7edb6ece404f",
        "ad9bcb22d05fbf130ac64254abd51a137e9a3d3f"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Feb 08 09:17:10 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 08 09:17:10 2010 -0800"
      },
      "message": "am ad9bcb22: merge from open-source master\n\nMerge commit \u0027ad9bcb22d05fbf130ac64254abd51a137e9a3d3f\u0027\n\n* commit \u0027ad9bcb22d05fbf130ac64254abd51a137e9a3d3f\u0027:\n  Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method\n  Fixed Android animation framework, for using interpolators that do not start at 0.0f\n  Fix for GPS engines without separate session and engine status events.\n  Be tolerant of GPS session and engine on status messages arriving out of order.\n  GpsLocationProvider: Do not release wakelock until the GPS engine is fully off\n"
    },
    {
      "commit": "ad9bcb22d05fbf130ac64254abd51a137e9a3d3f",
      "tree": "51ef94ac11b8822b27b06da4669375863ece12b8",
      "parents": [
        "0af0449301e72a52beeed8f26021e5460004d67a",
        "7d039fbe07687c9046b23b9a3735fe8f95906dde"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 05 13:55:16 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 05 13:55:16 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "8621cfa43fd12b5ad1376eb1a2454729ce9d9c7e",
      "tree": "dcde40e85df9636b32731ebd31410460be535d90",
      "parents": [
        "8ab11f87acf01b830ad0db46ec549406b33c39de"
      ],
      "author": {
        "name": "Marc Capdevielle",
        "email": "marc.capdevielle@gmail.com",
        "time": "Fri Feb 05 19:28:23 2010 +0100"
      },
      "committer": {
        "name": "Marc Capdevielle",
        "email": "marc.capdevielle@gmail.com",
        "time": "Fri Feb 05 19:28:23 2010 +0100"
      },
      "message": "Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method\n\nThe ACTION_UP event was fired at the \"fromX\" position instead of being\nfired at the \"toX\" position which is the current value of local var \"x\".\n\nThis bug had no real impact as the VelocityTracker always ignores the last\nMotionEvent when it received more than 3 events...\n"
    },
    {
      "commit": "539d3c475f44b1499499a8b70375a192545cf113",
      "tree": "3e8b872798f665bd161ad83f23f4cf47e971f088",
      "parents": [
        "239d5b3638ae486f715f44a8c1a71420f486049c"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Jan 29 15:27:00 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Jan 29 15:28:42 2010 -0800"
      },
      "message": "Apps on SD card project.\nRefactored recommendAppInstallLocation(..) method in PackageManager by making it an instance method.\nSince PackageManager has only abstarct instance methods, moved implementation to ApplicationContext.ApplicationPackageManager class, in line with the rest of the method\nimplementations. Tah way, chage is consistent with best coding practices.\nAlso MockPackageManager received the additional method.\n"
    },
    {
      "commit": "717f0eb34b67639b33a17b215dbfd81402ba8feb",
      "tree": "9f0d319e74ee3b7826997e091bb465aee2228b35",
      "parents": [
        "f99e2e042dbec5eba997eb0ac5e00d5fa23f7840"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Dec 09 16:00:48 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 10 10:45:22 2009 -0800"
      },
      "message": "am 029074ff: fix build\n\nMerge commit \u0027029074ff0fca198676997c7453cfffa932361081\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027029074ff0fca198676997c7453cfffa932361081\u0027:\n  fix build\n"
    },
    {
      "commit": "f99e2e042dbec5eba997eb0ac5e00d5fa23f7840",
      "tree": "63f1f5b579f71c9aa3fe949ac0e89a596d21c8d1",
      "parents": [
        "2ec6c5699181316e5a5c2cd293c006ac4a8bb101"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Dec 09 16:00:40 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 10 10:43:58 2009 -0800"
      },
      "message": "am 563bfade: fix a build breakage\n\nMerge commit \u0027563bfade6601f3410681b3cd8b069ed22af5b048\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027563bfade6601f3410681b3cd8b069ed22af5b048\u0027:\n  fix a build breakage\n"
    },
    {
      "commit": "8ad6ec2eb4a58a6dad34be60d49f32a53f2419f4",
      "tree": "162f049f3b4a8e541a39ec546cd9c94b85d815c1",
      "parents": [
        "cdeed7887323048cc42e9c62f3205340a91b97bc",
        "8280c2b15f6875b2d387c05df23d264864eb9cd5"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Dec 04 00:53:53 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 04 00:53:53 2009 -0800"
      },
      "message": "am 8280c2b1: Implement new MockContentProvider. Also make ContentProvider aware of the class.\n\nMerge commit \u00278280c2b15f6875b2d387c05df23d264864eb9cd5\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00278280c2b15f6875b2d387c05df23d264864eb9cd5\u0027:\n  Implement new MockContentProvider. Also make ContentProvider aware of the class.\n"
    },
    {
      "commit": "8280c2b15f6875b2d387c05df23d264864eb9cd5",
      "tree": "509308daa0d9bd8807182788068c74bf3be8627c",
      "parents": [
        "3077f7df2eaf4127438d4337a9a25766261b02ee"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Oct 22 08:36:42 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Dec 04 17:48:44 2009 +0900"
      },
      "message": "Implement new MockContentProvider. Also make ContentProvider aware of the class.\n\nRename the old MockContentProvider to MockIContentProvider since it is\nmore appropriate name.\n\nDetail:\nCurrent developers inevitably depend on the backend used by ContentProvider,\nwhich is useful but not ideal nor \"testable\" from the view of them.\n\nCurrent MockContentResolver only accepts exact \"ContentProvider\" class, not\nIContentProvider interface, since we want to hide \"IContentProvider\" while\nthe old MockContentProvider implements IContentProvider and as a result some\nmethods we want to hide may be exposed to the public SDK now and probably\nfor the future.\n\nOn the other hand, ContentProvider is not interface but an exact class\nheavily depends on the internal logic and not suitable for external\ndevelopers to use for tests.\n\nThe new MockContentProvider introduces the mock implementation\nfor ContentProvider.\nIt extends ContentProvider, so \"is\" ContentProvider, but tries to avoid\ndepending on any backend System like IPC in Android, etc.\nThis should be useful from the view of application developers who do not\nwant to be confused with ContentProvider/ContentResolver backend\nimplementation \"at all\" and want to use MockContentResolver without\nany other ContentProvider implementations tightly connected to the\nexternal worlds.\n"
    },
    {
      "commit": "e5fa335b0dffbd06385b6de05ae04b2bd2ea277e",
      "tree": "5a8c806e05118bf1cc5b85c4a7316dd679d8e2f8",
      "parents": [
        "af3e233fe3222990440433d5f90a6a310d0170e3",
        "6e045e0aa1b465e9e989d3058a5d2fa13dcf026b"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Mon Nov 16 15:29:15 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 16 15:29:15 2009 -0800"
      },
      "message": "am 6e045e0a: am e0cadd7c: Merge change Iffbb6e55 into eclair\n\nMerge commit \u00276e045e0aa1b465e9e989d3058a5d2fa13dcf026b\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00276e045e0aa1b465e9e989d3058a5d2fa13dcf026b\u0027:\n  Make perf metrics collection \u0026 output via instrumentation simpler\n"
    },
    {
      "commit": "6e045e0aa1b465e9e989d3058a5d2fa13dcf026b",
      "tree": "555ec16a12b43ea7027cf0f22226221c1fe133e9",
      "parents": [
        "fc36afcba6e65f2e0816b1af08255b9ccafb17a6",
        "e0cadd7cd811a674df62279dec00d17678b2c501"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Mon Nov 16 15:25:06 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 16 15:25:06 2009 -0800"
      },
      "message": "am e0cadd7c: Merge change Iffbb6e55 into eclair\n\nMerge commit \u0027e0cadd7cd811a674df62279dec00d17678b2c501\u0027 into eclair-mr2\n\n* commit \u0027e0cadd7cd811a674df62279dec00d17678b2c501\u0027:\n  Make perf metrics collection \u0026 output via instrumentation simpler\n"
    },
    {
      "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": "478de466ce0504b9af639c3338b883893670a8e8",
      "tree": "61aba455baf06a4821a65b82d1115929619b49bd",
      "parents": [
        "2b63ff51d5202eb2b458e937d4b65b326238733e",
        "9db3d07b9620b4269ab33f78604a36327e536ce1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:06:20 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Nov 15 12:06:23 2009 -0800"
      },
      "message": "merge from eclair\n"
    },
    {
      "commit": "9db3d07b9620b4269ab33f78604a36327e536ce1",
      "tree": "41e294f34b9695187af098cd42167489fb0c8fb0",
      "parents": [
        "6c63ee4fc4acae4bbbbd2a49e0a68206221f0de0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:45:53 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 13 13:53:39 2009 -0800"
      },
      "message": "eclair snapshot\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": "af93c05c9a25018daf375094c8e697b83795b2d4",
      "tree": "88aa0da26ce8ba7a54ecb398fc772aa68529cc67",
      "parents": [
        "78383abf76e7daf8c1968d2e9a29a1ba354edb2e",
        "227ba2072df1474a0b3abaae7c415f152d32bcc2"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Fri Oct 30 18:41:08 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 30 18:41:08 2009 -0700"
      },
      "message": "am 227ba207: am e8228afb: Merge change I92cdc5ed into eclair\n\nMerge commit \u0027227ba2072df1474a0b3abaae7c415f152d32bcc2\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027227ba2072df1474a0b3abaae7c415f152d32bcc2\u0027:\n  PerformanceCollector: Collect \u0026 report perf measurements in key/value form\n"
    },
    {
      "commit": "227ba2072df1474a0b3abaae7c415f152d32bcc2",
      "tree": "70312f7e89f69d5ae9d6128c25e2237863ffe512",
      "parents": [
        "cbf583d7229aaff65734b4234e81db8ead864761",
        "e8228afb2bd005ae25ce58719f9d678389b26a16"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Fri Oct 30 17:07:56 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 30 17:07:56 2009 -0700"
      },
      "message": "am e8228afb: Merge change I92cdc5ed into eclair\n\nMerge commit \u0027e8228afb2bd005ae25ce58719f9d678389b26a16\u0027 into eclair-mr2\n\n* commit \u0027e8228afb2bd005ae25ce58719f9d678389b26a16\u0027:\n  PerformanceCollector: Collect \u0026 report perf measurements in key/value form\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": "ae27c576643a821d78ef330a5e1834c42d2cc94a",
      "tree": "e792eaef7bc190563c13e85d8b7e32237d69e341",
      "parents": [
        "917d0aece5c9395892c3a8e7191f04a1e2ca6330",
        "54616f3435e67029006d2f77462c61ed0635a3f6"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Oct 21 16:10:24 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 21 16:10:24 2009 -0700"
      },
      "message": "am 54616f34: Make MockCursor class a part of public SDK.\n\nMerge commit \u002754616f3435e67029006d2f77462c61ed0635a3f6\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002754616f3435e67029006d2f77462c61ed0635a3f6\u0027:\n  Make MockCursor class a part of public SDK.\n"
    },
    {
      "commit": "54616f3435e67029006d2f77462c61ed0635a3f6",
      "tree": "98327501bedd8882c3422050c122d0007d312135",
      "parents": [
        "bfd5b38673212c47f0e386c0a8370d4ff47bd2fe"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Oct 15 14:57:55 2009 -0700"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Oct 22 07:25:02 2009 +0900"
      },
      "message": "Make MockCursor class a part of public SDK.\n\nWith this class, external developers will be able to reduce their\nredundant work related to testing around ContentProvider/ContentResolver.\n\nInternal Issue number: 2181010\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"
    }
  ],
  "next": "264f9b4530d6ecbd9e9d02cf5c61c7b19f4c6376"
}
