)]}'
{
  "log": [
    {
      "commit": "85f2c9ce5a0e074df2429a5d66e1754e368a0430",
      "tree": "ab3dc62cabf9fc1ace4ace8b4011f66f024734c2",
      "parents": [
        "1a26c9aa0b96d30fc99eeb10bfd41f966ceb003a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 11:12:48 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 22 22:20:26 2010 -0700"
      },
      "message": "Fix issue #2530103: ActivePassword data in Device Policy Manager needs to be persisted\n\nAlso fixes how the quality vs. mode is handled to be more consistent, which also\nrequired introducing a new \"alphabetic\" quality since it is possible for the user\nto enter such a password.\n\nThe current password quality and length is stored in the DPM, since at boot it\ncouldn\u0027t figure this out from the stored password.\n\nChange-Id: I519d9b76dd0b4431bcf42920c34dda38c9f1136e\n"
    },
    {
      "commit": "bbbb1dc3c33f8fe3ed24bd0baacf1f196cb5addd",
      "tree": "1ca26588d665af7d49165d9640394db3a7e28671",
      "parents": [
        "47b464a92bd6cc9429a5f535b6d559b599d2e970"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 17 19:08:42 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 22 13:49:30 2010 -0700"
      },
      "message": "Unhide the MediaButton receiver API in android.media.AudioManager\n\nChange-Id: Ic9222b0bf6e2ff481c6aa5f16ac0259fa7a52355\n"
    },
    {
      "commit": "f4418b0113ff63c82348844f4c945c81aa9157ad",
      "tree": "4823756b23bf777ba7691dc9a09cb3ece56dc932",
      "parents": [
        "15b487e4ead5b1af5f188606449e04bc707a3ee7"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Mar 19 15:22:18 2010 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Mar 19 16:18:25 2010 -0700"
      },
      "message": "Change api for webview overscroll background.\n"
    },
    {
      "commit": "983ac2b8cff85dda1f55b0d7779a33248b3fa7cf",
      "tree": "7355f76c4ff8ec8e4e68813a2c4bab183adf39d6",
      "parents": [
        "db129b886fedad1e57ff185ac680cdf3c34b1b99"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 19 12:09:25 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 19 16:10:42 2010 -0700"
      },
      "message": "Unhide new constants used in AudioFocus API to denote a situation\nwhere a new focus owner signals it  allows other audio apps to keep\nplaying by ducking their audio streams.\n\nChange-Id: I1109f44546f3cbcff8ad33ee21cfff50f4f12177\n"
    },
    {
      "commit": "8340afe0f66663f032dd999e2d377564df0bb6d5",
      "tree": "7e03e4567416106d160e219e26bd8df1b1096a76",
      "parents": [
        "bb1934a5baa28dcf06d4615b692a197c4b7adbdb"
      ],
      "author": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Thu Mar 11 16:25:13 2010 -0800"
      },
      "committer": {
        "name": "Gilles Debunne",
        "email": "debunne@google.com",
        "time": "Fri Mar 19 11:15:49 2010 -0700"
      },
      "message": "New HeterogeneousExpandableList interface.\n\nThis interface can be used in conjunction with ExpandableListAdapter to\ndeclare more types of child and/or group views.\n\nNone of the ExpandableListAdapter implementations is heterogeneous in the\nframework. BaseExpandableListAdapter was decalred to use this interface so that users\nsee the methods and can overload. DateSortedExpandableListAdapter was left unchanged.\n\nThis feature is related to http://b/issue?id\u003d1459940\n\nChange-Id: Ifc589b697913778b16abfdcaaa9f8f81e564add7\n"
    },
    {
      "commit": "c04cfa35968783f5af007db95680f0087201d9ea",
      "tree": "8d4cd35639a00829ddb0249aa463749b9a1256ba",
      "parents": [
        "7942b33e8905bbc177ff3c92596404530c860bcd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 18 12:38:54 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 18 18:18:48 2010 -0700"
      },
      "message": "Unhide AudioManager API to control bluetooth SCO audio connection.\n\nNeeded for issue 2416481 in order to allow unbundled applications to play and record\naudio to/from a bluetooth SCO headset while not in call.\n\nChange-Id: Ie1f96ded991e65da538c2c4a58bfa1e548d58a01\n"
    },
    {
      "commit": "e2af5c882b146c3a8c7a37f093d13c8b386e8eba",
      "tree": "c93af8c04d2ec274acdb5c598739048e36cfe5db",
      "parents": [
        "9db133cbd995ee1b0aa9b420e180a4c7e1c94917"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 15:44:34 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 16:32:58 2010 -0700"
      },
      "message": "Fix issue #2438457: Resolving Flash artifacts while scrolling.\n\nWhen the surface view scrolls off the screen it stops drawing, so\nwe stop moving it.  Add an observer to scrolls so we can continue\nto update its position.\n\nChange-Id: I2604cbbecd3e72be1a2a6bc5794e3e1c19317b9e\n"
    },
    {
      "commit": "434dbceebc207c50f18fc655697242175ca4216f",
      "tree": "0665d195fba5271f3294b000177c6fefb0a0280b",
      "parents": [
        "ef905c86eeaecb0a7e2eb1152ae757ccdc9a7b36"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Mar 18 15:05:30 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Thu Mar 18 15:05:30 2010 -0700"
      },
      "message": "Fix current.xml for previous changes\n\nChange-Id: I467f2e71e65fbe43f7e5507521e42726fa6bf361\n"
    },
    {
      "commit": "694f79b5d1196640d1beb680b7d1fc68e6e77cbd",
      "tree": "355894924374fb42cc6f8c664f34b413a90ecd7f",
      "parents": [
        "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 17 19:44:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 01:12:20 2010 -0700"
      },
      "message": "Fix issue #2519590: Lock screen stuck in landscape mode\n\nWell, mostly.  There is still a problem here where the first time\nyou show the lock screen it just doesn\u0027t draw itself.  I assume\nthis is something breaking in the view hierarchy as it floounders\naround removing and adding new views as it is first being shown...\nbut no idea at this point what is the actual case.\n\nChange-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe\n"
    },
    {
      "commit": "8a836a8b98557263152a476f614b6e05e19ffc5a",
      "tree": "282a382a43499d033ed2672c95d6f5b367e24835",
      "parents": [
        "6c261f327a58ebf1393ef94c9228d11771fe65cc"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 17 20:17:04 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 17 20:33:07 2010 -0700"
      },
      "message": "Eliminate haptic feedback when hitting an overscroll barrier due to a fling.\n\nChange-Id: I434ec3edd95a19677ad9dbd1ac5ca3f3f5d091cb\n"
    },
    {
      "commit": "ceffa1597d574599cbaca71f5855a986b0857463",
      "tree": "36638509265b2047ba161841b2804bfc07b836fd",
      "parents": [
        "d1f78767fc2be65ae4dc213b4f3a3e6abec0810d"
      ],
      "author": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Tue Mar 16 21:18:10 2010 -0700"
      },
      "committer": {
        "name": "Charles Chen",
        "email": "clchen@google.com",
        "time": "Wed Mar 17 14:50:31 2010 -0700"
      },
      "message": "Adding secure setting for storing a list of enabled TTS plugins.\n\nChange-Id: I972ae4fb71e430828b7d4b297613f6a21da3c982\n"
    },
    {
      "commit": "8214deb542392f48b6c3fdc377fdf976c0b17a32",
      "tree": "4a6d0fabd7ef0990979609c165b86a0eadfa9122",
      "parents": [
        "4f096dcf6ae068a144b8044cf55ba886823e66d3"
      ],
      "author": {
        "name": "jsh",
        "email": "jsh@google.com",
        "time": "Thu Mar 11 15:04:43 2010 -0800"
      },
      "committer": {
        "name": "jsh",
        "email": "jsh@google.com",
        "time": "Mon Mar 15 15:31:08 2010 -0700"
      },
      "message": "Add definitions for WiMAX and iDen network types.\n\nb/2509185\n\nChange-Id: Icf07ce857874e200712218713edbdbb47e646297\n"
    },
    {
      "commit": "b644f852636b05cf4f4afb2d1dfb3d8c024236fc",
      "tree": "29a5be06a4992a5b4cecd0d019b32ea77928ba20",
      "parents": [
        "38af4c36fc2636d7dfe6ec3cfe91f406dd1b2803"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Mar 12 21:58:18 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Fri Mar 12 21:58:18 2010 -0800"
      },
      "message": "Fixing a small API check issue to get the builds green\n\nChange-Id: I46e3c39c653a151f5592ed8001f5d0ea972f53b2\n"
    },
    {
      "commit": "3de55bcd34afd5871816526294f9514d1adf3fe5",
      "tree": "447dbe7ee4ba3ff437b91995495d62c29c41fe14",
      "parents": [
        "842f9df2c7944d5d7144b241763c65b497ba9312"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 12 17:28:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 12 18:11:00 2010 -0800"
      },
      "message": "API CHANGE: expose the backup-related ApplicationInfo flag masks\n\nFixes bug #2507582 by doing the following:\n\n- Un-@hide the FLAG_ALLOW_BACKUP, FLAG_KILL_AFTER_RESTORE, and\n  FLAG_RESTORE_ANY_VERSION mask constants in ApplicationInfo.  These\n  correspond, respectively, to the \u003capplication\u003e manifest tag\u0027s\n  android:allowBackup, android:killAfterRestore, and\n  android:restoreAnyVersion attributes.\n\n- Remove the android:restoreNeedsApplication attribute and the\n  corresponding FLAG_RESTORE_NEEDS_APPLICATION constant [which was still\n  marked @hide].  We now always use the application\u0027s own Application\n  class when performing a normal restore.  In the future when we support\n  an externalized full-filesystem backup/restore operation, we will use\n  an OS-defined agent class with a base-class Application instance, but\n  this will not happen until a future release.\n\nAlso expands real documentation on the above ApplicationInfo constants;\nthat work is part of bug #2465360\n\nChange-Id: I735d07a963ae80a01343637d83bef84e4c23fdcc\n"
    },
    {
      "commit": "e208377fbab6b90f41e68699700942a81f4caaeb",
      "tree": "ec838e772df979b393e8301b16e08d091563ef3e",
      "parents": [
        "84eb8d2a7de0a2cec02516b9fb2a61fde536b59c"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Wed Mar 10 15:02:49 2010 -0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Mar 11 17:41:04 2010 -0800"
      },
      "message": "Add GPSProcessingMethod tag to ExifInterface.\n\nChange-Id: I7575ae3195dc510e7020368794a66bb064839104\n"
    },
    {
      "commit": "bfb5d4b93bb739a012ecec604473838c1343c88a",
      "tree": "7ea1a696f32ad52d65f1b368a200b98f4c2613ae",
      "parents": [
        "232c9d5b7d8963b709d36770c0d3ca4c29144430"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 10 18:55:25 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 10 22:14:28 2010 -0800"
      },
      "message": "Added overscroll headers and footers to ListView.\n\nThese let developers set a drawable for the list header and footer\nto be drawn above and below list content.\n\nChange-Id: Ideddec854cb0bc11f83efb3c000c217844be82c7\n"
    },
    {
      "commit": "2ee89ea2887252053c31541c54126a8b084c9bca",
      "tree": "69be707136b1cde8ccfcb7bbb129e74ef2a64429",
      "parents": [
        "d8929fa76881b4b0f12d66dfc118dec291a59177"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 18:27:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 10 21:26:23 2010 -0800"
      },
      "message": "Applications should -not- be able to set preferred activities.\n\nI can\u0027t believe I let this slip through.  And in the SDK no less. :(\n\nThe APIs for setting preferred activities will now throw a security\nexception when used.  This may break some apps, we\u0027ll see how it\ngoes.  If it is too bad we can just make these log and not throw\nanything, but I would much prefer they throw an exception.\n\nChange-Id: I3aed434750eef8b202aa9d5bd774a0121be521c6\n"
    },
    {
      "commit": "80ea00c8391d4fa3a1966903af50732c337aadab",
      "tree": "2184fbfe6d892523eb7028f39e594b291081e89f",
      "parents": [
        "7717beed3794e0bae4c0ee7a4b01c4af86cb239e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Mar 10 12:40:04 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Mar 10 12:40:04 2010 -0800"
      },
      "message": "Fix the build.\n\nChange-Id: I7ed20f3d2fb1a80974fbbfe42fdd2f8f135ee401\n"
    },
    {
      "commit": "de8d0834fc2bc31f011fb3316757883e1b731440",
      "tree": "9646b6ad49375d26d734b662f679abd9922e5538",
      "parents": [
        "36ad54acef82f80dbf0ecdd8c44f5764df1be119"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Mar 09 17:11:30 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Mar 10 10:16:21 2010 -0800"
      },
      "message": "Added ViewConfiguration.getScaledPagingTouchSlop()\n\nChange-Id: I9ab5560c4b76d2b87e53d38b10ba8f5ec4868d85\n"
    },
    {
      "commit": "2d17e1d212ed88fdeca4b27bf04c17c56bd5dee1",
      "tree": "a5eb58b8ce407755fbce942390ee53737d29088f",
      "parents": [
        "1c6743c40fcafdc77ad22557bb7a4b761029d13f"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Tue Mar 09 10:55:04 2010 -0800"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Tue Mar 09 13:14:04 2010 -0800"
      },
      "message": "Add an api to set WebView over scroll background.\n\nIf the WebView doesn\u0027t support zoom, or WebView does\nnot use wide viewport and horizontal is just fit,\ndon\u0027t do over scroll.\n\nFix http://b/issue?id\u003d2498403\nFix http://b/issue?id\u003d2497901"
    },
    {
      "commit": "5b9bcda3a26e9b1f9b1eff28a2be8853d69614f0",
      "tree": "3c5f8d5c8f5d3f53dc0fd0d6a4b90eb8df30f53b",
      "parents": [
        "e8df25a9c6f9118e0136904883a777052c522cb0"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Mar 07 14:59:28 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Mar 09 11:11:47 2010 -0800"
      },
      "message": "Unhide new preview callback methods.\n\nbug:2358064\nChange-Id: If9655ae8b7622ea6fc51e0054cfac7451962be66\n"
    },
    {
      "commit": "eabb6df2fac57134b82f90a63730b2371589bded",
      "tree": "e0fa760856e1894134b8b7d4b1ffd165edf55147",
      "parents": [
        "3dc02fecbe87484133e3c07fe194d7d7327cfe39"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 08 16:19:01 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 09 09:15:19 2010 -0800"
      },
      "message": "Unhide API additions to AudioManager for AudioFocus support.\n\nChange-Id: Ifc7d764703632eb91db11587675ae70ec14510e8\n"
    },
    {
      "commit": "50ab63f5831fed5cfa888fb67f0a27eb4c0a86c4",
      "tree": "156e3ff391ff48fa39a52ee16c10fe11961d8ca7",
      "parents": [
        "8d8a915a935378405fcf9978b83bd815ac5a265c"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Fri Mar 05 16:16:19 2010 -0800"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon Mar 08 19:28:28 2010 -0800"
      },
      "message": "Adding definitions \u0026 APIs for features that are newly-optional in FroYo.\nThis also refactors the files containing the features so that they are more\nmodular. Note that this also changes data/etc/Android.mk so that\nrequired_hardware.xml is NOT copied automatically for all devices\nanymore. Accordingly, that file is removed.\n"
    },
    {
      "commit": "156c43545529fb3d731ffdd9c4514d38758e3f06",
      "tree": "1ddbd96090770853f358aed7cab27f040ba68998",
      "parents": [
        "9e7b076cadc941feaa44838d39497537b8106ff0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 05 17:10:03 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Mar 08 15:42:48 2010 -0800"
      },
      "message": "Move lockscreen settings to secure table to prevent tampering. b/2343673\n\nMigrate old settings to secure on upgrade.\n"
    },
    {
      "commit": "3eda9799a162765dd49f481cc303fc5702a9c5fe",
      "tree": "4f5cd7c7b4468dbc5a2f70a8a4747a2084fc7791",
      "parents": [
        "e879e4b9145fb05a7a7a478cbef681b0436bc49a"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Mar 05 13:28:36 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 12:13:11 2010 -0800"
      },
      "message": "Add Debug.dumpService(), a public method for \"dumpsys\" functionality\n"
    },
    {
      "commit": "bf3e5b03aaaa7d953f55ef74ea659b07b3562c08",
      "tree": "72864a4adffc577446d0c8dc3b606d197bbcadda",
      "parents": [
        "18c65d309fc81252246a1e06edcd7eb1170cf0b3"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 18:52:28 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 18:52:28 2010 -0800"
      },
      "message": "Fix for badly rebased current.xml\n"
    },
    {
      "commit": "8f1bfe1a7cef702fd74e5405443e9fdb7c5e7556",
      "tree": "e497699fa9aba9ac7257baf942e91a0c7d4fccb0",
      "parents": [
        "0a9355bc72152b3f5d7910e8f59ce3f0c007219f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 15:13:56 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 18:02:38 2010 -0800"
      },
      "message": "ListView#getCheckItemIds() deprecated for ListView#getCheckedItemIds().\nListView#getCheckedItemIds() now works more reliably.\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "51c5a0c50e8ec5e2cb59bd60f85f3e612eb08931",
      "tree": "653dcc743e4b1f8bcbb4df099a5ffb9375b186e3",
      "parents": [
        "bda5780d39d5483dea938f2b64f6b2e0fb383e22"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 10:50:38 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Mar 05 11:28:16 2010 -0800"
      },
      "message": "Added accessors for view overscroll modes\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "540bc0348ab40727a054cdadcf098b098c0bfb0b",
      "tree": "2df1a610f2a43d687de1a7146ff82544d6b1678c",
      "parents": [
        "e354bba55dd31e2c66424091fe4bfd68ae19274e"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Mar 04 21:55:50 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Mar 05 09:24:42 2010 -0800"
      },
      "message": "Unhide reconnect() in Camera.\n"
    },
    {
      "commit": "ff846009ecb6df669feeb5d5feecf4b304b8b9a5",
      "tree": "bdd79ed5dd614802e5ccdc4b263c1009cabd75ef",
      "parents": [
        "1533020321c3cb5a7c652ce602c04a0300d9ed10"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 01 10:05:30 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 04 21:49:35 2010 -0800"
      },
      "message": "Unhide CamcorderProfile and CameraProfile Java API\n\nbug - 2375978\n"
    },
    {
      "commit": "8e060c0f67de3e158bd5609f7772d644fc88e1f2",
      "tree": "75a1ef0bc938c68279e7fe4d880754437db354d3",
      "parents": [
        "fe73ce15fcd215b6886c1a76fe40d4610a86c1c8"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Mar 04 11:46:10 2010 -0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Mar 04 11:46:10 2010 -0800"
      },
      "message": "Update current.xml to fix build error.\n"
    },
    {
      "commit": "7a67f156fb5b84c072c0b2bce30c78e55c96db84",
      "tree": "ac34135e749ec3321fd2247142da011bc62eacdc",
      "parents": [
        "055c986ab841f8f758398841730f1e90313b132a"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Thu Feb 11 11:11:48 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:10:28 2010 +0800"
      },
      "message": "Remove native options.\n"
    },
    {
      "commit": "055c986ab841f8f758398841730f1e90313b132a",
      "tree": "6f1aeb48706161c57a657b12a9fab102345e9bbf",
      "parents": [
        "3f5144b8a4b45a05cf7c1b0bd0422d0bd9ecb59b"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Tue Feb 23 10:45:42 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:03:48 2010 +0800"
      },
      "message": "Add location provider name to gps-processing-method in EXIF header.\n"
    },
    {
      "commit": "0fc6bc4cac6391f048f0f2748b3e979effe0924b",
      "tree": "8c8327ef3f9f1b24a3732fe2c6e9b8186b5f8737",
      "parents": [
        "e58aa0d964f91597cf3eecf16ff72988e6c5f5a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 26 19:36:35 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 03 17:01:32 2010 -0800"
      },
      "message": "Clean up MediaRecorder for public Java SDK\n- update comments and fix a check in setAudioChannels()\n\nbug - 2362412\n"
    },
    {
      "commit": "c37cb2469578f7d240615affb042e808b32ba5b2",
      "tree": "c6eff49bb8e997cfe1174cf12cb057e3a74bbba7",
      "parents": [
        "1e5e8f262d489332356c62ff22647bb7d5f8b4ba"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 24 17:44:46 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Mar 03 15:46:48 2010 -0800"
      },
      "message": "Feature to return an extra in the cursor that keeps the spinny going.\n\nIf a search provider returns an extra in the cursor with the key\nSearchManager.CURSOR_EXTRA_KEY_IN_PROGRESS, and the value true, then\nthe spinny in the search dialog will not stop, but the cursor\ncontents will still be used to update the results. This way, partial\nsearch results can be sent while the user is informed that the search\nis still in progress.\n"
    },
    {
      "commit": "0b49ab5cae98d5f27b490b6de35d92e7a63a2e64",
      "tree": "b1e26e54eec07b623e20af711d9d41c318a05739",
      "parents": [
        "97106ab5af0fdba00d6dbda4767b953e0a5829f4"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Mar 02 11:16:17 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Mar 03 09:20:36 2010 +0000"
      },
      "message": "Add SearchManager.SUGGEST_COLUMN_TEXT_2_URL\n\nThis column overrides SUGGEST_COLUMN_TEXT_2. SearchDialog\nand QuickSearchBox render the value of this column as a URL in\ngreen.\n\nPart of the fix for http://b/issue?id\u003d2380681\n\nChange-Id: I6735e0eba90e24c81f9e72520f257e5e61796d7a\n"
    },
    {
      "commit": "8754be5cac3aca54f83e2eb2c199bc01e934034e",
      "tree": "1a13c8ad2479a358d1ee12d6136c5054074e95a8",
      "parents": [
        "bd80e560ac09c42b8081fe555d74a922ebca080a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 19:39:50 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 02 19:39:50 2010 -0500"
      },
      "message": "Hide GeocoderParams class from public API.\n\nThis does not need to be publc until we unbundle the network location provider.\n\nChange-Id: Ib4109d2392624242eee33f271a8151588e3f0c56\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "14b60e747cdf16b79bb755b42dd766348c4f1880",
      "tree": "a9806c7d07ac081cc2a623f983b2f421d582193b",
      "parents": [
        "d2b41b6e7d23c4d2cb2b0fb58f2bbef94c95b5d1"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Mon Mar 01 14:47:47 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Mar 02 11:50:39 2010 -0800"
      },
      "message": "add warning in finalizer. deprecate protected members.\n\nfinalizer shoudl not be called ever. add a warning to say that.\nadeprecate a few members in SQLiteProgram.java. they should not\nhave had protected access level. shoudl be package.\n"
    },
    {
      "commit": "9147a0ed64917e82c3f70632bbc3a91895cc1d55",
      "tree": "a6abb42892ca6d17af443e71a14d62e069a5b16e",
      "parents": [
        "00611034cacc2d22a2e875509e910a142e359ab6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 02 11:24:39 2010 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 02 11:24:39 2010 -0800"
      },
      "message": "SslCertificate should use Dates - fixing api for build\n\nAlso fixing missing @deprecated noticed when updating API\n"
    },
    {
      "commit": "ef05e076ced1a32c5c0aaee28403779834adb2ba",
      "tree": "20dcf607adf508481d57610937ceab6ef2c6aee2",
      "parents": [
        "883dbacb12a003f8f46c3faab26b744fdef649a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "8cbb8f5e1f939b03515cb4d5942c3fcb226efb9e",
      "tree": "82706f029d7d318cb034993cc19625f47ce28903",
      "parents": [
        "7714d7132e4059a1256581b3599a5808b6a6f294"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Feb 28 23:19:55 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 01 15:32:33 2010 -0800"
      },
      "message": "Unhide zoom API.\n\nbug:2458926\n"
    },
    {
      "commit": "61c9d4b4509aeaab1fcad24fb5a63c874d2fd941",
      "tree": "dfe525c74d45736e5287574c21f517cfa7e17ad5",
      "parents": [
        "e0dab5bf6744812e7059ae63b31ac835479cb321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Mar 01 14:12:10 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Mar 01 14:23:23 2010 -0800"
      },
      "message": "Let apps change the bottom strip in TabWidget.\nBug #2478088\n\nAlso expose a few useful APIs.\n"
    },
    {
      "commit": "2036dbab1726c34953360a7a56d6b9ef1f2aa7dd",
      "tree": "73037324cfbc6eb5baa32e46b05d9d37af44063f",
      "parents": [
        "b4e193991f9efc74978c004bcd9463cc5e85250c"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Mon Feb 15 02:15:37 2010 -0800"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Mon Mar 01 10:36:15 2010 -0800"
      },
      "message": "Add a new WebCoreWorker thread to handle the tasks\nwhich should not block either UI or WebKit. It handles\nlocal file access, cache access and trim cache.\n\nMove createCache, saveCache and most of getCache out\nof WebCore thread so that slow IO and database will\nnot affect loading performance. getCache can be still\ncalled from WebCore thread in the uncommon cases\nlike redirect and POST validation.\n\nMove cache ticker from WebCore thread to WebViewWorkerThread.\n\nMove setCookie from WebCore thread to WebViewWorkerThread.\n\nRemove the unreferenced files in the cache directory\nwhile trim cache.\n\nConfirmed with our SQL expert, Vasu, there is no need\nto wrap clearCache with end/startTransaction any more.\n\nhttp://b/issue?id\u003d2414792\nhttp://b/issue?id\u003d2475242"
    },
    {
      "commit": "87bba1ee14279bb14a28d42e27c4ef66d9967bf8",
      "tree": "915eb0be9f5fac21d24bacf76438cafb9f14bae0",
      "parents": [
        "8c49df4f36bee2878ab0ff7dc99dff60dc7354fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 23:32:48 2010 -0800"
      },
      "message": "Move DeviceAdmin APIs to android.app.admin.\n\nAlso add ability for admins to hide themselves when not in use,\na facility for admins to not allow other admins to reset\ntheir password, and debug dumping.\n"
    },
    {
      "commit": "61a449393cf29f3960b4e03ec3fad652dac51b88",
      "tree": "085f5ca0516b6016495080b46ec6d5d0f901b2ea",
      "parents": [
        "7895da44e32e9c76e07663aae7084f11cbacbbdb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 26 18:06:26 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 26 18:06:26 2010 -0800"
      },
      "message": "fix [2475541] Deprecate Sensor.TYPE_ORIENTATION\n\nIt\u0027s much better to use SensorManager.getRotation() instead.\n"
    },
    {
      "commit": "340acd870ad05ec7b18ea4d7b3f6fa31b2360dd4",
      "tree": "08296a9d70c12073c61c2aaa54491924618480d3",
      "parents": [
        "3f016cfd482721ded01109b8f5c07dfa214ccb05"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 11:46:00 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 15:20:56 2010 -0800"
      },
      "message": "Add an extra which allows to query *only* for the voice search language preference.\nThis will be used by e.g. LatinIME to avoid extra computation when this is all that\u0027s\nneeded (probably a common use case for this API).\n"
    },
    {
      "commit": "1f9e1b4c37c135b75cf064cbb5675aa576e2942a",
      "tree": "1ca95439c91aaa52a74fcbf1833869c614602abe",
      "parents": [
        "eb6d13102331fb776e5ac586ebdc523ee69d2ddf"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 13:14:31 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 14:32:24 2010 -0800"
      },
      "message": "Remove public variables in PackageManager\nDont invoke getInstallLocation for forward locked apps.\nIf INSTALL_ON_SDCARD is selected as default, forward locked\napps are not being installed because of conflicting flags.\n"
    },
    {
      "commit": "1b487ec44b6b5594914d52fa427bec4f29a60541",
      "tree": "a781927b74a306c4d1e5b028221057d0c4a42af1",
      "parents": [
        "f8219914f2269fb0932e140c966f24e47438f8fe"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 26 10:57:55 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 26 13:07:54 2010 -0800"
      },
      "message": "expose some sync control methods\n- ActiveSyncInfo\n- ContentResolver.addStatusChangeListener\n  - SYNC_OBSERVER_TYPE_SETTINGS\n  - SYNC_OBSERVER_TYPE_PENDING\n  - SYNC_OBSERVER_TYPE_ACTIVE\n- make the ContentService resilient to nulls passed in to the\n  status change listener registration and unregistration calls\n\nbug http://b/issue?id\u003d2337197\n"
    },
    {
      "commit": "0eec21d97d9dc4eb4fdbad0e4c0fc53703452d02",
      "tree": "b18ff4aebe681cd501d79522ca3244e0b0720c9e",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 25 17:07:14 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 26 12:48:21 2010 -0800"
      },
      "message": "Add dialog to display storage users when enabling/disabling ums\n\nSome error dialogs and related strings\nMountService changes to follow unmount path when enabling ums.\n\nPlease note that MountService api setUmsEnabled does not return\nerror codes for now. This is a known limitation.\n"
    },
    {
      "commit": "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104",
      "tree": "d1c48058c8953b0806785f6b8b9e6901655936ef",
      "parents": [
        "d20958551c453c30d2caa32ac05a4f0c83776a5f"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Feb 26 12:35:55 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri Feb 26 12:35:55 2010 -0800"
      },
      "message": "fix the build.\n"
    },
    {
      "commit": "5cb70b54156fb305d579a1cc167424c8705bfdf7",
      "tree": "0a78a1238c89d57891b1c75fb52416131c26f4f6",
      "parents": [
        "08bbffb049c135c5dfd40d261118c90d1a6dc111"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 17:01:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 11:23:24 2010 -0800"
      },
      "message": "Rename Display.getOrientation() to Display.getRotation().\n\nUpdate various docs.\n"
    },
    {
      "commit": "08bbffb049c135c5dfd40d261118c90d1a6dc111",
      "tree": "0d8103483ea3f25fd5970a6c1ad4e0d90b7bde02",
      "parents": [
        "16f6354be4bd649c0da66cf75f11f1088293aca2"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 25 11:16:22 2010 +0000"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 26 11:16:17 2010 -0800"
      },
      "message": "Support CharSequence lists+arrays in Bundle+Intent\n\nFixes http://b/issue?id\u003d2468093\n\nChange-Id: Id82686f6ca8c9501f6db8a07018278a78ddacd05\n"
    },
    {
      "commit": "24b326a8978bf78e3e560723dde221792784325b",
      "tree": "a675e74ca0e7f430cf4f1386032154fc8895fd96",
      "parents": [
        "4d98579f43026a8213b0570e7836648902741005"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Feb 20 17:47:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Feb 26 14:04:43 2010 +0800"
      },
      "message": "Unhide exposure compensation API.\n\nbug:2375993\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "3dda518a4fd57cdded3afa50d8aa206501de7fc6",
      "tree": "4f94ac2f5cf057501c9cbd9f4f814432c701443b",
      "parents": [
        "27eb24148a935d10c2c490205174c59a47e76dc6"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 16:06:18 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 24 17:23:54 2010 -0800"
      },
      "message": "Add \u0027restoreAnyVersion\u0027 attr for apps that want to restore \"future\" data\n\nIf a backup-participating app sets android:restoreAnyVersion\u003d\"true\" in its\nmanifest \u003capplication\u003e tag, then its agent will be invoked for restore\neven if the available dataset was created by a later version of the app\nthan is currently installed on the device.  This will not typically be\na problem for third party applications, since for them the installation\nand initial data restore are tightly coupled, but it can cause serious\nproblems for applications which are both preinstalled on the system\npartition and overridden by later updates.  The primary difficulty\nthat this new attribute addresses is this:\n\n1. User buys a Nexus One, Market self-updates, and the user installs some apps.\nAt this point the backup data on the server may indicate that the version of\nMarket which originated its bookkeeping is newer than the stock N1 Market app.\n2. User loses their phone, and buys a replacement N1.  At setup time, Market\nhas not yet had a chance to self-update, so when the restore comes in, it\u0027s\ntagged as being from \"the future\" and so the restore is refused.  No apps get\nreinstalled.\n\nBug: 2442127\nChange-Id: I076a9553dc613e5c3189350e778315718ed1ed2b\n"
    },
    {
      "commit": "eebc8e2e8fa23b2957fec5838acc874af9a64a3d",
      "tree": "cdea216dabdb2d4b81a12c7eb53916080508a1c3",
      "parents": [
        "b9e5cc3c3a6f1d6421a7c4b2c0aa63beebfd1ebc"
      ],
      "author": {
        "name": "Erik",
        "email": "roboerik@android.com",
        "time": "Thu Feb 18 13:27:19 2010 -0800"
      },
      "committer": {
        "name": "Erik",
        "email": "roboerik@android.com",
        "time": "Wed Feb 24 11:05:14 2010 -0800"
      },
      "message": "b/2441327 Added add account intent to public api.\n\nAdded ACTION_ADD_ACCOUNT intent and EXTRAS_AUTHORITIES strings to the public\napi so that Calendar can send users to the add account screen directly instead\nof via the sync settings page.\n"
    },
    {
      "commit": "520f87f595840729aa47a69da2edd72a72a5eb9b",
      "tree": "f4eda199cbb301d3eb1878e2b8596f528fb5a515",
      "parents": [
        "834481cf8e2eed123c1ae183c3a662e7b5d3d739"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 10:10:41 2010 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 10:10:41 2010 -0800"
      },
      "message": "Fix build.\n\nThis puts the deprecation status change in the right place.\n"
    },
    {
      "commit": "c4e1bf7282d454ba3e9ba16cde5b660d79dd5345",
      "tree": "a63af87e09642def29fd0bff73f3761cbe856652",
      "parents": [
        "6c0df0b47328655aa450f406ffb39fda5703a55c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Feb 22 17:07:36 2010 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 24 07:37:38 2010 -0800"
      },
      "message": "Add class init stats to alloc counters (API change).\n\nAdd calls to retrieve class initialization stats via the allocation\ncount mechanism.\n\nFor bug 2461549.\n"
    },
    {
      "commit": "2e1818a4d16c3309660f27286c77d8d1eee95a25",
      "tree": "481dc0c3d6dc0dd15238d44907260446115146ea",
      "parents": [
        "d88602df36d51bf63f599a2646fe96b4d27c1943"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 22 14:49:13 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Feb 23 17:05:44 2010 -0800"
      },
      "message": "New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming.\n"
    },
    {
      "commit": "29274dc363229a3a4f18c7341f90bd04e39c2c07",
      "tree": "23e8796bc12bdbaa7ac519da38f87ef2e8aee67f",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:25:33 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 22:27:41 2010 +0100"
      },
      "message": "Also fix the API description file after UI_MODE_SERVICE rename.\n"
    },
    {
      "commit": "53332883543868fb83e111a07306368b7772b340",
      "tree": "39fe760618d617d4e28d08e2bd00dbd33f055926",
      "parents": [
        "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 16:15:43 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Mon Feb 22 21:42:39 2010 +0100"
      },
      "message": "Manager for controlling the UI modes.\n\nThe ui modes can be controlled with the UiModeManager class, which\nis can be retrieved as a system service via getSytemService(Context.UIMODE_SERVICE).\n\nThe class is necessary so that CarHome can be unbundled and other apps can\ndisable the car mode. Its currently a hidden class, since I\u0027m not sure if this\nis the best way to provide this functionality to the user.\n"
    },
    {
      "commit": "21f1bd17b2dfe361acbb28453b3f3b1a110932fa",
      "tree": "531c362903a1c327db99630996948da85cdedaf7",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 19 17:02:21 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 22 11:27:52 2010 -0800"
      },
      "message": "Fix issue #2438980: Implement package watcher for voice recognizer service setting\n\nI am getting tired of writing package monitor code, realized this is missing in\na number of places, and at this point it has gotten complicated enough that I\ndon\u0027t think anyone actually does it 100% right so:\n\nIntroducing PackageMonitor.\n\nYes there are no Java docs.  I am still playing around with just what this\nthing is to figure out what makes sense and how people will use it.  It is\nbeing used to fix this bug for monitoring voice recognizers (integrating the\ncode from the settings provider for setting an initial value), to replace\nthe existing code for monitoring input methods (and fix the bug where we\nwouldn\u0027t remove an input method from the enabled list when it got\nuninstalled), to now monitor live wallpaper package changes (now allowing\nus to avoid reverting back to the default live wallpaper when the current\none is updated!), and to monitor device admin changes.\n\nAlso includes a fix so you can\u0027t uninstall an .apk that is currently enabled\nas a device admin.\n\nAlso includes a fix where the default time zone was not initialized early\nenough which should fix issue #2455507 (Observed Google services frame work crash).\n\nIn addition, this finally introduces a mechanism to determine if the\n\"force stop\" button should be enabled, with convenience in PackageMonitor\nfor system services to handle it.  All services have been updated to support\nthis.  There is also new infrastructure for reporting battery usage as an\napplicatin error report.\n"
    },
    {
      "commit": "edcdbb6d3bb6f66e9fd91b15ef45f4cec5694393",
      "tree": "f76806fb2d5fffc381ca292a59ce05afe2b36ace",
      "parents": [
        "b427a7b0e4f335b27484d4b46cfa48c0cc601755"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 18 16:00:43 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Feb 22 09:04:27 2010 -0500"
      },
      "message": "Add new action for launching the user\u0027s music player app.\n\nandroid.intent.action.MUSIC_PLAYER\n\nhttp://b/2237931\n"
    },
    {
      "commit": "1bb6906c7a903ee6427c8ff37bdc5896c386ff73",
      "tree": "bdb540e8ba002ae648456c0d1af905ac7edd3676",
      "parents": [
        "6ad5a7a7c78799ecb306cb97d979bdb98cc52d15"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:02:12 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 19 17:24:07 2010 -0800"
      },
      "message": "Automatically restore app data at install time\n\nWhen an application being installed defines a backupAgent in its manifest, we\nnow automatically perform a restore of the latest-known-good data for that app.\nThis is defined as \"data backed up by this app from this handset, if available;\notherwise data for this app as it existed when the device was initially\nprovisioned.\"  If neither option exists for the app, no restore action is\ntaken.\n\nThe CL involves major changes in the Backup and Package Managers...\n\n* The Package Manager\u0027s act of installing an application has now been split\ninto two separate phases, with a data-restore phase optionally occurring\nbetween these two PM actions.  First, the details of the install are performed\nas usual.  Instead of immediately notifying install observers and issuing the\ninstall-related broadcasts, the in-process install state is snapshotted and\nthe backup manager notified that a restore operation should be attempted.  It\ndoes this by calling a new API on IBackupManager, passing a token by which it\nidentifies its in-progress install state.\n\nThe backup manager then downloads [if possible] the data for the newly-installed\napplication and invokes the app\u0027s backupAgent to do the restore.  After this\nstep, regardless of failure, it then calls back into the Package Manager to\nindicate that the restore phase has been completed, supplying the token that\nwas passed in the original notification from the Package Manager.\n\nThe Package Manager then runs the final post-install actions: notifying install\nobservers and sending out all the appropriate broadcasts.  It\u0027s only at this\npoint that the app becomes visible to the Launcher and the rest of the OS.\n\n... and a few other bits and pieces...\n\n* The ApplicationInfo.backupAgentName field has been exposed to the SDK.  This\ncan be reverted if there\u0027s a reason to do so, but it wasn\u0027t clear that this\ninfo needs to be hidden from 3rd party apps.\n\n* Debug logging of restore set IDs and operation timeout tokens [used during\nany asynchronous Backup Manager operation] are now consistently in hex for\nreadability.\n\n* We now properly reset our binder identity before calling into the transport\nduring restore-set operations.  This fixes a permissions failure when a\nsingle-app restore was attempted.\n\n* The \u0027BackupTest\u0027 test app is no longer lumped onto the system partition\nby default.\n\nChange-Id: If3addefb846791f327e2a221de97c8d5d20ee7b3\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": "79375f761922b208e2e50ff13a63552c9d01567b",
      "tree": "7966ee6e151299cf9c284774159f3dd883fd6071",
      "parents": [
        "9599452dd9c001cc2217175227514ef9ac631cd9"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 18 19:01:47 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 18 19:19:49 2010 -0800"
      },
      "message": "Two big additions to the voice recognition APIs:\n\n* Allow activities satisfying RecognizerIntent.ACTION_WEB_SEARCH to\n  point to the class name of a broadcast receiver which returns details\n  about the voice search implementation in an ordered broadcast response.\n  Provide a convenience method for getting the intent to fire for this\n  info. This can be used to get the current language preference and the\n  list of supported languages, and is extensible for future uses.\n\n* When creating a RecognitionManager, allow the caller to optionally specify\n  a specific component of a voice recognition service on the device that they\n  want to use. This way, an app can still use its own service through\n  RecognitionManager, even if it\u0027s not the one chosen the user in settings.\n"
    },
    {
      "commit": "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
      "tree": "83fa38d654d5bf93315b12423a7e9aa81ec45f9e",
      "parents": [
        "a696f5d667227365da732481770767dcb330dd23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 19:46:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:47:34 2010 -0800"
      },
      "message": "Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes\n\nThis is a bunch of reworking of how configuration changes are handled:\n\n- When orientation is changing (for whatever reason), the window manager no\n  longer tries to pre-emptively compute a new configuration.  Instead, it\n  just determines  change is happening and tells the window manager.\n- The activity manager is now responsible for giving the window manager the\n  final configuration it is using.  This is both so it knows whem the\n  activity manager is done with its configuration updates, and so the window\n  manager can use the \"real\" configuration.\n- When an orientation or other configuration change is happening, freeze the\n  screen and keep it frozen until the activity manager has given us the\n  final configuration.\n- The window manager can now send new configurations to its clients during\n  its layout pass, as part of a resize, if it has determined that it has\n  changed.  This allows for a new View.onConfigurationChanged() API for any\n  view to easily find out when the configuration has changed.\n- ViewRoot now also works with the activity thread to make sure the process\u0027s\n  current resources are updated to the new configuration when it receives one\n  from a window.  This ensures that at the time onConfigurationChanged() and\n  other view callbacks are happening, the correct configuration is in force.\n- There is now a sequence number associated with Configuration, which\n  ActivityThread uses to avoid using stale configurations.  This is needed now\n  that it can receive configurations asynchronously from both the window\n  manager and activity manager.\n- The hack for keeping the locale has been removed, and underlying problem\n  fixed by having Configuration initialize its locale to \"unknown\" instead of\n  a valid default value.\n"
    },
    {
      "commit": "a696f5d667227365da732481770767dcb330dd23",
      "tree": "0a89f08df3f88daea3f29948c8d5cdd7675a3fff",
      "parents": [
        "be8af08cf4cf9384b3fa13c853c40d761211ceed"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 17:53:09 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 18 15:32:47 2010 -0800"
      },
      "message": "Add ImageFormat.java and move the Camera/YUV constants from PixelFormat to it.\n\nPixelFormat\u0027s corresponding constansts are now deprecated.\n"
    },
    {
      "commit": "f43113f6216efacc3957fc48d9fa1c0326facceb",
      "tree": "064470eff7e70a6e1cdd08b35d12577500c40fe0",
      "parents": [
        "5706329cf42db714582fa698eb9f408350276f16"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Feb 18 09:13:12 2010 -0500"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Feb 18 16:12:28 2010 -0500"
      },
      "message": "Unhide setBlockNetworkLoads.\n\nBlocking network images is not as secure as completely blocking network loads.\nLeave setBlockNetworkImage so clients can reduce bandwidth by disabling remote\nimages. This will allow file:// and content:// URIs to load.\n"
    },
    {
      "commit": "d970998b0d489774ad1c5b94b47d233912f00214",
      "tree": "e319422620d535a0c7172fe8616e67cc27cf86b5",
      "parents": [
        "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:48:48 2010 -0800"
      },
      "message": "framework: storage: Add \u0027force\u0027 option to unmount/destroy storage apis, and update callsites.\n\nAlso adds additional storage unit tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e",
      "tree": "8b43fca812663d2ad1750128f72d8181fcb3a037",
      "parents": [
        "0a073274d82443e7fbb964f069fed58215641aa8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 11:56:39 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "message": "Show car mode notification in status bar.\n\nThe notification is an ongoing event and can be used to get out of car mode.\n"
    },
    {
      "commit": "a4903f254b4711c8fc0ac5f7e3d605f4dce34f35",
      "tree": "e43cd5c8258315768da788f390d230a105920154",
      "parents": [
        "c6a0a9cb67930f7259f3f019e8fba22b07a906bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 06:42:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 18:36:40 2010 -0500"
      },
      "message": "Add passive location provider.\n\nThe passive location provider allows receiving location updates without\nactually triggering them.  This allows an application to receive location\nupdates that are being generated due to other clients of the location manager.\n\nChange-Id: Ibf7a96b089c56875d4f62d3210252ae8d9f32768\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2b95c2413838c2e2b127ebab8fb4fead7d52e460",
      "tree": "152840f97e63ab28962c5f351217fa8088686f13",
      "parents": [
        "6a70d7d1e28bd0b98d03e7ecab3fd08ea5973e34"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 08 17:40:30 2010 -0800"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 17 15:03:32 2010 -0800"
      },
      "message": "Added more @RemotableViewMethod methods, mutate ImageView.\n\nCatch some View methods missed during the first pass of\nmarking with @RemotableViewMethod annotation.  Also adds new\nImageView.setColorFilter(int) to match the android:tint XML\nattribute.\n\nWhen ImageView touches ColorFilter or alpha, mutate the\nunderlying Drawable. Fix NPE in StateListDrawable.mutate().\n"
    },
    {
      "commit": "05513119803845c11d845cbc376759cddcfe13bb",
      "tree": "4bfc421cd457565ccf9c267c09d9d671a591e3a4",
      "parents": [
        "1e84ac51221037b1446baad30e1aae8823e5f5a6"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Feb 17 10:06:41 2010 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Feb 17 13:29:08 2010 -0800"
      },
      "message": "Unhide new SoundPool API\u0027s. Bug 2415373.\n"
    },
    {
      "commit": "c9fbaabc1bbf847b6e8bf2595068cbd990f3da55",
      "tree": "0f54c5be9d3461b1a477275ef042f4c2df7f4066",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Tue Feb 16 17:16:19 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Feb 17 11:47:00 2010 -0800"
      },
      "message": "XML attribute for overscrolling behavior\n"
    },
    {
      "commit": "64e7a257ca8371c9e29512c13a8c413794439a7f",
      "tree": "ef12b8ab71fcb98942b4c942eef38ed1b92e1579",
      "parents": [
        "be6079a76c5feb3952ab5c4dc8b0491d44f42b56"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 11:15:28 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 11:15:28 2010 -0800"
      },
      "message": "Fix build.\n"
    },
    {
      "commit": "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9",
      "tree": "883f9fde4fdcde9c073ee2b0987c5dd393a00745",
      "parents": [
        "855dd9e074c4dcb9c90deaeff1eb33d6394dd5da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 20:38:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:29:52 2010 -0800"
      },
      "message": "Fix issue #2420412: API review: DeviceAdmin API changes\n\nNote in docs that callbacks are on main thread.\nRename to DeviceAdminReceiver?\nDocument resetPassword is the device\u0027s password.\n\nAlso hide android.R.attr.neverEncrypt.\n"
    },
    {
      "commit": "e265532f30ca460dc0900c4cdfc3c7425ae7714b",
      "tree": "c0027951486a603b75524c3854d4b1135294a129",
      "parents": [
        "a4437fc93a993c7ab326b592d22c05be2f11b543"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Tue Feb 16 16:09:59 2010 -0500"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Feb 17 10:30:12 2010 -0500"
      },
      "message": "Create a default style for WebTextView.\n\nAs a result, all apps using WebView (and therefore WebTextView)\nwill get the same style, and display properly.\n\nFixes http://b/issue?id\u003d2385422\n"
    },
    {
      "commit": "d998b3cd2420dfcf9e1237234d1aeb6f5c9c4778",
      "tree": "1c8c2b39bb9749fff5c19aa152191180ef4c98ca",
      "parents": [
        "5a48712501982c7276c1455e280e0b95149bdd0b"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Feb 16 16:23:26 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Feb 16 21:56:42 2010 -0800"
      },
      "message": "Removing org.w3c.dom subpackages.\n\nSee dalvik change https://android-git.corp.google.com/g/40511\n"
    },
    {
      "commit": "329c6aed7870b55ced7774924781cddb44022683",
      "tree": "1081764767caca69bce25e969bd2573f4838bc4e",
      "parents": [
        "2db939bde9a9a1d52d8849e6ff88f6a81504d361"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Feb 16 18:19:05 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Tue Feb 16 18:22:23 2010 -0800"
      },
      "message": "Remove ACTION_VOICE_SEARCH_SETTINGS (added only for Froyo), because we\u0027ve got\na more robust solution instead.\n"
    },
    {
      "commit": "9f790c309baeaf2617e7731225389af1865fd41e",
      "tree": "ea850c4ea830530ab53cce40c5a0887ba956ca56",
      "parents": [
        "cff1ae56e88d369021b25bedde500037129c5516"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 17:20:32 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 17:20:32 2010 -0800"
      },
      "message": "Fix the build (mucked up an API change / commit / upload sequence)\n\nChange-Id: I0eade23e5ccd4a45dbb77f76bd3cd180ddda7107\n"
    },
    {
      "commit": "e28290e21f908b4e917099ff2aa41e3aab9310c2",
      "tree": "870e5fb91e64ea96ece567ab3ccbca6e7a5e5f1b",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 15:22:26 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 16:23:55 2010 -0800"
      },
      "message": "API CHANGE: expose backup/restore to the SDK\n\nThe core backup/restore classes [BackupManager, BackupAgent, RestoreSession, and\nRestoreObserver] are now published for 3rd party developers, as well as the suite\nof helper classes that exist so far to aid authorship of backup/restore agents.\n\nIn conjunction with the API change, the restore-time automatic data wipe has now\nbeen removed:  applications are responsible for managing the logic of wipe vs\nmerge themselves.  If the app\u0027s agent onRestore() callback throws, the data\nis presumed to be incoherent and a wipe is issued via the Activity Manager;\notherwise, no automatic action is ever taken.\n\nChange-Id: I0b3418b829d4689b58b88be3d9c4ace37a8583a9\n"
    },
    {
      "commit": "bb9a51768d2d9dddbe2394b99a00544a3d144fac",
      "tree": "a371dec6ecfa79d2205b6306667787cd95356b81",
      "parents": [
        "4a2d3b15ecca1f4db1e2c935ff36d19838eb5622"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 13 00:07:38 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 16 15:05:02 2010 -0800"
      },
      "message": "Add API to access ICU\u0027s East Asian Width\n\nCurrently there is no way for an application built against the API to\naccess East Asian Width data from ICU. This adds an API for applications\nto use to access it for correct drawing of international characters.\n\nChange-Id: Iab50698ee555ae2ca8ab4b242cc14aa6e0dc3b48\n"
    },
    {
      "commit": "9d4b57545300c6de1722094404ae09bf0f6be937",
      "tree": "19e0c79eb131759689858b3e3180ca457ba2e2af",
      "parents": [
        "fa4039e4fc680920bc53528c4a76e09210f1dcd6"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 20:34:51 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Feb 16 14:18:24 2010 -0800"
      },
      "message": "Add getInsecure() that returns a persistently insecure SSLSocketFactory,\nwhich Email needs for unbundling.\n\nBug: 2353593\n"
    },
    {
      "commit": "3af80dc6d937fb95cab544417e75f5aadc595690",
      "tree": "effe84631174daaeee4793442c7a2d9e3bc24308",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 16 12:38:38 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 16 13:55:19 2010 -0800"
      },
      "message": "Expose more Download Manager APIs.\n\nThis will allow apps to track download progress.\n\nChange-Id: Id6b77c0fc01b4838fca45e2fe241b1ea08e65038\n"
    },
    {
      "commit": "b9dfb9b403e3e61cd97d4f9981c54c4e2229777d",
      "tree": "97cf09e25b65280ec63a960e4e249410d1790f35",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Jan 29 13:08:22 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Tue Feb 16 09:25:40 2010 -0800"
      },
      "message": "Download Manager API to support Gmail\n\nAdds APIs to the Download manager to handle downloads based on\nopaque ids\n"
    },
    {
      "commit": "241379081e046803b7f4cf4f07091b9de49abf31",
      "tree": "4f65235daabdd5dd77dfd15da7a8dfbb9544d27d",
      "parents": [
        "85cc7b37f53b12b070828b56eeaee749832d3af5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 16 09:06:32 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 16 09:06:32 2010 -0800"
      },
      "message": "update current.xml to fix build\n\nThis (new) constant was renamed; forgot to make update-api.\n\nChange-Id: I11ad63f70fc7e266abdc9863b43bf5307227c656\n"
    },
    {
      "commit": "b125dc5599468a09d82751cd76152071ae485afb",
      "tree": "6d7ea46208c30bf1ae9014b70d7f5f50167eaa10",
      "parents": [
        "d382e4bee9c6cf96f97700ebcffcf81465294146"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 15:52:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 17:52:22 2010 -0800"
      },
      "message": "Fix MotionEvent pointer API.\n\nOoops.  The API said that the pointer down and up actions contained\nthe pointer id, but it is actually the index.  Actually it makes\nmuch more sense for it to be the index, and those ACTION_POINTER_1_DOWN\netc. constants were stupid.\n"
    },
    {
      "commit": "33f7a80f767d72393c2d38b0dcbaeecdf7956c89",
      "tree": "f322d63d5a210b28ca3afa973dc1d39e02465cfa",
      "parents": [
        "d2affae13dfdb116adaee1bb10aaaac80a885481"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:41:40 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:41:40 2010 -0800"
      },
      "message": "@hide the bizarro Base64 stream constructors\n\nWith no usages of these \"backwards\" streams, it\u0027s not clear that we\nwant to support them forever in the API.\n\nAlso fixed some badly cut-and-pasted javadoc.\n\nChange-Id: I4811d22e493bf2b8eaf79b9e95526e7eab5f27ee\n"
    },
    {
      "commit": "d2affae13dfdb116adaee1bb10aaaac80a885481",
      "tree": "2c12a5b5c6e4064d1587e2ece6f1f909657e8914",
      "parents": [
        "190dd57fb843b1b5019ebdba32e44617c6bbc3d0"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 15:50:01 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Feb 12 17:13:56 2010 -0800"
      },
      "message": "add a Base64 implementation to the API\n\nb/1413917 - RFE: Base64 utility class\nChange-Id: I11697859e1f78f596b92d2e03a49ed1be04ae42d\n"
    },
    {
      "commit": "04994989351922e241089de2af540facc8688505",
      "tree": "363adaf9c2da326387bbfeda8c2eb612522da181",
      "parents": [
        "bab28017a56a770a97b2da770deaf6649b30766e"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 10 15:24:49 2010 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Feb 12 15:10:37 2010 -0800"
      },
      "message": "Add a new KEYBOARD_TAP haptic feedback type for very short, low-latency vibration.\n\nThe minimum value varies from device to device, so this is useful for defining\nthe shortest and most efficient vibration. The VibratorService creates a Thread\nwhen playing back vibration patterns, so this allows you to avoid thread creation\nand associated scheduling delays by specifying a one-shot duration in the config\nfile.\n"
    },
    {
      "commit": "749ee4fefd844236c075b15cf5dcc1f7245e17ce",
      "tree": "700d2d47b7edf1f6b369b4f9dc1a2fab2481bda9",
      "parents": [
        "96898b38fa72957963fd768b379df5d2860a7f3c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Jan 29 11:19:07 2010 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Feb 12 14:13:27 2010 -0800"
      },
      "message": "API change.\nadd cycle_interpolator resource (it\u0027s the only one missing among\nall Interpolators) and update public.xml and current.xml with the new resource.\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": "0b8bb4282a7d1afb24f8c4d5beb2ca4ecc731116",
      "tree": "a889cd6a046d196878e4b05718e6cbe7c002db05",
      "parents": [
        "8bd3f749e8c5348d1109b8ab66e0054d1a63eb73"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Mon Feb 08 14:30:45 2010 -0800"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Feb 12 10:26:25 2010 -0800"
      },
      "message": "Overscrolling modifications. Overscroll will not allow the user to\nscroll content out of view. Scrolling will slow down halfway to the\nbarrier point. API added in View. AbsListView, ScrollView,\nHorizontalScrollView all use this API. Overscrolling uses haptic\nfeedback. Added scroll barrier pattern to config.xml.\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": "315ada7fbb9e967c22e87b4921bec720ceb2c73c",
      "tree": "d40fec8ac540b985027bf2334c9d3e8d5d73d942",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 12:14:08 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 14:36:30 2010 -0800"
      },
      "message": "Get rid of the limit-unlock policy control.\n\nThis is merged with force-lock.  These both allow effectively the same thing,\nso there is no reason to junk up the user experience with them as separate\nentities.\n"
    },
    {
      "commit": "378ae126d9d61feed77ad596fa0823394eac6240",
      "tree": "ae7c0577b67dde049fbb10b1cd0461cbb2934bdd",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 14:01:09 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Thu Feb 11 14:02:46 2010 -0800"
      },
      "message": "Add SERVICE_INTERFACE and SERVICE_META_DATA constants to RecognitionService,\nto be used by anyone implementing a voice recognition service. Also define\na new \u003crecognition-service\u003e styleable to be used in such service\u0027s metadata\nxml.\n\nStill to do: Change VoiceSearch\u0027s GoogleRecognitionService to respond to this\nintent, and actually use this intent instead of ACTION_RECOGNIZE_SPEECH here\nin RecognitionService.\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    }
  ],
  "next": "a181b21305e0bcf171e2112a3ca5c08eb4fd2434"
}
