)]}'
{
  "log": [
    {
      "commit": "bb3fcba0caf697f1d238a2cbefdf1efe06eded99",
      "tree": "61dccaf85759b22557e978672b81bd686089e087",
      "parents": [
        "7f5b99676f2fda710c2182cae16f6b9094a1d98c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Mon Jun 06 19:23:05 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Mon Jun 06 19:23:05 2011 -0700"
      },
      "message": "Touch pad improvements.\nBug: 4124987\n\nOnly show one spot per touch point instead of one spot per\nfinger for multitouch gestures.\n\nTweaked the pointer acceleration curves.\n\nDissociated the hover/tap timeouts from the \"tap\" timeout\nsince they mean very different things.\n\nChange-Id: I7c2cbd30feeb65ebc12f6c7e33a67dc9a9f59d4c\n"
    },
    {
      "commit": "3148557c42aaa8abf4001dc6fd759e911ba55280",
      "tree": "602fc8ae0157aed51742776c9ba09462d7538378",
      "parents": [
        "be96408b801666bf196adb0eabff4839e51e63ed",
        "237574444b311f2f4d23c62f63162f77d34f10bc"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Fri Jun 03 10:24:27 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 03 10:24:27 2011 -0700"
      },
      "message": "Merge \"DO NOT MERGE Use unchecked admin lookup for getStorageEncryption()\" into honeycomb-mr2"
    },
    {
      "commit": "237574444b311f2f4d23c62f63162f77d34f10bc",
      "tree": "6efe7fcbeb3e424fcb2bb30594b58cf80d3f3baa",
      "parents": [
        "a86290891a661ecdc8115fd441b44dcebedb9e3d"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Thu Jun 02 16:37:39 2011 -0700"
      },
      "committer": {
        "name": "Andy Stadler",
        "email": "stadler@google.com",
        "time": "Thu Jun 02 16:37:39 2011 -0700"
      },
      "message": "DO NOT MERGE Use unchecked admin lookup for getStorageEncryption()\n\nDue to a copy/paste typo, getStorageEncryption() was protected by\ngetActiveAdminForCallerLocked(), which made the API unreadable if the\ncaller is not an admin.  This doesn\u0027t match the rest of the DPM API which\nallows the \"get\" calls to be made anonymously.\n\nThis fix supercedes the proposed workaround CL in the DPM ApiDemo sample.\n\nBackport of: If1a6237634e97ced09a7c6a8876bb6b0f60c9be9\n\nChange-Id: I728b2d85878b7c73a063c906529f0d973e166b49\n"
    },
    {
      "commit": "1a84fd1fb7a51f3fe4f8865e1cdd09f3490f696c",
      "tree": "cf9491aedb10c8355e62ae8384db0e9f005beb1c",
      "parents": [
        "19c97d46fb57f87ff45d9e6ea7122b4eb21ede8c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Thu Jun 02 01:26:32 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Thu Jun 02 15:39:21 2011 -0700"
      },
      "message": "Add a preference panel for mouse speed.\n\nBug: 4124987\nChange-Id: I3ce175d268a1d043cf5878481261b1049a15a149\n"
    },
    {
      "commit": "19c97d46fb57f87ff45d9e6ea7122b4eb21ede8c",
      "tree": "4cb7adbcc382269d7b0eeddd0043b9a9e0c71a7a",
      "parents": [
        "2969b51132b80c873663aa2472b21d3e95845927"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Jun 01 12:33:19 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Thu Jun 02 14:12:05 2011 -0700"
      },
      "message": "Implement pointer acceleration.\n\nBug: 4124987\nChange-Id: I1f31a28f1594c55302ccabe13fe3ca6d2ff71d50\n"
    },
    {
      "commit": "e66763516a9c27c192adaba417616371a1c3c9bf",
      "tree": "2a390652646a5f7d83945001e8501f3841f72c23",
      "parents": [
        "fa8ee17702a79a2597670374679a0b1952f4630f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 01 16:51:20 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 01 16:52:36 2011 -0700"
      },
      "message": "Work around OpenFeint bug.\n\nChange-Id: Ib8320e50bb63fc56dc0118d5c8e9e328dbd3fcb1\n"
    },
    {
      "commit": "75d6b3c2a24224e41e87685db0d9d0b8abea091d",
      "tree": "5a857745b55a3f9829955bd313292ae49da7bc85",
      "parents": [
        "d40a5d5cb754b132d6c10ae78a6214f38ed23f3d",
        "2f0b17573d4324832f7a20402a3d2b5920bc4866"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 18:05:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 31 18:05:26 2011 -0700"
      },
      "message": "Merge \"Fix issue #4502672: Wrong xml resources used for homescreen widgets.\" into honeycomb-mr2"
    },
    {
      "commit": "2f0b17573d4324832f7a20402a3d2b5920bc4866",
      "tree": "eb85b9344237741f21f4989950677692b3bdbbda",
      "parents": [
        "8ede62745faa02265f927941d1195b6c1bf05ebb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 17:59:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 18:04:14 2011 -0700"
      },
      "message": "Fix issue #4502672: Wrong xml resources used for homescreen widgets.\n\nThere was a race in the system process between applying the initial\nconfiguration and executing code in higher-level system services\nlike the app widget service that relies on the config.  For some\nreason it starting showing up more after my code changes; it should\nnow be completely fixed.\n\nAlso fix the activity starting window to run in compatibility mode\nif its application is going to be in compatibility mode.\n\nAnd some various cleanup and small fixes.\n\nChange-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5\n"
    },
    {
      "commit": "c272d4279493000928b8b7c6dbcf2d2b7d8d08b2",
      "tree": "63921d7f9beaa9580876bdacca8df46e4bcc38e7",
      "parents": [
        "d854304c2bcadbda37a7f1b24723dbc0030073ca",
        "214eaf48878bba00cbd5831871bcbd82632b6e34"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 31 15:42:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 31 15:42:18 2011 -0700"
      },
      "message": "Merge \"Use ViewConfiguration to seed input system configuration.\" into honeycomb-mr2"
    },
    {
      "commit": "d854304c2bcadbda37a7f1b24723dbc0030073ca",
      "tree": "6274d09d6629c430ea67db3031c16532a5c117b7",
      "parents": [
        "0119a67e72790fb14b05130e18fa0785b4fa8531",
        "4e3f7206eb0af14d3da4c03bdf9918161774e726"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 31 15:42:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 31 15:42:08 2011 -0700"
      },
      "message": "Merge \"Button state should reflect actual buttons. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "214eaf48878bba00cbd5831871bcbd82632b6e34",
      "tree": "e981793f6a27d6aa789d92fe49ea346433452ae0",
      "parents": [
        "4e3f7206eb0af14d3da4c03bdf9918161774e726"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Thu May 26 19:17:02 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 31 15:00:59 2011 -0700"
      },
      "message": "Use ViewConfiguration to seed input system configuration.\n\nFix bug where the pointer presentation would be updated on\nany input reader timeout rather than only when a pointer gesture\nis in progress.\n\nBug: 4124987\nChange-Id: Ie9bba4a0b3228d55e45e65fa2ede5cd6ba887a08\n"
    },
    {
      "commit": "4e3f7206eb0af14d3da4c03bdf9918161774e726",
      "tree": "e215aef3d33b636e7478ff0a3be97d0f4a3d7aa0",
      "parents": [
        "2a108403803bd30bee1c019060c208fb8c52c10c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 31 15:00:18 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 31 15:00:58 2011 -0700"
      },
      "message": "Button state should reflect actual buttons. (DO NOT MERGE)\n\nBug: 4124987\nChange-Id: If0585bd1432c8c61ed0c9a6a4f6de4a62e3f6e53\n"
    },
    {
      "commit": "784707187d96b731df5256c1c2adb0aaf9037239",
      "tree": "61dde1177765cdf549349ca292a02110565210b8",
      "parents": [
        "8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:09:19 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 17:09:19 2011 -0700"
      },
      "message": "Fix various places that were using the wrong display metrics.\n\nChange-Id: I1ac2a0c4a1b7c851dbc99d26f295c7dd49b0bd5c\n"
    },
    {
      "commit": "8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d",
      "tree": "a676c6b0daf45a90b600d3268bb37e81f23a2275",
      "parents": [
        "b96cbbd11c4590bec846212c33361e02293f18b5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 16:45:31 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 27 16:49:29 2011 -0700"
      },
      "message": "Fix compat mode bugs when updating apps.\n\nNo longer accidentally puts an app into compatibility mode.\n\nAlso various cleanup, freezing screen while switching between modes.\n\nChange-Id: Ic1b3958be7800189a93f68e9dee3c5adfc45fe57\n"
    },
    {
      "commit": "94250ac69c6e07534e4781d3479dccb79d8c366c",
      "tree": "0002c4ca6a9cf1b7d5ac087199fa11b879ccdbc2",
      "parents": [
        "4686fb8ac8c88eb1f0d76fc4157be4cb5949e98e",
        "df6e980e3f63eb0f6f9eb437fa925d5009cd9c44"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 17:07:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 17:07:52 2011 -0700"
      },
      "message": "Merge \"Add new supports-screens attributes for declaring the compatible screens.\" into honeycomb-mr2"
    },
    {
      "commit": "df6e980e3f63eb0f6f9eb437fa925d5009cd9c44",
      "tree": "5440eeb979427cf2d0be09e067b0dd5c0d62a943",
      "parents": [
        "7a09f72b8850ec22e4ca7fd50aba20ead7666f67"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:20:23 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 14:48:04 2011 -0700"
      },
      "message": "Add new supports-screens attributes for declaring the compatible screens.\n\nChange-Id: I40d57e4354e48accc1027c9f90916ea73eb5190d\nandroid:requiresSmallestWidthDp provides the smallest supported width.\nandroid:compatibleWidthLimitDp provides the largest compatible width.\n"
    },
    {
      "commit": "1d8f8819f1e98cdf3b7756396158613e95fe9eb6",
      "tree": "b1d2fa9f52cc01032563f5dad35d9ae4f51b864f",
      "parents": [
        "c31239616cca417e71acb98813df7eda645835df",
        "1bb6cf18c0039cb9d2a60713ea34d3709af58c5c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 13:10:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 13:10:23 2011 -0700"
      },
      "message": "Merge \"Break apart queries to getInstalled* API DO NOT MERGE\" into honeycomb-mr2"
    },
    {
      "commit": "2a108403803bd30bee1c019060c208fb8c52c10c",
      "tree": "bb9a6f8d2192a88f87b9c49a7147739d6de94150",
      "parents": [
        "7a09f72b8850ec22e4ca7fd50aba20ead7666f67"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 11:45:00 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 11:45:00 2011 -0700"
      },
      "message": "I am a dummy.\n\nChange-Id: Ie6908a8931954f83ab0e9b905173b576dbf3661d\n"
    },
    {
      "commit": "81e56d535c853d73ff537357da5b935f51cb779d",
      "tree": "b0d69765bbefecbdeeadebc24b7e57f902af84b9",
      "parents": [
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 00:55:58 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 26 10:46:19 2011 -0700"
      },
      "message": "Rework how we decide whether to use system or status bar.\n\nThe PhoneWindowManager is now responsible for determing this,\nsince it needs to do this before we can generate the configuration\nsince we need to take into account the system bar size we will use.\n\nAlso the Display should now report the screen height without\nincluding the system bar.\n\nChange-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757\n"
    },
    {
      "commit": "1bb6cf18c0039cb9d2a60713ea34d3709af58c5c",
      "tree": "ca4c1bb52197b19df287cd4dbc4cd972ce454eef",
      "parents": [
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 15 17:50:10 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 09:53:24 2011 -0700"
      },
      "message": "Break apart queries to getInstalled* API DO NOT MERGE\n\nTo avoid blowing past the Binder IPC limit, change the\nPackageManagerService to have a DB-like interaction where the client\ntells the service the last \"row\" that it read.\n\nThe fact that we use a HashMap instead of a TreeMap makes this\nproblematic. For now we\u0027re just making a new ArrayList for the keys and\nthen sorting them for each call. This can make the API slower for callers\nof this, but it\u0027s probably greatly overshadowed by the cost of the data\ntransfer itself.\n\nBug: 4064282\nChange-Id: Ia3a8cdaa94581ed9336f2e05694b8c8a5f757bce\n"
    },
    {
      "commit": "42f8094c066209a65b09d53611ef5c93daba4c51",
      "tree": "edf0542248487db54f142f1f8a9b5111b722d6d2",
      "parents": [
        "fa574c0e0ce7f84eea34e96dededea35329dbd18",
        "36cd41f8efa6f6a683d3353d309ff548295af9e9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:18:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 21:18:36 2011 -0700"
      },
      "message": "Merge \"Spiffy new compatibility mode UI.\" into honeycomb-mr2"
    },
    {
      "commit": "36cd41f8efa6f6a683d3353d309ff548295af9e9",
      "tree": "5b460b9496f38b91267704e0da8501fa49b1df65",
      "parents": [
        "2a15eb559cfc18800b3e345995df76695a3ae4b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:00:46 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 21:08:37 2011 -0700"
      },
      "message": "Spiffy new compatibility mode UI.\n\nChange-Id: I1207eaafae59a434fcc979ad60a83e2d685288af\n"
    },
    {
      "commit": "538881e18323a0c983bd8809f8c3b1cdeeeab8a6",
      "tree": "da646d2cb739b3eb72ee78360b062ccda762dc07",
      "parents": [
        "2cb7981e70dd1d4e4368dbef8797d336e0797b61"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 18:23:38 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 19:08:49 2011 -0700"
      },
      "message": "Touch pad UX improvements.\n\nFade the pointer spot when swiping or performing a freeform\ngesture.\n\nSupport configuring the gesture mode in the device IDC file.\n\nAdded workaround for devices that report individual finger\nmovements one at a time instead of all at once.\n\nBug: 4124987\nChange-Id: I44628b00382ad59306e4ec5c4717d69cc6fbebb8\n"
    },
    {
      "commit": "2cb7981e70dd1d4e4368dbef8797d336e0797b61",
      "tree": "4dbab6702f87bedd2c1898690857abd5d5521155",
      "parents": [
        "b416e241db85b678cdfcdee1c74a7f356a5554ef"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 18:52:21 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 18:53:49 2011 -0700"
      },
      "message": "Fix deadlock in dispatcher. (DO NOT MERGE)\n\nThis regression was caused due to a bad cherry-pick / merge.\n\nChange-Id: I79e84285bbfd4cd4b66681461543fb185b60d3ba\n"
    },
    {
      "commit": "b416e241db85b678cdfcdee1c74a7f356a5554ef",
      "tree": "0cc3e409f5c0ed645027bf3c2f86663496659442",
      "parents": [
        "325bd07b311f8ba68079000e9fe8afbcc076d7b6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 24 15:17:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:18 2011 -0700"
      },
      "message": "Fix bug reporting presence of orientation axis. (DO NOT MERGE)\n\nChange-Id: I20aecca392d2843601e6e0ec4ac913c8ccdbbf89\n"
    },
    {
      "commit": "325bd07b311f8ba68079000e9fe8afbcc076d7b6",
      "tree": "294be252cd5b4a197e8709b014f436bedaf200d0",
      "parents": [
        "86ea1f5f521981d075aef56f11693e4f3bc32fdb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 21:20:10 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:17 2011 -0700"
      },
      "message": "Add tap/drag touchpad gesture. (DO NOT MERGE)\n\nThe mapper sends a DOWN when the finger is released then starts\na short timer.  If the finger is not pressed again before the timer\nelapses, then the mapper sends an UP to complete the tap.  If the\nfinger is pressed again then the mapper starts sending MOVEs\nas part of a drag.\n\nDouble/triple taps work as intended because we also start watching\nfor a new tap when the finger is pressed again.  If a new tap\noccurs the old tap is also finished.  So each individual finger\nshort press/release cycle constitutes a distinct tap.\n\nChange-Id: Id0a6ee10dd27e723f6cb04e56b43939abe9e940c\n"
    },
    {
      "commit": "86ea1f5f521981d075aef56f11693e4f3bc32fdb",
      "tree": "72e1e44513d3e9e204a4fbd2855a079822e949eb",
      "parents": [
        "a6dbfdd3a858aac52cc87f80f91e8eef7d613605"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 22:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:17 2011 -0700"
      },
      "message": "Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e\n"
    },
    {
      "commit": "a6dbfdd3a858aac52cc87f80f91e8eef7d613605",
      "tree": "2807e5662e74b090e880588f39cdc1caf4e01e0e",
      "parents": [
        "5ced76a14350db56f1a80f00076f8be3d982c389"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 11 11:54:25 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:16 2011 -0700"
      },
      "message": "Add a sprite controller. (DO NOT MERGE)\n\nRefactored PointerController to extract the surface management\ncode to a new component called a SpriteController so that it can\nbe used to move finger tracking spots around the screen as well.\nThe SpriteController is designed to fully decouple the client from\nany latency introduced by surface transactions and drawing.\nAll sprite updates are performed asynchronously on the Looper using\na copy of the sprite state.\n\nAdded a stub SpotController implementation for touch pad UX.\nIt will be implemented in a subsequent patch.\n\nFixed a little bug in pointer orientation changes when entering\nDISPLAY_ORIENTATION_90 the x offset was clobbered.\n\nChange-Id: I6d59d80df9af61e93af50290e7776337d10c9d5a\n"
    },
    {
      "commit": "5ced76a14350db56f1a80f00076f8be3d982c389",
      "tree": "e4999223efed26ef0864761a1a47bafaf99e1dac",
      "parents": [
        "7157f6fe13ab7e2fef44cc33c95d1c531418220f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 24 11:23:27 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:16 2011 -0700"
      },
      "message": "Coalesce input events that arrive faster than 333Hz. (DO NOT MERGE)\n\nSome drivers report individual finger updates one at a time\ninstead of all at once.  When 10 fingers are down, this can\ncause the framework to have to handle 10 times as many events\neach with 10 times as much data.  Applications like\nPointerLocation would get significantly bogged down by all\nof the redundant samples.\n\nThis change coalesces samples that are closely spaced in time,\nbefore they are dispatched, as part of the motion event batching\nprotocol.\n\nIncreased the size of the InputChannel shared memory buffer so\nthat applications can catch up faster if they accumulate a\nbacklog of samples.\n\nChange-Id: Ibc6abf8af027d9003011ac75caa12941080caba3\n"
    },
    {
      "commit": "7157f6fe13ab7e2fef44cc33c95d1c531418220f",
      "tree": "f0c10ae8a4fbd2fa351c61f824eea908fbf45e90",
      "parents": [
        "d0132e8e187ebf69bf4d2d6d0ef0027ff3f7a727"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Apr 06 17:19:48 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed May 25 14:37:15 2011 -0700"
      },
      "message": "Allow batching samples onto the pending motion event. (DO NOT MERGE)\n\nThis enlarges the window of opportunity for batching to\nencompass time spent for the window to become ready (while it is\nbusy processing the last event).\n\nChange-Id: I8870cc3081d27a4de659fb4e375f888fe966460b\n"
    },
    {
      "commit": "36001a9f48a1ff70504db4d2d8039f4a5f385caa",
      "tree": "7d99e5800c6a485c89e5948359d2b136d86fcc96",
      "parents": [
        "c2d200d4fbf3b0a39bf7518cd9d97afec061c6bb",
        "524ee64b91bc123e1ccfc881a0f1a1e84722251d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:32:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:32:05 2011 -0700"
      },
      "message": "Merge \"Support chorded fallback keys. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "c2d200d4fbf3b0a39bf7518cd9d97afec061c6bb",
      "tree": "a41745673d17a38789b7d24676ef736817daf28b",
      "parents": [
        "266ea6b091d572eaa153e70574da97752b97180b",
        "22d789d580a4ab5bed83c0ed698d2f5bc721e176"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:32:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:32:00 2011 -0700"
      },
      "message": "Merge \"Fix focused application handle. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "266ea6b091d572eaa153e70574da97752b97180b",
      "tree": "159b3382726973a937deba1108bd565ae2d090db",
      "parents": [
        "85a7f99cfe066f054d4ddf4feb737f0395c9943b",
        "dbf8d27f4c32e20e132e90ad713c6ebaf71d7756"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:31:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:31:54 2011 -0700"
      },
      "message": "Merge \"Optimize EventHub to process events in big chunks. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "85a7f99cfe066f054d4ddf4feb737f0395c9943b",
      "tree": "81b8d97282af4f13966734ffaadd96a8f7ce1e6c",
      "parents": [
        "94e838f6e113f8cad30086a18f68da99976101d0",
        "68d6075b4ad2205c10064c78cde552e3210cca91"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:31:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:31:50 2011 -0700"
      },
      "message": "Merge \"Refactor how timeouts are calculated. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "94e838f6e113f8cad30086a18f68da99976101d0",
      "tree": "16a430e84b717cc8520677f00a99be5d4d1b91e8",
      "parents": [
        "82e4373ed3775395a23d161e58c003e82511921a",
        "5b2b4d9c0a56c4b5e869c828a6c36a1b9e27d61b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:31:44 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:31:44 2011 -0700"
      },
      "message": "Merge \"Improve VelocityTracker numerical stability. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "82e4373ed3775395a23d161e58c003e82511921a",
      "tree": "77f4087818e9ecc275c1cd783aeccc384b42439d",
      "parents": [
        "5520610cb2612054c5d0bcec9d031f7b71faa349",
        "96ad3979f328a1aa098917ca1c35575e85345526"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 25 14:31:38 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 14:31:38 2011 -0700"
      },
      "message": "Merge \"Use touch pad gestures to manipulate the pointer. (DO NOT MERGE)\" into honeycomb-mr2"
    },
    {
      "commit": "5520610cb2612054c5d0bcec9d031f7b71faa349",
      "tree": "ebaa618f61490fc160e6ac7b3631512b8a2dd9c7",
      "parents": [
        "2a15eb559cfc18800b3e345995df76695a3ae4b2",
        "571ae90801d943a4c0c8897d1cf74c9cfe04b1ec"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:40:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 25 11:40:59 2011 -0700"
      },
      "message": "Merge \"Make adb shell am display-size persistent.\" into honeycomb-mr2"
    },
    {
      "commit": "571ae90801d943a4c0c8897d1cf74c9cfe04b1ec",
      "tree": "0fe9dfac6a14c64bf2aa9a19487a0d530197be2e",
      "parents": [
        "ef89cc14957ab631346564801841190346632ac9"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue May 24 13:48:43 2011 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed May 25 11:40:21 2011 -0700"
      },
      "message": "Make adb shell am display-size persistent.\n\nChange-Id: If3d5d18729f4e89eb7e689994deadd996fd487e9\n"
    },
    {
      "commit": "d998acb3491fe750ce157b6171d5b0a18f4b3883",
      "tree": "bcd5ea1329cd397a5bc8bd8689478b8679c6ae0d",
      "parents": [
        "c404e9b20165f634904d1489216d17d8e09fe696"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 10:48:28 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 25 10:51:27 2011 -0700"
      },
      "message": "Fix issue #4445007: DPM initializes some values to 1, instead of 0\n\nAlso fix not writing the settings file when an admin is removed.\n\nAnd take care of an old to-do about not removing an admin until\nafter it has received the broadcast about it being disabled.\n\nChange-Id: I4ebe0ea0461222b65425b2c5438b646b572f18c8\n"
    },
    {
      "commit": "524ee64b91bc123e1ccfc881a0f1a1e84722251d",
      "tree": "c3f358e5a7afc91dd63265e01ecbf3db781f58eb",
      "parents": [
        "22d789d580a4ab5bed83c0ed698d2f5bc721e176"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 29 15:11:34 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 24 15:21:46 2011 -0700"
      },
      "message": "Support chorded fallback keys. (DO NOT MERGE)\n\nAlso be more careful about canceling fallback keys during focus\ntransitions, when the application handles the key, or when the\npolicy decides to do something different.\n\nFixed a crash due to JNI CallObjectMethod returning an undefined\nvalue (not null) when an exception is thrown.\n\nFixed a crash due to the policy trying to create a Dialog for\nrecent apps on the dispatcher thread.  It should happen on the\npolicy\u0027s Looper instead.\n\nBug: 4187302\nChange-Id: I043f82913830f411b3bb4018d6422467b6ca454f\n"
    },
    {
      "commit": "22d789d580a4ab5bed83c0ed698d2f5bc721e176",
      "tree": "9d848a0918aa939b457a6fa92bedf43612a50cba",
      "parents": [
        "dbf8d27f4c32e20e132e90ad713c6ebaf71d7756"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 25 11:58:46 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 24 15:21:46 2011 -0700"
      },
      "message": "Fix focused application handle. (DO NOT MERGE)\n\nFix a bug where we were always setting the focused application\nhandle to NULL.  This broke ANR processing while starting\napplications and caused input events to be dropped while\nstarting applications.\n\nBug: 4174573\nChange-Id: Ice7ce3a2b65219568a8227fc1383bafb294666b5\n"
    },
    {
      "commit": "dbf8d27f4c32e20e132e90ad713c6ebaf71d7756",
      "tree": "a7dbe3db8501916c9b564c12bd997b59335c9182",
      "parents": [
        "68d6075b4ad2205c10064c78cde552e3210cca91"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 18 18:14:26 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue May 24 15:21:21 2011 -0700"
      },
      "message": "Optimize EventHub to process events in big chunks. (DO NOT MERGE)\n\nWhen 10 fingers are down, reduces the CPU time spent by the InputReader\nthread from ~30% to ~5% on Stingray.\n\nChange-Id: I42ee5c67b8521af715cbab43e763a4af4eb1f914\n"
    },
    {
      "commit": "5d78e0b8ea548da3fa88ae2190a9334297b992b6",
      "tree": "bab3f5ce72e3bf4faf289fc5ff6cc0e85db2c703",
      "parents": [
        "51652f5674e266d62607324255517d41d225d9be",
        "4c126068527c9adba45aa227d40e245ee8e7c9a4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 18:01:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 23 18:01:50 2011 -0700"
      },
      "message": "Merge \"GPS: Change NTP polling interval from 4 to 24 hours\" into honeycomb-mr2"
    },
    {
      "commit": "4c126068527c9adba45aa227d40e245ee8e7c9a4",
      "tree": "0c776a2c2849aab68f70bd1c8369518debbea161",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:57:43 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:57:43 2011 -0400"
      },
      "message": "GPS: Change NTP polling interval from 4 to 24 hours\n\n4 hours is excessive, and we want to save bandwidth on the NTP servers\n\nChange-Id: Ic5ac4f4a8e62167206f3f620ea51635a2ea771d6\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "68d6075b4ad2205c10064c78cde552e3210cca91",
      "tree": "a8f8e79d5bddb76dd0578a02c17646a05021bbd9",
      "parents": [
        "5b2b4d9c0a56c4b5e869c828a6c36a1b9e27d61b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 01:34:19 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Mon May 23 17:20:42 2011 -0700"
      },
      "message": "Refactor how timeouts are calculated. (DO NOT MERGE)\n\nAdded a timeout mechanism to EventHub and InputReader so that\nInputMappers can request timeouts to perform delayed processing of\ninput when needed.\n\nChange-Id: I89c1171c9326c6e413042e3ee13aa9f7f1fc0454\n"
    },
    {
      "commit": "5b2b4d9c0a56c4b5e869c828a6c36a1b9e27d61b",
      "tree": "0e00adeba7368949783dd598b57b70a4936f8e9b",
      "parents": [
        "96ad3979f328a1aa098917ca1c35575e85345526"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 14 19:39:54 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Mon May 23 17:19:59 2011 -0700"
      },
      "message": "Improve VelocityTracker numerical stability. (DO NOT MERGE)\n\nReplaced VelocityTracker with a faster and more accurate\nnative implementation.  This avoids the duplicate maintenance\noverhead of having two implementations.\n\nThe new algorithm requires that the sample duration be at least\n10ms in order to contribute to the velocity calculation.  This\nensures that the velocity is not severely overestimated when\nsamples arrive in bursts.\n\nThe new algorithm computes the exponentially weighted moving\naverage using weights based on the relative duration of successive\nsample periods.\n\nThe new algorithm is also more careful about how it handles\nindividual pointers going down or up and their effects on the\ncollected movement traces.  The intent is to preserve the last\nknown velocity of pointers as they go up while also ensuring\nthat other motion samples do not count twice in that case.\n\nBug: 4086785\nChange-Id: I95054102397c4b6a9076dc6a0fc841b4beec7920\n"
    },
    {
      "commit": "96ad3979f328a1aa098917ca1c35575e85345526",
      "tree": "a703eeeda8430c955738efd047616bc6a47a32e1",
      "parents": [
        "40277df7c33c0fc381eec589c768fe86de4b4404"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 17:39:48 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Mon May 23 17:19:38 2011 -0700"
      },
      "message": "Use touch pad gestures to manipulate the pointer. (DO NOT MERGE)\n\n1. Single finger tap performs a click.\n2. Single finger movement moves the pointer (hovers).\n3. Button press plus movement performs click or drag.\n   While dragging, the pointer follows the finger that is moving\n   fastest.  This is important if there are additional fingers\n   down on the touch pad for the purpose of applying force\n   to an integrated button underneath.\n4. Two fingers near each other moving in the same direction\n   are coalesced as a swipe gesture under the pointer.\n5. Two or more fingers moving in arbitrary directions are\n   transformed into touches in the vicinity of the pointer.\n   This makes scale/zoom and rotate gestures possible.\n\nAdded a native VelocityTracker implementation to enable intelligent\nswitching of the active pointer during drags.\n\nChange-Id: I7b7ddacc724fb1306e1590dbaebb740d3130d7cd\n"
    },
    {
      "commit": "a5250c93928e256738125b265e10c96c3575597e",
      "tree": "0461f4f237d6aaad4838f6b8566aa3c237fda5c3",
      "parents": [
        "2c7906eb392c6349e6f75fd2681310b934d6e262"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 13:44:04 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 23 20:01:55 2011 -0400"
      },
      "message": "MountService: Add StorageVolume as extra in storage related broadcasts.\n\nChange-Id: I8e1a21ae233ba9812e58b363b59a66b260a01cbf\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b4788fdbfdda97bd9cfd0e483276934114d9c438",
      "tree": "b1551de9f7c570d15e716c2c64aeebbb8f5304f9",
      "parents": [
        "69cb87576ba163b61bb0e6477a3b7c57a9b11d40"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 18:19:53 2011 +0900"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Fri May 20 22:11:54 2011 +0900"
      },
      "message": "Do not merge. Backport two fixes for InputMethethodFramework\n\nBug: 3420384\n\nbackport cl1: Iaf293cf6c6fb35a994f344b0afc30e9f523032f4\nbackport cl2: I29d2555aeb7d0e51205d9f1fe0da708df0890942\n\nChange-Id: Ia71ba27957fa818dc4ef8ff05b5fdb120b9650e0\n"
    },
    {
      "commit": "69cb87576ba163b61bb0e6477a3b7c57a9b11d40",
      "tree": "a44be0af3d008409403be133358bdcd628741c01",
      "parents": [
        "b9537db8d9ee27efb4a98415ad2d6b50c1806e5d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:13:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 19 18:23:29 2011 -0700"
      },
      "message": "Add new \"-swNNNdp\" resource qualifier.\n\nChange-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce\n"
    },
    {
      "commit": "9c9088a54f6dee7a13dcc7a12297137147b01baa",
      "tree": "cf580fb197972caa21b762735904dbbe3d537dd2",
      "parents": [
        "51fb97031f62b1181fc9eb6c636d09a68987d939",
        "ffcea7ae7316ab748a49f5e8f6c6798356f35719"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Thu May 19 14:54:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 19 14:54:25 2011 -0700"
      },
      "message": "Merge \"Move softap config handling to WifiConfigStore\" into honeycomb-mr2"
    },
    {
      "commit": "ffcea7ae7316ab748a49f5e8f6c6798356f35719",
      "tree": "dac580baab50caa3bc4612833c02dbf10ef06f21",
      "parents": [
        "da4809455716cf16451ca5db79654370a6a44f17"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Tue May 10 16:26:06 2011 -0700"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed May 18 15:29:31 2011 -0700"
      },
      "message": "Move softap config handling to WifiConfigStore\n\nMove softap config to flat file and read/write on a seperate handler thread\n\nBug: 4391796\n\nChange-Id: Iafe43200d7f829df7ced20a4e7b0ed451ad22a05\n"
    },
    {
      "commit": "8f7c271ac9daa35708246bf279f71db5ff103b58",
      "tree": "e8639805a5a8d532a879abb5565946cc80a9686f",
      "parents": [
        "a429d5df1aa59d817d694b96a07351224cc5d146"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 18 15:07:48 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 18 15:07:48 2011 -0700"
      },
      "message": "Fix fake display size when rotated.\n\nChange-Id: Ic8a1dbe32cf0cb3c5cdc9b9294b98e810558f875\n"
    },
    {
      "commit": "a429d5df1aa59d817d694b96a07351224cc5d146",
      "tree": "e792d8fff39091c4459d88d916cbeca136441eb9",
      "parents": [
        "185d9c4dbf4b0ee976e4d0c3ea9d3ba307491339",
        "ffb3d939cc78cae523f14a0f8ab37061b5bffc20"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 17 18:38:37 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 17 18:38:37 2011 -0700"
      },
      "message": "Merge \"Improve compat mode scaling implementation.\" into honeycomb-mr2"
    },
    {
      "commit": "ffb3d939cc78cae523f14a0f8ab37061b5bffc20",
      "tree": "d0a6a4d7769e4dcaab3f4971fc9ab45265585da5",
      "parents": [
        "7916ac65dc492e4e1431879875c77d7121fbf82e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 17 17:44:51 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 17 18:29:51 2011 -0700"
      },
      "message": "Improve compat mode scaling implementation.\n\nRip out the old funky code for trying to restrict the app window\nsizes to be within the compat mode range.  Instead, we know rely\nentirely on scaling -- we deal with windows always with the scaling\napplied so that the window manager doesn\u0027t have to deal with them\nspecially.  Instead, we just apply the inverse scale at the few\npoints we need to do something the app sees.\n\nChange-Id: I785409dd4513b5f738684e1635dc8f770c249651\n"
    },
    {
      "commit": "fbfe55512596fd00c1fb51caa851e17dae60fd43",
      "tree": "3b56e07920defa86686c909c2431396983ceef42",
      "parents": [
        "50b27631598d56cf2def58270ddcf1619045dda4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 17 17:19:37 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 17 17:19:37 2011 -0400"
      },
      "message": "StorageVolume: Add getStorageId() accessor\n\nThis ID is used for MTP as well as per volume querying in the media provider.\n\nChange-Id: Ic4fc986d972bd477730643f7e9450c390c0b3a4b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7916ac65dc492e4e1431879875c77d7121fbf82e",
      "tree": "a673e4cc163ea0e1d27d5a38fd2d37003812e37d",
      "parents": [
        "8f3dbe1c377e64584c3ec10edf664fb278648109"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 20:45:48 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 20:55:41 2011 -0700"
      },
      "message": "Add new command line option to change global screen size.\n\nFor example:\n\nadb shell am display-size 1024x600\n\nChange-Id: I5df462acd3323bdaaaefa3126faea7dd8595b726\n"
    },
    {
      "commit": "0eac092766d7871b34927442ee0b6e27e7e1317b",
      "tree": "b3b3e548c6d1c01a94cb929cde9442c6fc0698ab",
      "parents": [
        "9d0f2c6d970a1d2c7f9de5c9e89737d7772f95d3",
        "68066c2f38e47b56f0510c56eafd827731a0dc08"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 13:10:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 16 13:10:23 2011 -0700"
      },
      "message": "Merge \"DO NOT MERGE.  From main -- Start work on simulating landscape/portrait when orientation is locked.\" into honeycomb-mr2"
    },
    {
      "commit": "68066c2f38e47b56f0510c56eafd827731a0dc08",
      "tree": "0c48dab5571260fcc03c864efbd4c638ad4d423e",
      "parents": [
        "29735689cea7bf52998c1911542dcfdd1c1d9628"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 13:08:07 2011 -0700"
      },
      "message": "DO NOT MERGE.  From main -- Start work on simulating landscape/portrait when orientation is locked.\n\nNot yet working, so turned off.\n\nAlso fix a bug where the display size configuration became inconsistent\nafter a configuration change -- we now figure out everything about the\ndisplay size when computing a new configuration.\n\nChange-Id: Id155f133c0bf108508a225ef64ed3ca398a90a58\n"
    },
    {
      "commit": "9d0f2c6d970a1d2c7f9de5c9e89737d7772f95d3",
      "tree": "ea2228a72541ae74400c7b81226d9723a6e1cd9b",
      "parents": [
        "1e662c3294b740ff694ad98e4d9a366e1e4b5e62",
        "29735689cea7bf52998c1911542dcfdd1c1d9628"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 13:01:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 16 13:01:07 2011 -0700"
      },
      "message": "Merge \"DO NOT MERGE: From master -- Fix bug in deciding which rotation to use for an orientation.\" into honeycomb-mr2"
    },
    {
      "commit": "29735689cea7bf52998c1911542dcfdd1c1d9628",
      "tree": "82fcde88be0860b040c0ce43deedbc61db5ce1a0",
      "parents": [
        "ac8dea12c17aa047e03a358110aeb60401d36aa2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 21 17:26:39 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 12:57:38 2011 -0700"
      },
      "message": "DO NOT MERGE: From master -- Fix bug in deciding which rotation to use for an orientation.\n\nChange-Id: Ie271123271a662f3f753f381ce4c43ad7904dc4a\n"
    },
    {
      "commit": "1e662c3294b740ff694ad98e4d9a366e1e4b5e62",
      "tree": "135d285dcb1f27f18a6267ebb481325d39899d00",
      "parents": [
        "15afd076d6070374cbb4f9dcbe28dda67caa0718",
        "ac8dea12c17aa047e03a358110aeb60401d36aa2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 12:54:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 16 12:54:22 2011 -0700"
      },
      "message": "Merge \"DO NOT MERGE.  Integrate from master: Rework display size access.\" into honeycomb-mr2"
    },
    {
      "commit": "0a93d875527c52183080b63a0b19d567856952af",
      "tree": "f6c661d55b456672d705fb87c37a786435d3b7a9",
      "parents": [
        "79d3f6305fc7dda68faf674e1c500f97cc4dd570",
        "2f6a3885533a52758c2cd4f81f6123a712be8ae6"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 16 12:34:02 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 16 12:34:02 2011 -0700"
      },
      "message": "Merge \"StorageManager:  Clean up and generalize storage configuration resources\" into honeycomb-mr2"
    },
    {
      "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": "2f6a3885533a52758c2cd4f81f6123a712be8ae6",
      "tree": "c4f6de0abad5d579cbd236194f1b6bd1f8a8eb93",
      "parents": [
        "084d3490a5283088426058d3c15532b176367926"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 09 19:08:06 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 16 14:29:23 2011 -0400"
      },
      "message": "StorageManager:  Clean up and generalize storage configuration resources\n\nReplace config_emulateExternalStorage, config_externalStorageRemovable,\nconfig_externalStoragePaths, config_externalStorageDescriptions and\nconfig_mtpReserveSpaceMegabytes resources with an XML resource file\nto describe the external storages that are available.\n\nAdd android.os.storage.StorageVolume class\n\nStorageManager.getVolumeList() now returns an array of StorageVolume\n\nChange-Id: I06ce1451ebf08b82f0ee825d56d59ebf72eacd3d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "9a84983a9fd9959671e102045eaf185b83291269",
      "tree": "7235da3c8ad520b16425fee7984cbcd0cacf9b0b",
      "parents": [
        "f9dd34f4d3203fd50363b3b0247c5d0db6fe2c8f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 07 15:11:57 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 13 18:38:19 2011 -0700"
      },
      "message": "DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.\n\nActivity manager now does all dump requests into apps\nasynchronously, so it can nicely timeout if there is an\napp problem.  Also lots of general cleanup of the am\ndump output.\n\nChange-Id: I99447b87f77a701af52aeca984d93dfe931f065d\n"
    },
    {
      "commit": "4fb76253f255f0adb8a64835af37bb9176ee4016",
      "tree": "2585ba2501180f9b02a0ab6bc45a4df668ae4bbc",
      "parents": [
        "0ed2e845db3f6bc7bc12a08ada18363942c2fb3d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Fri May 13 12:51:12 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Fri May 13 12:51:12 2011 -0700"
      },
      "message": "Fix bounds check.\nBug: 4413945\n\nAlso remove dead code from header file.\n\nChange-Id: I4e9fc9d7f8612fedb436e62649d308bd737ed138\n"
    },
    {
      "commit": "ebff8f92f13513ce37bd74759eb1db63f2220590",
      "tree": "909da02ab7ff47483e227f032828dbdbe7f959af",
      "parents": [
        "a8138732a01b92f0a40f72050b74a3bd4cf6d215"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 18:07:47 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 18:39:51 2011 -0700"
      },
      "message": "DO NOT MERGE.  Integrate add new screen width/height in \"dp\" configs.\n\nYou can now specify resource configuration variants \"wNNNdp\"\nand \"hNNNdp\".  These are the minimum screen width/height in \"dp\"\nunits.  This allows you to do things like have your app adjust\nits layout based only on the about of horizontal space available.\n\nThis introduces a new configuration change flag for screen size.\nNote that this configuration change happens each time the orientation\nchanges.  Applications often say they handle the orientation change\nto avoid being restarted at a screen rotation, and this will now\ncause them to be restarted.  To address this, we assume the app can\nhandle this new config change if its target SDK version is \u003c ICS.\n\nChange-Id: I4acb73d82677b74092c1da9e4046a4951921f9f4\n"
    },
    {
      "commit": "0f1de9adde0b52d2a385a76232bd7ac30c3eeea2",
      "tree": "6d30064324ea987411955a88cb0272ddb27d39b2",
      "parents": [
        "f3cdea937b8b659f959d5e77f4a17f749f85c6ae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 11 17:34:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 13:28:45 2011 -0700"
      },
      "message": "New compat mode front end: UI and persistence.\n\nAdds a really crappy UI for toggling compat mode.\n\nPersists compat mode selection across boots.\n\nTurns on compat mode by default for newly installed apps.\n\nChange-Id: Idc83494397bd17c41450bc9e9a05e4386c509399\n"
    },
    {
      "commit": "e7d25b74b0f5c8ad32225c7a3e98a0d1717eb7c7",
      "tree": "652330584e9291210cd781f118afeb8625ef92f3",
      "parents": [
        "0c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 21:19:26 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 21:19:26 2011 -0700"
      },
      "message": "Fix scaling of batched motion events.\n\nChange-Id: I1e070c936f7b2e8f1bb7ebae62b1df0aa6998b82\n"
    },
    {
      "commit": "e2515eebf42c763c0a2d9f873a153711778cfc17",
      "tree": "ee159940f05c439d0524771bfbfe6b551c82c2d4",
      "parents": [
        "158e3582c03ab9e0221718da20fc8854bb9216d0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 27 18:52:56 2011 -0400"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:03:24 2011 -0700"
      },
      "message": "Better compat mode part one: start scaling windows.\n\nFirst step of improving app screen size compatibility mode.  When\nrunning in compat mode, an application\u0027s windows are scaled up on\nthe screen rather than being small with 1:1 pixels.\n\nCurrently we scale the application to fill the entire screen, so\ndon\u0027t use an even pixel scaling.  Though this may have some\nnegative impact on the appearance (it looks okay to me), it has a\nbig benefit of allowing us to now treat these apps as normal\nfull-screens apps and do the normal transition animations as you\nmove in and out and around in them.\n\nThis introduces fun stuff in the input system to take care of\nmodifying pointer coordinates to account for the app window\nsurface scaling.  The input dispatcher is told about the scale\nthat is being applied to each window and, when there is one,\nadjusts pointer events appropriately as they are being sent\nto the transport.\n\nAlso modified is CompatibilityInfo, which has been greatly\nsimplified to not be so insane and incomprehendible.  It is\nnow simple -- when constructed it determines if the given app\nis compatible with the current screen size and density, and\nthat is that.\n\nThere are new APIs on ActivityManagerService to put applications\nthat we would traditionally consider compatible with larger screens\nin compatibility mode.  This is the start of a facility to have\na UI affordance for a user to switch apps in and out of\ncompatibility.\n\nTo test switching of modes, there is a new variation of the \"am\"\ncommand to do this: am screen-compat [on|off] [package]\n\nThis mode switching has the fundamentals of restarting activities\nwhen it is changed, though the state still needs to be persisted\nand the overall mode switch cleaned up.\n\nFor the few small apps I have tested, things mostly seem to be\nworking well.  I know of one problem with the text selection\nhandles being drawn at the wrong position because at some point\nthe window offset is being scaled incorrectly.  There are\nprobably other similar issues around the interaction between\ntwo windows because the different window coordinate spaces are\ndone in a hacky way instead of being formally integrated into\nthe window manager layout process.\n\nChange-Id: Ie038e3746b448135117bd860859d74e360938557\n"
    },
    {
      "commit": "91dd02c3405a76e9051f7e118ad19ca111b2aa40",
      "tree": "c8d2911356489466e8bd23143c96e7de47d5ceda",
      "parents": [
        "b9135638c5b813e876dc16dcb10084b6ab3d2003"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:21:51 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:56 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Fix running media scanner at boot.\n\nChange-Id: I67ff2ccde7e03143167b8c59726ffb741c96e028\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b9135638c5b813e876dc16dcb10084b6ab3d2003",
      "tree": "c334f5ac034f372c0f3d4f468e3b2a0e0e2e61f0",
      "parents": [
        "d967f4664f40f9a4c5262a44b19df9bbdf457d8a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Apr 05 10:05:47 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:56 2011 -0400"
      },
      "message": "DO NOT MERGE Fix deadlock in MountService\n\nIt is not safe to call into vold with a lock held on mVolumeStates\nsince we will receive events back from vold on a different thread.\nSo in the boot completed handler we make a copy of the volume list and\nthen call vold to mount volumes after releasing the lock\n\nChange-Id: Ic9836c2e1e8a5677d0c4e33476a72081f69823a0\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d967f4664f40f9a4c5262a44b19df9bbdf457d8a",
      "tree": "421898338ee3ec31b2e6ba03b36ba7deff83599d",
      "parents": [
        "f097fc2fee57183508558acbca1f8742fb55615a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Mar 24 08:12:30 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:55 2011 -0400"
      },
      "message": "DO NOT MERGE StorageManager: Add getVolumeList() and getVolumeState() methods\n\nChange-Id: I43d5c1730b340f1288b58012234b38f801001b71\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f097fc2fee57183508558acbca1f8742fb55615a",
      "tree": "563a1d88fc67e15216aaa4f93611fcd4b8f349e9",
      "parents": [
        "7c2d14d59637cfb06ebcfbb091541cebd131fc6a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Mar 23 14:52:34 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:55 2011 -0400"
      },
      "message": "DO NOT MERGE MountService: Add support for multiple volumes\n\nChange-Id: I45ee0e5735a6d72c635f6d22320e8b13bccc3847\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8325c3a89197e47cfc2eeb4117c927fb8cb91630",
      "tree": "9c5c219a485025c29d7bc1a312527b991f5db27a",
      "parents": [
        "de506220d8a3d453463e1abe1b2eb54afd48ec93"
      ],
      "author": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 13:16:06 2011 -0700"
      },
      "committer": {
        "name": "Dan Morrill",
        "email": "morrildl@google.com",
        "time": "Mon May 02 14:06:06 2011 -0700"
      },
      "message": "Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change\nsince file was renamed, making cherry-pick impossible.\n\nChange-Id: Idc802af57fb9926a69ed52d4e776ef57d8b647c6\n"
    },
    {
      "commit": "223995dcf28aca2399258951a59559a7ae318ceb",
      "tree": "6c3e4b195c34ae4c5e164cde6432e7284c3cf698",
      "parents": [
        "c84362a72ab958c4ffe34c16d8cf76883d48f0e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 25 13:34:51 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 25 13:34:51 2011 -0700"
      },
      "message": "Fix issue 4335692: HDMI media volume\n\nForced music stream volume to max when not muted and output device is HDMI.\n\nChange-Id: Ibd287cea8ae1d3f36fea6651a113bd5cf2dbad13\n"
    },
    {
      "commit": "f6f87c985989603139b31df663f9f9a90543cacc",
      "tree": "4861164936215fc7fcc955e6fdc0356ce27dcee4",
      "parents": [
        "4e3d6aa0688f023dfe5feb2eb197207cc8267463",
        "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 15:10:31 2011 -0700"
      },
      "message": "Merge \"Fix issue #4291805: Tap Fish crashes on launch\" into honeycomb-mr1"
    },
    {
      "commit": "52b0ce0fe3e9ab52c272dde3d9c59376c276a17e",
      "tree": "05783a9efb7f4fe73ec86f58027c6bd2dbd50cf2",
      "parents": [
        "6bb8b0ecb558373ba99e44ad5c351e1d7bb410d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 14 13:09:32 2011 -0700"
      },
      "message": "Fix issue #4291805: Tap Fish crashes on launch\n\nThe activity manager got a little too aggressive about argument validation.\n\nChange-Id: I3cca0cd3135b98e5c50d26db778ec4ec28a47ec1\n"
    },
    {
      "commit": "08c39c6a11f728e113811a6a85c109cfc80ce28e",
      "tree": "5e614740dfe0a156fd710b326545003ee990418f",
      "parents": [
        "c6c2285b36e83b96056e2404371cdf6e6f7acaee"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Wed Dec 22 14:29:40 2010 -0800"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Apr 11 16:33:43 2011 -0700"
      },
      "message": "Add support for USB Ethernet adapters\n\nChange-Id: I6ae34a32d0e1b6f21c484b8639c3e7ce086e568d\n"
    },
    {
      "commit": "4f0f3561edfdcdff0ac90f0ea26c64cb16efe643",
      "tree": "65e7ad51c855f4c036702f7809dc315a66315cca",
      "parents": [
        "7661dd8de10d2400cedc421358c4261556b2b5c8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 29 16:49:42 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 29 16:59:38 2011 -0700"
      },
      "message": "UsbService: Make USB disconnect handling for accessory mode more robust\n\nHandle the case where the kernel driver is in accessory mode but we failed\nto initialize it at the framework level.  On disconnnect, check to see if the\naccessory kernel driver is enabled rather than checking mCurrentAccessory.\nThat way we will restore the USB state in the kernel even if mCurrentAccessory\nis null.\n\nChange-Id: I35d458f21a8b21611946da523d0f53723cab0540\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8f8c6023f2fad38347cd19af9a81fa485fe3bd82",
      "tree": "b455948bf249e2a63e1552ad50530dc1a2c8222d",
      "parents": [
        "0b9bacc69314fc6480d1ebe67b7ee0d0aebca5c0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Mar 27 19:35:43 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Mar 27 19:35:43 2011 -0700"
      },
      "message": "UsbService: Fix JNI local reference leaks in the USB host support code\n\nBug: 4175857\n\nChange-Id: I8b385f2257e509b0fb4d5f9516e9813b8165352d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "edcb4f9d560a85970030e1df70426e8d1e2267d2",
      "tree": "1a4cbcdd220f9f93832df8c66744d272dccea4a5",
      "parents": [
        "3a2575f7e6b1f6da97bd8233dfd3baa8883c5610"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Mar 22 18:47:42 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Mar 22 18:47:42 2011 -0700"
      },
      "message": "Fix adding of default route.\n\nIf you deleted the host routes (started a secondary network like mms, supl\nof hipri and then ended it) you would lose the host route to the default\ngateway.  Then if you needed to re-add the default gateway route (lost\nthe connection and removed the default route and then re-established)\nyou couldn\u0027t - can\u0027t add a gateway that isn\u0027t routable apparently.\n\nThis happens if you are in a video chat and lose your connection without\nlosing the interface (PPP keeps it up for a bit).\n\nFixed it by having addDefaultRoute first add a hsot route for the gateway\nbefore adding the default route.  This allows the default add to succeed.\n\nbug:3490353\nChange-Id: I415e7319832e6456f8757b14c4f79f098a08839b\n"
    },
    {
      "commit": "dd76dc0297f4c39fefbbc1ac23d9b1add187d9e9",
      "tree": "83d3f5af46dcc1681d2d2485fbaad57520134746",
      "parents": [
        "38caff230d1ee52701cc8cffde0309b91c2016d6",
        "1c0e543638fa940651b675645146fd71c2ebd9b9"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Mar 20 17:08:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 20 17:08:24 2011 -0700"
      },
      "message": "Merge \"UsbService: Handle the case where a USB accessory connects as the device is booting\" into honeycomb-mr1"
    },
    {
      "commit": "1c0e543638fa940651b675645146fd71c2ebd9b9",
      "tree": "1283ad0bed75d2269217557c6c9f63ac0b67e40f",
      "parents": [
        "1d50ad7914de36b63a04d39bdc4791c1dadc7eae"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Mar 19 12:03:46 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Mar 19 12:03:46 2011 -0400"
      },
      "message": "UsbService: Handle the case where a USB accessory connects as the device is booting\n\nBug: 4129297\n\nChange-Id: I8f9d085805fb598572f9b00952c3cd38cfab461b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "38caff230d1ee52701cc8cffde0309b91c2016d6",
      "tree": "65d8a23e917c73bba2ae885e7daa2980f17aafd0",
      "parents": [
        "a0dc8da2ab0a084432c7094e434b7957dd2eaf5c",
        "6912daf5fa5f07a0dd2738d6b21e04de066094b6"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Mar 18 17:32:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 17:32:25 2011 -0700"
      },
      "message": "Merge \"SurfaceFlinger: Fix a typo.\" into honeycomb-mr1"
    },
    {
      "commit": "6912daf5fa5f07a0dd2738d6b21e04de066094b6",
      "tree": "7824d70c4d7415041130b61dc80628bc8ee95b7f",
      "parents": [
        "73091273bb5160567f2230e1e7fcde5b0218ad9d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Mar 18 16:35:13 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Mar 18 16:35:13 2011 -0700"
      },
      "message": "SurfaceFlinger: Fix a typo.\n\nThis change makes Layer skip its cleanup of its old shared memory region\nwhen the UserClient object that owned the memory has been freed.\n\nBug: 3429357\nChange-Id: I9e4d8eb190f6914dc043674b9bb8dd28e959901b\n"
    },
    {
      "commit": "199d1c131d29b5356f71fbd7826a592c1dd8575f",
      "tree": "b02c7ab5a0662020447a3324c7a09c1d4294c5e0",
      "parents": [
        "2f1f2248c8439adbd686810e306c55f9e6a5abc3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 11:48:13 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 14:43:12 2011 -0700"
      },
      "message": "Fix missing AOSP copyright headers for more files\n\no Update the copyright date on InputDispatcher_test.cpp and InputReader_test.cpp\n  because these two files were moved from other places to the current location,\n  and were actually created in 2010.\n\nbug - 4119349\n\nChange-Id: Ic93b81ddafb58e9e72a2e9e02ca3d9f173d6dca7\n"
    },
    {
      "commit": "87f50f19eef2e70fcf7294c3b9cd5ca0344b99ee",
      "tree": "6aa498a88737a590d859aa362d9ef5a6037fc584",
      "parents": [
        "11473332b4df78610ebb903e255d69ab35e5bf59",
        "a57db345d3f7b70854fd66e28b8b48d3fb27c606"
      ],
      "author": {
        "name": "Paul Milovanov",
        "email": "pmilovanov@google.com",
        "time": "Thu Mar 17 10:23:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 10:23:48 2011 -0700"
      },
      "message": "Merge \"PACKAGE_FIRST_LAUNCH intent sent to wrong pkg\" into honeycomb-mr1"
    },
    {
      "commit": "d98f8aff731123eef1f0a8bc8bfc917647d5ac3a",
      "tree": "db549757162dc7ef78d5ad090102d39178611fc4",
      "parents": [
        "f40e638ec62cd9e1a1851809b7c8bf5e4187fad2",
        "8e9d4431d6a97a08d7dc9612c68ffd0812dfdc68"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 00:59:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 00:59:08 2011 -0700"
      },
      "message": "Merge \"Fix dangling pointer when device closed just after opening.\" into honeycomb-mr1"
    },
    {
      "commit": "8e9d4431d6a97a08d7dc9612c68ffd0812dfdc68",
      "tree": "37fbaf7f7503d8269dc8bedf7d3d153b8e475314",
      "parents": [
        "0837fde9fd9e29f8ef66a3fe00764e15a6f3d515"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Mar 12 19:46:59 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 00:36:35 2011 -0700"
      },
      "message": "Fix dangling pointer when device closed just after opening.\n\nBug: 4088239\nChange-Id: I210b918370357560a5ace8ea8dd7601255487e88\n"
    },
    {
      "commit": "f40e638ec62cd9e1a1851809b7c8bf5e4187fad2",
      "tree": "fce830323935d7c7171c501278fb6c7ea9fdf9c8",
      "parents": [
        "7af7e00b9112f15d1683ae93975a6fcd9dd34da8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 16 23:18:07 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 17 00:04:42 2011 -0700"
      },
      "message": "fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out\n\na memory corruption happned when the buffer pool was resized\n(like when playing a video or using camera) and there was\nno current active buffer. In this case, the faulty code\nwould index into an array at position -1 which corrupted\n24 bytes of data.\n\nalso improved region validation code (ifdef\u0027ed out by default)\n\nBug: 4093196\nChange-Id: I915c581d131148959d720e00e3892e9186ab733d\n"
    },
    {
      "commit": "a57db345d3f7b70854fd66e28b8b48d3fb27c606",
      "tree": "9bde5e4d77dcd7fc9874ccb80990aace7aa84de8",
      "parents": [
        "fc59176241f498ad4eeb4237800c2eb5edd9efcd"
      ],
      "author": {
        "name": "Paul Milovanov",
        "email": "pmilovanov@google.com",
        "time": "Wed Mar 16 23:03:10 2011 -0700"
      },
      "committer": {
        "name": "Paul Milovanov",
        "email": "pmilovanov@google.com",
        "time": "Wed Mar 16 23:12:31 2011 -0700"
      },
      "message": "PACKAGE_FIRST_LAUNCH intent sent to wrong pkg\n\nIn PackageManagerService, intent with ACTION_PACKAGE_FIRST_LAUNCH was\nbeing sent to wrong package. It was being sent to the installed\npackage with installer package in the URI, whereas it should be sent\nto installer package with installed package in the URI.\nComment in Intent.java:1417 seems to support that intent with this\naction should be sent to the installer package, not installed.\n\nBug: 3426299\nChange-Id: Iadec4ae7a1af6bab434716f8fcdb7d0b099d1ee1\n"
    },
    {
      "commit": "296c1616bad5a075cf64c2ba025b0cfd6bb3816d",
      "tree": "51f3b8b223622f83bf7e74aa920a75c1488b54d1",
      "parents": [
        "c2b91a6113c30d3b994ef081fbd5b941200d55a4",
        "c2be22cf209b675e36893d31ebe3166b6321ba6b"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed Mar 16 18:02:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 16 18:02:08 2011 -0700"
      },
      "message": "Merge \"Catching all Exceptions when calling through to RemoteViewsFactory\" into honeycomb-mr1"
    },
    {
      "commit": "c2be22cf209b675e36893d31ebe3166b6321ba6b",
      "tree": "97cea8cfc8dbbc34145a9304bb85bd1cd716ff18",
      "parents": [
        "7ddd62b5bedf9065bba00e25aa62f2eae14cf92e"
      ],
      "author": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed Mar 16 16:33:53 2011 -0700"
      },
      "committer": {
        "name": "Adam Cohen",
        "email": "adamcohen@google.com",
        "time": "Wed Mar 16 16:33:53 2011 -0700"
      },
      "message": "Catching all Exceptions when calling through to RemoteViewsFactory\n\nChange-Id: Ib20c880bb7626565541ab4697317fcfaa2e6b5b7\n"
    },
    {
      "commit": "3913c131c61288c5b4eedb063d9eb6b6204d2a1f",
      "tree": "e3ac3b4391a97cc42779bd313a1494fcf854948a",
      "parents": [
        "46fc25171af8bbaf4594946ce406a667ce2ec27a",
        "257b2d0b8070be80376480a834134acdd0b4aca7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 15 19:17:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 19:17:53 2011 -0700"
      },
      "message": "Merge \"Improvement for issue 3489986: BT SCO volume\" into honeycomb-mr1"
    },
    {
      "commit": "257b2d0b8070be80376480a834134acdd0b4aca7",
      "tree": "4a3e91638168b43a5b0a9ce28a3520b22400a55c",
      "parents": [
        "65c282042dab1dfa75b10517190ba38834782c3b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 15 14:26:03 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 15 14:26:03 2011 -0700"
      },
      "message": "Improvement for issue 3489986: BT SCO volume\n\nThis change makes sure that the VOICE_CALL stream volume tracks\nthe BLUETOOTH_SCO stream volume when SCO audio is enabled.\nThe down link audio volume now reflects what is being displayed\nwhen pressing volume hard keys on the device while in a video chat\nwith a BT SCO headset.\n\nVolume settings on the headset and the device are still independent as\nwe do not support handsfree profile yet.\n\nChange-Id: Ie0d2714730ea359b9318b9cbe6f0b2557ef0f976\n"
    },
    {
      "commit": "b02b8369c6549417561e2ae1467b615645b5d04c",
      "tree": "2d3a995eab71ac8a39b59fbb8ce9e540e8055483",
      "parents": [
        "0c6e9521f5a8b57910451a92c1bea142edd4b30d",
        "b548a3cfa022451098cc73e25ce79f1776e78715"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Mar 14 22:44:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 14 22:44:23 2011 -0700"
      },
      "message": "Merge \"Remove a workaround for the data inconsistency of SystemProperties\" into honeycomb-mr1"
    },
    {
      "commit": "015b1ecaec27b7cf5f1a78099d9ae34a0c3169f2",
      "tree": "3b7a7bca14b9579c6fe647696d4623ad8acb8c71",
      "parents": [
        "9f3f36c95b87aab2c5f7cd6b6e18927f8ebfa9c4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 18:24:35 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Mar 14 20:10:47 2011 -0400"
      },
      "message": "Add support for USB accessory serial numbers\n\nChange-Id: I47b79f091b300ced60bfc61eff2f771139663aae\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b548a3cfa022451098cc73e25ce79f1776e78715",
      "tree": "78b48001eca82eb60412d7bbef051e121d528cfb",
      "parents": [
        "e21110f8b1e4aa884f7a4e2164ae90dab8d5f3fa"
      ],
      "author": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Mar 14 12:38:34 2011 -0700"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Mon Mar 14 12:38:34 2011 -0700"
      },
      "message": "Remove a workaround for the data inconsistency of SystemProperties\n\nBug: 3473532\nReverting: Ie3f5b484b5574e10a4\n\nDepends on Bug: 3511230\nThis must be fixed before submitting this CL.\n\nChange-Id: I435a294a818bec5675f0ada00d81c1b3e37d1dce\n"
    }
  ],
  "next": "e21110f8b1e4aa884f7a4e2164ae90dab8d5f3fa"
}
